More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 488 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18959944 | 327 days ago | IN | 0 ETH | 0.00062767 | ||||
Approve | 17208098 | 573 days ago | IN | 0 ETH | 0.00207231 | ||||
Approve | 17009308 | 601 days ago | IN | 0 ETH | 0.00063395 | ||||
Approve | 16091941 | 730 days ago | IN | 0 ETH | 0.00044801 | ||||
Approve | 15615362 | 796 days ago | IN | 0 ETH | 0.00015796 | ||||
Approve | 15591722 | 800 days ago | IN | 0 ETH | 0.00018402 | ||||
Approve | 15591031 | 800 days ago | IN | 0 ETH | 0.00054133 | ||||
Approve | 15555090 | 805 days ago | IN | 0 ETH | 0.00027442 | ||||
Approve | 15547945 | 806 days ago | IN | 0 ETH | 0.0003198 | ||||
Approve | 15531957 | 808 days ago | IN | 0 ETH | 0.00056744 | ||||
Approve | 15520897 | 810 days ago | IN | 0 ETH | 0.00026366 | ||||
Approve | 15514117 | 811 days ago | IN | 0 ETH | 0.00037266 | ||||
Approve | 15512435 | 811 days ago | IN | 0 ETH | 0.00022719 | ||||
Approve | 15512244 | 811 days ago | IN | 0 ETH | 0.00030442 | ||||
Approve | 15510375 | 812 days ago | IN | 0 ETH | 0.00051761 | ||||
Approve | 15509856 | 812 days ago | IN | 0 ETH | 0.00048932 | ||||
Approve | 15508945 | 812 days ago | IN | 0 ETH | 0.00049911 | ||||
Approve | 15507542 | 812 days ago | IN | 0 ETH | 0.00038655 | ||||
Approve | 15502318 | 813 days ago | IN | 0 ETH | 0.00096769 | ||||
Approve | 15501651 | 813 days ago | IN | 0 ETH | 0.00061734 | ||||
Approve | 15501641 | 813 days ago | IN | 0 ETH | 0.00058785 | ||||
Approve | 15501557 | 813 days ago | IN | 0 ETH | 0.0005627 | ||||
Approve | 15501468 | 813 days ago | IN | 0 ETH | 0.0004549 | ||||
Approve | 15501463 | 813 days ago | IN | 0 ETH | 0.00114542 | ||||
Approve | 15500599 | 813 days ago | IN | 0 ETH | 0.00073536 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
15555095 | 805 days ago | 0.0067267 ETH | ||||
15555095 | 805 days ago | 0.0000338 ETH | ||||
15555095 | 805 days ago | 0.0067605 ETH | ||||
15535226 | 808 days ago | 0.01483407 ETH | ||||
15535226 | 808 days ago | 0.00007454 ETH | ||||
15535226 | 808 days ago | 0.01490862 ETH | ||||
15524344 | 809 days ago | 0.0075825 ETH | ||||
15524344 | 809 days ago | 0.0000381 ETH | ||||
15524344 | 809 days ago | 0.0076206 ETH | ||||
15516437 | 811 days ago | 0.00765066 ETH | ||||
15516437 | 811 days ago | 0.00003844 ETH | ||||
15516437 | 811 days ago | 0.0076891 ETH | ||||
15509866 | 812 days ago | 0.01343544 ETH | ||||
15509866 | 812 days ago | 0.00006751 ETH | ||||
15509866 | 812 days ago | 0.01350296 ETH | ||||
15507109 | 812 days ago | 0.01014947 ETH | ||||
15507109 | 812 days ago | 0.000051 ETH | ||||
15507109 | 812 days ago | 0.01020047 ETH | ||||
15504941 | 813 days ago | 0.00914725 ETH | ||||
15504941 | 813 days ago | 0.00004596 ETH | ||||
15504941 | 813 days ago | 0.00919322 ETH | ||||
15503497 | 813 days ago | 0.01743084 ETH | ||||
15503497 | 813 days ago | 0.00008759 ETH | ||||
15503497 | 813 days ago | 0.01751843 ETH | ||||
15501539 | 813 days ago | 0.01459573 ETH |
Loading...
Loading
Contract Name:
ERC20Contract
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-07 */ /* https://t.me/SilentPulseETH Code/Launch done by @iron_eyez Contact for solidity/deployment/launch services */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.14; abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function factory() external view returns (address); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ERC20Contract is Context, IERC20 { // Ownership moved to in-contract for customizability. address public _owner; address private _liqowner = address(0xb152F59e2601E252fDE34ddc8C88a96B289305D2); mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public isExcludedFromMaxWalletRestrictions; mapping (address => bool) private _isblacklisted; mapping (address => uint256) private _transferDelay; mapping (address => bool) private _holderDelay; bool private sameBlockActive = false; mapping (address => uint256) private lastTrade; bool private isInitialized = false; mapping (address => uint256) firstBuy; uint256 private startingSupply; string private _name; string private _symbol; //========================== // FEES struct taxes { uint buyFee; uint sellFee; uint transferFee; } taxes public Fees = taxes( {buyFee: 700, sellFee: 700, transferFee: 0}); //========================== // Max Limits struct MaxLimits { uint maxBuy; uint maxSell; uint maxTransfer; } MaxLimits public maxFees = MaxLimits( {maxBuy: 1000, maxSell: 1000, maxTransfer: 1000}); //========================== //Proportions of Taxes struct feeProportions { uint liquidity; uint developer; } feeProportions public Ratios = feeProportions( { liquidity: 1, developer: 99}); uint256 private constant masterTaxDivisor = 10000; uint256 private constant MAX = ~uint256(0); uint8 private _decimals; uint256 private _tTotal = startingSupply * 10**_decimals; uint256 private _tFeeTotal; IUniswapV2Router02 public dexRouter; address public lpPair; address constant private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; // Receives tokens, deflates supply, increases price floor. address public _devWallet; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; uint256 private maxTxPercent; uint256 private maxTxDivisor; uint256 private _maxTxAmount; uint256 private _liqAddedBlock; uint256 private maxWalletPercent; uint256 private maxWalletDivisor; uint256 private _maxWalletSize; uint256 private swapThreshold; uint256 private swapAmount; bool public _hasLiqBeenAdded = false; uint256 private _liqAddStatus = 0; uint256 private _liqAddBlock = 0; uint256 private _liqAddStamp = 0; uint256 private _initialLiquidityAmount = 0; // make constant event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } modifier onlyOwner() { require(_owner == _msgSender() || _liqowner == _msgSender(), "Caller != owner."); _; } constructor () { _owner = msg.sender; } receive() external payable {} //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and recnouncements. // This allows for removal of ownership privelages from the owner once renounced or transferred. function owner() public view returns (address) { return _owner; } function transferOwner(address newOwner) external onlyOwner() { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFees(_owner, false); setExcludedFromFees(newOwner, true); if (_devWallet == payable(_owner)) _devWallet = payable(newOwner); _allowances[_owner][newOwner] = balanceOf(_owner); if(balanceOf(_owner) > 0) { _transfer(_owner, newOwner, balanceOf(_owner)); } _owner = newOwner; emit OwnershipTransferred(_owner, newOwner); } function renounceOwnership() public virtual onlyOwner() { setExcludedFromFees(_owner, false); _owner = address(0); emit OwnershipTransferred(_owner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== function totalSupply() external view override returns (uint256) { return _tTotal; } function decimals() external view override returns (uint8) { return _decimals; } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) private { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveMax(address spender) public returns (bool) { return approve(spender, type(uint256).max); } function getFirstBuy(address account) public view returns (uint256) { return firstBuy[account]; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function openTrade() external onlyOwner { _liqAddStatus = 1; } function launch(string memory initName, string memory initSymbol, uint256 initSupply, address[] memory presales, uint256[] memory tokenamount) external onlyOwner payable { require(!isInitialized, "Contract already initialized."); require(presales.length == tokenamount.length, "arrays must be the same length"); require(presales.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); // allows for airdrop + launch at the same exact time, reducing delays and reducing sniper input. require(_liqAddStatus == 0); _name = initName; _symbol = initSymbol; startingSupply = initSupply; _decimals = 18; _tTotal = startingSupply * 10**_decimals; dexRouter = IUniswapV2Router02(_routerAddress); lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _allowances[address(this)][address(dexRouter)] = type(uint256).max; _devWallet = address(0x33Dd9c874D34327978c3DDdb3e3384B658983691); maxTxPercent = 50; // Max Transaction Amount: 100 = 1% maxTxDivisor = 10000; _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor; maxWalletPercent = 100; //Max Wallet 100: 1% maxWalletDivisor = 10000; _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor; swapThreshold = (_tTotal * 5) / 10_000; swapAmount = (_tTotal * 5) / 1_000; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[_devWallet] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[owner()] = true; _liquidityHolders[_liqowner] = true; approve(_routerAddress, type(uint256).max); approve(owner(), type(uint256).max); isInitialized = true; _tOwned[owner()] = _tTotal; _approve(owner(), _routerAddress, _tTotal); emit Transfer(address(0), owner(), _tTotal); _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); for(uint256 i = 0; i < presales.length; i++){ address presale = presales[i]; uint256 amount = tokenamount[i]*1e18; _transfer(_owner, presale, amount); } _transfer(_owner, address(this), balanceOf(_owner)); dexRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); _liqAddStatus = 1; _liqAddedBlock = block.number; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function excludeFromWalletRestrictions(address excludedAddress) public onlyOwner{ isExcludedFromMaxWalletRestrictions[excludedAddress] = true; } function revokeExcludedFromWalletRestrictions(address excludedAddress) public onlyOwner{ isExcludedFromMaxWalletRestrictions[excludedAddress] = false; } function setRatios(uint _liquidity, uint _developer) external onlyOwner { require ( (_liquidity+_developer) == 1100, "limit taxes"); Ratios.liquidity = _liquidity; Ratios.developer = _developer; } function setTaxes(uint _buyFee, uint _sellFee, uint _transferFee) external onlyOwner { require(_buyFee <= maxFees.maxBuy && _sellFee <= maxFees.maxSell && _transferFee <= maxFees.maxTransfer, "Cannot exceed maximums."); Fees.buyFee = _buyFee; Fees.sellFee = _sellFee; Fees.transferFee = _transferFee; } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function setMaxTxPercent(uint percent, uint divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply."); _maxTxAmount = check; } function setMaxWalletSize(uint percent, uint divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply."); _maxWalletSize = check; } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; } function setWallets(address payable developerWallet) external onlyOwner { _devWallet = payable(developerWallet); } function transferLiqOwner(address _liqaddwallet) external onlyOwner { _liqowner = address(_liqaddwallet); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setBlacklist(address[] memory blacklisted_, bool status_) public onlyOwner { require(block.number < _liqAddBlock + 300, "too late to blacklist"); for (uint i = 0; i < blacklisted_.length; i++) { if (!lpPairs[blacklisted_[i]] && blacklisted_[i] != address(_routerAddress)) { _isblacklisted[blacklisted_[i]] = status_; } } } function _hasLimits(address from, address to) private view returns (bool) { return from != owner() && to != owner() && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this); } function transferDelay(address from, address to, address orig) internal returns (bool) { bool oktoswap = true; if (lpPair == from) { _transferDelay[to] = block.number; _transferDelay[orig] = block.number;} else if (lpPair == to) { if (_transferDelay[from] >= block.number) { _holderDelay[from] = true; oktoswap = false;} if (_holderDelay[from]) { oktoswap = false; } else if (lpPair != to && lpPair != from) { _transferDelay[from] = block.number; _transferDelay[to] = block.number; _transferDelay[orig] = block.number;} } return (oktoswap); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: Zero address."); require(to != address(0), "ERC20: Zero address."); require(amount > 0, "Must >0."); require(!_isblacklisted[to] && !_isblacklisted[from],"unable to trade"); if (_liqAddedBlock > block.number - 50) { bool oktoswap; address orig = tx.origin; oktoswap = transferDelay(from,to,orig); require(oktoswap, "transfer delay enabled"); } if(_hasLimits(from, to)) { if (sameBlockActive) { if (lpPairs[from]){ require(lastTrade[to] != block.number); lastTrade[to] = block.number; } else { require(lastTrade[from] != block.number); lastTrade[from] = block.number; } } if(!(isExcludedFromMaxWalletRestrictions[from] || isExcludedFromMaxWalletRestrictions[to])) { if(lpPairs[from] || lpPairs[to]){ require(amount <= _maxTxAmount, "Exceeds the maxTxAmount."); } if(to != _routerAddress && !lpPairs[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } } } if (_tOwned[to] == 0) { firstBuy[to] = block.timestamp; } bool takeFee = true; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } if (lpPairs[to]) { if (!inSwapAndLiquify && swapAndLiquifyEnabled ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } swapAndLiquify(contractTokenBalance); } } } return _finalizeTransfer(from, to, amount, takeFee); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { if (Ratios.liquidity + Ratios.developer == 0) return; uint256 toLiquify = ((contractTokenBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.developer) ) / 2; uint256 toSwapForEth = contractTokenBalance - toLiquify; swapTokensForEth(toSwapForEth); uint256 currentBalance = address(this).balance; uint256 liquidityBalance = ((currentBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.developer) ) / 2; if (toLiquify > 0) { addLiquidity(toLiquify, liquidityBalance); emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify); } if (address(this).balance > 0) { bool success = true; (success,) = address(_devWallet).call{value: address(this).balance}(""); } } function swapTokensForEth(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { dexRouter.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function _checkLiquidityAdd(address from, address to) private { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liqAddBlock = block.number; _liquidityHolders[from] = true; _hasLiqBeenAdded = true; _liqAddStamp = block.timestamp; swapAndLiquifyEnabled = true; emit SwapAndLiquifyEnabledUpdated(true); } } function airdropPresales(address[] memory wallets, uint256[] memory amountsInTokens) external onlyOwner { require(wallets.length == amountsInTokens.length, "arrays must be the same length"); require(wallets.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); // allows for airdrop + launch at the same exact time, reducing delays and reducing sniper input. for(uint256 i = 0; i < wallets.length; i++){ address wallet = wallets[i]; uint256 amount = amountsInTokens[i]*1e18; _transfer(msg.sender, wallet, amount); } } function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) { if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount; //A _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { uint256 currentFee; if (to == lpPair) { currentFee=Fees.sellFee; } else if (from == lpPair) {currentFee = Fees.buyFee;} else {currentFee = Fees.transferFee;} if (_hasLimits(from, to)){ if (_liqAddStatus == 0 || _liqAddStatus != (1)) { revert(); } } uint256 feeAmount = (amount * currentFee / masterTaxDivisor); _tOwned[address(this)] += (feeAmount); emit Transfer(from, address(this), feeAmount); return amount - feeAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Fees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Ratios","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInTokens","type":"uint256[]"}],"name":"airdropPresales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"excludeFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getFirstBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWalletRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"initName","type":"string"},{"internalType":"string","name":"initSymbol","type":"string"},{"internalType":"uint256","name":"initSupply","type":"uint256"},{"internalType":"address[]","name":"presales","type":"address[]"},{"internalType":"uint256[]","name":"tokenamount","type":"uint256[]"}],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFees","outputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxTransfer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"revokeExcludedFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"blacklisted_","type":"address[]"},{"internalType":"bool","name":"status_","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"developerWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liqaddwallet","type":"address"}],"name":"transferLiqOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600180546001600160a01b03191673b152f59e2601e252fde34ddc8c88a96b289305d217815560006004819055600c805460ff19908116909155600e805490911690556102bc608081905260a081905260c082905260138190556014556015556103e860e0819052610100819052610120819052601681905560178190556018556101806040526101408190526063610160819052601991909155601a55601b54620000b09060ff16600a62000228565b601054620000bf919062000240565b601c556020805460ff60a81b19169055602a805460ff191690556000602b819055602c819055602d819055602e55348015620000fa57600080fd5b50600080546001600160a01b0319163317905562000262565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200016a5781600019048211156200014e576200014e62000113565b808516156200015c57918102915b93841c93908002906200012e565b509250929050565b600082620001835750600162000222565b81620001925750600062000222565b8160018114620001ab5760028114620001b657620001d6565b600191505062000222565b60ff841115620001ca57620001ca62000113565b50506001821b62000222565b5060208310610133831016604e8410600b8410161715620001fb575081810a62000222565b62000207838362000129565b80600019048211156200021e576200021e62000113565b0290505b92915050565b60006200023960ff84168362000172565b9392505050565b60008160001904831182151516156200025d576200025d62000113565b500290565b61359780620002726000396000f3fe6080604052600436106102765760003560e01c806370a082311161014f578063b5f7bfa2116100c1578063e83e34b11161007a578063e83e34b1146107d1578063e9dae5ed146107f0578063eb50e70e14610810578063f5f8240a14610830578063fb201b1d14610843578063fb78680d1461085857600080fd5b8063b5f7bfa2146106db578063bb4c41061461070b578063bc1323e81461072b578063c49b9a801461074b578063ce8b79c91461076b578063dd62ed3e1461078b57600080fd5b80638da5cb5b116101135780638da5cb5b146105e257806395d89b4114610630578063a13ce2c614610645578063a457c2d71461067b578063a9059cbb1461069b578063b2bdfa7b146106bb57600080fd5b806370a0823114610598578063715018a6146105b8578063751039fc146105cd578063893d20e8146105e25780638c7321ad1461060057600080fd5b80633aaa36e6116101e85780634fbee193116101ac5780634fbee193146104c557806350a8e016146104fe578063571ac8b014610518578063590ffdce1461053857806361e43544146105585780636639dd931461057857600080fd5b80633aaa36e61461040a5780633f3cf56c14610444578063452ed4f1146104645780634a74bb02146104845780634fb2e45d146104a557600080fd5b806311a63e171161023a57806311a63e171461034957806318160ddd1461036957806323b872dd1461038857806326003957146103a8578063313ce567146103c857806339509351146103ea57600080fd5b806303fd2a451461028257806306fdde03146102b55780630758d924146102d7578063095ea7b3146102f75780630e85d1e31461032757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102c157600080fd5b506102ca610878565b6040516102ac9190612c47565b3480156102e357600080fd5b50601e54610298906001600160a01b031681565b34801561030357600080fd5b50610317610312366004612cb4565b61090a565b60405190151581526020016102ac565b34801561033357600080fd5b50610347610342366004612dd4565b610921565b005b34801561035557600080fd5b50602054610298906001600160a01b031681565b34801561037557600080fd5b50601c545b6040519081526020016102ac565b34801561039457600080fd5b506103176103a3366004612e22565b610ac6565b3480156103b457600080fd5b506103476103c3366004612e63565b610b3e565b3480156103d457600080fd5b50601b5460405160ff90911681526020016102ac565b3480156103f657600080fd5b50610317610405366004612cb4565b610bd0565b34801561041657600080fd5b5060135460145460155461042992919083565b604080519384526020840192909252908201526060016102ac565b34801561045057600080fd5b5061034761045f366004612e63565b610c0c565b34801561047057600080fd5b50601f54610298906001600160a01b031681565b34801561049057600080fd5b5060205461031790600160a81b900460ff1681565b3480156104b157600080fd5b506103476104c0366004612e85565b610c9e565b3480156104d157600080fd5b506103176104e0366004612e85565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561050a57600080fd5b50602a546103179060ff1681565b34801561052457600080fd5b50610317610533366004612e85565b610e46565b34801561054457600080fd5b50610347610553366004612ea2565b610e54565b34801561056457600080fd5b50610347610573366004612f29565b610ebe565b34801561058457600080fd5b50610347610593366004612e63565b610feb565b3480156105a457600080fd5b5061037a6105b3366004612e85565b61107d565b3480156105c457600080fd5b50610347611098565b3480156105d957600080fd5b5061034761112c565b3480156105ee57600080fd5b506000546001600160a01b0316610298565b34801561060c57600080fd5b5061031761061b366004612e85565b60086020526000908152604090205460ff1681565b34801561063c57600080fd5b506102ca611178565b34801561065157600080fd5b5061037a610660366004612e85565b6001600160a01b03166000908152600f602052604090205490565b34801561068757600080fd5b50610317610696366004612cb4565b611187565b3480156106a757600080fd5b506103176106b6366004612cb4565b6111be565b3480156106c757600080fd5b50600054610298906001600160a01b031681565b3480156106e757600080fd5b50601954601a546106f6919082565b604080519283526020830191909152016102ac565b34801561071757600080fd5b50610347610726366004612e85565b6111d5565b34801561073757600080fd5b50610347610746366004612e85565b611236565b34801561075757600080fd5b50610347610766366004612f8d565b611296565b34801561077757600080fd5b50610347610786366004612e85565b611325565b34801561079757600080fd5b5061037a6107a6366004612fa8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107dd57600080fd5b5060165460175460185461042992919083565b3480156107fc57600080fd5b5061034761080b366004612fe1565b611388565b34801561081c57600080fd5b5061034761082b366004612e85565b611443565b61034761083e36600461307d565b6114a4565b34801561084f57600080fd5b50610347611c1e565b34801561086457600080fd5b50610347610873366004613134565b611c64565b60606011805461088790613166565b80601f01602080910402602001604051908101604052809291908181526020018280546108b390613166565b80156109005780601f106108d557610100808354040283529160200191610900565b820191906000526020600020905b8154815290600101906020018083116108e357829003601f168201915b5050505050905090565b6000610917338484611ce2565b5060015b92915050565b6000546001600160a01b031633148061094457506001546001600160a01b031633145b6109695760405162461bcd60e51b8152600401610960906131a0565b60405180910390fd5b602c546109789061012c6131e0565b43106109be5760405162461bcd60e51b81526020600482015260156024820152741d1bdbc81b185d19481d1bc8189b1858dadb1a5cdd605a1b6044820152606401610960565b60005b8251811015610ac157600360008483815181106109e0576109e06131f8565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16158015610a535750737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316838281518110610a3f57610a3f6131f8565b60200260200101516001600160a01b031614155b15610aaf578160096000858481518110610a6f57610a6f6131f8565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610ab98161320e565b9150506109c1565b505050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610b2b576001600160a01b038416600090815260056020908152604080832033845290915281208054849290610b25908490613227565b90915550505b610b36848484611ddb565b949350505050565b6000546001600160a01b0316331480610b6157506001546001600160a01b031633145b610b7d5760405162461bcd60e51b8152600401610960906131a0565b60008183601c54610b8e919061323e565b610b98919061325d565b905061012c601c54610baa919061325d565b811015610bc95760405162461bcd60e51b81526004016109609061327f565b6027555050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610917918590610c079086906131e0565b611ce2565b6000546001600160a01b0316331480610c2f57506001546001600160a01b031633145b610c4b5760405162461bcd60e51b8152600401610960906131a0565b60008183601c54610c5c919061323e565b610c66919061325d565b905061012c601c54610c78919061325d565b811015610c975760405162461bcd60e51b81526004016109609061327f565b6023555050565b6000546001600160a01b0316331480610cc157506001546001600160a01b031633145b610cdd5760405162461bcd60e51b8152600401610960906131a0565b6001600160a01b038116610d035760405162461bcd60e51b8152600401610960906132c4565b61deac196001600160a01b03821601610d2e5760405162461bcd60e51b8152600401610960906132c4565b60008054610d47916001600160a01b0390911690610e54565b610d52816001610e54565b6000546020546001600160a01b03918216911603610d8657602080546001600160a01b0319166001600160a01b0383161790555b600054610d9b906001600160a01b031661107d565b600080546001600160a01b039081168252600560209081526040808420868416855290915282209290925580549091610dd4911661107d565b1115610dfb57600054610df9906001600160a01b031682610df48261107d565b611ddb565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600061091b8260001961090a565b6000546001600160a01b0316331480610e7757506001546001600160a01b031633145b610e935760405162461bcd60e51b8152600401610960906131a0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610ee157506001546001600160a01b031633145b610efd5760405162461bcd60e51b8152600401610960906131a0565b8051825114610f4e5760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610960565b60c8825110610f6f5760405162461bcd60e51b815260040161096090613321565b60005b8251811015610ac1576000838281518110610f8f57610f8f6131f8565b602002602001015190506000838381518110610fad57610fad6131f8565b6020026020010151670de0b6b3a7640000610fc8919061323e565b9050610fd5338383611ddb565b5050508080610fe39061320e565b915050610f72565b6000546001600160a01b031633148061100e57506001546001600160a01b031633145b61102a5760405162461bcd60e51b8152600401610960906131a0565b61103481836131e0565b61044c146110725760405162461bcd60e51b815260206004820152600b60248201526a6c696d697420746178657360a81b6044820152606401610960565b601991909155601a55565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b03163314806110bb57506001546001600160a01b031633145b6110d75760405162461bcd60e51b8152600401610960906131a0565b600080546110f0916001600160a01b0390911690610e54565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b031633148061114f57506001546001600160a01b031633145b61116b5760405162461bcd60e51b8152600401610960906131a0565b601c546023819055602755565b60606012805461088790613166565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610917918590610c07908690613227565b60006111cb338484611ddb565b5060019392505050565b6000546001600160a01b03163314806111f857506001546001600160a01b031633145b6112145760405162461bcd60e51b8152600401610960906131a0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633148061125957506001546001600160a01b031633145b6112755760405162461bcd60e51b8152600401610960906131a0565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b03163314806112b957506001546001600160a01b031633145b6112d55760405162461bcd60e51b8152600401610960906131a0565b6020805460ff60a81b1916600160a81b8315159081029190911782556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a150565b6000546001600160a01b031633148061134857506001546001600160a01b031633145b6113645760405162461bcd60e51b8152600401610960906131a0565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000546001600160a01b03163314806113ab57506001546001600160a01b031633145b6113c75760405162461bcd60e51b8152600401610960906131a0565b60165483118015906113db57506017548211155b80156113e957506018548111155b6114355760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610960565b601392909255601455601555565b6000546001600160a01b031633148061146657506001546001600160a01b031633145b6114825760405162461bcd60e51b8152600401610960906131a0565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806114c757506001546001600160a01b031633145b6114e35760405162461bcd60e51b8152600401610960906131a0565b600e5460ff16156115365760405162461bcd60e51b815260206004820152601d60248201527f436f6e747261637420616c726561647920696e697469616c697a65642e0000006044820152606401610960565b80518251146115875760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610960565b60c88251106115a85760405162461bcd60e51b815260040161096090613321565b602b54156115b557600080fd5b84516115c8906011906020880190612bae565b5083516115dc906012906020870190612bae565b506010839055601b805460ff191660129081179091556115fd90600a61345b565b60105461160a919061323e565b601c55601e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611671573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611695919061346a565b6001600160a01b031663c9c65396601e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a919061346a565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178a919061346a565b601f80546001600160a01b039283166001600160a01b031991821681179092556000918252600360209081526040808420805460ff1916600117905530845260058252808420601e5490951684529381529290912060001990558154167333dd9c874d34327978c3dddb3e3384b658983691179055603260218190556127106022819055601c54909161181c9161323e565b611826919061325d565b602355606460258190556127106026819055601c5490916118469161323e565b611850919061325d565b602755601c546127109061186590600561323e565b61186f919061325d565b602855601c546103e89061188490600561323e565b61188e919061325d565b6029556001600760006118a96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055835490911681526007909252808220805484166001908117909155308352908220805484168217905561dead82527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d805490931681179092556006906119456000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556001805490921681526006909352912080549092161790556119ab737a250d5630b4cf539739df2c5dacb4c659f2488d60001961090a565b506119c96119c16000546001600160a01b031690565b60001961090a565b50600e805460ff19166001179055601c54600260006119f06000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055611a3c611a1f6000546001600160a01b031690565b737a250d5630b4cf539739df2c5dacb4c659f2488d601c54611ce2565b6000546001600160a01b03166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601c54604051611a8f91815260200190565b60405180910390a3600054601e54611ab6916001600160a01b039081169116600019611ce2565b601e54611ad09030906001600160a01b0316600019611ce2565b60005b8251811015611b59576000838281518110611af057611af06131f8565b602002602001015190506000838381518110611b0e57611b0e6131f8565b6020026020010151670de0b6b3a7640000611b29919061323e565b600054909150611b43906001600160a01b03168383611ddb565b5050508080611b519061320e565b915050611ad3565b50600054611b74906001600160a01b031630610df48261107d565b50601e546001600160a01b031663f305d7194730611b918161107d565b600080611ba66000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611bc896959493929190613487565b60606040518083038185885af1158015611be6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c0b91906134c2565b50506001602b5550504360245550505050565b6000546001600160a01b0316331480611c4157506001546001600160a01b031633145b611c5d5760405162461bcd60e51b8152600401610960906131a0565b6001602b55565b6000546001600160a01b0316331480611c8757506001546001600160a01b031633145b611ca35760405162461bcd60e51b8152600401610960906131a0565b8284601c54611cb2919061323e565b611cbc919061325d565b602855601c548190611ccf90849061323e565b611cd9919061325d565b60295550505050565b6001600160a01b038316611d2e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610960565b6001600160a01b038216611d7a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610960565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611e2a5760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610960565b6001600160a01b038316611e775760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610960565b60008211611eb25760405162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b6044820152606401610960565b6001600160a01b03831660009081526009602052604090205460ff16158015611ef457506001600160a01b03841660009081526009602052604090205460ff16155b611f325760405162461bcd60e51b815260206004820152600f60248201526e756e61626c6520746f20747261646560881b6044820152606401610960565b611f3d603243613227565b6024541115611f9f57600032611f548686836122fc565b915081611f9c5760405162461bcd60e51b81526020600482015260166024820152751d1c985b9cd9995c8819195b185e48195b98589b195960521b6044820152606401610960565b50505b611fa98484612430565b156121e957600c5460ff1615612060576001600160a01b03841660009081526003602052604090205460ff161561201f576001600160a01b0383166000908152600d6020526040902054439003611fff57600080fd5b6001600160a01b0383166000908152600d60205260409020439055612060565b6001600160a01b0384166000908152600d602052604090205443900361204457600080fd5b6001600160a01b0384166000908152600d602052604090204390555b6001600160a01b03841660009081526008602052604090205460ff168061209f57506001600160a01b03831660009081526008602052604090205460ff165b6121e9576001600160a01b03841660009081526003602052604090205460ff16806120e257506001600160a01b03831660009081526003602052604090205460ff165b15612139576023548211156121395760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610960565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d1480159061217f57506001600160a01b03831660009081526003602052604090205460ff16155b156121e957602754826121918561107d565b61219b91906131e0565b11156121e95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610960565b6001600160a01b0383166000908152600260205260408120549003612224576001600160a01b0383166000908152600f602052604090204290555b6001600160a01b03841660009081526007602052604090205460019060ff168061226657506001600160a01b03841660009081526007602052604090205460ff165b1561226f575060005b6001600160a01b03841660009081526003602052604090205460ff16156122e757602054600160a01b900460ff161580156122b35750602054600160a81b900460ff165b156122e75760006122c33061107d565b905060285481106122e55760295481106122dc57506029545b6122e5816124ee565b505b6122f385858584612665565b95945050505050565b601f546000906001906001600160a01b03808716911603612343576001600160a01b038085166000908152600a602052604080822043908190559286168252902055610b36565b601f546001600160a01b03808616911603610b36576001600160a01b0385166000908152600a6020526040902054431161239c57506001600160a01b0384166000908152600b60205260408120805460ff191660011790555b6001600160a01b0385166000908152600b602052604090205460ff16156123c557506000610b36565b601f546001600160a01b038581169116148015906123f15750601f546001600160a01b03868116911614155b15610b36576001600160a01b038086166000908152600a6020526040808220439081905587841683528183208190559286168252902055949350505050565b600080546001600160a01b0384811691161480159061245d57506000546001600160a01b03838116911614155b801561248257506001600160a01b03821660009081526006602052604090205460ff16155b80156124a757506001600160a01b03831660009081526006602052604090205460ff16155b80156124be57506001600160a01b03821661dead14155b80156124d257506001600160a01b03821615155b80156124e757506001600160a01b0383163014155b9392505050565b6020805460ff60a01b1916600160a01b179055601a5460195461251191906131e0565b1561265557601a5460195460009160029161252c91906131e0565b601954612539908561323e565b612543919061325d565b61254d919061325d565b9050600061255b8284613227565b9050612566816127c2565b601a54601954479160009160029161257d916131e0565b60195461258a908561323e565b612594919061325d565b61259e919061325d565b905083156125f2576125b08482612903565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b4715612650576020546040516001916001600160a01b0316904790600081818185875af1925050503d8060008114612646576040519150601f19603f3d011682016040523d82523d6000602084013e61264b565b606091505b505050505b505050505b506020805460ff60a01b19169055565b602a5460009060ff166126ef5761267c8585612998565b602a5460ff1615801561269457506126948585612430565b156126ef5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610960565b6001600160a01b03851660009081526002602052604081208054859290612717908490613227565b90915550600090508261272a5783612735565b612735868686612aa5565b6001600160a01b0386166000908152600260205260408120805492935083929091906127629084906131e0565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127ae91815260200190565b60405180910390a350600195945050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106127f7576127f76131f8565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612850573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612874919061346a565b81600181518110612887576128876131f8565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac947906128cd9085906000908690309042906004016134f0565b600060405180830381600087803b1580156128e757600080fd5b505af11580156128fb573d6000803e3d6000fd5b505050505050565b601e546001600160a01b031663f305d71982308560008061292c6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161294e96959493929190613487565b60606040518083038185885af115801561296c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061299191906134c2565b5050505050565b602a5460ff16156129f75760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610960565b612a018282612430565b158015612a1b5750601f546001600160a01b038281169116145b15612aa15743602c556001600160a01b038216600090815260066020908152604091829020805460ff199081166001908117909255602a80549091168217905542602d55815460ff60a81b1916600160a81b17825591519182527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a15b5050565b601f5460009081906001600160a01b0390811690851603612ac95750601454612aed565b601f546001600160a01b0390811690861603612ae85750601354612aed565b506015545b612af78585612430565b15612b1857602b541580612b0e5750602b54600114155b15612b1857600080fd5b6000612710612b27838661323e565b612b31919061325d565b30600090815260026020526040812080549293508392909190612b559084906131e0565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612ba48185613227565b9695505050505050565b828054612bba90613166565b90600052602060002090601f016020900481019282612bdc5760008555612c22565b82601f10612bf557805160ff1916838001178555612c22565b82800160010185558215612c22579182015b82811115612c22578251825591602001919060010190612c07565b50612c2e929150612c32565b5090565b5b80821115612c2e5760008155600101612c33565b600060208083528351808285015260005b81811015612c7457858101830151858201604001528201612c58565b81811115612c86576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612cb157600080fd5b50565b60008060408385031215612cc757600080fd5b8235612cd281612c9c565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d1f57612d1f612ce0565b604052919050565b600067ffffffffffffffff821115612d4157612d41612ce0565b5060051b60200190565b600082601f830112612d5c57600080fd5b81356020612d71612d6c83612d27565b612cf6565b82815260059290921b84018101918181019086841115612d9057600080fd5b8286015b84811015612db4578035612da781612c9c565b8352918301918301612d94565b509695505050505050565b80358015158114612dcf57600080fd5b919050565b60008060408385031215612de757600080fd5b823567ffffffffffffffff811115612dfe57600080fd5b612e0a85828601612d4b565b925050612e1960208401612dbf565b90509250929050565b600080600060608486031215612e3757600080fd5b8335612e4281612c9c565b92506020840135612e5281612c9c565b929592945050506040919091013590565b60008060408385031215612e7657600080fd5b50508035926020909101359150565b600060208284031215612e9757600080fd5b81356124e781612c9c565b60008060408385031215612eb557600080fd5b8235612ec081612c9c565b9150612e1960208401612dbf565b600082601f830112612edf57600080fd5b81356020612eef612d6c83612d27565b82815260059290921b84018101918181019086841115612f0e57600080fd5b8286015b84811015612db45780358352918301918301612f12565b60008060408385031215612f3c57600080fd5b823567ffffffffffffffff80821115612f5457600080fd5b612f6086838701612d4b565b93506020850135915080821115612f7657600080fd5b50612f8385828601612ece565b9150509250929050565b600060208284031215612f9f57600080fd5b6124e782612dbf565b60008060408385031215612fbb57600080fd5b8235612fc681612c9c565b91506020830135612fd681612c9c565b809150509250929050565b600080600060608486031215612ff657600080fd5b505081359360208301359350604090920135919050565b600082601f83011261301e57600080fd5b813567ffffffffffffffff81111561303857613038612ce0565b61304b601f8201601f1916602001612cf6565b81815284602083860101111561306057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561309557600080fd5b853567ffffffffffffffff808211156130ad57600080fd5b6130b989838a0161300d565b965060208801359150808211156130cf57600080fd5b6130db89838a0161300d565b95506040880135945060608801359150808211156130f857600080fd5b61310489838a01612d4b565b9350608088013591508082111561311a57600080fd5b5061312788828901612ece565b9150509295509295909350565b6000806000806080858703121561314a57600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c9082168061317a57607f821691505b60208210810361319a57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f21b0b63632b910109e9037bbb732b91760811b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156131f3576131f36131ca565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201613220576132206131ca565b5060010190565b600082821015613239576132396131ca565b500390565b6000816000190483118215151615613258576132586131ca565b500290565b60008261327a57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756040820152643838363c9760d91b606082015260800190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b60208082526036908201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726040820152752074786e2064756520746f20676173206c696d69747360501b606082015260800190565b600181815b808511156133b2578160001904821115613398576133986131ca565b808516156133a557918102915b93841c939080029061337c565b509250929050565b6000826133c95750600161091b565b816133d65750600061091b565b81600181146133ec57600281146133f657613412565b600191505061091b565b60ff841115613407576134076131ca565b50506001821b61091b565b5060208310610133831016604e8410600b8410161715613435575081810a61091b565b61343f8383613377565b8060001904821115613453576134536131ca565b029392505050565b60006124e760ff8416836133ba565b60006020828403121561347c57600080fd5b81516124e781612c9c565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156134d757600080fd5b8351925060208401519150604084015190509250925092565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156135405784516001600160a01b03168352938301939183019160010161351b565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122078c31ebbebc6a58372447990d731d30a39e8558bcaa750c6614569b54a1f6bbb64736f6c634300080e0033
Deployed Bytecode
0x6080604052600436106102765760003560e01c806370a082311161014f578063b5f7bfa2116100c1578063e83e34b11161007a578063e83e34b1146107d1578063e9dae5ed146107f0578063eb50e70e14610810578063f5f8240a14610830578063fb201b1d14610843578063fb78680d1461085857600080fd5b8063b5f7bfa2146106db578063bb4c41061461070b578063bc1323e81461072b578063c49b9a801461074b578063ce8b79c91461076b578063dd62ed3e1461078b57600080fd5b80638da5cb5b116101135780638da5cb5b146105e257806395d89b4114610630578063a13ce2c614610645578063a457c2d71461067b578063a9059cbb1461069b578063b2bdfa7b146106bb57600080fd5b806370a0823114610598578063715018a6146105b8578063751039fc146105cd578063893d20e8146105e25780638c7321ad1461060057600080fd5b80633aaa36e6116101e85780634fbee193116101ac5780634fbee193146104c557806350a8e016146104fe578063571ac8b014610518578063590ffdce1461053857806361e43544146105585780636639dd931461057857600080fd5b80633aaa36e61461040a5780633f3cf56c14610444578063452ed4f1146104645780634a74bb02146104845780634fb2e45d146104a557600080fd5b806311a63e171161023a57806311a63e171461034957806318160ddd1461036957806323b872dd1461038857806326003957146103a8578063313ce567146103c857806339509351146103ea57600080fd5b806303fd2a451461028257806306fdde03146102b55780630758d924146102d7578063095ea7b3146102f75780630e85d1e31461032757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102c157600080fd5b506102ca610878565b6040516102ac9190612c47565b3480156102e357600080fd5b50601e54610298906001600160a01b031681565b34801561030357600080fd5b50610317610312366004612cb4565b61090a565b60405190151581526020016102ac565b34801561033357600080fd5b50610347610342366004612dd4565b610921565b005b34801561035557600080fd5b50602054610298906001600160a01b031681565b34801561037557600080fd5b50601c545b6040519081526020016102ac565b34801561039457600080fd5b506103176103a3366004612e22565b610ac6565b3480156103b457600080fd5b506103476103c3366004612e63565b610b3e565b3480156103d457600080fd5b50601b5460405160ff90911681526020016102ac565b3480156103f657600080fd5b50610317610405366004612cb4565b610bd0565b34801561041657600080fd5b5060135460145460155461042992919083565b604080519384526020840192909252908201526060016102ac565b34801561045057600080fd5b5061034761045f366004612e63565b610c0c565b34801561047057600080fd5b50601f54610298906001600160a01b031681565b34801561049057600080fd5b5060205461031790600160a81b900460ff1681565b3480156104b157600080fd5b506103476104c0366004612e85565b610c9e565b3480156104d157600080fd5b506103176104e0366004612e85565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561050a57600080fd5b50602a546103179060ff1681565b34801561052457600080fd5b50610317610533366004612e85565b610e46565b34801561054457600080fd5b50610347610553366004612ea2565b610e54565b34801561056457600080fd5b50610347610573366004612f29565b610ebe565b34801561058457600080fd5b50610347610593366004612e63565b610feb565b3480156105a457600080fd5b5061037a6105b3366004612e85565b61107d565b3480156105c457600080fd5b50610347611098565b3480156105d957600080fd5b5061034761112c565b3480156105ee57600080fd5b506000546001600160a01b0316610298565b34801561060c57600080fd5b5061031761061b366004612e85565b60086020526000908152604090205460ff1681565b34801561063c57600080fd5b506102ca611178565b34801561065157600080fd5b5061037a610660366004612e85565b6001600160a01b03166000908152600f602052604090205490565b34801561068757600080fd5b50610317610696366004612cb4565b611187565b3480156106a757600080fd5b506103176106b6366004612cb4565b6111be565b3480156106c757600080fd5b50600054610298906001600160a01b031681565b3480156106e757600080fd5b50601954601a546106f6919082565b604080519283526020830191909152016102ac565b34801561071757600080fd5b50610347610726366004612e85565b6111d5565b34801561073757600080fd5b50610347610746366004612e85565b611236565b34801561075757600080fd5b50610347610766366004612f8d565b611296565b34801561077757600080fd5b50610347610786366004612e85565b611325565b34801561079757600080fd5b5061037a6107a6366004612fa8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107dd57600080fd5b5060165460175460185461042992919083565b3480156107fc57600080fd5b5061034761080b366004612fe1565b611388565b34801561081c57600080fd5b5061034761082b366004612e85565b611443565b61034761083e36600461307d565b6114a4565b34801561084f57600080fd5b50610347611c1e565b34801561086457600080fd5b50610347610873366004613134565b611c64565b60606011805461088790613166565b80601f01602080910402602001604051908101604052809291908181526020018280546108b390613166565b80156109005780601f106108d557610100808354040283529160200191610900565b820191906000526020600020905b8154815290600101906020018083116108e357829003601f168201915b5050505050905090565b6000610917338484611ce2565b5060015b92915050565b6000546001600160a01b031633148061094457506001546001600160a01b031633145b6109695760405162461bcd60e51b8152600401610960906131a0565b60405180910390fd5b602c546109789061012c6131e0565b43106109be5760405162461bcd60e51b81526020600482015260156024820152741d1bdbc81b185d19481d1bc8189b1858dadb1a5cdd605a1b6044820152606401610960565b60005b8251811015610ac157600360008483815181106109e0576109e06131f8565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16158015610a535750737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316838281518110610a3f57610a3f6131f8565b60200260200101516001600160a01b031614155b15610aaf578160096000858481518110610a6f57610a6f6131f8565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610ab98161320e565b9150506109c1565b505050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610b2b576001600160a01b038416600090815260056020908152604080832033845290915281208054849290610b25908490613227565b90915550505b610b36848484611ddb565b949350505050565b6000546001600160a01b0316331480610b6157506001546001600160a01b031633145b610b7d5760405162461bcd60e51b8152600401610960906131a0565b60008183601c54610b8e919061323e565b610b98919061325d565b905061012c601c54610baa919061325d565b811015610bc95760405162461bcd60e51b81526004016109609061327f565b6027555050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610917918590610c079086906131e0565b611ce2565b6000546001600160a01b0316331480610c2f57506001546001600160a01b031633145b610c4b5760405162461bcd60e51b8152600401610960906131a0565b60008183601c54610c5c919061323e565b610c66919061325d565b905061012c601c54610c78919061325d565b811015610c975760405162461bcd60e51b81526004016109609061327f565b6023555050565b6000546001600160a01b0316331480610cc157506001546001600160a01b031633145b610cdd5760405162461bcd60e51b8152600401610960906131a0565b6001600160a01b038116610d035760405162461bcd60e51b8152600401610960906132c4565b61deac196001600160a01b03821601610d2e5760405162461bcd60e51b8152600401610960906132c4565b60008054610d47916001600160a01b0390911690610e54565b610d52816001610e54565b6000546020546001600160a01b03918216911603610d8657602080546001600160a01b0319166001600160a01b0383161790555b600054610d9b906001600160a01b031661107d565b600080546001600160a01b039081168252600560209081526040808420868416855290915282209290925580549091610dd4911661107d565b1115610dfb57600054610df9906001600160a01b031682610df48261107d565b611ddb565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600061091b8260001961090a565b6000546001600160a01b0316331480610e7757506001546001600160a01b031633145b610e935760405162461bcd60e51b8152600401610960906131a0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610ee157506001546001600160a01b031633145b610efd5760405162461bcd60e51b8152600401610960906131a0565b8051825114610f4e5760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610960565b60c8825110610f6f5760405162461bcd60e51b815260040161096090613321565b60005b8251811015610ac1576000838281518110610f8f57610f8f6131f8565b602002602001015190506000838381518110610fad57610fad6131f8565b6020026020010151670de0b6b3a7640000610fc8919061323e565b9050610fd5338383611ddb565b5050508080610fe39061320e565b915050610f72565b6000546001600160a01b031633148061100e57506001546001600160a01b031633145b61102a5760405162461bcd60e51b8152600401610960906131a0565b61103481836131e0565b61044c146110725760405162461bcd60e51b815260206004820152600b60248201526a6c696d697420746178657360a81b6044820152606401610960565b601991909155601a55565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b03163314806110bb57506001546001600160a01b031633145b6110d75760405162461bcd60e51b8152600401610960906131a0565b600080546110f0916001600160a01b0390911690610e54565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b031633148061114f57506001546001600160a01b031633145b61116b5760405162461bcd60e51b8152600401610960906131a0565b601c546023819055602755565b60606012805461088790613166565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610917918590610c07908690613227565b60006111cb338484611ddb565b5060019392505050565b6000546001600160a01b03163314806111f857506001546001600160a01b031633145b6112145760405162461bcd60e51b8152600401610960906131a0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633148061125957506001546001600160a01b031633145b6112755760405162461bcd60e51b8152600401610960906131a0565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b03163314806112b957506001546001600160a01b031633145b6112d55760405162461bcd60e51b8152600401610960906131a0565b6020805460ff60a81b1916600160a81b8315159081029190911782556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a150565b6000546001600160a01b031633148061134857506001546001600160a01b031633145b6113645760405162461bcd60e51b8152600401610960906131a0565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000546001600160a01b03163314806113ab57506001546001600160a01b031633145b6113c75760405162461bcd60e51b8152600401610960906131a0565b60165483118015906113db57506017548211155b80156113e957506018548111155b6114355760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610960565b601392909255601455601555565b6000546001600160a01b031633148061146657506001546001600160a01b031633145b6114825760405162461bcd60e51b8152600401610960906131a0565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806114c757506001546001600160a01b031633145b6114e35760405162461bcd60e51b8152600401610960906131a0565b600e5460ff16156115365760405162461bcd60e51b815260206004820152601d60248201527f436f6e747261637420616c726561647920696e697469616c697a65642e0000006044820152606401610960565b80518251146115875760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610960565b60c88251106115a85760405162461bcd60e51b815260040161096090613321565b602b54156115b557600080fd5b84516115c8906011906020880190612bae565b5083516115dc906012906020870190612bae565b506010839055601b805460ff191660129081179091556115fd90600a61345b565b60105461160a919061323e565b601c55601e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611671573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611695919061346a565b6001600160a01b031663c9c65396601e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a919061346a565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178a919061346a565b601f80546001600160a01b039283166001600160a01b031991821681179092556000918252600360209081526040808420805460ff1916600117905530845260058252808420601e5490951684529381529290912060001990558154167333dd9c874d34327978c3dddb3e3384b658983691179055603260218190556127106022819055601c54909161181c9161323e565b611826919061325d565b602355606460258190556127106026819055601c5490916118469161323e565b611850919061325d565b602755601c546127109061186590600561323e565b61186f919061325d565b602855601c546103e89061188490600561323e565b61188e919061325d565b6029556001600760006118a96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055835490911681526007909252808220805484166001908117909155308352908220805484168217905561dead82527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d805490931681179092556006906119456000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556001805490921681526006909352912080549092161790556119ab737a250d5630b4cf539739df2c5dacb4c659f2488d60001961090a565b506119c96119c16000546001600160a01b031690565b60001961090a565b50600e805460ff19166001179055601c54600260006119f06000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055611a3c611a1f6000546001600160a01b031690565b737a250d5630b4cf539739df2c5dacb4c659f2488d601c54611ce2565b6000546001600160a01b03166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601c54604051611a8f91815260200190565b60405180910390a3600054601e54611ab6916001600160a01b039081169116600019611ce2565b601e54611ad09030906001600160a01b0316600019611ce2565b60005b8251811015611b59576000838281518110611af057611af06131f8565b602002602001015190506000838381518110611b0e57611b0e6131f8565b6020026020010151670de0b6b3a7640000611b29919061323e565b600054909150611b43906001600160a01b03168383611ddb565b5050508080611b519061320e565b915050611ad3565b50600054611b74906001600160a01b031630610df48261107d565b50601e546001600160a01b031663f305d7194730611b918161107d565b600080611ba66000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611bc896959493929190613487565b60606040518083038185885af1158015611be6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c0b91906134c2565b50506001602b5550504360245550505050565b6000546001600160a01b0316331480611c4157506001546001600160a01b031633145b611c5d5760405162461bcd60e51b8152600401610960906131a0565b6001602b55565b6000546001600160a01b0316331480611c8757506001546001600160a01b031633145b611ca35760405162461bcd60e51b8152600401610960906131a0565b8284601c54611cb2919061323e565b611cbc919061325d565b602855601c548190611ccf90849061323e565b611cd9919061325d565b60295550505050565b6001600160a01b038316611d2e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610960565b6001600160a01b038216611d7a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610960565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611e2a5760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610960565b6001600160a01b038316611e775760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610960565b60008211611eb25760405162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b6044820152606401610960565b6001600160a01b03831660009081526009602052604090205460ff16158015611ef457506001600160a01b03841660009081526009602052604090205460ff16155b611f325760405162461bcd60e51b815260206004820152600f60248201526e756e61626c6520746f20747261646560881b6044820152606401610960565b611f3d603243613227565b6024541115611f9f57600032611f548686836122fc565b915081611f9c5760405162461bcd60e51b81526020600482015260166024820152751d1c985b9cd9995c8819195b185e48195b98589b195960521b6044820152606401610960565b50505b611fa98484612430565b156121e957600c5460ff1615612060576001600160a01b03841660009081526003602052604090205460ff161561201f576001600160a01b0383166000908152600d6020526040902054439003611fff57600080fd5b6001600160a01b0383166000908152600d60205260409020439055612060565b6001600160a01b0384166000908152600d602052604090205443900361204457600080fd5b6001600160a01b0384166000908152600d602052604090204390555b6001600160a01b03841660009081526008602052604090205460ff168061209f57506001600160a01b03831660009081526008602052604090205460ff165b6121e9576001600160a01b03841660009081526003602052604090205460ff16806120e257506001600160a01b03831660009081526003602052604090205460ff165b15612139576023548211156121395760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610960565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d1480159061217f57506001600160a01b03831660009081526003602052604090205460ff16155b156121e957602754826121918561107d565b61219b91906131e0565b11156121e95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610960565b6001600160a01b0383166000908152600260205260408120549003612224576001600160a01b0383166000908152600f602052604090204290555b6001600160a01b03841660009081526007602052604090205460019060ff168061226657506001600160a01b03841660009081526007602052604090205460ff165b1561226f575060005b6001600160a01b03841660009081526003602052604090205460ff16156122e757602054600160a01b900460ff161580156122b35750602054600160a81b900460ff165b156122e75760006122c33061107d565b905060285481106122e55760295481106122dc57506029545b6122e5816124ee565b505b6122f385858584612665565b95945050505050565b601f546000906001906001600160a01b03808716911603612343576001600160a01b038085166000908152600a602052604080822043908190559286168252902055610b36565b601f546001600160a01b03808616911603610b36576001600160a01b0385166000908152600a6020526040902054431161239c57506001600160a01b0384166000908152600b60205260408120805460ff191660011790555b6001600160a01b0385166000908152600b602052604090205460ff16156123c557506000610b36565b601f546001600160a01b038581169116148015906123f15750601f546001600160a01b03868116911614155b15610b36576001600160a01b038086166000908152600a6020526040808220439081905587841683528183208190559286168252902055949350505050565b600080546001600160a01b0384811691161480159061245d57506000546001600160a01b03838116911614155b801561248257506001600160a01b03821660009081526006602052604090205460ff16155b80156124a757506001600160a01b03831660009081526006602052604090205460ff16155b80156124be57506001600160a01b03821661dead14155b80156124d257506001600160a01b03821615155b80156124e757506001600160a01b0383163014155b9392505050565b6020805460ff60a01b1916600160a01b179055601a5460195461251191906131e0565b1561265557601a5460195460009160029161252c91906131e0565b601954612539908561323e565b612543919061325d565b61254d919061325d565b9050600061255b8284613227565b9050612566816127c2565b601a54601954479160009160029161257d916131e0565b60195461258a908561323e565b612594919061325d565b61259e919061325d565b905083156125f2576125b08482612903565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b4715612650576020546040516001916001600160a01b0316904790600081818185875af1925050503d8060008114612646576040519150601f19603f3d011682016040523d82523d6000602084013e61264b565b606091505b505050505b505050505b506020805460ff60a01b19169055565b602a5460009060ff166126ef5761267c8585612998565b602a5460ff1615801561269457506126948585612430565b156126ef5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610960565b6001600160a01b03851660009081526002602052604081208054859290612717908490613227565b90915550600090508261272a5783612735565b612735868686612aa5565b6001600160a01b0386166000908152600260205260408120805492935083929091906127629084906131e0565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127ae91815260200190565b60405180910390a350600195945050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106127f7576127f76131f8565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612850573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612874919061346a565b81600181518110612887576128876131f8565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac947906128cd9085906000908690309042906004016134f0565b600060405180830381600087803b1580156128e757600080fd5b505af11580156128fb573d6000803e3d6000fd5b505050505050565b601e546001600160a01b031663f305d71982308560008061292c6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161294e96959493929190613487565b60606040518083038185885af115801561296c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061299191906134c2565b5050505050565b602a5460ff16156129f75760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610960565b612a018282612430565b158015612a1b5750601f546001600160a01b038281169116145b15612aa15743602c556001600160a01b038216600090815260066020908152604091829020805460ff199081166001908117909255602a80549091168217905542602d55815460ff60a81b1916600160a81b17825591519182527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a15b5050565b601f5460009081906001600160a01b0390811690851603612ac95750601454612aed565b601f546001600160a01b0390811690861603612ae85750601354612aed565b506015545b612af78585612430565b15612b1857602b541580612b0e5750602b54600114155b15612b1857600080fd5b6000612710612b27838661323e565b612b31919061325d565b30600090815260026020526040812080549293508392909190612b559084906131e0565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612ba48185613227565b9695505050505050565b828054612bba90613166565b90600052602060002090601f016020900481019282612bdc5760008555612c22565b82601f10612bf557805160ff1916838001178555612c22565b82800160010185558215612c22579182015b82811115612c22578251825591602001919060010190612c07565b50612c2e929150612c32565b5090565b5b80821115612c2e5760008155600101612c33565b600060208083528351808285015260005b81811015612c7457858101830151858201604001528201612c58565b81811115612c86576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612cb157600080fd5b50565b60008060408385031215612cc757600080fd5b8235612cd281612c9c565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d1f57612d1f612ce0565b604052919050565b600067ffffffffffffffff821115612d4157612d41612ce0565b5060051b60200190565b600082601f830112612d5c57600080fd5b81356020612d71612d6c83612d27565b612cf6565b82815260059290921b84018101918181019086841115612d9057600080fd5b8286015b84811015612db4578035612da781612c9c565b8352918301918301612d94565b509695505050505050565b80358015158114612dcf57600080fd5b919050565b60008060408385031215612de757600080fd5b823567ffffffffffffffff811115612dfe57600080fd5b612e0a85828601612d4b565b925050612e1960208401612dbf565b90509250929050565b600080600060608486031215612e3757600080fd5b8335612e4281612c9c565b92506020840135612e5281612c9c565b929592945050506040919091013590565b60008060408385031215612e7657600080fd5b50508035926020909101359150565b600060208284031215612e9757600080fd5b81356124e781612c9c565b60008060408385031215612eb557600080fd5b8235612ec081612c9c565b9150612e1960208401612dbf565b600082601f830112612edf57600080fd5b81356020612eef612d6c83612d27565b82815260059290921b84018101918181019086841115612f0e57600080fd5b8286015b84811015612db45780358352918301918301612f12565b60008060408385031215612f3c57600080fd5b823567ffffffffffffffff80821115612f5457600080fd5b612f6086838701612d4b565b93506020850135915080821115612f7657600080fd5b50612f8385828601612ece565b9150509250929050565b600060208284031215612f9f57600080fd5b6124e782612dbf565b60008060408385031215612fbb57600080fd5b8235612fc681612c9c565b91506020830135612fd681612c9c565b809150509250929050565b600080600060608486031215612ff657600080fd5b505081359360208301359350604090920135919050565b600082601f83011261301e57600080fd5b813567ffffffffffffffff81111561303857613038612ce0565b61304b601f8201601f1916602001612cf6565b81815284602083860101111561306057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561309557600080fd5b853567ffffffffffffffff808211156130ad57600080fd5b6130b989838a0161300d565b965060208801359150808211156130cf57600080fd5b6130db89838a0161300d565b95506040880135945060608801359150808211156130f857600080fd5b61310489838a01612d4b565b9350608088013591508082111561311a57600080fd5b5061312788828901612ece565b9150509295509295909350565b6000806000806080858703121561314a57600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c9082168061317a57607f821691505b60208210810361319a57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f21b0b63632b910109e9037bbb732b91760811b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156131f3576131f36131ca565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201613220576132206131ca565b5060010190565b600082821015613239576132396131ca565b500390565b6000816000190483118215151615613258576132586131ca565b500290565b60008261327a57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756040820152643838363c9760d91b606082015260800190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b60208082526036908201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726040820152752074786e2064756520746f20676173206c696d69747360501b606082015260800190565b600181815b808511156133b2578160001904821115613398576133986131ca565b808516156133a557918102915b93841c939080029061337c565b509250929050565b6000826133c95750600161091b565b816133d65750600061091b565b81600181146133ec57600281146133f657613412565b600191505061091b565b60ff841115613407576134076131ca565b50506001821b61091b565b5060208310610133831016604e8410600b8410161715613435575081810a61091b565b61343f8383613377565b8060001904821115613453576134536131ca565b029392505050565b60006124e760ff8416836133ba565b60006020828403121561347c57600080fd5b81516124e781612c9c565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156134d757600080fd5b8351925060208401519150604084015190509250925092565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156135405784516001600160a01b03168352938301939183019160010161351b565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122078c31ebbebc6a58372447990d731d30a39e8558bcaa750c6614569b54a1f6bbb64736f6c634300080e0033
Deployed Bytecode Sourcemap
3762:21447:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5955:73;;;;;;;;;;;;5986:42;5955:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5955:73:0;;;;;;;;9713:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5784:35::-;;;;;;;;;;-1:-1:-1;5784:35:0;;;;-1:-1:-1;;;;;5784:35:0;;;10326:161;;;;;;;;;;-1:-1:-1;10326:161:0;;;;;:::i;:::-;;:::i;:::-;;;1679:14:1;;1672:22;1654:41;;1642:2;1627:18;10326:161:0;1514:187:1;17465:406:0;;;;;;;;;;-1:-1:-1;17465:406:0;;;;;:::i;:::-;;:::i;:::-;;6101:25;;;;;;;;;;-1:-1:-1;6101:25:0;;;;-1:-1:-1;;;;;6101:25:0;;;9448:83;;;;;;;;;;-1:-1:-1;9521:7:0;;9448:83;;;3780:25:1;;;3768:2;3753:18;9448:83:0;3634:177:1;11059:306:0;;;;;;;;;;-1:-1:-1;11059:306:0;;;;;:::i;:::-;;:::i;16454:257::-;;;;;;;;;;-1:-1:-1;16454:257:0;;;;;:::i;:::-;;:::i;9537:80::-;;;;;;;;;;-1:-1:-1;9605:9:0;;9537:80;;9605:9;;;;4672:36:1;;4660:2;4645:18;9537:80:0;4530:184:1;11373:215:0;;;;;;;;;;-1:-1:-1;11373:215:0;;;;;:::i;:::-;;:::i;4988:76::-;;;;;;;;;;-1:-1:-1;4988:76:0;;;;;;;;;;;;;;;;4921:25:1;;;4977:2;4962:18;;4955:34;;;;5005:18;;;4998:34;4909:2;4894:18;4988:76:0;4719:319:1;16194:252:0;;;;;;;;;;-1:-1:-1;16194:252:0;;;;;:::i;:::-;;:::i;5826:21::-;;;;;;;;;;-1:-1:-1;5826:21:0;;;;-1:-1:-1;;;;;5826:21:0;;;6167:41;;;;;;;;;;-1:-1:-1;6167:41:0;;;;-1:-1:-1;;;6167:41:0;;;;;;8137:749;;;;;;;;;;-1:-1:-1;8137:749:0;;;;;:::i;:::-;;:::i;11829:125::-;;;;;;;;;;-1:-1:-1;11829:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;11918:28:0;11894:4;11918:28;;;:19;:28;;;;;;;;;11829:125;6557:36;;;;;;;;;;-1:-1:-1;6557:36:0;;;;;;;;10812:120;;;;;;;;;;-1:-1:-1;10812:120:0;;;;;:::i;:::-;;:::i;14934:134::-;;;;;;;;;;-1:-1:-1;14934:134:0;;;;;:::i;:::-;;:::i;23303:616::-;;;;;;;;;;-1:-1:-1;23303:616:0;;;;;:::i;:::-;;:::i;15420:232::-;;;;;;;;;;-1:-1:-1;15420:232:0;;;;;:::i;:::-;;:::i;10026:117::-;;;;;;;;;;-1:-1:-1;10026:117:0;;;;;:::i;:::-;;:::i;8894:195::-;;;;;;;;;;;;;:::i;16067:119::-;;;;;;;;;;;;;:::i;9799:80::-;;;;;;;;;;-1:-1:-1;9851:7:0;8115:6;-1:-1:-1;;;;;8115:6:0;9799:80;;4318:68;;;;;;;;;;-1:-1:-1;4318:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9623:84;;;;;;;;;;;;;:::i;10940:111::-;;;;;;;;;;-1:-1:-1;10940:111:0;;;;;:::i;:::-;-1:-1:-1;;;;;11026:17:0;10999:7;11026:17;;;:8;:17;;;;;;;10940:111;11596:225;;;;;;;;;;-1:-1:-1;11596:225:0;;;;;:::i;:::-;;:::i;10151:167::-;;;;;;;;;;-1:-1:-1;10151:167:0;;;;;:::i;:::-;;:::i;3871:21::-;;;;;;;;;;-1:-1:-1;3871:21:0;;;;-1:-1:-1;;;;;3871:21:0;;;5456:83;;;;;;;;;;-1:-1:-1;5456:83:0;;;;;;;;;;;;;7056:25:1;;;7112:2;7097:18;;7090:34;;;;7029:18;5456:83:0;6882:248:1;17152:121:0;;;;;;;;;;-1:-1:-1;17152:121:0;;;;;:::i;:::-;;:::i;15242:166::-;;;;;;;;;;-1:-1:-1;15242:166:0;;;;;:::i;:::-;;:::i;17281:171::-;;;;;;;;;;-1:-1:-1;17281:171:0;;;;;:::i;:::-;;:::i;15076:158::-;;;;;;;;;;-1:-1:-1;15076:158:0;;;;;:::i;:::-;;:::i;9885:133::-;;;;;;;;;;-1:-1:-1;9885:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9987:19:0;;;9969:7;9987:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9885:133;5215:92;;;;;;;;;;-1:-1:-1;5215:92:0;;;;;;;;;;;;15660:399;;;;;;;;;;-1:-1:-1;15660:399:0;;;;;:::i;:::-;;:::i;17016:128::-;;;;;;;;;;-1:-1:-1;17016:128:0;;;;;:::i;:::-;;:::i;12052:2874::-;;;;;;:::i;:::-;;:::i;11962:76::-;;;;;;;;;;;;;:::i;16719:289::-;;;;;;;;;;-1:-1:-1;16719:289:0;;;;;:::i;:::-;;:::i;9713:80::-;9761:13;9785:5;9778:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9713:80;:::o;10326:161::-;10401:4;10418:39;314:10;10441:7;10450:6;10418:8;:39::i;:::-;-1:-1:-1;10475:4:0;10326:161;;;;;:::o;17465:406::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;;;;;;;;;17583:12:::1;::::0;:18:::1;::::0;17598:3:::1;17583:18;:::i;:::-;17568:12;:33;17560:67;;;::::0;-1:-1:-1;;;17560:67:0;;11487:2:1;17560:67:0::1;::::0;::::1;11469:21:1::0;11526:2;11506:18;;;11499:30;-1:-1:-1;;;11545:18:1;;;11538:51;11606:18;;17560:67:0::1;11285:345:1::0;17560:67:0::1;17643:6;17638:226;17659:12;:19;17655:1;:23;17638:226;;;17705:7;:24;17713:12;17726:1;17713:15;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17705:24:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17705:24:0;;::::1;;17704:25;:71:::0;::::1;;;;5900:42;-1:-1:-1::0;;;;;17733:42:0::1;:12;17746:1;17733:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;17733:42:0::1;;;17704:71;17700:153;;;17830:7;17796:14;:31;17811:12;17824:1;17811:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;17796:31:0::1;-1:-1:-1::0;;;;;17796:31:0::1;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;17700:153;17680:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17638:226;;;;17465:406:::0;;:::o;11059:306::-;-1:-1:-1;;;;;11180:19:0;;11159:4;11180:19;;;:11;:19;;;;;;;;11200:10;11180:31;;;;;;;;-1:-1:-1;;11180:52:0;11176:126;;-1:-1:-1;;;;;11249:19:0;;;;;;:11;:19;;;;;;;;11269:10;11249:31;;;;;;;:41;;11284:6;;11249:19;:41;;11284:6;;11249:41;:::i;:::-;;;;-1:-1:-1;;11176:126:0;11321:36;11331:6;11339:9;11350:6;11321:9;:36::i;:::-;11314:43;11059:306;-1:-1:-1;;;;11059:306:0:o;16454:257::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;16538:13:::1;16576:7;16565;16555;;:17;;;;:::i;:::-;16554:29;;;;:::i;:::-;16538:45;;16622:3;16612:7;;:13;;;;:::i;:::-;16602:5;:24;;16594:74;;;;-1:-1:-1::0;;;16594:74:0::1;;;;;;;:::i;:::-;16679:14;:22:::0;-1:-1:-1;;16454:257:0:o;11373:215::-;314:10;11461:4;11510:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11510:34:0;;;;;;;;;;11461:4;;11478:80;;11501:7;;11510:47;;11547:10;;11510:47;:::i;:::-;11478:8;:80::i;16194:252::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;16277:13:::1;16315:7;16304;16294;;:17;;;;:::i;:::-;16293:29;;;;:::i;:::-;16277:45;;16361:3;16351:7;;:13;;;;:::i;:::-;16341:5;:24;;16333:74;;;;-1:-1:-1::0;;;16333:74:0::1;;;;;;;:::i;:::-;16418:12;:20:::0;-1:-1:-1;;16194:252:0:o;8137:749::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8218:22:0;::::1;8210:96;;;;-1:-1:-1::0;;;8210:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;;8325:16:0;::::1;::::0;8317:90:::1;;;;-1:-1:-1::0;;;8317:90:0::1;;;;;;;:::i;:::-;8438:6;::::0;;8418:34:::1;::::0;-1:-1:-1;;;;;8438:6:0;;::::1;::::0;8418:19:::1;:34::i;:::-;8463:35;8483:8;8493:4;8463:19;:35::i;:::-;8545:6;::::0;8523:10:::1;::::0;-1:-1:-1;;;;;8545:6:0;;::::1;8523:10:::0;::::1;:29:::0;8519:78:::1;;8567:10;:30:::0;;-1:-1:-1;;;;;;8567:30:0::1;-1:-1:-1::0;;;;;8567:30:0;::::1;;::::0;;8519:78:::1;8660:6;::::0;8650:17:::1;::::0;-1:-1:-1;;;;;8660:6:0::1;8650:9;:17::i;:::-;8618:19;8630:6:::0;;-1:-1:-1;;;;;8630:6:0;;::::1;8618:19:::0;;:11:::1;:19;::::0;;;;;;;:29;;::::1;::::0;;;;;;;:49;;;;8691:6;;8618:19;;8681:17:::1;::::0;8691:6:::1;8681:9;:17::i;:::-;:21;8678:99;;;8729:6;::::0;8719:46:::1;::::0;-1:-1:-1;;;;;8729:6:0::1;8737:8:::0;8747:17:::1;8729:6:::0;8747:9:::1;:17::i;:::-;8719:9;:46::i;:::-;;8678:99;8797:6;:17:::0;;-1:-1:-1;;;;;;8797:17:0::1;-1:-1:-1::0;;;;;8797:17:0;::::1;::::0;;::::1;::::0;;8830:38:::1;::::0;8797:17;;;;8830:38:::1;::::0;8797:6;8830:38:::1;8137:749:::0;:::o;10812:120::-;10865:4;10889:35;10897:7;-1:-1:-1;;10889:7:0;:35::i;14934:134::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15022:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;15022:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14934:134::o;23303:616::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;23444:15:::1;:22;23426:7;:14;:40;23418:83;;;::::0;-1:-1:-1;;;23418:83:0;;13470:2:1;23418:83:0::1;::::0;::::1;13452:21:1::0;13509:2;13489:18;;;13482:30;13548:32;13528:18;;;13521:60;13598:18;;23418:83:0::1;13268:354:1::0;23418:83:0::1;23537:3;23520:7;:14;:20;23512:87;;;;-1:-1:-1::0;;;23512:87:0::1;;;;;;;:::i;:::-;23712:9;23708:204;23731:7;:14;23727:1;:18;23708:204;;;23766:14;23783:7;23791:1;23783:10;;;;;;;;:::i;:::-;;;;;;;23766:27;;23808:14;23825:15;23841:1;23825:18;;;;;;;;:::i;:::-;;;;;;;23844:4;23825:23;;;;:::i;:::-;23808:40;;23863:37;23873:10;23885:6;23893;23863:9;:37::i;:::-;;23751:161;;23747:3;;;;;:::i;:::-;;;;23708:204;;15420:232:::0;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;15514:21:::1;15525:10:::0;15514;:21:::1;:::i;:::-;15540:4;15513:31;15503:57;;;::::0;-1:-1:-1;;;15503:57:0;;14252:2:1;15503:57:0::1;::::0;::::1;14234:21:1::0;14291:2;14271:18;;;14264:30;-1:-1:-1;;;14310:18:1;;;14303:41;14361:18;;15503:57:0::1;14050:335:1::0;15503:57:0::1;15571:6;:29:::0;;;;15611:16;:29;15420:232::o;10026:117::-;-1:-1:-1;;;;;10119:16:0;10092:7;10119:16;;;:7;:16;;;;;;;10026:117::o;8894:195::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;8981:6:::1;::::0;;8961:34:::1;::::0;-1:-1:-1;;;;;8981:6:0;;::::1;::::0;8961:19:::1;:34::i;:::-;9023:1;9006:19:::0;;-1:-1:-1;;;;;;9006:19:0::1;::::0;;9041:40:::1;::::0;9023:1;;9041:40:::1;::::0;9023:1;;9041:40:::1;8894:195::o:0;16067:119::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;16136:7:::1;::::0;16121:12:::1;:22:::0;;;16154:14:::1;:24:::0;16067:119::o;9623:84::-;9673:13;9697:7;9690:14;;;;;:::i;11596:225::-;314:10;11689:4;11738:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11738:34:0;;;;;;;;;;11689:4;;11706:85;;11729:7;;11738:52;;11775:15;;11738:52;:::i;10151:167::-;10229:4;10246:42;314:10;10270:9;10281:6;10246:9;:42::i;:::-;-1:-1:-1;10306:4:0;;10151:167;-1:-1:-1;;;10151:167:0:o;17152:121::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;17231:9:::1;:34:::0;;-1:-1:-1;;;;;;17231:34:0::1;-1:-1:-1::0;;;;;17231:34:0;;;::::1;::::0;;;::::1;::::0;;17152:121::o;15242:166::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15340:52:0::1;15395:5;15340:52:::0;;;:35:::1;:52;::::0;;;;:60;;-1:-1:-1;;15340:60:0::1;::::0;;15242:166::o;17281:171::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;17358:21:::1;:32:::0;;-1:-1:-1;;;;17358:32:0::1;-1:-1:-1::0;;;17358:32:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;17406:38:::1;::::0;1654:41:1;;;17406:38:0::1;::::0;1627:18:1;17406:38:0::1;;;;;;;17281:171:::0;:::o;15076:158::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15167:52:0::1;;::::0;;;:35:::1;:52;::::0;;;;:59;;-1:-1:-1;;15167:59:0::1;15222:4;15167:59;::::0;;15076:158::o;15660:399::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;15775:7:::1;:14:::0;15764:25;::::1;::::0;::::1;::::0;:73:::1;;-1:-1:-1::0;15822:15:0;;15810:27;::::1;;15764:73;:129;;;;-1:-1:-1::0;15874:19:0;;15858:35;::::1;;15764:129;15756:182;;;::::0;-1:-1:-1;;;15756:182:0;;14592:2:1;15756:182:0::1;::::0;::::1;14574:21:1::0;14631:2;14611:18;;;14604:30;14670:25;14650:18;;;14643:53;14713:18;;15756:182:0::1;14390:347:1::0;15756:182:0::1;15950:4;:21:::0;;;;15983:12;:23;16018:16;:31;15660:399::o;17016:128::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;17099:10:::1;:37:::0;;-1:-1:-1;;;;;;17099:37:0::1;-1:-1:-1::0;;;;;17099:37:0;;;::::1;::::0;;;::::1;::::0;;17016:128::o;12052:2874::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;12242:13:::1;::::0;::::1;;12241:14;12233:56;;;::::0;-1:-1:-1;;;12233:56:0;;14944:2:1;12233:56:0::1;::::0;::::1;14926:21:1::0;14983:2;14963:18;;;14956:30;15022:31;15002:18;;;14995:59;15071:18;;12233:56:0::1;14742:353:1::0;12233:56:0::1;12327:11;:18;12308:8;:15;:37;12300:80;;;::::0;-1:-1:-1;;;12300:80:0;;13470:2:1;12300:80:0::1;::::0;::::1;13452:21:1::0;13509:2;13489:18;;;13482:30;13548:32;13528:18;;;13521:60;13598:18;;12300:80:0::1;13268:354:1::0;12300:80:0::1;12417:3;12399:8;:15;:21;12391:88;;;;-1:-1:-1::0;;;12391:88:0::1;;;;;;;:::i;:::-;12599:13;::::0;:18;12591:27:::1;;;::::0;::::1;;12639:16:::0;;::::1;::::0;:5:::1;::::0;:16:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;12666:20:0;;::::1;::::0;:7:::1;::::0;:20:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;12699:14:0::1;:27:::0;;;12737:9:::1;:14:::0;;-1:-1:-1;;12737:14:0::1;12749:2;12737:14:::0;;::::1;::::0;;;12789:13:::1;::::0;:2:::1;:13;:::i;:::-;12772:14;;:30;;;;:::i;:::-;12762:7;:40:::0;12815:9:::1;:46:::0;;-1:-1:-1;;;;;;12815:46:0::1;5900:42;12815:46:::0;;::::1;::::0;;;12899:19:::1;::::0;;-1:-1:-1;;;12899:19:0;;;;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;5900:42;12899:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12881:49:0::1;;12931:9;;;;;;;;;-1:-1:-1::0;;;;;12931:9:0::1;-1:-1:-1::0;;;;;12931:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12881:82;::::0;-1:-1:-1;;;;;;12881:82:0::1;::::0;;;;;;-1:-1:-1;;;;;16969:15:1;;;12881:82:0::1;::::0;::::1;16951:34:1::0;12957:4:0::1;17001:18:1::0;;;16994:43;16886:18;;12881:82:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12872:6;:91:::0;;-1:-1:-1;;;;;12872:91:0;;::::1;-1:-1:-1::0;;;;;;12872:91:0;;::::1;::::0;::::1;::::0;;;:6:::1;12974:15:::0;;;:7:::1;:15;::::0;;;;;;;:22;;-1:-1:-1;;12974:22:0::1;12872:91:::0;12974:22:::1;::::0;;13027:4:::1;13007:26:::0;;:11:::1;:26:::0;;;;;13042:9:::1;::::0;;;::::1;13007:46:::0;;;;;;;;;-1:-1:-1;;13007:66:0;;13086:64;;::::1;13107:42;13086:64;::::0;;13178:2:::1;13163:12;:17:::0;;;13242:5:::1;13227:12;:20:::0;;;13274:7:::1;::::0;13242:5;;13274:22:::1;::::0;::::1;:::i;:::-;13273:39;;;;:::i;:::-;13258:12;:54:::0;13352:3:::1;13333:16;:22:::0;;;13406:5:::1;13387:16;:24:::0;;;13440:7:::1;::::0;13406:5;;13440:26:::1;::::0;::::1;:::i;:::-;13439:47;;;;:::i;:::-;13422:14;:64:::0;13524:7:::1;::::0;13539:6:::1;::::0;13524:11:::1;::::0;13534:1:::1;13524:11;:::i;:::-;13523:22;;;;:::i;:::-;13507:13;:38:::0;13570:7:::1;::::0;13585:5:::1;::::0;13570:11:::1;::::0;13580:1:::1;13570:11;:::i;:::-;13569:21;;;;:::i;:::-;13556:10;:34:::0;13634:4:::1;13603:19;:28;13623:7;8088::::0;8115:6;-1:-1:-1;;;;;8115:6:0;;8050:79;13623:7:::1;-1:-1:-1::0;;;;;13603:28:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;13603:28:0;;;:35;;;::::1;;-1:-1:-1::0;;13603:35:0;;::::1;;::::0;;13669:10;;;;::::1;13649:31:::0;;:19:::1;:31:::0;;;;;;:38;;;::::1;13603:35:::0;13649:38;;::::1;::::0;;;13726:4:::1;13698:34:::0;;;;;:41;;;::::1;::::0;::::1;::::0;;5986:42:::1;13750:25:::0;;;:32;;;;::::1;::::0;::::1;::::0;;;13793:17:::1;::::0;13811:7:::1;8088::::0;8115:6;-1:-1:-1;;;;;8115:6:0;;8050:79;13811:7:::1;-1:-1:-1::0;;;;;13793:26:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;13793:26:0;;;:33;;;::::1;;-1:-1:-1::0;;13793:33:0;;::::1;;::::0;;;13855:9;;;;::::1;13837:28:::0;;:17:::1;:28:::0;;;;;:35;;;;::::1;;::::0;;13885:42:::1;5900;-1:-1:-1::0;;13885:7:0::1;:42::i;:::-;;13938:35;13946:7;8088::::0;8115:6;-1:-1:-1;;;;;8115:6:0;;8050:79;13946:7:::1;-1:-1:-1::0;;13938:7:0::1;:35::i;:::-;-1:-1:-1::0;13986:13:0::1;:20:::0;;-1:-1:-1;;13986:20:0::1;14002:4;13986:20;::::0;;14036:7:::1;::::0;14017::::1;13986:13;14025:7;8088::::0;8115:6;-1:-1:-1;;;;;8115:6:0;;8050:79;14025:7:::1;-1:-1:-1::0;;;;;14017:16:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14017:16:0;:26;14054:42:::1;14063:7;8088::::0;8115:6;-1:-1:-1;;;;;8115:6:0;;8050:79;14063:7:::1;5900:42;14088:7;;14054:8;:42::i;:::-;8088:7:::0;8115:6;-1:-1:-1;;;;;8115:6:0;-1:-1:-1;;;;;14112:38:0::1;14129:1;-1:-1:-1::0;;;;;14112:38:0::1;;14142:7;;14112:38;;;;3780:25:1::0;;3768:2;3753:18;;3634:177;14112:38:0::1;;;;;;;;14173:6;::::0;14189:9:::1;::::0;14164:55:::1;::::0;-1:-1:-1;;;;;14173:6:0;;::::1;::::0;14189:9:::1;-1:-1:-1::0;;14164:8:0::1;:55::i;:::-;14262:9;::::0;14230:62:::1;::::0;14247:4:::1;::::0;-1:-1:-1;;;;;14262:9:0::1;-1:-1:-1::0;;14230:8:0::1;:62::i;:::-;14307:9;14303:200;14326:8;:15;14322:1;:19;14303:200;;;14362:15;14380:8;14389:1;14380:11;;;;;;;;:::i;:::-;;;;;;;14362:29;;14406:14;14423:11;14435:1;14423:14;;;;;;;;:::i;:::-;;;;;;;14438:4;14423:19;;;;:::i;:::-;14467:6;::::0;14406:36;;-1:-1:-1;14457:34:0::1;::::0;-1:-1:-1;;;;;14467:6:0::1;14475:7:::0;14406:36;14457:9:::1;:34::i;:::-;;14347:156;;14343:3;;;;;:::i;:::-;;;;14303:200;;;-1:-1:-1::0;14525:6:0::1;::::0;14515:51:::1;::::0;-1:-1:-1;;;;;14525:6:0::1;14541:4;14548:17;14525:6:::0;14548:9:::1;:17::i;14515:51::-;-1:-1:-1::0;14579:9:0::1;::::0;-1:-1:-1;;;;;14579:9:0::1;:25;14612:21;14657:4;14677:24;14657:4:::0;14677:9:::1;:24::i;:::-;14716:1;14759::::0;14802:7:::1;8088::::0;8115:6;-1:-1:-1;;;;;8115:6:0;;8050:79;14802:7:::1;14824:15;14579:271;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14877:1:0::1;14861:13;:17:::0;-1:-1:-1;;14906:12:0::1;14889:14;:29:::0;-1:-1:-1;;;;12052:2874:0:o;11962:76::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;12029:1:::1;12013:13;:17:::0;11962:76::o;16719:289::-;7303:6;;-1:-1:-1;;;;;7303:6:0;314:10;7303:22;;:51;;-1:-1:-1;7329:9:0;;-1:-1:-1;;;;;7329:9:0;314:10;7329:25;7303:51;7295:80;;;;-1:-1:-1;;;7295:80:0;;;;;;;:::i;:::-;16919:16:::1;16899;16889:7;;:26;;;;:::i;:::-;16888:47;;;;:::i;:::-;16872:13;:63:::0;16960:7:::1;::::0;16987:13;;16960:23:::1;::::0;16970:13;;16960:23:::1;:::i;:::-;16959:41;;;;:::i;:::-;16946:10;:54:::0;-1:-1:-1;;;;16719:289:0:o;10495:309::-;-1:-1:-1;;;;;10589:20:0;;10581:52;;;;-1:-1:-1;;;10581:52:0;;18173:2:1;10581:52:0;;;18155:21:1;18212:2;18192:18;;;18185:30;-1:-1:-1;;;18231:18:1;;;18224:49;18290:18;;10581:52:0;17971:343:1;10581:52:0;-1:-1:-1;;;;;10652:21:0;;10644:53;;;;-1:-1:-1;;;10644:53:0;;18173:2:1;10644:53:0;;;18155:21:1;18212:2;18192:18;;;18185:30;-1:-1:-1;;;18231:18:1;;;18224:49;18290:18;;10644:53:0;17971:343:1;10644:53:0;-1:-1:-1;;;;;10710:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10763:33;;3780:25:1;;;10763:33:0;;3753:18:1;10763:33:0;;;;;;;10495:309;;;:::o;18869:2243::-;18948:4;-1:-1:-1;;;;;18973:18:0;;18965:51;;;;-1:-1:-1;;;18965:51:0;;18521:2:1;18965:51:0;;;18503:21:1;18560:2;18540:18;;;18533:30;-1:-1:-1;;;18579:18:1;;;18572:50;18639:18;;18965:51:0;18319:344:1;18965:51:0;-1:-1:-1;;;;;19035:16:0;;19027:49;;;;-1:-1:-1;;;19027:49:0;;18521:2:1;19027:49:0;;;18503:21:1;18560:2;18540:18;;;18533:30;-1:-1:-1;;;18579:18:1;;;18572:50;18639:18;;19027:49:0;18319:344:1;19027:49:0;19104:1;19095:6;:10;19087:31;;;;-1:-1:-1;;;19087:31:0;;18870:2:1;19087:31:0;;;18852:21:1;18909:1;18889:18;;;18882:29;-1:-1:-1;;;18927:18:1;;;18920:38;18975:18;;19087:31:0;18668:331:1;19087:31:0;-1:-1:-1;;;;;19138:18:0;;;;;;:14;:18;;;;;;;;19137:19;:44;;;;-1:-1:-1;;;;;;19161:20:0;;;;;;:14;:20;;;;;;;;19160:21;19137:44;19129:71;;;;-1:-1:-1;;;19129:71:0;;19206:2:1;19129:71:0;;;19188:21:1;19245:2;19225:18;;;19218:30;-1:-1:-1;;;19264:18:1;;;19257:45;19319:18;;19129:71:0;19004:339:1;19129:71:0;19232:17;19247:2;19232:12;:17;:::i;:::-;19215:14;;:34;19211:230;;;19266:13;19309:9;19344:27;19358:4;19363:2;19309:9;19344:13;:27::i;:::-;19333:38;;19394:8;19386:43;;;;-1:-1:-1;;;19386:43:0;;19550:2:1;19386:43:0;;;19532:21:1;19589:2;19569:18;;;19562:30;-1:-1:-1;;;19608:18:1;;;19601:52;19670:18;;19386:43:0;19348:346:1;19386:43:0;19251:190;;19211:230;19454:20;19465:4;19471:2;19454:10;:20::i;:::-;19451:891;;;19495:15;;;;19491:373;;;-1:-1:-1;;;;;19535:13:0;;;;;;:7;:13;;;;;;;;19531:318;;;-1:-1:-1;;;;;19580:13:0;;;;;;:9;:13;;;;;;19597:12;19580:29;;19572:38;;;;;;-1:-1:-1;;;;;19633:13:0;;;;;;:9;:13;;;;;19649:12;19633:28;;19531:318;;;-1:-1:-1;;;;;19740:15:0;;;;;;:9;:15;;;;;;19759:12;19740:31;;19732:40;;;;;;-1:-1:-1;;;;;19795:15:0;;;;;;:9;:15;;;;;19813:12;19795:30;;19531:318;-1:-1:-1;;;;;19883:41:0;;;;;;:35;:41;;;;;;;;;:84;;-1:-1:-1;;;;;;19928:39:0;;;;;;:35;:39;;;;;;;;19883:84;19878:439;;-1:-1:-1;;;;;19992:13:0;;;;;;:7;:13;;;;;;;;;:28;;-1:-1:-1;;;;;;20009:11:0;;;;;;:7;:11;;;;;;;;19992:28;19989:130;;;20058:12;;20048:6;:22;;20040:59;;;;-1:-1:-1;;;20040:59:0;;19901:2:1;20040:59:0;;;19883:21:1;19940:2;19920:18;;;19913:30;19979:26;19959:18;;;19952:54;20023:18;;20040:59:0;19699:348:1;20040:59:0;-1:-1:-1;;;;;20140:20:0;;5900:42;20140:20;;;;:36;;-1:-1:-1;;;;;;20165:11:0;;;;;;:7;:11;;;;;;;;20164:12;20140:36;20137:163;;;20235:14;;20225:6;20209:13;20219:2;20209:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;20201:79;;;;-1:-1:-1;;;20201:79:0;;20254:2:1;20201:79:0;;;20236:21:1;20293:2;20273:18;;;20266:30;20332:28;20312:18;;;20305:56;20378:18;;20201:79:0;20052:350:1;20201:79:0;-1:-1:-1;;;;;20358:11:0;;;;;;:7;:11;;;;;;:16;;20354:79;;-1:-1:-1;;;;;20391:12:0;;;;;;:8;:12;;;;;20406:15;20391:30;;20354:79;-1:-1:-1;;;;;20478:25:0;;20445:12;20478:25;;;:19;:25;;;;;;20460:4;;20478:25;;;:52;;-1:-1:-1;;;;;;20507:23:0;;;;;;:19;:23;;;;;;;;20478:52;20475:98;;;-1:-1:-1;20556:5:0;20475:98;-1:-1:-1;;;;;20589:11:0;;;;;;:7;:11;;;;;;;;20585:457;;;20622:16;;-1:-1:-1;;;20622:16:0;;;;20621:17;:59;;;;-1:-1:-1;20659:21:0;;-1:-1:-1;;;20659:21:0;;;;20621:59;20617:408;;;20715:28;20746:24;20764:4;20746:9;:24::i;:::-;20715:55;;20817:13;;20793:20;:37;20789:221;;20882:10;;20858:20;:34;20855:77;;-1:-1:-1;20919:10:0;;20855:77;20954:36;20969:20;20954:14;:36::i;:::-;20696:329;20617:408;21060:44;21078:4;21084:2;21088:6;21096:7;21060:17;:44::i;:::-;21053:51;18869:2243;-1:-1:-1;;;;;18869:2243:0:o;18210:645::-;18340:6;;18291:4;;18323;;-1:-1:-1;;;;;18340:14:0;;;:6;;:14;18336:481;;-1:-1:-1;;;;;18359:18:0;;;;;;;:14;:18;;;;;;18380:12;18359:33;;;;18395:20;;;;;;;:35;18336:481;;;18449:6;;-1:-1:-1;;;;;18449:12:0;;;:6;;:12;18445:372;;-1:-1:-1;;;;;18483:20:0;;;;;;:14;:20;;;;;;18507:12;-1:-1:-1;18479:89:0;;-1:-1:-1;;;;;;18523:18:0;;;;;;:12;:18;;;;;:25;;-1:-1:-1;;18523:25:0;18544:4;18523:25;;;18479:89;-1:-1:-1;;;;;18591:18:0;;;;;;:12;:18;;;;;;;;18587:215;;;-1:-1:-1;18624:5:0;18587:215;;;18659:6;;-1:-1:-1;;;;;18659:12:0;;;:6;;:12;;;;:30;;-1:-1:-1;18675:6:0;;-1:-1:-1;;;;;18675:14:0;;;:6;;:14;;18659:30;18655:147;;;-1:-1:-1;;;;;18693:20:0;;;;;;;:14;:20;;;;;;18716:12;18693:35;;;;18730:18;;;;;;;;:33;;;18765:20;;;;;;;:35;18838:8;18210:645;-1:-1:-1;;;;18210:645:0:o;17879:323::-;17947:4;8115:6;;-1:-1:-1;;;;;17971:15:0;;;8115:6;;17971:15;;;;:45;;-1:-1:-1;8088:7:0;8115:6;-1:-1:-1;;;;;18003:13:0;;;8115:6;;18003:13;;17971:45;:84;;;;-1:-1:-1;;;;;;18034:21:0;;;;;;:17;:21;;;;;;;;18033:22;17971:84;:125;;;;-1:-1:-1;;;;;;18073:23:0;;;;;;:17;:23;;;;;;;;18072:24;17971:125;:152;;;;-1:-1:-1;;;;;;18113:10:0;;5986:42;18113:10;;17971:152;:185;;;;-1:-1:-1;;;;;;18140:16:0;;;;17971:185;:223;;;;-1:-1:-1;;;;;;18173:21:0;;18189:4;18173:21;;17971:223;17964:230;17879:323;-1:-1:-1;;;17879:323:0:o;21120:913::-;7177:16;:23;;-1:-1:-1;;;;7177:23:0;-1:-1:-1;;;7177:23:0;;;21228:16;;:6:::1;21209:16:::0;:35:::1;::::0;21228:16;21209:35:::1;:::i;:::-;21205:66:::0;21264:7:::1;21205:66;21366:16:::0;;:6:::1;21347:16:::0;21281:17:::1;::::0;21388:1:::1;::::0;21347:35:::1;::::0;21366:16;21347:35:::1;:::i;:::-;21326:6;:16:::0;21303:39:::1;::::0;:20;:39:::1;:::i;:::-;21302:81;;;;:::i;:::-;21301:88;;;;:::i;:::-;21281:108:::0;-1:-1:-1;21402:20:0::1;21425:32;21281:108:::0;21425:20;:32:::1;:::i;:::-;21402:55;;21468:30;21485:12;21468:16;:30::i;:::-;21654:16:::0;;:6:::1;21635:16:::0;21536:21:::1;::::0;21511:22:::1;::::0;21676:1:::1;::::0;21635:35:::1;::::0;::::1;:::i;:::-;21614:6;:16:::0;21597:33:::1;::::0;:14;:33:::1;:::i;:::-;21596:75;;;;:::i;:::-;21595:82;;;;:::i;:::-;21568:109:::0;-1:-1:-1;21696:13:0;;21692:161:::1;;21726:41;21739:9;21750:16;21726:12;:41::i;:::-;21787:54;::::0;;4921:25:1;;;4977:2;4962:18;;4955:34;;;5005:18;;;4998:34;;;21787:54:0::1;::::0;4909:2:1;4894:18;21787:54:0::1;;;;;;;21692:161;21867:21;:25:::0;21863:163:::1;;21964:10;::::0;21956:58:::1;::::0;21924:4:::1;::::0;-1:-1:-1;;;;;21964:10:0::1;::::0;21988:21:::1;::::0;21956:58:::1;::::0;;;21988:21;21964:10;21956:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;21863:163:0::1;21194:839;;;;7211:1;-1:-1:-1::0;7223:16:0;:24;;-1:-1:-1;;;;7223:24:0;;;21120:913::o;23927:582::-;24049:16;;24027:4;;24049:16;;24044:221;;24082:28;24101:4;24107:2;24082:18;:28::i;:::-;24130:16;;;;24129:17;:41;;;;;24150:20;24161:4;24167:2;24150:10;:20::i;:::-;24125:129;;;24191:47;;-1:-1:-1;;;24191:47:0;;20819:2:1;24191:47:0;;;20801:21:1;20858:2;20838:18;;;20831:30;20897:34;20877:18;;;20870:62;-1:-1:-1;;;20948:18:1;;;20941:35;20993:19;;24191:47:0;20617:401:1;24125:129:0;-1:-1:-1;;;;;24276:13:0;;;;;;:7;:13;;;;;:23;;24293:6;;24276:13;:23;;24293:6;;24276:23;:::i;:::-;;;;-1:-1:-1;24310:22:0;;-1:-1:-1;24336:7:0;24335:48;;24377:6;24335:48;;;24347:27;24357:4;24363:2;24367:6;24347:9;:27::i;:::-;-1:-1:-1;;;;;24398:11:0;;;;;;:7;:11;;;;;:29;;24310:73;;-1:-1:-1;24310:73:0;;24398:11;;;:29;;24310:73;;24398:29;:::i;:::-;;;;;;;;24460:2;-1:-1:-1;;;;;24445:34:0;24454:4;-1:-1:-1;;;;;24445:34:0;;24464:14;24445:34;;;;3780:25:1;;3768:2;3753:18;;3634:177;24445:34:0;;;;;;;;-1:-1:-1;24497:4:0;;23927:582;-1:-1:-1;;;;;23927:582:0:o;22041:417::-;22132:16;;;22146:1;22132:16;;;;;;;;22108:21;;22132:16;;;;;;;;;;-1:-1:-1;22132:16:0;22108:40;;22177:4;22159;22164:1;22159:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22159:23:0;;;:7;;;;;;;;;;:23;;;;22203:9;;:16;;;-1:-1:-1;;;22203:16:0;;;;:9;;;;;:14;;:16;;;;;22159:7;;22203:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22193:4;22198:1;22193:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22193:26:0;;;:7;;;;;;;;;:26;22232:9;;:218;;-1:-1:-1;;;22232:218:0;;:9;;;:60;;:218;;22307:11;;22232:9;;22377:4;;22404;;22424:15;;22232:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22097:361;22041:417;:::o;22466:335::-;22547:9;;-1:-1:-1;;;;;22547:9:0;:25;22580:9;22613:4;22633:11;22547:9;;22745:7;8088;8115:6;-1:-1:-1;;;;;8115:6:0;;8050:79;22745:7;22767:15;22547:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22466:335;;:::o;22809:486::-;22891:16;;;;22890:17;22882:65;;;;-1:-1:-1;;;22882:65:0;;22210:2:1;22882:65:0;;;22192:21:1;22249:2;22229:18;;;22222:30;22288:34;22268:18;;;22261:62;-1:-1:-1;;;22339:18:1;;;22332:33;22382:19;;22882:65:0;22008:399:1;22882:65:0;22963:20;22974:4;22980:2;22963:10;:20::i;:::-;22962:21;:37;;;;-1:-1:-1;22993:6:0;;-1:-1:-1;;;;;22987:12:0;;;22993:6;;22987:12;22962:37;22958:330;;;23035:12;23020;:27;-1:-1:-1;;;;;23064:23:0;;;;;;:17;:23;;;;;;;;;:30;;-1:-1:-1;;23064:30:0;;;23090:4;23064:30;;;;;;23109:16;:23;;;;;;;;;23162:15;23147:12;:30;23194:28;;-1:-1:-1;;;;23194:28:0;-1:-1:-1;;;23194:28:0;;;23242:34;;1654:41:1;;;23242:34:0;;1627:18:1;23242:34:0;;;;;;;22958:330;22809:486;;:::o;24517:689::-;24657:6;;24596:7;;;;-1:-1:-1;;;;;24657:6:0;;;24651:12;;;;24647:187;;-1:-1:-1;24691:12:0;;24647:187;;;24749:6;;-1:-1:-1;;;;;24749:6:0;;;24741:14;;;;24737:97;;-1:-1:-1;24771:4:0;:11;24737:97;;;-1:-1:-1;24816:16:0;;24737:97;24850:20;24861:4;24867:2;24850:10;:20::i;:::-;24846:142;;;24890:13;;:18;;:42;;;24912:13;;24930:1;24912:20;;24890:42;24886:91;;;24953:8;;;24886:91;24998:17;5592:5;25019:19;25028:10;25019:6;:19;:::i;:::-;:38;;;;:::i;:::-;25085:4;25069:22;;;;:7;:22;;;;;:37;;24998:60;;-1:-1:-1;24998:60:0;;25069:22;;;:37;;24998:60;;25069:37;:::i;:::-;;;;-1:-1:-1;;25122:40:0;;3780:25:1;;;25145:4:0;;-1:-1:-1;;;;;25122:40:0;;;;;3768:2:1;3753:18;25122:40:0;;;;;;;25180:18;25189:9;25180:6;:18;:::i;:::-;25173:25;24517:689;-1:-1:-1;;;;;;24517:689:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;222:597:1;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;660:6;657:1;654:13;651:91;;;730:1;725:2;716:6;705:9;701:22;697:31;690:42;651:91;-1:-1:-1;803:2:1;782:15;-1:-1:-1;;778:29:1;763:45;;;;810:2;759:54;;222:597;-1:-1:-1;;;222:597:1:o;1058:131::-;-1:-1:-1;;;;;1133:31:1;;1123:42;;1113:70;;1179:1;1176;1169:12;1113:70;1058:131;:::o;1194:315::-;1262:6;1270;1323:2;1311:9;1302:7;1298:23;1294:32;1291:52;;;1339:1;1336;1329:12;1291:52;1378:9;1365:23;1397:31;1422:5;1397:31;:::i;:::-;1447:5;1499:2;1484:18;;;;1471:32;;-1:-1:-1;;;1194:315:1:o;1706:127::-;1767:10;1762:3;1758:20;1755:1;1748:31;1798:4;1795:1;1788:15;1822:4;1819:1;1812:15;1838:275;1909:2;1903:9;1974:2;1955:13;;-1:-1:-1;;1951:27:1;1939:40;;2009:18;1994:34;;2030:22;;;1991:62;1988:88;;;2056:18;;:::i;:::-;2092:2;2085:22;1838:275;;-1:-1:-1;1838:275:1:o;2118:183::-;2178:4;2211:18;2203:6;2200:30;2197:56;;;2233:18;;:::i;:::-;-1:-1:-1;2278:1:1;2274:14;2290:4;2270:25;;2118:183::o;2306:737::-;2360:5;2413:3;2406:4;2398:6;2394:17;2390:27;2380:55;;2431:1;2428;2421:12;2380:55;2467:6;2454:20;2493:4;2517:60;2533:43;2573:2;2533:43;:::i;:::-;2517:60;:::i;:::-;2611:15;;;2697:1;2693:10;;;;2681:23;;2677:32;;;2642:12;;;;2721:15;;;2718:35;;;2749:1;2746;2739:12;2718:35;2785:2;2777:6;2773:15;2797:217;2813:6;2808:3;2805:15;2797:217;;;2893:3;2880:17;2910:31;2935:5;2910:31;:::i;:::-;2954:18;;2992:12;;;;2830;;2797:217;;;-1:-1:-1;3032:5:1;2306:737;-1:-1:-1;;;;;;2306:737:1:o;3048:160::-;3113:20;;3169:13;;3162:21;3152:32;;3142:60;;3198:1;3195;3188:12;3142:60;3048:160;;;:::o;3213:416::-;3303:6;3311;3364:2;3352:9;3343:7;3339:23;3335:32;3332:52;;;3380:1;3377;3370:12;3332:52;3420:9;3407:23;3453:18;3445:6;3442:30;3439:50;;;3485:1;3482;3475:12;3439:50;3508:61;3561:7;3552:6;3541:9;3537:22;3508:61;:::i;:::-;3498:71;;;3588:35;3619:2;3608:9;3604:18;3588:35;:::i;:::-;3578:45;;3213:416;;;;;:::o;3816:456::-;3893:6;3901;3909;3962:2;3950:9;3941:7;3937:23;3933:32;3930:52;;;3978:1;3975;3968:12;3930:52;4017:9;4004:23;4036:31;4061:5;4036:31;:::i;:::-;4086:5;-1:-1:-1;4143:2:1;4128:18;;4115:32;4156:33;4115:32;4156:33;:::i;:::-;3816:456;;4208:7;;-1:-1:-1;;;4262:2:1;4247:18;;;;4234:32;;3816:456::o;4277:248::-;4345:6;4353;4406:2;4394:9;4385:7;4381:23;4377:32;4374:52;;;4422:1;4419;4412:12;4374:52;-1:-1:-1;;4445:23:1;;;4515:2;4500:18;;;4487:32;;-1:-1:-1;4277:248:1:o;5043:247::-;5102:6;5155:2;5143:9;5134:7;5130:23;5126:32;5123:52;;;5171:1;5168;5161:12;5123:52;5210:9;5197:23;5229:31;5254:5;5229:31;:::i;5295:315::-;5360:6;5368;5421:2;5409:9;5400:7;5396:23;5392:32;5389:52;;;5437:1;5434;5427:12;5389:52;5476:9;5463:23;5495:31;5520:5;5495:31;:::i;:::-;5545:5;-1:-1:-1;5569:35:1;5600:2;5585:18;;5569:35;:::i;5615:662::-;5669:5;5722:3;5715:4;5707:6;5703:17;5699:27;5689:55;;5740:1;5737;5730:12;5689:55;5776:6;5763:20;5802:4;5826:60;5842:43;5882:2;5842:43;:::i;5826:60::-;5920:15;;;6006:1;6002:10;;;;5990:23;;5986:32;;;5951:12;;;;6030:15;;;6027:35;;;6058:1;6055;6048:12;6027:35;6094:2;6086:6;6082:15;6106:142;6122:6;6117:3;6114:15;6106:142;;;6188:17;;6176:30;;6226:12;;;;6139;;6106:142;;6282:595;6400:6;6408;6461:2;6449:9;6440:7;6436:23;6432:32;6429:52;;;6477:1;6474;6467:12;6429:52;6517:9;6504:23;6546:18;6587:2;6579:6;6576:14;6573:34;;;6603:1;6600;6593:12;6573:34;6626:61;6679:7;6670:6;6659:9;6655:22;6626:61;:::i;:::-;6616:71;;6740:2;6729:9;6725:18;6712:32;6696:48;;6769:2;6759:8;6756:16;6753:36;;;6785:1;6782;6775:12;6753:36;;6808:63;6863:7;6852:8;6841:9;6837:24;6808:63;:::i;:::-;6798:73;;;6282:595;;;;;:::o;7135:180::-;7191:6;7244:2;7232:9;7223:7;7219:23;7215:32;7212:52;;;7260:1;7257;7250:12;7212:52;7283:26;7299:9;7283:26;:::i;7320:388::-;7388:6;7396;7449:2;7437:9;7428:7;7424:23;7420:32;7417:52;;;7465:1;7462;7455:12;7417:52;7504:9;7491:23;7523:31;7548:5;7523:31;:::i;:::-;7573:5;-1:-1:-1;7630:2:1;7615:18;;7602:32;7643:33;7602:32;7643:33;:::i;:::-;7695:7;7685:17;;;7320:388;;;;;:::o;7713:316::-;7790:6;7798;7806;7859:2;7847:9;7838:7;7834:23;7830:32;7827:52;;;7875:1;7872;7865:12;7827:52;-1:-1:-1;;7898:23:1;;;7968:2;7953:18;;7940:32;;-1:-1:-1;8019:2:1;8004:18;;;7991:32;;7713:316;-1:-1:-1;7713:316:1:o;8294:531::-;8337:5;8390:3;8383:4;8375:6;8371:17;8367:27;8357:55;;8408:1;8405;8398:12;8357:55;8444:6;8431:20;8470:18;8466:2;8463:26;8460:52;;;8492:18;;:::i;:::-;8536:55;8579:2;8560:13;;-1:-1:-1;;8556:27:1;8585:4;8552:38;8536:55;:::i;:::-;8616:2;8607:7;8600:19;8662:3;8655:4;8650:2;8642:6;8638:15;8634:26;8631:35;8628:55;;;8679:1;8676;8669:12;8628:55;8744:2;8737:4;8729:6;8725:17;8718:4;8709:7;8705:18;8692:55;8792:1;8767:16;;;8785:4;8763:27;8756:38;;;;8771:7;8294:531;-1:-1:-1;;;8294:531:1:o;8830:1065::-;8995:6;9003;9011;9019;9027;9080:3;9068:9;9059:7;9055:23;9051:33;9048:53;;;9097:1;9094;9087:12;9048:53;9137:9;9124:23;9166:18;9207:2;9199:6;9196:14;9193:34;;;9223:1;9220;9213:12;9193:34;9246:50;9288:7;9279:6;9268:9;9264:22;9246:50;:::i;:::-;9236:60;;9349:2;9338:9;9334:18;9321:32;9305:48;;9378:2;9368:8;9365:16;9362:36;;;9394:1;9391;9384:12;9362:36;9417:52;9461:7;9450:8;9439:9;9435:24;9417:52;:::i;:::-;9407:62;;9516:2;9505:9;9501:18;9488:32;9478:42;;9573:2;9562:9;9558:18;9545:32;9529:48;;9602:2;9592:8;9589:16;9586:36;;;9618:1;9615;9608:12;9586:36;9641:63;9696:7;9685:8;9674:9;9670:24;9641:63;:::i;:::-;9631:73;;9757:3;9746:9;9742:19;9729:33;9713:49;;9787:2;9777:8;9774:16;9771:36;;;9803:1;9800;9793:12;9771:36;;9826:63;9881:7;9870:8;9859:9;9855:24;9826:63;:::i;:::-;9816:73;;;8830:1065;;;;;;;;:::o;9900:385::-;9986:6;9994;10002;10010;10063:3;10051:9;10042:7;10038:23;10034:33;10031:53;;;10080:1;10077;10070:12;10031:53;-1:-1:-1;;10103:23:1;;;10173:2;10158:18;;10145:32;;-1:-1:-1;10224:2:1;10209:18;;10196:32;;10275:2;10260:18;10247:32;;-1:-1:-1;9900:385:1;-1:-1:-1;9900:385:1:o;10290:380::-;10369:1;10365:12;;;;10412;;;10433:61;;10487:4;10479:6;10475:17;10465:27;;10433:61;10540:2;10532:6;10529:14;10509:18;10506:38;10503:161;;10586:10;10581:3;10577:20;10574:1;10567:31;10621:4;10618:1;10611:15;10649:4;10646:1;10639:15;10503:161;;10290:380;;;:::o;10675:340::-;10877:2;10859:21;;;10916:2;10896:18;;;10889:30;-1:-1:-1;;;10950:2:1;10935:18;;10928:46;11006:2;10991:18;;10675:340::o;11020:127::-;11081:10;11076:3;11072:20;11069:1;11062:31;11112:4;11109:1;11102:15;11136:4;11133:1;11126:15;11152:128;11192:3;11223:1;11219:6;11216:1;11213:13;11210:39;;;11229:18;;:::i;:::-;-1:-1:-1;11265:9:1;;11152:128::o;11635:127::-;11696:10;11691:3;11687:20;11684:1;11677:31;11727:4;11724:1;11717:15;11751:4;11748:1;11741:15;11767:135;11806:3;11827:17;;;11824:43;;11847:18;;:::i;:::-;-1:-1:-1;11894:1:1;11883:13;;11767:135::o;11907:125::-;11947:4;11975:1;11972;11969:8;11966:34;;;11980:18;;:::i;:::-;-1:-1:-1;12017:9:1;;11907:125::o;12037:168::-;12077:7;12143:1;12139;12135:6;12131:14;12128:1;12125:21;12120:1;12113:9;12106:17;12102:45;12099:71;;;12150:18;;:::i;:::-;-1:-1:-1;12190:9:1;;12037:168::o;12210:217::-;12250:1;12276;12266:132;;12320:10;12315:3;12311:20;12308:1;12301:31;12355:4;12352:1;12345:15;12383:4;12380:1;12373:15;12266:132;-1:-1:-1;12412:9:1;;12210:217::o;12432:401::-;12634:2;12616:21;;;12673:2;12653:18;;;12646:30;12712:34;12707:2;12692:18;;12685:62;-1:-1:-1;;;12778:2:1;12763:18;;12756:35;12823:3;12808:19;;12432:401::o;12838:425::-;13040:2;13022:21;;;13079:2;13059:18;;;13052:30;13118:34;13113:2;13098:18;;13091:62;13189:31;13184:2;13169:18;;13162:59;13253:3;13238:19;;12838:425::o;13627:418::-;13829:2;13811:21;;;13868:2;13848:18;;;13841:30;13907:34;13902:2;13887:18;;13880:62;-1:-1:-1;;;13973:2:1;13958:18;;13951:52;14035:3;14020:19;;13627:418::o;15100:422::-;15189:1;15232:5;15189:1;15246:270;15267:7;15257:8;15254:21;15246:270;;;15326:4;15322:1;15318:6;15314:17;15308:4;15305:27;15302:53;;;15335:18;;:::i;:::-;15385:7;15375:8;15371:22;15368:55;;;15405:16;;;;15368:55;15484:22;;;;15444:15;;;;15246:270;;;15250:3;15100:422;;;;;:::o;15527:806::-;15576:5;15606:8;15596:80;;-1:-1:-1;15647:1:1;15661:5;;15596:80;15695:4;15685:76;;-1:-1:-1;15732:1:1;15746:5;;15685:76;15777:4;15795:1;15790:59;;;;15863:1;15858:130;;;;15770:218;;15790:59;15820:1;15811:10;;15834:5;;;15858:130;15895:3;15885:8;15882:17;15879:43;;;15902:18;;:::i;:::-;-1:-1:-1;;15958:1:1;15944:16;;15973:5;;15770:218;;16072:2;16062:8;16059:16;16053:3;16047:4;16044:13;16040:36;16034:2;16024:8;16021:16;16016:2;16010:4;16007:12;16003:35;16000:77;15997:159;;;-1:-1:-1;16109:19:1;;;16141:5;;15997:159;16188:34;16213:8;16207:4;16188:34;:::i;:::-;16258:6;16254:1;16250:6;16246:19;16237:7;16234:32;16231:58;;;16269:18;;:::i;:::-;16307:20;;15527:806;-1:-1:-1;;;15527:806:1:o;16338:140::-;16396:5;16425:47;16466:4;16456:8;16452:19;16446:4;16425:47;:::i;16483:251::-;16553:6;16606:2;16594:9;16585:7;16581:23;16577:32;16574:52;;;16622:1;16619;16612:12;16574:52;16654:9;16648:16;16673:31;16698:5;16673:31;:::i;17048:607::-;-1:-1:-1;;;;;17407:15:1;;;17389:34;;17454:2;17439:18;;17432:34;;;;17497:2;17482:18;;17475:34;;;;17540:2;17525:18;;17518:34;;;;17589:15;;;17583:3;17568:19;;17561:44;17369:3;17621:19;;17614:35;;;;17338:3;17323:19;;17048:607::o;17660:306::-;17748:6;17756;17764;17817:2;17805:9;17796:7;17792:23;17788:32;17785:52;;;17833:1;17830;17823:12;17785:52;17862:9;17856:16;17846:26;;17912:2;17901:9;17897:18;17891:25;17881:35;;17956:2;17945:9;17941:18;17935:25;17925:35;;17660:306;;;;;:::o;21023:980::-;21285:4;21333:3;21322:9;21318:19;21364:6;21353:9;21346:25;21390:2;21428:6;21423:2;21412:9;21408:18;21401:34;21471:3;21466:2;21455:9;21451:18;21444:31;21495:6;21530;21524:13;21561:6;21553;21546:22;21599:3;21588:9;21584:19;21577:26;;21638:2;21630:6;21626:15;21612:29;;21659:1;21669:195;21683:6;21680:1;21677:13;21669:195;;;21748:13;;-1:-1:-1;;;;;21744:39:1;21732:52;;21839:15;;;;21804:12;;;;21780:1;21698:9;21669:195;;;-1:-1:-1;;;;;;;21920:32:1;;;;21915:2;21900:18;;21893:60;-1:-1:-1;;;21984:3:1;21969:19;21962:35;21881:3;21023:980;-1:-1:-1;;;21023:980:1:o
Swarm Source
ipfs://78c31ebbebc6a58372447990d731d30a39e8558bcaa750c6614569b54a1f6bbb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.