Overview
POL Balance
POL Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
65067157 | 67 days ago | 0.19468242 POL | ||||
65067157 | 67 days ago | 0.19468242 POL | ||||
64986783 | 69 days ago | 1.94318765 POL | ||||
64986783 | 69 days ago | 1.94318765 POL | ||||
64981711 | 69 days ago | 0.004 POL | ||||
64981711 | 69 days ago | 0.004 POL | ||||
64971412 | 69 days ago | 0.19434121 POL | ||||
64971412 | 69 days ago | 0.19434121 POL | ||||
64955395 | 70 days ago | 0.00004 POL | ||||
64955395 | 70 days ago | 0.00004 POL | ||||
64954832 | 70 days ago | 0.01903187 POL | ||||
64954832 | 70 days ago | 0.01903187 POL | ||||
64947623 | 70 days ago | 0.18895153 POL | ||||
64947623 | 70 days ago | 0.18895153 POL | ||||
64946496 | 70 days ago | 0.01299289 POL | ||||
64946496 | 70 days ago | 0.01299289 POL | ||||
64781947 | 74 days ago | 0.004 POL | ||||
64781947 | 74 days ago | 0.004 POL | ||||
64719010 | 75 days ago | 0.00335426 POL | ||||
64719010 | 75 days ago | 0.00335426 POL | ||||
64717704 | 76 days ago | 0.0008 POL | ||||
64717704 | 76 days ago | 0.0008 POL | ||||
64717704 | 76 days ago | 2 POL | ||||
64716936 | 76 days ago | 0.004 POL | ||||
64716936 | 76 days ago | 0.004 POL |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
TokenSwap
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2024-11-09 */ // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.20; /** * @dev Interface for the optional metadata functions from the ERC-20 standard. */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: contracts/tokenSwap.sol pragma solidity ^0.8.0; contract TokenSwap { address payable public owner; // swaprouter Ethereum: 0xE592427A0AEce92De3Edee1F18E0157C05861564 // swapRouter Polygon: 0xE592427A0AEce92De3Edee1F18E0157C05861564 // feetracker Polygon: 0xf3A027E1DF3C11da31856f2e983234b7f2ECD7AE // swapRouter BNB: 0x8ddA5A831C1BaFFc646C8D0351A59709367D7865 // feeTracker BNB: 0x0901FB17b981108ACc7cE735eDaAd4D1d46c121C // swapRouter TRX: TQAvWQpT9H916GckwWDJNhYZvQMkuRL7PN ISwapRouter public swapRouter; // address private FeeTrackerAddress; IFeeTracker public feeTracker; address public WETH; // WETH address // Common values for Uniswap V3 swaps uint160 constant defaultSqrtPriceLimitX96 = 0; // No price limit modifier onlyOwner() { require(msg.sender == owner, "Caller is not the owner"); _; } constructor(address _swapRouter,address _feeTracker) { owner = payable(msg.sender); feeTracker = IFeeTracker(_feeTracker); swapRouter = ISwapRouter(_swapRouter); WETH = swapRouter.WETH9(); IERC20(WETH).approve(address(swapRouter), 2**255); } // Fallback function to allow contract to accept ETH directly receive() external payable {} function setSwapRouter(address _swapRouter) public onlyOwner { swapRouter = ISwapRouter(_swapRouter); WETH = swapRouter.WETH9(); IERC20(WETH).approve(address(swapRouter), 2**255); } function setFeeTrackerAddress(address _feeTracker) public onlyOwner { feeTracker = IFeeTracker(_feeTracker); } function setOwnership(address payable newOwner) public onlyOwner { require(newOwner != address(0), "New owner is the zero address"); owner = newOwner; } function swapToken(address tokenIn, address tokenOut, uint amountIn,uint24 feeTier, address payable reseller) external payable { require(reseller != msg.sender,"sender cannot be reseller"); // ETH is represented as address(0) or WETH address if (msg.value > 0) { IWETH(WETH).deposit{value: msg.value}(); tokenIn = WETH; amountIn = msg.value; }else{ require(amountIn > 0, "Must specify an amount to swap"); require(IERC20(tokenIn).transferFrom(msg.sender, address(this), amountIn), "Transfer failed"); } if(tokenOut==address(0)){ tokenOut = WETH; // Change tokenOut to WETH } uint16 feePercent = feeTracker.getSwapServiceFee(msg.sender); uint feeAmount = (amountIn * feePercent) / 1000; uint amountInAfterFee = amountIn - feeAmount; if (reseller != address(0)) { uint16 resellerCommissionPercent = feeTracker.getSwapResellerCommission(reseller); uint commissionAmount = (feeAmount * resellerCommissionPercent) / 1000; feeAmount -= commissionAmount; if(commissionAmount>0){ if(tokenIn==WETH){ IWETH(WETH).withdraw(commissionAmount); reseller.transfer(commissionAmount); }else{ require(IERC20(tokenIn).transfer(reseller, commissionAmount), "Commission transfer failed"); } } } //transfer owner fee and change token address if(feeAmount>0){ require(IERC20(tokenIn).transfer(owner, feeAmount), "Fee transfer failed"); } if(IERC20(tokenIn).allowance(address(this),address(swapRouter)) < amountInAfterFee) IERC20(tokenIn).approve(address(swapRouter), 2**255); ISwapRouter.ExactInputSingleParams memory params = ISwapRouter.ExactInputSingleParams({ tokenIn: tokenIn, tokenOut: tokenOut, fee: feeTier, recipient: (tokenOut==WETH)?address(this):msg.sender, deadline: block.timestamp + 15 minutes, amountIn: amountInAfterFee, amountOutMinimum: 0, sqrtPriceLimitX96: defaultSqrtPriceLimitX96 }); uint amountOut = swapRouter.exactInputSingle(params); // If swapping to ETH, unwrap WETH to ETH and transfer to the recipient if (tokenOut==WETH) { IWETH(WETH).withdraw(amountOut); (bool success, ) = msg.sender.call{value: amountOut}(""); require(success, "Failed to send ETH"); } } // Withdraw ERC20 Tokens function withdrawToken(address _tokenAddress, uint256 amount) external onlyOwner { IERC20 token = IERC20(_tokenAddress); token.transfer(owner, amount); } // Withdraw ETH function withdrawETH(uint256 amount) external onlyOwner { payable(owner).transfer(amount); } function getPrice(address token1, address token2, uint24 feeTier) public view returns (uint160 sqrtPriceX96) { address adjustedToken1 = token1 == address(0) ? WETH : token1; address adjustedToken2 = token2 == address(0) ? WETH : token2; IUniswapV3Factory factory = IUniswapV3Factory(swapRouter.factory()); address poolAddress = factory.getPool(adjustedToken1, adjustedToken2, feeTier); require(poolAddress != address(0), "Pool does not exist"); IUniswapV3Pool pool = IUniswapV3Pool(poolAddress); (sqrtPriceX96,,,,,,) = pool.slot0(); } function getTokenInfo(address tokenAddress) public view returns (string memory name, string memory symbol, uint8 decimals) { if(tokenAddress==address(0)){ if (block.chainid == 56) return ("Binance Coin","BNB",18); if (block.chainid == 137) return ("Polygon","MATIC",18); return ("Ethereum","ETH",18);//in any other cases return eth data }else{ IERC20Metadata tokenMetadata1 = IERC20Metadata(tokenAddress); name = tokenMetadata1.name(); symbol = tokenMetadata1.symbol(); decimals = tokenMetadata1.decimals(); } } } interface IWETH { function deposit() external payable; function withdraw(uint wad) external; } interface IUniswapV3Pool { function slot0() external view returns ( uint160 sqrtPriceX96, int24 tick, uint16 observationIndex, uint16 observationCardinality, uint16 observationCardinalityNext, uint8 feeProtocol, bool unlocked ); } interface IUniswapV3Factory { function getPool( address tokenA, address tokenB, uint24 fee ) external view returns (address pool); } interface IFeeTracker { function getSwap() external view returns (uint16,uint16); function getSwapServiceFee(address swapperAddress) external view returns (uint16); function getSwapResellerCommission(address resellerAddress) external view returns (uint16); } interface IUniswapV3SwapCallback { function uniswapV3SwapCallback( int256 amount0Delta, int256 amount1Delta, bytes calldata data ) external; } interface ISwapRouter is IUniswapV3SwapCallback { function factory() external view returns (address); function WETH9() external view returns (address); struct ExactInputSingleParams { address tokenIn; address tokenOut; uint24 fee; address recipient; uint256 deadline; uint256 amountIn; uint256 amountOutMinimum; uint160 sqrtPriceLimitX96; } function exactInputSingle(ExactInputSingleParams calldata params) external payable returns (uint256 amountOut); struct ExactInputParams { bytes path; address recipient; uint256 deadline; uint256 amountIn; uint256 amountOutMinimum; } function exactInput(ExactInputParams calldata params) external payable returns (uint256 amountOut); struct ExactOutputSingleParams { address tokenIn; address tokenOut; uint24 fee; address recipient; uint256 deadline; uint256 amountOut; uint256 amountInMaximum; uint160 sqrtPriceLimitX96; } function exactOutputSingle(ExactOutputSingleParams calldata params) external payable returns (uint256 amountIn); struct ExactOutputParams { bytes path; address recipient; uint256 deadline; uint256 amountOut; uint256 amountInMaximum; } function exactOutput(ExactOutputParams calldata params) external payable returns (uint256 amountIn); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_swapRouter","type":"address"},{"internalType":"address","name":"_feeTracker","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeTracker","outputs":[{"internalType":"contract IFeeTracker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token1","type":"address"},{"internalType":"address","name":"token2","type":"address"},{"internalType":"uint24","name":"feeTier","type":"uint24"}],"name":"getPrice","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"getTokenInfo","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeTracker","type":"address"}],"name":"setFeeTrackerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"setOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_swapRouter","type":"address"}],"name":"setSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint24","name":"feeTier","type":"uint24"},{"internalType":"address payable","name":"reseller","type":"address"}],"name":"swapToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561000f575f5ffd5b5060405161302f38038061302f83398181016040528101906100319190610300565b335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017e919061033e565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f80000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b815260040161025a9291906103c3565b6020604051808303815f875af1158015610276573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029a919061041f565b50505061044a565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102cf826102a6565b9050919050565b6102df816102c5565b81146102e9575f5ffd5b50565b5f815190506102fa816102d6565b92915050565b5f5f60408385031215610316576103156102a2565b5b5f610323858286016102ec565b9250506020610334858286016102ec565b9150509250929050565b5f60208284031215610353576103526102a2565b5b5f610360848285016102ec565b91505092915050565b610372816102c5565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f6103ad6103a86103a384610378565b61038a565b610381565b9050919050565b6103bd81610393565b82525050565b5f6040820190506103d65f830185610369565b6103e360208301846103b4565b9392505050565b5f8115159050919050565b6103fe816103ea565b8114610408575f5ffd5b50565b5f81519050610419816103f5565b92915050565b5f60208284031215610434576104336102a2565b5b5f6104418482850161040b565b91505092915050565b612bd8806104575f395ff3fe6080604052600436106100aa575f3560e01c806394ef15011161006357806394ef1501146101d35780639e281a98146101ef578063a701602314610217578063ad5c46481461023f578063c31c9c0714610269578063f14210a614610293576100b1565b80631f69565f146100b55780631ffe150c146100f35780633325e1df1461011b57806341273657146101455780634613d1351461016d5780638da5cb5b146101a9576100b1565b366100b157005b5f5ffd5b3480156100c0575f5ffd5b506100db60048036038101906100d69190611bf4565b6102bb565b6040516100ea93929190611caa565b60405180910390f35b3480156100fe575f5ffd5b5061011960048036038101906101149190611bf4565b6105d3565b005b348015610126575f5ffd5b5061012f6106a4565b60405161013c9190611d48565b60405180910390f35b348015610150575f5ffd5b5061016b60048036038101906101669190611bf4565b6106c9565b005b348015610178575f5ffd5b50610193600480360381019061018e9190611d99565b610945565b6040516101a09190611df8565b60405180910390f35b3480156101b4575f5ffd5b506101bd610c18565b6040516101ca9190611e31565b60405180910390f35b6101ed60048036038101906101e89190611ea7565b610c3c565b005b3480156101fa575f5ffd5b5061021560048036038101906102109190611f1e565b6117d9565b005b348015610222575f5ffd5b5061023d60048036038101906102389190611f5c565b61190c565b005b34801561024a575f5ffd5b50610253611a4a565b6040516102609190611f96565b60405180910390f35b348015610274575f5ffd5b5061027d611a6f565b60405161028a9190611fcf565b60405180910390f35b34801561029e575f5ffd5b506102b960048036038101906102b49190611fe8565b611a94565b005b6060805f5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361047357603846036103755760126040518060400160405280600c81526020017f42696e616e636520436f696e0000000000000000000000000000000000000000815250906040518060400160405280600381526020017f424e420000000000000000000000000000000000000000000000000000000000815250909250925092506105cc565b608946036103f85760126040518060400160405280600781526020017f506f6c79676f6e00000000000000000000000000000000000000000000000000815250906040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250909250925092506105cc565b60126040518060400160405280600881526020017f457468657265756d000000000000000000000000000000000000000000000000815250906040518060400160405280600381526020017f4554480000000000000000000000000000000000000000000000000000000000815250909250925092506105cc565b5f8490508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156104bf573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906104e79190612131565b93508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610531573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105599190612131565b92508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c891906121a2565b9150505b9193909250565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065890612217565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90612217565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610801573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108259190612249565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f80000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016109019291906122ad565b6020604051808303815f875af115801561091d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109419190612309565b5050565b5f5f5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461098057846109a3565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b90505f5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146109df5784610a02565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b90505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a6f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a939190612249565b90505f8173ffffffffffffffffffffffffffffffffffffffff16631698ee828585896040518463ffffffff1660e01b8152600401610ad393929190612343565b602060405180830381865afa158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b129190612249565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b79906123c2565b60405180910390fd5b5f8190508073ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610bcf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf39190612477565b9091929394509091929350909192509091509050508096505050505050509392505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca19061255e565b60405180910390fd5b5f341115610d5c5760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610d19575f5ffd5b505af1158015610d2b573d5f5f3e3d5ffd5b505050505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450349250610e5b565b5f8311610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d95906125c6565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401610ddb939291906125f3565b6020604051808303815f875af1158015610df7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612309565b610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5190612672565b60405180910390fd5b5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610eb35760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693505b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8ac5eff336040518263ffffffff1660e01b8152600401610f0e9190611f96565b602060405180830381865afa158015610f29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4d9190612690565b90505f6103e88261ffff1686610f6391906126e8565b610f6d9190612756565b90505f8186610f7c9190612786565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611266575f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663acc9e817866040518263ffffffff1660e01b815260040161100c91906127d9565b602060405180830381865afa158015611027573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104b9190612690565b90505f6103e88261ffff168561106191906126e8565b61106b9190612756565b905080846110799190612786565b93505f8111156112635760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16036111a75760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040161113191906127f2565b5f604051808303815f87803b158015611148575f5ffd5b505af115801561115a573d5f5f3e3d5ffd5b505050508573ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111a1573d5f5f3e3d5ffd5b50611262565b8973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016111e292919061280b565b6020604051808303815f875af11580156111fe573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112229190612309565b611261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112589061287c565b60405180910390fd5b5b5b50505b5f821115611349578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112c992919061280b565b6020604051808303815f875af11580156112e5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113099190612309565b611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f906128e4565b60405180910390fd5b5b808873ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e3060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016113a6929190612902565b602060405180830381865afa1580156113c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e5919061293d565b10156114a9578773ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f80000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016114679291906122ad565b6020604051808303815f875af1158015611483573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a79190612309565b505b5f6040518061010001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018762ffffff16815260200160035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16146115535733611555565b305b73ffffffffffffffffffffffffffffffffffffffff1681526020016103844261157e9190612968565b81526020018381526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663414bf389836040518263ffffffff1660e01b81526004016116069190612a77565b6020604051808303815f875af1158015611622573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611646919061293d565b905060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16036117cd5760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b81526004016116f691906127f2565b5f604051808303815f87803b15801561170d575f5ffd5b505af115801561171f573d5f5f3e3d5ffd5b505050505f3373ffffffffffffffffffffffffffffffffffffffff168260405161174890612abe565b5f6040518083038185875af1925050503d805f8114611782576040519150601f19603f3d011682016040523d82523d5f602084013e611787565b606091505b50509050806117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c290612b1c565b60405180910390fd5b505b50505050505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90612217565b60405180910390fd5b5f8290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016118c692919061280b565b6020604051808303815f875af11580156118e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119069190612309565b50505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190612217565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612b84565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1990612217565b60405180910390fd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b85573d5f5f3e3d5ffd5b5050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611bc382611b9a565b9050919050565b611bd381611bb9565b8114611bdd575f5ffd5b50565b5f81359050611bee81611bca565b92915050565b5f60208284031215611c0957611c08611b92565b5b5f611c1684828501611be0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611c6182611c1f565b611c6b8185611c29565b9350611c7b818560208601611c39565b611c8481611c47565b840191505092915050565b5f60ff82169050919050565b611ca481611c8f565b82525050565b5f6060820190508181035f830152611cc28186611c57565b90508181036020830152611cd68185611c57565b9050611ce56040830184611c9b565b949350505050565b5f819050919050565b5f611d10611d0b611d0684611b9a565b611ced565b611b9a565b9050919050565b5f611d2182611cf6565b9050919050565b5f611d3282611d17565b9050919050565b611d4281611d28565b82525050565b5f602082019050611d5b5f830184611d39565b92915050565b5f62ffffff82169050919050565b611d7881611d61565b8114611d82575f5ffd5b50565b5f81359050611d9381611d6f565b92915050565b5f5f5f60608486031215611db057611daf611b92565b5b5f611dbd86828701611be0565b9350506020611dce86828701611be0565b9250506040611ddf86828701611d85565b9150509250925092565b611df281611b9a565b82525050565b5f602082019050611e0b5f830184611de9565b92915050565b5f611e1b82611b9a565b9050919050565b611e2b81611e11565b82525050565b5f602082019050611e445f830184611e22565b92915050565b5f819050919050565b611e5c81611e4a565b8114611e66575f5ffd5b50565b5f81359050611e7781611e53565b92915050565b611e8681611e11565b8114611e90575f5ffd5b50565b5f81359050611ea181611e7d565b92915050565b5f5f5f5f5f60a08688031215611ec057611ebf611b92565b5b5f611ecd88828901611be0565b9550506020611ede88828901611be0565b9450506040611eef88828901611e69565b9350506060611f0088828901611d85565b9250506080611f1188828901611e93565b9150509295509295909350565b5f5f60408385031215611f3457611f33611b92565b5b5f611f4185828601611be0565b9250506020611f5285828601611e69565b9150509250929050565b5f60208284031215611f7157611f70611b92565b5b5f611f7e84828501611e93565b91505092915050565b611f9081611bb9565b82525050565b5f602082019050611fa95f830184611f87565b92915050565b5f611fb982611d17565b9050919050565b611fc981611faf565b82525050565b5f602082019050611fe25f830184611fc0565b92915050565b5f60208284031215611ffd57611ffc611b92565b5b5f61200a84828501611e69565b91505092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61205182611c47565b810181811067ffffffffffffffff821117156120705761206f61201b565b5b80604052505050565b5f612082611b89565b905061208e8282612048565b919050565b5f67ffffffffffffffff8211156120ad576120ac61201b565b5b6120b682611c47565b9050602081019050919050565b5f6120d56120d084612093565b612079565b9050828152602081018484840111156120f1576120f0612017565b5b6120fc848285611c39565b509392505050565b5f82601f83011261211857612117612013565b5b81516121288482602086016120c3565b91505092915050565b5f6020828403121561214657612145611b92565b5b5f82015167ffffffffffffffff81111561216357612162611b96565b5b61216f84828501612104565b91505092915050565b61218181611c8f565b811461218b575f5ffd5b50565b5f8151905061219c81612178565b92915050565b5f602082840312156121b7576121b6611b92565b5b5f6121c48482850161218e565b91505092915050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f612201601783611c29565b915061220c826121cd565b602082019050919050565b5f6020820190508181035f83015261222e816121f5565b9050919050565b5f8151905061224381611bca565b92915050565b5f6020828403121561225e5761225d611b92565b5b5f61226b84828501612235565b91505092915050565b5f819050919050565b5f61229761229261228d84612274565b611ced565b611e4a565b9050919050565b6122a78161227d565b82525050565b5f6040820190506122c05f830185611f87565b6122cd602083018461229e565b9392505050565b5f8115159050919050565b6122e8816122d4565b81146122f2575f5ffd5b50565b5f81519050612303816122df565b92915050565b5f6020828403121561231e5761231d611b92565b5b5f61232b848285016122f5565b91505092915050565b61233d81611d61565b82525050565b5f6060820190506123565f830186611f87565b6123636020830185611f87565b6123706040830184612334565b949350505050565b7f506f6f6c20646f6573206e6f74206578697374000000000000000000000000005f82015250565b5f6123ac601383611c29565b91506123b782612378565b602082019050919050565b5f6020820190508181035f8301526123d9816123a0565b9050919050565b6123e981611b9a565b81146123f3575f5ffd5b50565b5f81519050612404816123e0565b92915050565b5f8160020b9050919050565b61241f8161240a565b8114612429575f5ffd5b50565b5f8151905061243a81612416565b92915050565b5f61ffff82169050919050565b61245681612440565b8114612460575f5ffd5b50565b5f815190506124718161244d565b92915050565b5f5f5f5f5f5f5f60e0888a03121561249257612491611b92565b5b5f61249f8a828b016123f6565b97505060206124b08a828b0161242c565b96505060406124c18a828b01612463565b95505060606124d28a828b01612463565b94505060806124e38a828b01612463565b93505060a06124f48a828b0161218e565b92505060c06125058a828b016122f5565b91505092959891949750929550565b7f73656e6465722063616e6e6f7420626520726573656c6c6572000000000000005f82015250565b5f612548601983611c29565b915061255382612514565b602082019050919050565b5f6020820190508181035f8301526125758161253c565b9050919050565b7f4d757374207370656369667920616e20616d6f756e7420746f207377617000005f82015250565b5f6125b0601e83611c29565b91506125bb8261257c565b602082019050919050565b5f6020820190508181035f8301526125dd816125a4565b9050919050565b6125ed81611e4a565b82525050565b5f6060820190506126065f830186611f87565b6126136020830185611f87565b61262060408301846125e4565b949350505050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f61265c600f83611c29565b915061266782612628565b602082019050919050565b5f6020820190508181035f83015261268981612650565b9050919050565b5f602082840312156126a5576126a4611b92565b5b5f6126b284828501612463565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126f282611e4a565b91506126fd83611e4a565b925082820261270b81611e4a565b91508282048414831517612722576127216126bb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61276082611e4a565b915061276b83611e4a565b92508261277b5761277a612729565b5b828204905092915050565b5f61279082611e4a565b915061279b83611e4a565b92508282039050818111156127b3576127b26126bb565b5b92915050565b5f6127c382611d17565b9050919050565b6127d3816127b9565b82525050565b5f6020820190506127ec5f8301846127ca565b92915050565b5f6020820190506128055f8301846125e4565b92915050565b5f60408201905061281e5f8301856127ca565b61282b60208301846125e4565b9392505050565b7f436f6d6d697373696f6e207472616e73666572206661696c65640000000000005f82015250565b5f612866601a83611c29565b915061287182612832565b602082019050919050565b5f6020820190508181035f8301526128938161285a565b9050919050565b7f466565207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f6128ce601383611c29565b91506128d98261289a565b602082019050919050565b5f6020820190508181035f8301526128fb816128c2565b9050919050565b5f6040820190506129155f830185611f87565b6129226020830184611f87565b9392505050565b5f8151905061293781611e53565b92915050565b5f6020828403121561295257612951611b92565b5b5f61295f84828501612929565b91505092915050565b5f61297282611e4a565b915061297d83611e4a565b9250828201905080821115612995576129946126bb565b5b92915050565b6129a481611bb9565b82525050565b6129b381611d61565b82525050565b6129c281611e4a565b82525050565b6129d181611b9a565b82525050565b61010082015f8201516129ec5f85018261299b565b5060208201516129ff602085018261299b565b506040820151612a1260408501826129aa565b506060820151612a25606085018261299b565b506080820151612a3860808501826129b9565b5060a0820151612a4b60a08501826129b9565b5060c0820151612a5e60c08501826129b9565b5060e0820151612a7160e08501826129c8565b50505050565b5f61010082019050612a8b5f8301846129d7565b92915050565b5f81905092915050565b50565b5f612aa95f83612a91565b9150612ab482612a9b565b5f82019050919050565b5f612ac882612a9e565b9150819050919050565b7f4661696c656420746f2073656e642045544800000000000000000000000000005f82015250565b5f612b06601283611c29565b9150612b1182612ad2565b602082019050919050565b5f6020820190508181035f830152612b3381612afa565b9050919050565b7f4e6577206f776e657220697320746865207a65726f20616464726573730000005f82015250565b5f612b6e601d83611c29565b9150612b7982612b3a565b602082019050919050565b5f6020820190508181035f830152612b9b81612b62565b905091905056fea264697066735822122097738ff8e9d5a961a4f51e79e3cee758b7ef4ecad488ec3fbf6a92c2d4def38b64736f6c634300081c0033000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000f3a027e1df3c11da31856f2e983234b7f2ecd7ae
Deployed Bytecode
0x6080604052600436106100aa575f3560e01c806394ef15011161006357806394ef1501146101d35780639e281a98146101ef578063a701602314610217578063ad5c46481461023f578063c31c9c0714610269578063f14210a614610293576100b1565b80631f69565f146100b55780631ffe150c146100f35780633325e1df1461011b57806341273657146101455780634613d1351461016d5780638da5cb5b146101a9576100b1565b366100b157005b5f5ffd5b3480156100c0575f5ffd5b506100db60048036038101906100d69190611bf4565b6102bb565b6040516100ea93929190611caa565b60405180910390f35b3480156100fe575f5ffd5b5061011960048036038101906101149190611bf4565b6105d3565b005b348015610126575f5ffd5b5061012f6106a4565b60405161013c9190611d48565b60405180910390f35b348015610150575f5ffd5b5061016b60048036038101906101669190611bf4565b6106c9565b005b348015610178575f5ffd5b50610193600480360381019061018e9190611d99565b610945565b6040516101a09190611df8565b60405180910390f35b3480156101b4575f5ffd5b506101bd610c18565b6040516101ca9190611e31565b60405180910390f35b6101ed60048036038101906101e89190611ea7565b610c3c565b005b3480156101fa575f5ffd5b5061021560048036038101906102109190611f1e565b6117d9565b005b348015610222575f5ffd5b5061023d60048036038101906102389190611f5c565b61190c565b005b34801561024a575f5ffd5b50610253611a4a565b6040516102609190611f96565b60405180910390f35b348015610274575f5ffd5b5061027d611a6f565b60405161028a9190611fcf565b60405180910390f35b34801561029e575f5ffd5b506102b960048036038101906102b49190611fe8565b611a94565b005b6060805f5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361047357603846036103755760126040518060400160405280600c81526020017f42696e616e636520436f696e0000000000000000000000000000000000000000815250906040518060400160405280600381526020017f424e420000000000000000000000000000000000000000000000000000000000815250909250925092506105cc565b608946036103f85760126040518060400160405280600781526020017f506f6c79676f6e00000000000000000000000000000000000000000000000000815250906040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250909250925092506105cc565b60126040518060400160405280600881526020017f457468657265756d000000000000000000000000000000000000000000000000815250906040518060400160405280600381526020017f4554480000000000000000000000000000000000000000000000000000000000815250909250925092506105cc565b5f8490508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156104bf573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906104e79190612131565b93508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610531573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105599190612131565b92508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c891906121a2565b9150505b9193909250565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065890612217565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90612217565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610801573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108259190612249565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f80000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016109019291906122ad565b6020604051808303815f875af115801561091d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109419190612309565b5050565b5f5f5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461098057846109a3565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b90505f5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146109df5784610a02565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b90505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a6f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a939190612249565b90505f8173ffffffffffffffffffffffffffffffffffffffff16631698ee828585896040518463ffffffff1660e01b8152600401610ad393929190612343565b602060405180830381865afa158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b129190612249565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b79906123c2565b60405180910390fd5b5f8190508073ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610bcf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf39190612477565b9091929394509091929350909192509091509050508096505050505050509392505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca19061255e565b60405180910390fd5b5f341115610d5c5760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610d19575f5ffd5b505af1158015610d2b573d5f5f3e3d5ffd5b505050505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450349250610e5b565b5f8311610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d95906125c6565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401610ddb939291906125f3565b6020604051808303815f875af1158015610df7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612309565b610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5190612672565b60405180910390fd5b5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610eb35760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693505b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8ac5eff336040518263ffffffff1660e01b8152600401610f0e9190611f96565b602060405180830381865afa158015610f29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4d9190612690565b90505f6103e88261ffff1686610f6391906126e8565b610f6d9190612756565b90505f8186610f7c9190612786565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611266575f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663acc9e817866040518263ffffffff1660e01b815260040161100c91906127d9565b602060405180830381865afa158015611027573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104b9190612690565b90505f6103e88261ffff168561106191906126e8565b61106b9190612756565b905080846110799190612786565b93505f8111156112635760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16036111a75760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040161113191906127f2565b5f604051808303815f87803b158015611148575f5ffd5b505af115801561115a573d5f5f3e3d5ffd5b505050508573ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111a1573d5f5f3e3d5ffd5b50611262565b8973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016111e292919061280b565b6020604051808303815f875af11580156111fe573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112229190612309565b611261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112589061287c565b60405180910390fd5b5b5b50505b5f821115611349578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112c992919061280b565b6020604051808303815f875af11580156112e5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113099190612309565b611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f906128e4565b60405180910390fd5b5b808873ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e3060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016113a6929190612902565b602060405180830381865afa1580156113c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e5919061293d565b10156114a9578773ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f80000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016114679291906122ad565b6020604051808303815f875af1158015611483573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a79190612309565b505b5f6040518061010001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018762ffffff16815260200160035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16146115535733611555565b305b73ffffffffffffffffffffffffffffffffffffffff1681526020016103844261157e9190612968565b81526020018381526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663414bf389836040518263ffffffff1660e01b81526004016116069190612a77565b6020604051808303815f875af1158015611622573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611646919061293d565b905060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16036117cd5760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b81526004016116f691906127f2565b5f604051808303815f87803b15801561170d575f5ffd5b505af115801561171f573d5f5f3e3d5ffd5b505050505f3373ffffffffffffffffffffffffffffffffffffffff168260405161174890612abe565b5f6040518083038185875af1925050503d805f8114611782576040519150601f19603f3d011682016040523d82523d5f602084013e611787565b606091505b50509050806117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c290612b1c565b60405180910390fd5b505b50505050505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90612217565b60405180910390fd5b5f8290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016118c692919061280b565b6020604051808303815f875af11580156118e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119069190612309565b50505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190612217565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612b84565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1990612217565b60405180910390fd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b85573d5f5f3e3d5ffd5b5050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611bc382611b9a565b9050919050565b611bd381611bb9565b8114611bdd575f5ffd5b50565b5f81359050611bee81611bca565b92915050565b5f60208284031215611c0957611c08611b92565b5b5f611c1684828501611be0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611c6182611c1f565b611c6b8185611c29565b9350611c7b818560208601611c39565b611c8481611c47565b840191505092915050565b5f60ff82169050919050565b611ca481611c8f565b82525050565b5f6060820190508181035f830152611cc28186611c57565b90508181036020830152611cd68185611c57565b9050611ce56040830184611c9b565b949350505050565b5f819050919050565b5f611d10611d0b611d0684611b9a565b611ced565b611b9a565b9050919050565b5f611d2182611cf6565b9050919050565b5f611d3282611d17565b9050919050565b611d4281611d28565b82525050565b5f602082019050611d5b5f830184611d39565b92915050565b5f62ffffff82169050919050565b611d7881611d61565b8114611d82575f5ffd5b50565b5f81359050611d9381611d6f565b92915050565b5f5f5f60608486031215611db057611daf611b92565b5b5f611dbd86828701611be0565b9350506020611dce86828701611be0565b9250506040611ddf86828701611d85565b9150509250925092565b611df281611b9a565b82525050565b5f602082019050611e0b5f830184611de9565b92915050565b5f611e1b82611b9a565b9050919050565b611e2b81611e11565b82525050565b5f602082019050611e445f830184611e22565b92915050565b5f819050919050565b611e5c81611e4a565b8114611e66575f5ffd5b50565b5f81359050611e7781611e53565b92915050565b611e8681611e11565b8114611e90575f5ffd5b50565b5f81359050611ea181611e7d565b92915050565b5f5f5f5f5f60a08688031215611ec057611ebf611b92565b5b5f611ecd88828901611be0565b9550506020611ede88828901611be0565b9450506040611eef88828901611e69565b9350506060611f0088828901611d85565b9250506080611f1188828901611e93565b9150509295509295909350565b5f5f60408385031215611f3457611f33611b92565b5b5f611f4185828601611be0565b9250506020611f5285828601611e69565b9150509250929050565b5f60208284031215611f7157611f70611b92565b5b5f611f7e84828501611e93565b91505092915050565b611f9081611bb9565b82525050565b5f602082019050611fa95f830184611f87565b92915050565b5f611fb982611d17565b9050919050565b611fc981611faf565b82525050565b5f602082019050611fe25f830184611fc0565b92915050565b5f60208284031215611ffd57611ffc611b92565b5b5f61200a84828501611e69565b91505092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61205182611c47565b810181811067ffffffffffffffff821117156120705761206f61201b565b5b80604052505050565b5f612082611b89565b905061208e8282612048565b919050565b5f67ffffffffffffffff8211156120ad576120ac61201b565b5b6120b682611c47565b9050602081019050919050565b5f6120d56120d084612093565b612079565b9050828152602081018484840111156120f1576120f0612017565b5b6120fc848285611c39565b509392505050565b5f82601f83011261211857612117612013565b5b81516121288482602086016120c3565b91505092915050565b5f6020828403121561214657612145611b92565b5b5f82015167ffffffffffffffff81111561216357612162611b96565b5b61216f84828501612104565b91505092915050565b61218181611c8f565b811461218b575f5ffd5b50565b5f8151905061219c81612178565b92915050565b5f602082840312156121b7576121b6611b92565b5b5f6121c48482850161218e565b91505092915050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f612201601783611c29565b915061220c826121cd565b602082019050919050565b5f6020820190508181035f83015261222e816121f5565b9050919050565b5f8151905061224381611bca565b92915050565b5f6020828403121561225e5761225d611b92565b5b5f61226b84828501612235565b91505092915050565b5f819050919050565b5f61229761229261228d84612274565b611ced565b611e4a565b9050919050565b6122a78161227d565b82525050565b5f6040820190506122c05f830185611f87565b6122cd602083018461229e565b9392505050565b5f8115159050919050565b6122e8816122d4565b81146122f2575f5ffd5b50565b5f81519050612303816122df565b92915050565b5f6020828403121561231e5761231d611b92565b5b5f61232b848285016122f5565b91505092915050565b61233d81611d61565b82525050565b5f6060820190506123565f830186611f87565b6123636020830185611f87565b6123706040830184612334565b949350505050565b7f506f6f6c20646f6573206e6f74206578697374000000000000000000000000005f82015250565b5f6123ac601383611c29565b91506123b782612378565b602082019050919050565b5f6020820190508181035f8301526123d9816123a0565b9050919050565b6123e981611b9a565b81146123f3575f5ffd5b50565b5f81519050612404816123e0565b92915050565b5f8160020b9050919050565b61241f8161240a565b8114612429575f5ffd5b50565b5f8151905061243a81612416565b92915050565b5f61ffff82169050919050565b61245681612440565b8114612460575f5ffd5b50565b5f815190506124718161244d565b92915050565b5f5f5f5f5f5f5f60e0888a03121561249257612491611b92565b5b5f61249f8a828b016123f6565b97505060206124b08a828b0161242c565b96505060406124c18a828b01612463565b95505060606124d28a828b01612463565b94505060806124e38a828b01612463565b93505060a06124f48a828b0161218e565b92505060c06125058a828b016122f5565b91505092959891949750929550565b7f73656e6465722063616e6e6f7420626520726573656c6c6572000000000000005f82015250565b5f612548601983611c29565b915061255382612514565b602082019050919050565b5f6020820190508181035f8301526125758161253c565b9050919050565b7f4d757374207370656369667920616e20616d6f756e7420746f207377617000005f82015250565b5f6125b0601e83611c29565b91506125bb8261257c565b602082019050919050565b5f6020820190508181035f8301526125dd816125a4565b9050919050565b6125ed81611e4a565b82525050565b5f6060820190506126065f830186611f87565b6126136020830185611f87565b61262060408301846125e4565b949350505050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f61265c600f83611c29565b915061266782612628565b602082019050919050565b5f6020820190508181035f83015261268981612650565b9050919050565b5f602082840312156126a5576126a4611b92565b5b5f6126b284828501612463565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126f282611e4a565b91506126fd83611e4a565b925082820261270b81611e4a565b91508282048414831517612722576127216126bb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61276082611e4a565b915061276b83611e4a565b92508261277b5761277a612729565b5b828204905092915050565b5f61279082611e4a565b915061279b83611e4a565b92508282039050818111156127b3576127b26126bb565b5b92915050565b5f6127c382611d17565b9050919050565b6127d3816127b9565b82525050565b5f6020820190506127ec5f8301846127ca565b92915050565b5f6020820190506128055f8301846125e4565b92915050565b5f60408201905061281e5f8301856127ca565b61282b60208301846125e4565b9392505050565b7f436f6d6d697373696f6e207472616e73666572206661696c65640000000000005f82015250565b5f612866601a83611c29565b915061287182612832565b602082019050919050565b5f6020820190508181035f8301526128938161285a565b9050919050565b7f466565207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f6128ce601383611c29565b91506128d98261289a565b602082019050919050565b5f6020820190508181035f8301526128fb816128c2565b9050919050565b5f6040820190506129155f830185611f87565b6129226020830184611f87565b9392505050565b5f8151905061293781611e53565b92915050565b5f6020828403121561295257612951611b92565b5b5f61295f84828501612929565b91505092915050565b5f61297282611e4a565b915061297d83611e4a565b9250828201905080821115612995576129946126bb565b5b92915050565b6129a481611bb9565b82525050565b6129b381611d61565b82525050565b6129c281611e4a565b82525050565b6129d181611b9a565b82525050565b61010082015f8201516129ec5f85018261299b565b5060208201516129ff602085018261299b565b506040820151612a1260408501826129aa565b506060820151612a25606085018261299b565b506080820151612a3860808501826129b9565b5060a0820151612a4b60a08501826129b9565b5060c0820151612a5e60c08501826129b9565b5060e0820151612a7160e08501826129c8565b50505050565b5f61010082019050612a8b5f8301846129d7565b92915050565b5f81905092915050565b50565b5f612aa95f83612a91565b9150612ab482612a9b565b5f82019050919050565b5f612ac882612a9e565b9150819050919050565b7f4661696c656420746f2073656e642045544800000000000000000000000000005f82015250565b5f612b06601283611c29565b9150612b1182612ad2565b602082019050919050565b5f6020820190508181035f830152612b3381612afa565b9050919050565b7f4e6577206f776e657220697320746865207a65726f20616464726573730000005f82015250565b5f612b6e601d83611c29565b9150612b7982612b3a565b602082019050919050565b5f6020820190508181035f830152612b9b81612b62565b905091905056fea264697066735822122097738ff8e9d5a961a4f51e79e3cee758b7ef4ecad488ec3fbf6a92c2d4def38b64736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000f3a027e1df3c11da31856f2e983234b7f2ecd7ae
-----Decoded View---------------
Arg [0] : _swapRouter (address): 0xE592427A0AEce92De3Edee1F18E0157C05861564
Arg [1] : _feeTracker (address): 0xf3A027E1DF3C11da31856f2e983234b7f2ECD7AE
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564
Arg [1] : 000000000000000000000000f3a027e1df3c11da31856f2e983234b7f2ecd7ae
Deployed Bytecode Sourcemap
3678:6170:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9210:635;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;5195:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4249:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4974:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8596:606;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3704:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5510:2729;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8277:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5327:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4287:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4164:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8482:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9210:635;9275:18;9295:20;9317:14;9369:1;9347:24;;:12;:24;;;9344:494;;9408:2;9391:13;:19;9387:58;;9442:2;9413:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9387:58;9481:3;9464:13;:20;9460:55;;9512:2;9486:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9460:55;9555:2;9530:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9344:494;9625:29;9672:12;9625:60;;9707:14;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9700:28;;9752:14;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9743:32;;9801:14;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9790:36;;9610:228;9210:635;;;;;;:::o;5195:124::-;4500:5;;;;;;;;;;;4486:19;;:10;:19;;;4478:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5299:11:::1;5274:10;;:37;;;;;;;;;;;;;;;;;;5195:124:::0;:::o;4249:29::-;;;;;;;;;;;;;:::o;4974:213::-;4500:5;;;;;;;;;;;4486:19;;:10;:19;;;4478:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5071:11:::1;5046:10;;:37;;;;;;;;;;;;;;;;;;5101:10;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5094:4;;:25;;;;;;;;;;;;;;;;;;5137:4;;;;;;;;;;;5130:20;;;5159:10;;;;;;;;;;;5172:6;5130:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4974:213:::0;:::o;8596:606::-;8683:20;8716:22;8759:1;8741:20;;:6;:20;;;:36;;8771:6;8741:36;;;8764:4;;;;;;;;;;;8741:36;8716:61;;8788:22;8831:1;8813:20;;:6;:20;;;:36;;8843:6;8813:36;;;8836:4;;;;;;;;;;;8813:36;8788:61;;8862:25;8908:10;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8862:67;;8940:19;8962:7;:15;;;8978:14;8994;9010:7;8962:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8940:78;;9060:1;9037:25;;:11;:25;;;9029:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9099:19;9136:11;9099:49;;9182:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9159:35;;;;;;;;;;;;;;;;;;;;;;;;;8705:497;;;;;8596:606;;;;;:::o;3704:28::-;;;;;;;;;;;;;:::o;5510:2729::-;5668:10;5656:22;;:8;:22;;;5648:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5797:1;5785:9;:13;5781:343;;;5821:4;;;;;;;;;;;5815:19;;;5842:9;5815:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5879:4;;;;;;;;;;;5869:14;;5909:9;5898:20;;5781:343;;;5968:1;5957:8;:12;5949:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;6034:7;6027:28;;;6056:10;6076:4;6083:8;6027:65;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6019:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;5781:343;6155:1;6137:20;;:8;:20;;;6134:93;;6184:4;;;;;;;;;;;6173:15;;6134:93;6239:17;6259:10;;;;;;;;;;;:28;;;6288:10;6259:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6239:60;;6310:14;6353:4;6339:10;6328:21;;:8;:21;;;;:::i;:::-;6327:30;;;;:::i;:::-;6310:47;;6368:21;6403:9;6392:8;:20;;;;:::i;:::-;6368:44;;6465:1;6445:22;;:8;:22;;;6441:631;;6484:32;6519:10;;;;;;;;;;;:36;;;6556:8;6519:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6484:81;;6580:21;6646:4;6617:25;6605:37;;:9;:37;;;;:::i;:::-;6604:46;;;;:::i;:::-;6580:70;;6678:16;6665:29;;;;;:::i;:::-;;;6731:1;6714:16;:18;6711:350;;;6764:4;;;;;;;;;;;6755:13;;:7;:13;;;6752:294;;6798:4;;;;;;;;;;;6792:20;;;6813:16;6792:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6853:8;:17;;:35;6871:16;6853:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6752:294;;;6950:7;6943:24;;;6968:8;6978:16;6943:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6935:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;6752:294;6711:350;6469:603;;6441:631;7152:1;7142:9;:11;7139:116;;;7184:7;7177:24;;;7202:5;;;;;;;;;;;7209:9;7177:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7169:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7139:116;7333:16;7277:7;7270:25;;;7304:4;7318:10;;;;;;;;;;;7270:60;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:79;7267:149;;;7371:7;7364:23;;;7396:10;;;;;;;;;;;7409:6;7364:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7267:149;7429:48;7480:391;;;;;;;;7539:7;7480:391;;;;;;7571:8;7480:391;;;;;;7599:7;7480:391;;;;;;7643:4;;;;;;;;;;;7633:14;;:8;:14;;;7632:41;;7663:10;7632:41;;;7657:4;7632:41;7480:391;;;;;;7716:10;7698:15;:28;;;;:::i;:::-;7480:391;;;;7751:16;7480:391;;;;7800:1;7480:391;;;;4418:1;7480:391;;;;;7429:442;;7884:14;7901:10;;;;;;;;;;;:27;;;7929:6;7901:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7884:52;;8044:4;;;;;;;;;;;8034:14;;:8;:14;;;8030:202;;8071:4;;;;;;;;;;;8065:20;;;8086:9;8065:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8112:12;8130:10;:15;;8153:9;8130:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8111:56;;;8190:7;8182:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8050:182;8030:202;5637:2602;;;;;5510:2729;;;;;:::o;8277:176::-;4500:5;;;;;;;;;;;4486:19;;:10;:19;;;4478:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8369:12:::1;8391:13;8369:36;;8416:5;:14;;;8431:5;;;;;;;;;;;8438:6;8416:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8358:95;8277:176:::0;;:::o;5327:175::-;4500:5;;;;;;;;;;;4486:19;;:10;:19;;;4478:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5431:1:::1;5411:22;;:8;:22;;::::0;5403:64:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5486:8;5478:5;;:16;;;;;;;;;;;;;;;;;;5327:175:::0;:::o;4287:19::-;;;;;;;;;;;;;:::o;4164:29::-;;;;;;;;;;;;;:::o;8482:106::-;4500:5;;;;;;;;;;;4486:19;;:10;:19;;;4478:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8557:5:::1;;;;;;;;;;;8549:23;;:31;8573:6;8549:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8482:106:::0;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:99::-;1228:6;1262:5;1256:12;1246:22;;1176:99;;;:::o;1281:169::-;1365:11;1399:6;1394:3;1387:19;1439:4;1434:3;1430:14;1415:29;;1281:169;;;;:::o;1456:139::-;1545:6;1540:3;1535;1529:23;1586:1;1577:6;1572:3;1568:16;1561:27;1456:139;;;:::o;1601:102::-;1642:6;1693:2;1689:7;1684:2;1677:5;1673:14;1669:28;1659:38;;1601:102;;;:::o;1709:377::-;1797:3;1825:39;1858:5;1825:39;:::i;:::-;1880:71;1944:6;1939:3;1880:71;:::i;:::-;1873:78;;1960:65;2018:6;2013:3;2006:4;1999:5;1995:16;1960:65;:::i;:::-;2050:29;2072:6;2050:29;:::i;:::-;2045:3;2041:39;2034:46;;1801:285;1709:377;;;;:::o;2092:86::-;2127:7;2167:4;2160:5;2156:16;2145:27;;2092:86;;;:::o;2184:112::-;2267:22;2283:5;2267:22;:::i;:::-;2262:3;2255:35;2184:112;;:::o;2302:616::-;2487:4;2525:2;2514:9;2510:18;2502:26;;2574:9;2568:4;2564:20;2560:1;2549:9;2545:17;2538:47;2602:78;2675:4;2666:6;2602:78;:::i;:::-;2594:86;;2727:9;2721:4;2717:20;2712:2;2701:9;2697:18;2690:48;2755:78;2828:4;2819:6;2755:78;:::i;:::-;2747:86;;2843:68;2907:2;2896:9;2892:18;2883:6;2843:68;:::i;:::-;2302:616;;;;;;:::o;2924:60::-;2952:3;2973:5;2966:12;;2924:60;;;:::o;2990:142::-;3040:9;3073:53;3091:34;3100:24;3118:5;3100:24;:::i;:::-;3091:34;:::i;:::-;3073:53;:::i;:::-;3060:66;;2990:142;;;:::o;3138:126::-;3188:9;3221:37;3252:5;3221:37;:::i;:::-;3208:50;;3138:126;;;:::o;3270:145::-;3339:9;3372:37;3403:5;3372:37;:::i;:::-;3359:50;;3270:145;;;:::o;3421:169::-;3527:56;3577:5;3527:56;:::i;:::-;3522:3;3515:69;3421:169;;:::o;3596:260::-;3708:4;3746:2;3735:9;3731:18;3723:26;;3759:90;3846:1;3835:9;3831:17;3822:6;3759:90;:::i;:::-;3596:260;;;;:::o;3862:91::-;3898:7;3938:8;3931:5;3927:20;3916:31;;3862:91;;;:::o;3959:120::-;4031:23;4048:5;4031:23;:::i;:::-;4024:5;4021:34;4011:62;;4069:1;4066;4059:12;4011:62;3959:120;:::o;4085:137::-;4130:5;4168:6;4155:20;4146:29;;4184:32;4210:5;4184:32;:::i;:::-;4085:137;;;;:::o;4228:617::-;4304:6;4312;4320;4369:2;4357:9;4348:7;4344:23;4340:32;4337:119;;;4375:79;;:::i;:::-;4337:119;4495:1;4520:53;4565:7;4556:6;4545:9;4541:22;4520:53;:::i;:::-;4510:63;;4466:117;4622:2;4648:53;4693:7;4684:6;4673:9;4669:22;4648:53;:::i;:::-;4638:63;;4593:118;4750:2;4776:52;4820:7;4811:6;4800:9;4796:22;4776:52;:::i;:::-;4766:62;;4721:117;4228:617;;;;;:::o;4851:118::-;4938:24;4956:5;4938:24;:::i;:::-;4933:3;4926:37;4851:118;;:::o;4975:222::-;5068:4;5106:2;5095:9;5091:18;5083:26;;5119:71;5187:1;5176:9;5172:17;5163:6;5119:71;:::i;:::-;4975:222;;;;:::o;5203:104::-;5248:7;5277:24;5295:5;5277:24;:::i;:::-;5266:35;;5203:104;;;:::o;5313:142::-;5416:32;5442:5;5416:32;:::i;:::-;5411:3;5404:45;5313:142;;:::o;5461:254::-;5570:4;5608:2;5597:9;5593:18;5585:26;;5621:87;5705:1;5694:9;5690:17;5681:6;5621:87;:::i;:::-;5461:254;;;;:::o;5721:77::-;5758:7;5787:5;5776:16;;5721:77;;;:::o;5804:122::-;5877:24;5895:5;5877:24;:::i;:::-;5870:5;5867:35;5857:63;;5916:1;5913;5906:12;5857:63;5804:122;:::o;5932:139::-;5978:5;6016:6;6003:20;5994:29;;6032:33;6059:5;6032:33;:::i;:::-;5932:139;;;;:::o;6077:138::-;6158:32;6184:5;6158:32;:::i;:::-;6151:5;6148:43;6138:71;;6205:1;6202;6195:12;6138:71;6077:138;:::o;6221:155::-;6275:5;6313:6;6300:20;6291:29;;6329:41;6364:5;6329:41;:::i;:::-;6221:155;;;;:::o;6382:925::-;6484:6;6492;6500;6508;6516;6565:3;6553:9;6544:7;6540:23;6536:33;6533:120;;;6572:79;;:::i;:::-;6533:120;6692:1;6717:53;6762:7;6753:6;6742:9;6738:22;6717:53;:::i;:::-;6707:63;;6663:117;6819:2;6845:53;6890:7;6881:6;6870:9;6866:22;6845:53;:::i;:::-;6835:63;;6790:118;6947:2;6973:53;7018:7;7009:6;6998:9;6994:22;6973:53;:::i;:::-;6963:63;;6918:118;7075:2;7101:52;7145:7;7136:6;7125:9;7121:22;7101:52;:::i;:::-;7091:62;;7046:117;7202:3;7229:61;7282:7;7273:6;7262:9;7258:22;7229:61;:::i;:::-;7219:71;;7173:127;6382:925;;;;;;;;:::o;7313:474::-;7381:6;7389;7438:2;7426:9;7417:7;7413:23;7409:32;7406:119;;;7444:79;;:::i;:::-;7406:119;7564:1;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7535:117;7691:2;7717:53;7762:7;7753:6;7742:9;7738:22;7717:53;:::i;:::-;7707:63;;7662:118;7313:474;;;;;:::o;7793:345::-;7860:6;7909:2;7897:9;7888:7;7884:23;7880:32;7877:119;;;7915:79;;:::i;:::-;7877:119;8035:1;8060:61;8113:7;8104:6;8093:9;8089:22;8060:61;:::i;:::-;8050:71;;8006:125;7793:345;;;;:::o;8144:118::-;8231:24;8249:5;8231:24;:::i;:::-;8226:3;8219:37;8144:118;;:::o;8268:222::-;8361:4;8399:2;8388:9;8384:18;8376:26;;8412:71;8480:1;8469:9;8465:17;8456:6;8412:71;:::i;:::-;8268:222;;;;:::o;8496:145::-;8565:9;8598:37;8629:5;8598:37;:::i;:::-;8585:50;;8496:145;;;:::o;8647:169::-;8753:56;8803:5;8753:56;:::i;:::-;8748:3;8741:69;8647:169;;:::o;8822:260::-;8934:4;8972:2;8961:9;8957:18;8949:26;;8985:90;9072:1;9061:9;9057:17;9048:6;8985:90;:::i;:::-;8822:260;;;;:::o;9088:329::-;9147:6;9196:2;9184:9;9175:7;9171:23;9167:32;9164:119;;;9202:79;;:::i;:::-;9164:119;9322:1;9347:53;9392:7;9383:6;9372:9;9368:22;9347:53;:::i;:::-;9337:63;;9293:117;9088:329;;;;:::o;9423:117::-;9532:1;9529;9522:12;9546:117;9655:1;9652;9645:12;9669:180;9717:77;9714:1;9707:88;9814:4;9811:1;9804:15;9838:4;9835:1;9828:15;9855:281;9938:27;9960:4;9938:27;:::i;:::-;9930:6;9926:40;10068:6;10056:10;10053:22;10032:18;10020:10;10017:34;10014:62;10011:88;;;10079:18;;:::i;:::-;10011:88;10119:10;10115:2;10108:22;9898:238;9855:281;;:::o;10142:129::-;10176:6;10203:20;;:::i;:::-;10193:30;;10232:33;10260:4;10252:6;10232:33;:::i;:::-;10142:129;;;:::o;10277:308::-;10339:4;10429:18;10421:6;10418:30;10415:56;;;10451:18;;:::i;:::-;10415:56;10489:29;10511:6;10489:29;:::i;:::-;10481:37;;10573:4;10567;10563:15;10555:23;;10277:308;;;:::o;10591:434::-;10680:5;10705:66;10721:49;10763:6;10721:49;:::i;:::-;10705:66;:::i;:::-;10696:75;;10794:6;10787:5;10780:21;10832:4;10825:5;10821:16;10870:3;10861:6;10856:3;10852:16;10849:25;10846:112;;;10877:79;;:::i;:::-;10846:112;10967:52;11012:6;11007:3;11002;10967:52;:::i;:::-;10686:339;10591:434;;;;;:::o;11045:355::-;11112:5;11161:3;11154:4;11146:6;11142:17;11138:27;11128:122;;11169:79;;:::i;:::-;11128:122;11279:6;11273:13;11304:90;11390:3;11382:6;11375:4;11367:6;11363:17;11304:90;:::i;:::-;11295:99;;11118:282;11045:355;;;;:::o;11406:524::-;11486:6;11535:2;11523:9;11514:7;11510:23;11506:32;11503:119;;;11541:79;;:::i;:::-;11503:119;11682:1;11671:9;11667:17;11661:24;11712:18;11704:6;11701:30;11698:117;;;11734:79;;:::i;:::-;11698:117;11839:74;11905:7;11896:6;11885:9;11881:22;11839:74;:::i;:::-;11829:84;;11632:291;11406:524;;;;:::o;11936:118::-;12007:22;12023:5;12007:22;:::i;:::-;12000:5;11997:33;11987:61;;12044:1;12041;12034:12;11987:61;11936:118;:::o;12060:139::-;12115:5;12146:6;12140:13;12131:22;;12162:31;12187:5;12162:31;:::i;:::-;12060:139;;;;:::o;12205:347::-;12273:6;12322:2;12310:9;12301:7;12297:23;12293:32;12290:119;;;12328:79;;:::i;:::-;12290:119;12448:1;12473:62;12527:7;12518:6;12507:9;12503:22;12473:62;:::i;:::-;12463:72;;12419:126;12205:347;;;;:::o;12558:173::-;12698:25;12694:1;12686:6;12682:14;12675:49;12558:173;:::o;12737:366::-;12879:3;12900:67;12964:2;12959:3;12900:67;:::i;:::-;12893:74;;12976:93;13065:3;12976:93;:::i;:::-;13094:2;13089:3;13085:12;13078:19;;12737:366;;;:::o;13109:419::-;13275:4;13313:2;13302:9;13298:18;13290:26;;13362:9;13356:4;13352:20;13348:1;13337:9;13333:17;13326:47;13390:131;13516:4;13390:131;:::i;:::-;13382:139;;13109:419;;;:::o;13534:143::-;13591:5;13622:6;13616:13;13607:22;;13638:33;13665:5;13638:33;:::i;:::-;13534:143;;;;:::o;13683:351::-;13753:6;13802:2;13790:9;13781:7;13777:23;13773:32;13770:119;;;13808:79;;:::i;:::-;13770:119;13928:1;13953:64;14009:7;14000:6;13989:9;13985:22;13953:64;:::i;:::-;13943:74;;13899:128;13683:351;;;;:::o;14040:161::-;14161:7;14190:5;14179:16;;14040:161;;;:::o;14207:310::-;14341:9;14374:137;14392:118;14401:108;14503:5;14401:108;:::i;:::-;14392:118;:::i;:::-;14374:137;:::i;:::-;14361:150;;14207:310;;;:::o;14523:299::-;14694:121;14809:5;14694:121;:::i;:::-;14689:3;14682:134;14523:299;;:::o;14828:500::-;15033:4;15071:2;15060:9;15056:18;15048:26;;15084:71;15152:1;15141:9;15137:17;15128:6;15084:71;:::i;:::-;15165:156;15317:2;15306:9;15302:18;15293:6;15165:156;:::i;:::-;14828:500;;;;;:::o;15334:90::-;15368:7;15411:5;15404:13;15397:21;15386:32;;15334:90;;;:::o;15430:116::-;15500:21;15515:5;15500:21;:::i;:::-;15493:5;15490:32;15480:60;;15536:1;15533;15526:12;15480:60;15430:116;:::o;15552:137::-;15606:5;15637:6;15631:13;15622:22;;15653:30;15677:5;15653:30;:::i;:::-;15552:137;;;;:::o;15695:345::-;15762:6;15811:2;15799:9;15790:7;15786:23;15782:32;15779:119;;;15817:79;;:::i;:::-;15779:119;15937:1;15962:61;16015:7;16006:6;15995:9;15991:22;15962:61;:::i;:::-;15952:71;;15908:125;15695:345;;;;:::o;16046:115::-;16131:23;16148:5;16131:23;:::i;:::-;16126:3;16119:36;16046:115;;:::o;16167:438::-;16314:4;16352:2;16341:9;16337:18;16329:26;;16365:71;16433:1;16422:9;16418:17;16409:6;16365:71;:::i;:::-;16446:72;16514:2;16503:9;16499:18;16490:6;16446:72;:::i;:::-;16528:70;16594:2;16583:9;16579:18;16570:6;16528:70;:::i;:::-;16167:438;;;;;;:::o;16611:169::-;16751:21;16747:1;16739:6;16735:14;16728:45;16611:169;:::o;16786:366::-;16928:3;16949:67;17013:2;17008:3;16949:67;:::i;:::-;16942:74;;17025:93;17114:3;17025:93;:::i;:::-;17143:2;17138:3;17134:12;17127:19;;16786:366;;;:::o;17158:419::-;17324:4;17362:2;17351:9;17347:18;17339:26;;17411:9;17405:4;17401:20;17397:1;17386:9;17382:17;17375:47;17439:131;17565:4;17439:131;:::i;:::-;17431:139;;17158:419;;;:::o;17583:122::-;17656:24;17674:5;17656:24;:::i;:::-;17649:5;17646:35;17636:63;;17695:1;17692;17685:12;17636:63;17583:122;:::o;17711:143::-;17768:5;17799:6;17793:13;17784:22;;17815:33;17842:5;17815:33;:::i;:::-;17711:143;;;;:::o;17860:90::-;17895:7;17938:5;17935:1;17924:20;17913:31;;17860:90;;;:::o;17956:118::-;18027:22;18043:5;18027:22;:::i;:::-;18020:5;18017:33;18007:61;;18064:1;18061;18054:12;18007:61;17956:118;:::o;18080:139::-;18135:5;18166:6;18160:13;18151:22;;18182:31;18207:5;18182:31;:::i;:::-;18080:139;;;;:::o;18225:89::-;18261:7;18301:6;18294:5;18290:18;18279:29;;18225:89;;;:::o;18320:120::-;18392:23;18409:5;18392:23;:::i;:::-;18385:5;18382:34;18372:62;;18430:1;18427;18420:12;18372:62;18320:120;:::o;18446:141::-;18502:5;18533:6;18527:13;18518:22;;18549:32;18575:5;18549:32;:::i;:::-;18446:141;;;;:::o;18593:1271::-;18707:6;18715;18723;18731;18739;18747;18755;18804:3;18792:9;18783:7;18779:23;18775:33;18772:120;;;18811:79;;:::i;:::-;18772:120;18931:1;18956:64;19012:7;19003:6;18992:9;18988:22;18956:64;:::i;:::-;18946:74;;18902:128;19069:2;19095:62;19149:7;19140:6;19129:9;19125:22;19095:62;:::i;:::-;19085:72;;19040:127;19206:2;19232:63;19287:7;19278:6;19267:9;19263:22;19232:63;:::i;:::-;19222:73;;19177:128;19344:2;19370:63;19425:7;19416:6;19405:9;19401:22;19370:63;:::i;:::-;19360:73;;19315:128;19482:3;19509:63;19564:7;19555:6;19544:9;19540:22;19509:63;:::i;:::-;19499:73;;19453:129;19621:3;19648:62;19702:7;19693:6;19682:9;19678:22;19648:62;:::i;:::-;19638:72;;19592:128;19759:3;19786:61;19839:7;19830:6;19819:9;19815:22;19786:61;:::i;:::-;19776:71;;19730:127;18593:1271;;;;;;;;;;:::o;19870:175::-;20010:27;20006:1;19998:6;19994:14;19987:51;19870:175;:::o;20051:366::-;20193:3;20214:67;20278:2;20273:3;20214:67;:::i;:::-;20207:74;;20290:93;20379:3;20290:93;:::i;:::-;20408:2;20403:3;20399:12;20392:19;;20051:366;;;:::o;20423:419::-;20589:4;20627:2;20616:9;20612:18;20604:26;;20676:9;20670:4;20666:20;20662:1;20651:9;20647:17;20640:47;20704:131;20830:4;20704:131;:::i;:::-;20696:139;;20423:419;;;:::o;20848:180::-;20988:32;20984:1;20976:6;20972:14;20965:56;20848:180;:::o;21034:366::-;21176:3;21197:67;21261:2;21256:3;21197:67;:::i;:::-;21190:74;;21273:93;21362:3;21273:93;:::i;:::-;21391:2;21386:3;21382:12;21375:19;;21034:366;;;:::o;21406:419::-;21572:4;21610:2;21599:9;21595:18;21587:26;;21659:9;21653:4;21649:20;21645:1;21634:9;21630:17;21623:47;21687:131;21813:4;21687:131;:::i;:::-;21679:139;;21406:419;;;:::o;21831:118::-;21918:24;21936:5;21918:24;:::i;:::-;21913:3;21906:37;21831:118;;:::o;21955:442::-;22104:4;22142:2;22131:9;22127:18;22119:26;;22155:71;22223:1;22212:9;22208:17;22199:6;22155:71;:::i;:::-;22236:72;22304:2;22293:9;22289:18;22280:6;22236:72;:::i;:::-;22318;22386:2;22375:9;22371:18;22362:6;22318:72;:::i;:::-;21955:442;;;;;;:::o;22403:165::-;22543:17;22539:1;22531:6;22527:14;22520:41;22403:165;:::o;22574:366::-;22716:3;22737:67;22801:2;22796:3;22737:67;:::i;:::-;22730:74;;22813:93;22902:3;22813:93;:::i;:::-;22931:2;22926:3;22922:12;22915:19;;22574:366;;;:::o;22946:419::-;23112:4;23150:2;23139:9;23135:18;23127:26;;23199:9;23193:4;23189:20;23185:1;23174:9;23170:17;23163:47;23227:131;23353:4;23227:131;:::i;:::-;23219:139;;22946:419;;;:::o;23371:349::-;23440:6;23489:2;23477:9;23468:7;23464:23;23460:32;23457:119;;;23495:79;;:::i;:::-;23457:119;23615:1;23640:63;23695:7;23686:6;23675:9;23671:22;23640:63;:::i;:::-;23630:73;;23586:127;23371:349;;;;:::o;23726:180::-;23774:77;23771:1;23764:88;23871:4;23868:1;23861:15;23895:4;23892:1;23885:15;23912:410;23952:7;23975:20;23993:1;23975:20;:::i;:::-;23970:25;;24009:20;24027:1;24009:20;:::i;:::-;24004:25;;24064:1;24061;24057:9;24086:30;24104:11;24086:30;:::i;:::-;24075:41;;24265:1;24256:7;24252:15;24249:1;24246:22;24226:1;24219:9;24199:83;24176:139;;24295:18;;:::i;:::-;24176:139;23960:362;23912:410;;;;:::o;24328:180::-;24376:77;24373:1;24366:88;24473:4;24470:1;24463:15;24497:4;24494:1;24487:15;24514:185;24554:1;24571:20;24589:1;24571:20;:::i;:::-;24566:25;;24605:20;24623:1;24605:20;:::i;:::-;24600:25;;24644:1;24634:35;;24649:18;;:::i;:::-;24634:35;24691:1;24688;24684:9;24679:14;;24514:185;;;;:::o;24705:194::-;24745:4;24765:20;24783:1;24765:20;:::i;:::-;24760:25;;24799:20;24817:1;24799:20;:::i;:::-;24794:25;;24843:1;24840;24836:9;24828:17;;24867:1;24861:4;24858:11;24855:37;;;24872:18;;:::i;:::-;24855:37;24705:194;;;;:::o;24905:134::-;24963:9;24996:37;25027:5;24996:37;:::i;:::-;24983:50;;24905:134;;;:::o;25045:147::-;25140:45;25179:5;25140:45;:::i;:::-;25135:3;25128:58;25045:147;;:::o;25198:238::-;25299:4;25337:2;25326:9;25322:18;25314:26;;25350:79;25426:1;25415:9;25411:17;25402:6;25350:79;:::i;:::-;25198:238;;;;:::o;25442:222::-;25535:4;25573:2;25562:9;25558:18;25550:26;;25586:71;25654:1;25643:9;25639:17;25630:6;25586:71;:::i;:::-;25442:222;;;;:::o;25670:348::-;25799:4;25837:2;25826:9;25822:18;25814:26;;25850:79;25926:1;25915:9;25911:17;25902:6;25850:79;:::i;:::-;25939:72;26007:2;25996:9;25992:18;25983:6;25939:72;:::i;:::-;25670:348;;;;;:::o;26024:176::-;26164:28;26160:1;26152:6;26148:14;26141:52;26024:176;:::o;26206:366::-;26348:3;26369:67;26433:2;26428:3;26369:67;:::i;:::-;26362:74;;26445:93;26534:3;26445:93;:::i;:::-;26563:2;26558:3;26554:12;26547:19;;26206:366;;;:::o;26578:419::-;26744:4;26782:2;26771:9;26767:18;26759:26;;26831:9;26825:4;26821:20;26817:1;26806:9;26802:17;26795:47;26859:131;26985:4;26859:131;:::i;:::-;26851:139;;26578:419;;;:::o;27003:169::-;27143:21;27139:1;27131:6;27127:14;27120:45;27003:169;:::o;27178:366::-;27320:3;27341:67;27405:2;27400:3;27341:67;:::i;:::-;27334:74;;27417:93;27506:3;27417:93;:::i;:::-;27535:2;27530:3;27526:12;27519:19;;27178:366;;;:::o;27550:419::-;27716:4;27754:2;27743:9;27739:18;27731:26;;27803:9;27797:4;27793:20;27789:1;27778:9;27774:17;27767:47;27831:131;27957:4;27831:131;:::i;:::-;27823:139;;27550:419;;;:::o;27975:332::-;28096:4;28134:2;28123:9;28119:18;28111:26;;28147:71;28215:1;28204:9;28200:17;28191:6;28147:71;:::i;:::-;28228:72;28296:2;28285:9;28281:18;28272:6;28228:72;:::i;:::-;27975:332;;;;;:::o;28313:143::-;28370:5;28401:6;28395:13;28386:22;;28417:33;28444:5;28417:33;:::i;:::-;28313:143;;;;:::o;28462:351::-;28532:6;28581:2;28569:9;28560:7;28556:23;28552:32;28549:119;;;28587:79;;:::i;:::-;28549:119;28707:1;28732:64;28788:7;28779:6;28768:9;28764:22;28732:64;:::i;:::-;28722:74;;28678:128;28462:351;;;;:::o;28819:191::-;28859:3;28878:20;28896:1;28878:20;:::i;:::-;28873:25;;28912:20;28930:1;28912:20;:::i;:::-;28907:25;;28955:1;28952;28948:9;28941:16;;28976:3;28973:1;28970:10;28967:36;;;28983:18;;:::i;:::-;28967:36;28819:191;;;;:::o;29016:108::-;29093:24;29111:5;29093:24;:::i;:::-;29088:3;29081:37;29016:108;;:::o;29130:105::-;29205:23;29222:5;29205:23;:::i;:::-;29200:3;29193:36;29130:105;;:::o;29241:108::-;29318:24;29336:5;29318:24;:::i;:::-;29313:3;29306:37;29241:108;;:::o;29355:::-;29432:24;29450:5;29432:24;:::i;:::-;29427:3;29420:37;29355:108;;:::o;29563:1623::-;29738:6;29733:3;29729:16;29830:4;29823:5;29819:16;29813:23;29849:63;29906:4;29901:3;29897:14;29883:12;29849:63;:::i;:::-;29755:167;30008:4;30001:5;29997:16;29991:23;30027:63;30084:4;30079:3;30075:14;30061:12;30027:63;:::i;:::-;29932:168;30181:4;30174:5;30170:16;30164:23;30200:61;30255:4;30250:3;30246:14;30232:12;30200:61;:::i;:::-;30110:161;30358:4;30351:5;30347:16;30341:23;30377:63;30434:4;30429:3;30425:14;30411:12;30377:63;:::i;:::-;30281:169;30536:4;30529:5;30525:16;30519:23;30555:63;30612:4;30607:3;30603:14;30589:12;30555:63;:::i;:::-;30460:168;30714:4;30707:5;30703:16;30697:23;30733:63;30790:4;30785:3;30781:14;30767:12;30733:63;:::i;:::-;30638:168;30900:4;30893:5;30889:16;30883:23;30919:63;30976:4;30971:3;30967:14;30953:12;30919:63;:::i;:::-;30816:176;31087:4;31080:5;31076:16;31070:23;31106:63;31163:4;31158:3;31154:14;31140:12;31106:63;:::i;:::-;31002:177;29707:1479;29563:1623;;:::o;31192:379::-;31363:4;31401:3;31390:9;31386:19;31378:27;;31415:149;31561:1;31550:9;31546:17;31537:6;31415:149;:::i;:::-;31192:379;;;;:::o;31577:147::-;31678:11;31715:3;31700:18;;31577:147;;;;:::o;31730:114::-;;:::o;31850:398::-;32009:3;32030:83;32111:1;32106:3;32030:83;:::i;:::-;32023:90;;32122:93;32211:3;32122:93;:::i;:::-;32240:1;32235:3;32231:11;32224:18;;31850:398;;;:::o;32254:379::-;32438:3;32460:147;32603:3;32460:147;:::i;:::-;32453:154;;32624:3;32617:10;;32254:379;;;:::o;32639:168::-;32779:20;32775:1;32767:6;32763:14;32756:44;32639:168;:::o;32813:366::-;32955:3;32976:67;33040:2;33035:3;32976:67;:::i;:::-;32969:74;;33052:93;33141:3;33052:93;:::i;:::-;33170:2;33165:3;33161:12;33154:19;;32813:366;;;:::o;33185:419::-;33351:4;33389:2;33378:9;33374:18;33366:26;;33438:9;33432:4;33428:20;33424:1;33413:9;33409:17;33402:47;33466:131;33592:4;33466:131;:::i;:::-;33458:139;;33185:419;;;:::o;33610:179::-;33750:31;33746:1;33738:6;33734:14;33727:55;33610:179;:::o;33795:366::-;33937:3;33958:67;34022:2;34017:3;33958:67;:::i;:::-;33951:74;;34034:93;34123:3;34034:93;:::i;:::-;34152:2;34147:3;34143:12;34136:19;;33795:366;;;:::o;34167:419::-;34333:4;34371:2;34360:9;34356:18;34348:26;;34420:9;34414:4;34410:20;34406:1;34395:9;34391:17;34384:47;34448:131;34574:4;34448:131;:::i;:::-;34440:139;;34167:419;;;:::o
Swarm Source
ipfs://97738ff8e9d5a961a4f51e79e3cee758b7ef4ecad488ec3fbf6a92c2d4def38b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.