Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 13 from a total of 13 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Rebalance | 17624276 | 1023 days ago | IN | 0 ETH | 0.05600457 | ||||
| Rebalance | 17486331 | 1042 days ago | IN | 0 ETH | 0.0330777 | ||||
| Rebalance | 17037880 | 1105 days ago | IN | 0 ETH | 0.06338541 | ||||
| Revoke Role | 16875984 | 1128 days ago | IN | 0 ETH | 0.00068847 | ||||
| Rebalance | 16821901 | 1136 days ago | IN | 0 ETH | 0.05014817 | ||||
| Rebalance | 16794360 | 1140 days ago | IN | 0 ETH | 0.06672118 | ||||
| Grant Role | 16698642 | 1153 days ago | IN | 0 ETH | 0.00294226 | ||||
| Rebalance | 16665992 | 1158 days ago | IN | 0 ETH | 0.01330413 | ||||
| Rebalance | 16665980 | 1158 days ago | IN | 0 ETH | 0.01329057 | ||||
| Rebalance | 16665626 | 1158 days ago | IN | 0 ETH | 0.02133348 | ||||
| Rebalance | 16665595 | 1158 days ago | IN | 0 ETH | 0.03326651 | ||||
| Update Mutable P... | 16665159 | 1158 days ago | IN | 0 ETH | 0.00712806 | ||||
| Initialize | 16665119 | 1158 days ago | IN | 0 ETH | 0.02000868 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Heuristics suggest this may be a proxy contract. Verify using the Proxy Contract Checker
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract INonfungiblePositionManager","name":"positionManager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"PositionBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"PositionMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"Rebalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenInIndex","type":"uint256"}],"name":"TokensSwapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"int24","name":"priceImpactD6","type":"int24"},{"internalType":"int24","name":"intervalWidth","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"maxDeviationForVaultPool","type":"int24"},{"internalType":"uint32","name":"timespanForAverageTick","type":"uint32"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"swapSlippageD","type":"uint256"},{"internalType":"uint256","name":"swappingAmountsCoefficientD","type":"uint256"},{"internalType":"uint256[]","name":"minSwapAmounts","type":"uint256[]"}],"indexed":false,"internalType":"struct PulseStrategy.MutableParams","name":"mutableParams","type":"tuple"}],"name":"UpdateMutableParams","type":"event"},{"inputs":[],"name":"ADMIN_DELEGATE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"D6","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"D9","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Q96","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"router","type":"address"},{"internalType":"contract IERC20Vault","name":"erc20Vault","type":"address"},{"internalType":"contract IUniV3Vault","name":"uniV3Vault","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"internalType":"struct PulseStrategy.ImmutableParams","name":"immutableParams_","type":"tuple"},{"components":[{"internalType":"int24","name":"priceImpactD6","type":"int24"},{"internalType":"int24","name":"intervalWidth","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"maxDeviationForVaultPool","type":"int24"},{"internalType":"uint32","name":"timespanForAverageTick","type":"uint32"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"swapSlippageD","type":"uint256"},{"internalType":"uint256","name":"swappingAmountsCoefficientD","type":"uint256"},{"internalType":"uint256[]","name":"minSwapAmounts","type":"uint256[]"}],"internalType":"struct PulseStrategy.MutableParams","name":"mutableParams_","type":"tuple"},{"internalType":"uint256","name":"priceX96","type":"uint256"},{"internalType":"uint256","name":"targetRatioOfToken1X96","type":"uint256"}],"name":"calculateAmountsForSwap","outputs":[{"internalType":"uint256","name":"tokenInIndex","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int24","name":"priceImpactD6","type":"int24"},{"internalType":"int24","name":"intervalWidth","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"maxDeviationForVaultPool","type":"int24"},{"internalType":"uint32","name":"timespanForAverageTick","type":"uint32"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"swapSlippageD","type":"uint256"},{"internalType":"uint256","name":"swappingAmountsCoefficientD","type":"uint256"},{"internalType":"uint256[]","name":"minSwapAmounts","type":"uint256[]"}],"internalType":"struct PulseStrategy.MutableParams","name":"mutableParams_","type":"tuple"},{"internalType":"int24","name":"spotTick","type":"int24"},{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"uint256","name":"uniV3Nft","type":"uint256"}],"name":"calculateNewPosition","outputs":[{"components":[{"internalType":"int24","name":"lowerTick","type":"int24"},{"internalType":"int24","name":"upperTick","type":"int24"}],"internalType":"struct PulseStrategy.Interval","name":"newInterval","type":"tuple"},{"internalType":"bool","name":"neededNewInterval","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int24","name":"lowerTick","type":"int24"},{"internalType":"int24","name":"upperTick","type":"int24"}],"internalType":"struct PulseStrategy.Interval","name":"interval","type":"tuple"},{"internalType":"uint160","name":"sqrtSpotPriceX96","type":"uint160"},{"internalType":"uint256","name":"spotPriceX96","type":"uint256"}],"name":"calculateTargetRatioOfToken1","outputs":[{"internalType":"uint256","name":"targetRatioOfToken1X96","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"router","type":"address"},{"internalType":"contract IERC20Vault","name":"erc20Vault","type":"address"},{"internalType":"contract IUniV3Vault","name":"uniV3Vault","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"internalType":"struct PulseStrategy.ImmutableParams","name":"params","type":"tuple"}],"name":"checkImmutableParams","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int24","name":"priceImpactD6","type":"int24"},{"internalType":"int24","name":"intervalWidth","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"maxDeviationForVaultPool","type":"int24"},{"internalType":"uint32","name":"timespanForAverageTick","type":"uint32"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"swapSlippageD","type":"uint256"},{"internalType":"uint256","name":"swappingAmountsCoefficientD","type":"uint256"},{"internalType":"uint256[]","name":"minSwapAmounts","type":"uint256[]"}],"internalType":"struct PulseStrategy.MutableParams","name":"params","type":"tuple"},{"components":[{"internalType":"address","name":"router","type":"address"},{"internalType":"contract IERC20Vault","name":"erc20Vault","type":"address"},{"internalType":"contract IUniV3Vault","name":"uniV3Vault","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"internalType":"struct PulseStrategy.ImmutableParams","name":"immutableParams_","type":"tuple"}],"name":"checkMutableParams","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int24","name":"priceImpactD6","type":"int24"},{"internalType":"int24","name":"intervalWidth","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"maxDeviationForVaultPool","type":"int24"},{"internalType":"uint32","name":"timespanForAverageTick","type":"uint32"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"swapSlippageD","type":"uint256"},{"internalType":"uint256","name":"swappingAmountsCoefficientD","type":"uint256"},{"internalType":"uint256[]","name":"minSwapAmounts","type":"uint256[]"}],"internalType":"struct PulseStrategy.MutableParams","name":"mutableParams_","type":"tuple"},{"internalType":"contract IUniswapV3Pool","name":"vaultPool","type":"address"}],"name":"checkTickDeviation","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"contractNameBytes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"contractVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"contractVersionBytes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"depositCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"immutableParams","outputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"contract IERC20Vault","name":"erc20Vault","type":"address"},{"internalType":"contract IUniV3Vault","name":"uniV3Vault","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"router","type":"address"},{"internalType":"contract IERC20Vault","name":"erc20Vault","type":"address"},{"internalType":"contract IUniV3Vault","name":"uniV3Vault","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"internalType":"struct PulseStrategy.ImmutableParams","name":"immutableParams_","type":"tuple"},{"internalType":"address","name":"admin","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mutableParams","outputs":[{"internalType":"int24","name":"priceImpactD6","type":"int24"},{"internalType":"int24","name":"intervalWidth","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"maxDeviationForVaultPool","type":"int24"},{"internalType":"uint32","name":"timespanForAverageTick","type":"uint32"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"swapSlippageD","type":"uint256"},{"internalType":"uint256","name":"swappingAmountsCoefficientD","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"positionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes","name":"swapData","type":"bytes"}],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int24","name":"priceImpactD6","type":"int24"},{"internalType":"int24","name":"intervalWidth","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"maxDeviationForVaultPool","type":"int24"},{"internalType":"uint32","name":"timespanForAverageTick","type":"uint32"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"swapSlippageD","type":"uint256"},{"internalType":"uint256","name":"swappingAmountsCoefficientD","type":"uint256"},{"internalType":"uint256[]","name":"minSwapAmounts","type":"uint256[]"}],"internalType":"struct PulseStrategy.MutableParams","name":"mutableParams_","type":"tuple"}],"name":"updateMutableParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60a06040523480156200001157600080fd5b506040516200595938038062005959833981016040819052620000349162000093565b60408051808201909152600281526120ad60f11b60208201526001600160a01b038216620000805760405162461bcd60e51b8152600401620000779190620000c5565b60405180910390fd5b506001600160a01b03166080526200011d565b600060208284031215620000a657600080fd5b81516001600160a01b0381168114620000be57600080fd5b9392505050565b600060208083528351808285015260005b81811015620000f457858101830151858201604001528201620000d6565b8181111562000107576000604083870101525b50601f01601f1916929092016040019392505050565b6080516157fd6200015c600039600081816104940152818161178d015281816120c1015281816130bd015281816132bb015261336f01526157fd6000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c806375b238fc11610130578063a217fddf116100b8578063d547741f1161007c578063d547741f146105b3578063e521826f146105c6578063f05329b2146105ce578063f936506c146105e1578063fe57ed61146105f457600080fd5b8063a217fddf1461052e578063ac9650d814610536578063b4559f3e1461029f578063c8014d5314610556578063ca15c873146105a057600080fd5b806391d14854116100ff57806391d14854146104e1578063983d2737146104f45780639bb37ba814610509578063a0a8e4601461051c578063a11bac741461052457600080fd5b806375b238fc1461046557806375d0c0dc1461047a578063791b98bc1461048f5780639010d07c146104ce57600080fd5b80632f2ff15d116101be578063551530ae11610182578063551530ae146103795780635f408a211461038457806360aa27051461042c5780636d70f7ae1461043f5780636ff0b3581461045257600080fd5b80632f2ff15d1461030d57806336568abe146103205780634079246514610333578063475cffef1461033e57806350c9d3bb1461035157600080fd5b80630e3e80ac116102055780630e3e80ac146102a1578063158ef93e146102b757806319ab453c146102c4578063248a9ca3146102d757806324d7806c146102fa57600080fd5b806301ffc9a71461023757806306a462391461025f5780630952ff54146102775780630e3055151461028c575b600080fd5b61024a610245366004614115565b610632565b60405190151581526020015b60405180910390f35b640312e302e360dc1b5b604051908152602001610256565b61026960008051602061574183398151915281565b61029f61029a36600461444c565b610662565b005b6c50756c7365537472617465677960981b610269565b60025461024a9060ff1681565b61029f6102d23660046144af565b610b06565b6102696102e53660046144cc565b60009081526020819052604090206001015490565b61024a6103083660046144af565b610c2c565b61029f61031b3660046144e5565b610c64565b61029f61032e3660046144e5565b610c8f565b610269600160601b81565b61029f61034c366004614515565b610d0d565b61036461035f366004614549565b6112ac565b60408051928352602083019190915201610256565b610269633b9aca0081565b600754600854600954600a54600b546103d294600281810b9563010000008304820b95600160301b8404830b95600160481b850490930b94600160601b90940463ffffffff16939192909189565b6040805160029a8b0b8152988a0b60208a015296890b968801969096529390960b606086015263ffffffff909116608085015260a084015260c083019390935260e082019290925261010081019190915261012001610256565b61029f61043a3660046145bc565b61153a565b61024a61044d3660046144af565b6116f4565b61029f6104603660046145f0565b61170e565b61026960008051602061576183398151915281565b6104826118ee565b604051610256919061468e565b6104b67f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610256565b6104b66104dc3660046146a1565b611909565b61024a6104ef3660046144e5565b611928565b61026960008051602061578183398151915281565b6102696105173660046146c3565b611951565b610482611a3c565b610269620f424081565b610269600081565b61054961054436600461474e565b611a4f565b60405161025691906147c2565b600354600454600554610576926001600160a01b03908116928116911683565b604080516001600160a01b0394851681529284166020840152921691810191909152606001610256565b6102696105ae3660046144cc565b611b45565b61029f6105c13660046144e5565b611b5c565b61029f611b82565b61029f6105dc366004614824565b611c1c565b61029f6105ef366004614859565b611d63565b6106076106023660046148d4565b612075565b604080518351600290810b8252602094850151900b9381019390935290151590820152606001610256565b60006001600160e01b03198216635a05180f60e01b14806106575750610657826122dd565b92915050565b905090565b600081604001516001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106a157600080fd5b505afa1580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d9919061493d565b6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561071157600080fd5b505afa158015610725573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107499190614965565b90506000836020015160020b13801561077c5750610768816002614998565b83602001516107779190614a3b565b60020b155b6040518060400160405280600381526020016224a72b60e91b815250906107bf5760405162461bcd60e51b81526004016107b6919061468e565b60405180910390fd5b5082602001516107ce90614a5d565b60020b836040015160020b121580156108015750600283602001516107f39190614a80565b60020b836040015160020b13155b604051806040016040528060048152602001634c494d4f60e01b8152509061083c5760405162461bcd60e51b81526004016107b6919061468e565b506000836060015160020b13604051806040016040528060048152602001634c494d5560e01b815250906108835760405162461bcd60e51b81526004016107b6919061468e565b506000836080015163ffffffff1611604051806040016040528060028152602001612b2d60f11b815250906108cb5760405162461bcd60e51b81526004016107b6919061468e565b5062093a80836080015163ffffffff1610604051806040016040528060028152602001612b2d60f11b815250906109155760405162461bcd60e51b81526004016107b6919061468e565b5060008360a0015111604051806040016040528060028152602001612b2d60f11b815250906109575760405162461bcd60e51b81526004016107b6919061468e565b50633b9aca008360a001511115604051806040016040528060048152602001634c494d4f60e01b8152509061099f5760405162461bcd60e51b81526004016107b6919061468e565b5060008360c0015111604051806040016040528060028152602001612b2d60f11b815250906109e15760405162461bcd60e51b81526004016107b6919061468e565b50633b9aca008360c001511115604051806040016040528060048152602001634c494d4f60e01b81525090610a295760405162461bcd60e51b81526004016107b6919061468e565b5082610120015151600214604051806040016040528060048152602001631253959360e21b81525090610a6f5760405162461bcd60e51b81526004016107b6919061468e565b50633b9aca008360e001511115604051806040016040528060048152602001634c494d4f60e01b81525090610ab75760405162461bcd60e51b81526004016107b6919061468e565b50633b9aca008361010001511115604051806040016040528060048152602001634c494d4f60e01b81525090610b005760405162461bcd60e51b81526004016107b6919061468e565b50505050565b60408051808201909152600281526120ad60f11b60208201526001600160a01b038216610b465760405162461bcd60e51b81526004016107b6919061468e565b506002546040805180820190915260048152631253925560e21b60208201529060ff1615610b875760405162461bcd60e51b81526004016107b6919061468e565b50610ba060008051602061578183398151915282612312565b610bb860008051602061576183398151915282612312565b610bd06000805160206157618339815191528061231c565b610bf660008051602061574183398151915260008051602061576183398151915261231c565b610c1c60008051602061578183398151915260008051602061574183398151915261231c565b506002805460ff19166001179055565b6000610c4660008051602061576183398151915283611928565b80610657575061065760008051602061574183398151915283611928565b600082815260208190526040902060010154610c808133612367565b610c8a83836123cb565b505050565b6001600160a01b0381163314610cff5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107b6565b610d0982826123ed565b5050565b806060015151600214604051806040016040528060048152602001631253959360e21b81525090610d515760405162461bcd60e51b81526004016107b6919061468e565b5060006001600160a01b03168160600151600081518110610d7457610d74614aba565b60200260200101516001600160a01b031614156040518060400160405280600281526020016120ad60f11b81525090610dc05760405162461bcd60e51b81526004016107b6919061468e565b5060006001600160a01b03168160600151600181518110610de357610de3614aba565b60200260200101516001600160a01b031614156040518060400160405280600281526020016120ad60f11b81525090610e2f5760405162461bcd60e51b81526004016107b6919061468e565b50805160408051808201909152600281526120ad60f11b6020820152906001600160a01b0316610e725760405162461bcd60e51b81526004016107b6919061468e565b5060006001600160a01b031681602001516001600160a01b031614156040518060400160405280600281526020016120ad60f11b81525090610ec75760405162461bcd60e51b81526004016107b6919061468e565b50600081602001516001600160a01b031663697222336040518163ffffffff1660e01b815260040160006040518083038186803b158015610f0757600080fd5b505afa158015610f1b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f439190810190614adb565b90508051600214604051806040016040528060048152602001631253959360e21b81525090610f855760405162461bcd60e51b81526004016107b6919061468e565b508160600151600081518110610f9d57610f9d614aba565b60200260200101516001600160a01b031681600081518110610fc157610fc1614aba565b60200260200101516001600160a01b03161460405180604001604052806004815260200163494e564160e01b8152509061100e5760405162461bcd60e51b81526004016107b6919061468e565b50816060015160018151811061102657611026614aba565b60200260200101516001600160a01b03168160018151811061104a5761104a614aba565b60200260200101516001600160a01b03161460405180604001604052806004815260200163494e564160e01b815250906110975760405162461bcd60e51b81526004016107b6919061468e565b50506040808201518151808301909252600282526120ad60f11b60208301526001600160a01b03166110dc5760405162461bcd60e51b81526004016107b6919061468e565b50600081604001516001600160a01b031663697222336040518163ffffffff1660e01b815260040160006040518083038186803b15801561111c57600080fd5b505afa158015611130573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111589190810190614adb565b90508051600214604051806040016040528060048152602001631253959360e21b8152509061119a5760405162461bcd60e51b81526004016107b6919061468e565b5081606001516000815181106111b2576111b2614aba565b60200260200101516001600160a01b0316816000815181106111d6576111d6614aba565b60200260200101516001600160a01b03161460405180604001604052806004815260200163494e564160e01b815250906112235760405162461bcd60e51b81526004016107b6919061468e565b50816060015160018151811061123b5761123b614aba565b60200260200101516001600160a01b03168160018151811061125f5761125f614aba565b60200260200101516001600160a01b03161460405180604001604052806004815260200163494e564160e01b81525090610c8a5760405162461bcd60e51b81526004016107b6919061468e565b600080806112be84600160601b614b69565b9050600087602001516001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160006040518083038186803b1580156112ff57600080fd5b505afa158015611313573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261133b9190810190614bdb565b50905060006113b68260018151811061135657611356614aba565b6020026020010151600160601b61138c8560008151811061137957611379614aba565b60200260200101518b600160601b61240f565b8560018151811061139f5761139f614aba565b60200260200101516113b19190614c34565b61240f565b905060006113d3600160601b8a6000015160020b620f424061240f565b905086821115611479576001955060006113f2600160601b808b61240f565b905061147161141c898660008151811061140e5761140e614aba565b60200260200101518461240f565b6114458660018151811061143257611432614aba565b602002602001015188600160601b61240f565b61144f9190614b69565b600160601b6114638b86600160601b61240f565b6113b190600160601b614b69565b9550506114ef565b600095506114ec6114a5858560018151811061149757611497614aba565b60200260200101518b61240f565b6114ce856000815181106114bb576114bb614aba565b60200260200101518a600160601b61240f565b6114d89190614b69565b600160601b6114638785600160601b61240f565b94505b82868151811061150157611501614aba565b602002602001015185111561152d5782868151811061152257611522614aba565b602002602001015194505b5050505094509492505050565b6115426124c2565b60408051608081018252600380546001600160a01b039081168352600454811660208085019190915260055490911683850152600680548551818402810184019096528086526115df958795949360608601939192908301828280156115d157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115b3575b505050505081525050610662565b80516007805460208085015160408601516060870151608088015163ffffffff16600160601b0263ffffffff60601b1962ffffff928316600160481b026bffffff00000000000000000019948416600160301b02949094166bffffffffffff0000000000001995841663010000000265ffffffffffff199098169390991692909217959095179290921695909517949094179390931617815560a083015160085560c083015160095560e0830151600a55610100830151600b55610120830151805184936116b292600c92910190614060565b505060405133915032907faccfbfe1fb913357d3f38219613942ea367e6b50b076facee40e8400cf114f28906116e9908590614c87565b60405180910390a350565b600061065760008051602061578183398151915283611928565b61171782610d0d565b8151600380546001600160a01b03199081166001600160a01b039384161782556020808601516004805484169186169190911790556040860151600580549093169416939093179055606084015180518593611778926006929101906140ab565b5090505060005b60028110156118e4576117e57f0000000000000000000000000000000000000000000000000000000000000000600019856060015184815181106117c5576117c5614aba565b60200260200101516001600160a01b03166125089092919063ffffffff16565b82602001516001600160a01b0316632e2f4cc28460600151838151811061180e5761180e614aba565b602002602001015163095ea7b360e01b866000015160001960405160200161184b9291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161187893929190614d3c565b600060405180830381600087803b15801561189257600080fd5b505af19250505080156118c757506040513d6000823e601f3d908101601f191682016040526118c49190810190614d79565b60015b6118d0576118d2565b505b806118dc81614e0c565b91505061177f565b50610d0981610b06565b606061065d6c50756c7365537472617465677960981b6125eb565b60008281526001602052604081206119219083612657565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000806119618560000151612663565b6001600160a01b03169050600061197b8660200151612663565b6001600160a01b03169050846001600160a01b031682106119a157600092505050611921565b846001600160a01b031681116119bf57600160601b92505050611921565b60006119f46119d76001600160a01b03881684614b69565b600160601b6113b1896001600160a01b031686600160601b61240f565b90506000611a0b846001600160a01b038916614b69565b9050611a3081600160601b83611a26868b600160601b61240f565b6113b19190614c34565b98975050505050505050565b606061065d640312e302e360dc1b6125eb565b6060816001600160401b03811115611a6957611a6961413f565b604051908082528060200260200182016040528015611a9c57816020015b6060815260200190600190039081611a875790505b50905060005b82811015611b3c57611b0c30858584818110611ac057611ac0614aba565b9050602002810190611ad29190614e27565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a8092505050565b828281518110611b1e57611b1e614aba565b60200260200101819052508080611b3490614e0c565b915050611aa2565b5092915050565b565b600081815260016020526040812061065790612aa5565b600082815260208190526040902060010154611b788133612367565b610c8a83836123ed565b60408051608081018252600380546001600160a01b03908116835260045481166020808501919091526005549091168385015260068054855181840281018401909652808652611b4395606086019390929190830182828015611c0e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bf0575b505050505081525050612aaf565b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015611c5757600080fd5b505afa158015611c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8f9190614e96565b5050505050915050600080611ca8848660800151612c07565b925050915080156040518060400160405280600581526020016412539594d560da1b81525090611ceb5760405162461bcd60e51b81526004016107b6919061468e565b506000611cf88385614f29565b905060008160020b1215611d1257611d0f81614a5d565b90505b856060015160020b8160020b12604051806040016040528060048152602001634c494d4f60e01b81525090611d5a5760405162461bcd60e51b81526004016107b6919061468e565b50505050505050565b8242111560405180604001604052806002815260200161545360f01b81525090611da05760405162461bcd60e51b81526004016107b6919061468e565b50611da9612e61565b60408051608081018252600380546001600160a01b03908116835260045481166020808501919091526005549091168385015260068054855181840281018401909652808652600095606086019390929190830182828015611e3457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611e16575b505050919092525050604080516101408101825260078054600281810b845263010000008204810b602080860191909152600160301b8304820b85870152600160481b830490910b6060850152600160601b90910463ffffffff16608084015260085460a084015260095460c0840152600a5460e0840152600b54610100840152600c80548551818402810184019096528086529697506000969395509193610120860193909291830182828015611f0b57602002820191906000526020600020905b815481526020019060010190808311611ef7575b5050505050815250509050600082604001516001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5557600080fd5b505afa158015611f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8d919061493d565b9050611f998282611c1c565b600080826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015611fd557600080fd5b505afa158015611fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200d9190614e96565b505050505091509150600061202486868487612e79565b9050612034868683868c8c61341b565b61203d86612aaf565b604051339032907f6dcf4e69cd04d9def52d660ea37a5b366adb7701505e48e75c03d6a51a343f6490600090a3505050505050505050565b6040805180820190915260008082526020820152600082156121cd5760408051808201825260008082526020820152905163133f757160e31b8152600481018590526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906399fbab88906024016101806040518083038186803b15801561210457600080fd5b505afa158015612118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213c9190614f9b565b50505050600291820b60208a01525090810b80885260408e0151918d900b965061216c95509350915061507c9050565b60020b1315801561219657508660400151816020015161218c9190614f29565b60020b8660020b13155b80156121bb5750805160208201516121ae9190614f29565b60020b876020015160020b145b156121cb579150600090506122d4565b505b6000846001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561220857600080fd5b505afa15801561221c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122409190614965565b9050600061224e8288614a3b565b6122589088614f29565b9050600282900b6122698389614a3b565b612274906002614998565b60020b131561228a57612287828261507c565b90505b6002886020015161229b9190614a80565b6122a59082614f29565b600290810b855260208901516122bb9190614a80565b6122c5908261507c565b60020b60208501525060019150505b94509492505050565b60006001600160e01b03198216637965db0b60e01b148061065757506301ffc9a760e01b6001600160e01b0319831614610657565b610d0982826123cb565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6123718282611928565b610d0957612389816001600160a01b03166014613930565b612394836020613930565b6040516020016123a59291906150c3565b60408051601f198184030181529082905262461bcd60e51b82526107b69160040161468e565b6123d58282613acb565b6000828152600160205260409020610c8a9082613b4f565b6123f78282613b64565b6000828152600160205260409020610c8a9082613bc9565b600080806000198587098587029250828110838203039150508060001415612449576000841161243e57600080fd5b508290049050611921565b80841161245557600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6124cb33610c2c565b6040518060400160405280600381526020016223292160e91b815250906125055760405162461bcd60e51b81526004016107b6919061468e565b50565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b15801561255457600080fd5b505afa158015612568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258c9190615138565b6125969190614c34565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052909150610b00908590613bde565b604080516020808252818301909252606091602082018180368337019050509050602060005b60208110156126495783816020811061262c5761262c614aba565b1a61263957809150612649565b61264281614e0c565b9050612611565b508152602081019190915290565b60006119218383613cb0565b60008060008360020b1261267a578260020b612687565b8260020b61268790615151565b9050612696620d89e719614a5d565b60020b8111156126cc5760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016107b6565b6000600182166126e057600160801b6126f2565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561273157608061272c826ffff97272373d413259a46990580e213a61516e565b901c90505b600482161561275b576080612756826ffff2e50f5f656932ef12357cf3c7fdcc61516e565b901c90505b6008821615612785576080612780826fffe5caca7e10e4e61c3624eaa0941cd061516e565b901c90505b60108216156127af5760806127aa826fffcb9843d60f6159c9db58835c92664461516e565b901c90505b60208216156127d95760806127d4826fff973b41fa98c081472e6896dfb254c061516e565b901c90505b60408216156128035760806127fe826fff2ea16466c96a3843ec78b326b5286161516e565b901c90505b608082161561282d576080612828826ffe5dee046a99a2a811c461f1969c305361516e565b901c90505b610100821615612858576080612853826ffcbe86c7900a88aedcffc83b479aa3a461516e565b901c90505b61020082161561288357608061287e826ff987a7253ac413176f2b074cf7815e5461516e565b901c90505b6104008216156128ae5760806128a9826ff3392b0822b70005940c7a398e4b70f361516e565b901c90505b6108008216156128d95760806128d4826fe7159475a2c29b7443b29c7fa6e889d961516e565b901c90505b6110008216156129045760806128ff826fd097f3bdfd2022b8845ad8f792aa582561516e565b901c90505b61200082161561292f57608061292a826fa9f746462d870fdf8a65dc1f90e061e561516e565b901c90505b61400082161561295a576080612955826f70d869a156d2a1b890bb3df62baf32f761516e565b901c90505b618000821615612985576080612980826f31be135f97d08fd981231505542fcfa661516e565b901c90505b620100008216156129b15760806129ac826f09aa508b5b7a84e1c677de54f3e99bc961516e565b901c90505b620200008216156129dc5760806129d7826e5d6af8dedb81196699c329225ee60461516e565b901c90505b62040000821615612a06576080612a01826d2216e584f5fa1ea926041bedfe9861516e565b901c90505b62080000821615612a2e576080612a29826b048a170391f7dc42444e8fa261516e565b901c90505b60008460020b1315612a4957612a468160001961518d565b90505b612a58640100000000826151a1565b15612a64576001612a67565b60005b612a789060ff16602083901c614c34565b949350505050565b606061192183836040518060600160405280602781526020016157a160279139613cda565b6000610657825490565b600081602001516001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160006040518083038186803b158015612aee57600080fd5b505afa158015612b02573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b2a9190810190614bdb565b509050600081600081518110612b4257612b42614aba565b60200260200101511180612b705750600081600181518110612b6657612b66614aba565b6020026020010151115b15610d095781602001516001600160a01b0316632062d75483604001518460600151846040518463ffffffff1660e01b8152600401612bb1939291906151b5565b600060405180830381600087803b158015612bcb57600080fd5b505af1158015612bdf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c8a9190810190615235565b6000808063ffffffff8416612c435760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064016107b6565b6040805160028082526060820183526000926020830190803683370190505090508481600081518110612c7857612c78614aba565b602002602001019063ffffffff16908163ffffffff1681525050600081600181518110612ca757612ca7614aba565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526001600160a01b0387169063883bdbfd90612ce8908490600401615269565b60006040518083038186803b158015612d0057600080fd5b505afa925050508015612d3557506040513d6000823e601f3d908101601f19168201604052612d329190810190615317565b60015b612d4a57600080600193509350935050612e5a565b600082600081518110612d5f57612d5f614aba565b602002602001015183600181518110612d7a57612d7a614aba565b6020026020010151612d8c91906153d8565b9050600082600081518110612da357612da3614aba565b602002602001015183600181518110612dbe57612dbe614aba565b6020026020010151612dd0919061541e565b9050612de263ffffffff8a1683615446565b975060008260060b128015612e085750612e0263ffffffff8a168361547b565b60060b15155b15612e1b5787612e178161549d565b9850505b6000612e346001600160a01b0363ffffffff8c166154c1565b9050612e51640100000000600160c01b03602084901b16826154f0565b97505050505050505b9250925092565b612e6a33610c2c565b806124cb57506124cb336116f4565b60408051808201909152600080825260208201526000856040015190506000816001600160a01b031663f4adc08b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ed157600080fd5b505afa158015612ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f099190615138565b9050600080612f1a88888886612075565b9150915080612fa757836001600160a01b031663c27b2c2d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612f5e57600080fd5b505af1158015612f72573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f9a9190810190615235565b5081945050505050612a78565b82156130b957602089015160608a01516040516303217f1d60e61b81526001600160801b0360048201526001600160a01b03871692632062d754929091849063c85fc7409060240160006040518083038186803b15801561300757600080fd5b505afa15801561301b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130439190810190615235565b6040518463ffffffff1660e01b8152600401613061939291906151b5565b600060405180830381600087803b15801561307b57600080fd5b505af115801561308f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130b79190810190615235565b505b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663883164566040518061016001604052808d6060015160008151811061310d5761310d614aba565b60200260200101516001600160a01b031681526020018d6060015160018151811061313a5761313a614aba565b60200260200101516001600160a01b031681526020018a6001600160a01b031663ddca3f436040518163ffffffff1660e01b815260040160206040518083038186803b15801561318957600080fd5b505afa15801561319d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c19190615516565b62ffffff168152602001866000015160020b8152602001866020015160020b81526020018c60a0015181526020018c60c0015181526020016000815260200160008152602001306001600160a01b031681526020016000198152506040518263ffffffff1660e01b81526004016132389190615531565b608060405180830381600087803b15801561325257600080fd5b505af1158015613266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328a91906155f5565b5050604051632142170760e11b81523060048201526001600160a01b038881166024830152604482018490529293507f0000000000000000000000000000000000000000000000000000000000000000909216916342842e0e9150606401600060405180830381600087803b15801561330257600080fd5b505af1158015613316573d6000803e3d6000fd5b505050507face8748d23af65e86cf543d0298345b95115752e382befe3e832eacd1508adb08160405161334b91815260200190565b60405180910390a1831561340d57604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c6890602401600060405180830381600087803b1580156133bb57600080fd5b505af11580156133cf573d6000803e3d6000fd5b505050507f65d33d8ef62a81711748bbe2a7b67aef94d1a9af04a2690d3a4dfd13d9c1d22b8460405161340491815260200190565b60405180910390a15b509098975050505050505050565b60006134356001600160a01b03851680600160601b61240f565b905060008061344b89898561035f8b8b89611951565b91509150876101200151828151811061346657613466614aba565b602002602001015181101561347d57505050613928565b816001141561349857613495600160601b808561240f565b92505b600089602001516001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160006040518083038186803b1580156134d757600080fd5b505afa1580156134eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135139190810190614bdb565b5060208b01518b519192506001600160a01b031690632e2f4cc29061353c600460008a8c615631565b6135459161565b565b613552896004818d615631565b6040518563ffffffff1660e01b8152600401613571949392919061568b565b600060405180830381600087803b15801561358b57600080fd5b505af115801561359f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135c79190810190614d79565b5060008a602001516001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160006040518083038186803b15801561360757600080fd5b505afa15801561361b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136439190810190614bdb565b50905081848151811061365857613658614aba565b602002602001015181858151811061367257613672614aba565b6020026020010151111560405180604001604052806004815260200163494e564160e01b815250906136b75760405162461bcd60e51b81526004016107b6919061468e565b508184600118815181106136cd576136cd614aba565b60200260200101518185600118815181106136ea576136ea614aba565b6020026020010151101560405180604001604052806004815260200163494e564160e01b8152509061372f5760405162461bcd60e51b81526004016107b6919061468e565b50600081858151811061374457613744614aba565b602002602001015183868151811061375e5761375e614aba565b60200260200101516137709190614b69565b9050600083866001188151811061378957613789614aba565b60200260200101518387600118815181106137a6576137a6614aba565b60200260200101516137b89190614b69565b905060006137cb82600160601b8561240f565b9050806137f0898f60e00151633b9aca006137e69190614b69565b633b9aca0061240f565b1115604051806040016040528060048152602001634c494d5560e01b8152509061382d5760405162461bcd60e51b81526004016107b6919061468e565b5082613848878f6101000151633b9aca006137e69190614b69565b1115604051806040016040528060048152602001634c494d5560e01b815250906138855760405162461bcd60e51b81526004016107b6919061468e565b50856138a0848f6101000151633b9aca006137e69190614b69565b1115604051806040016040528060048152602001634c494d5560e01b815250906138dd5760405162461bcd60e51b81526004016107b6919061468e565b5060408051848152602081018490529081018890527f984c316f55901f828cae2a57394002595129e75b4546d4a80c6c1a4787d748c29060600160405180910390a150505050505050505b505050505050565b6060600061393f83600261516e565b61394a906002614c34565b6001600160401b038111156139615761396161413f565b6040519080825280601f01601f19166020018201604052801561398b576020820181803683370190505b509050600360fc1b816000815181106139a6576139a6614aba565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106139d5576139d5614aba565b60200101906001600160f81b031916908160001a90535060006139f984600261516e565b613a04906001614c34565b90505b6001811115613a7c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613a3857613a38614aba565b1a60f81b828281518110613a4e57613a4e614aba565b60200101906001600160f81b031916908160001a90535060049490941c93613a75816156dc565b9050613a07565b5083156119215760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107b6565b613ad58282611928565b610d09576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055613b0b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611921836001600160a01b038416613dae565b613b6e8282611928565b15610d09576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611921836001600160a01b038416613dfd565b6000613c33826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613ef09092919063ffffffff16565b805190915015610c8a5780806020019051810190613c5191906156f3565b610c8a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107b6565b6000826000018281548110613cc757613cc7614aba565b9060005260206000200154905092915050565b6060833b613d395760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107b6565b600080856001600160a01b031685604051613d54919061570e565b600060405180830381855af49150503d8060008114613d8f576040519150601f19603f3d011682016040523d82523d6000602084013e613d94565b606091505b5091509150613da4828286613eff565b9695505050505050565b6000818152600183016020526040812054613df557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610657565b506000610657565b60008181526001830160205260408120548015613ee6576000613e21600183614b69565b8554909150600090613e3590600190614b69565b9050818114613e9a576000866000018281548110613e5557613e55614aba565b9060005260206000200154905080876000018481548110613e7857613e78614aba565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613eab57613eab61572a565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610657565b6000915050610657565b6060612a788484600085613f38565b60608315613f0e575081611921565b825115613f1e5782518084602001fd5b8160405162461bcd60e51b81526004016107b6919061468e565b606082471015613f995760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107b6565b843b613fe75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107b6565b600080866001600160a01b03168587604051614003919061570e565b60006040518083038185875af1925050503d8060008114614040576040519150601f19603f3d011682016040523d82523d6000602084013e614045565b606091505b5091509150614055828286613eff565b979650505050505050565b82805482825590600052602060002090810192821561409b579160200282015b8281111561409b578251825591602001919060010190614080565b506140a7929150614100565b5090565b82805482825590600052602060002090810192821561409b579160200282015b8281111561409b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906140cb565b5b808211156140a75760008155600101614101565b60006020828403121561412757600080fd5b81356001600160e01b03198116811461192157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156141785761417861413f565b60405290565b604051608081016001600160401b03811182821017156141785761417861413f565b604051601f8201601f191681016001600160401b03811182821017156141c8576141c861413f565b604052919050565b8060020b811461250557600080fd5b80356141ea816141d0565b919050565b803563ffffffff811681146141ea57600080fd5b60006001600160401b0382111561421c5761421c61413f565b5060051b60200190565b600082601f83011261423757600080fd5b8135602061424c61424783614203565b6141a0565b82815260059290921b8401810191818101908684111561426b57600080fd5b8286015b84811015614286578035835291830191830161426f565b509695505050505050565b600061014082840312156142a457600080fd5b6142ac614155565b90506142b7826141df565b81526142c5602083016141df565b60208201526142d6604083016141df565b60408201526142e7606083016141df565b60608201526142f8608083016141ef565b608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301356001600160401b0381111561434257600080fd5b61434e85828601614226565b82840152505092915050565b6001600160a01b038116811461250557600080fd5b60006080828403121561438157600080fd5b61438961417e565b905081356143968161435a565b81526020828101356143a78161435a565b8282015260408301356143b98161435a565b604083015260608301356001600160401b038111156143d757600080fd5b8301601f810185136143e857600080fd5b80356143f661424782614203565b81815260059190911b8201830190838101908783111561441557600080fd5b928401925b8284101561443c57833561442d8161435a565b8252928401929084019061441a565b6060860152509295945050505050565b6000806040838503121561445f57600080fd5b82356001600160401b038082111561447657600080fd5b61448286838701614291565b9350602085013591508082111561449857600080fd5b506144a58582860161436f565b9150509250929050565b6000602082840312156144c157600080fd5b81356119218161435a565b6000602082840312156144de57600080fd5b5035919050565b600080604083850312156144f857600080fd5b82359150602083013561450a8161435a565b809150509250929050565b60006020828403121561452757600080fd5b81356001600160401b0381111561453d57600080fd5b612a788482850161436f565b6000806000806080858703121561455f57600080fd5b84356001600160401b038082111561457657600080fd5b6145828883890161436f565b9550602087013591508082111561459857600080fd5b506145a587828801614291565b949794965050505060408301359260600135919050565b6000602082840312156145ce57600080fd5b81356001600160401b038111156145e457600080fd5b612a7884828501614291565b6000806040838503121561460357600080fd5b82356001600160401b0381111561461957600080fd5b6146258582860161436f565b925050602083013561450a8161435a565b60005b83811015614651578181015183820152602001614639565b83811115610b005750506000910152565b6000815180845261467a816020860160208601614636565b601f01601f19169290920160200192915050565b6020815260006119216020830184614662565b600080604083850312156146b457600080fd5b50508035926020909101359150565b600080600083850360808112156146d957600080fd5b60408112156146e757600080fd5b50604051604081018181106001600160401b038211171561470a5761470a61413f565b6040528435614718816141d0565b81526020850135614728816141d0565b60208201529250604084013561473d8161435a565b929592945050506060919091013590565b6000806020838503121561476157600080fd5b82356001600160401b038082111561477857600080fd5b818501915085601f83011261478c57600080fd5b81358181111561479b57600080fd5b8660208260051b85010111156147b057600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561481757603f19888603018452614805858351614662565b945092850192908501906001016147e9565b5092979650505050505050565b6000806040838503121561483757600080fd5b82356001600160401b0381111561484d57600080fd5b61462585828601614291565b60008060006040848603121561486e57600080fd5b8335925060208401356001600160401b038082111561488c57600080fd5b818601915086601f8301126148a057600080fd5b8135818111156148af57600080fd5b8760208285010111156148c157600080fd5b6020830194508093505050509250925092565b600080600080608085870312156148ea57600080fd5b84356001600160401b0381111561490057600080fd5b61490c87828801614291565b945050602085013561491d816141d0565b9250604085013561492d8161435a565b9396929550929360600135925050565b60006020828403121561494f57600080fd5b81516119218161435a565b80516141ea816141d0565b60006020828403121561497757600080fd5b8151611921816141d0565b634e487b7160e01b600052601160045260246000fd5b60008160020b8360020b627fffff6000821360008413838304851182821616156149c4576149c4614982565b627fffff1960008512828116878305871216156149e3576149e3614982565b600087129250858205871284841616156149ff576149ff614982565b85850587128184161615614a1557614a15614982565b5050509290910295945050505050565b634e487b7160e01b600052601260045260246000fd5b60008260020b80614a4e57614a4e614a25565b808360020b0791505092915050565b60008160020b627fffff19811415614a7757614a77614982565b60000392915050565b60008160020b8360020b80614a9757614a97614a25565b627fffff19821460001982141615614ab157614ab1614982565b90059392505050565b634e487b7160e01b600052603260045260246000fd5b80516141ea8161435a565b60006020808385031215614aee57600080fd5b82516001600160401b03811115614b0457600080fd5b8301601f81018513614b1557600080fd5b8051614b2361424782614203565b81815260059190911b82018301908381019087831115614b4257600080fd5b928401925b82841015614055578351614b5a8161435a565b82529284019290840190614b47565b600082821015614b7b57614b7b614982565b500390565b600082601f830112614b9157600080fd5b81516020614ba161424783614203565b82815260059290921b84018101918181019086841115614bc057600080fd5b8286015b848110156142865780518352918301918301614bc4565b60008060408385031215614bee57600080fd5b82516001600160401b0380821115614c0557600080fd5b614c1186838701614b80565b93506020850151915080821115614c2757600080fd5b506144a585828601614b80565b60008219821115614c4757614c47614982565b500190565b600081518084526020808501945080840160005b83811015614c7c57815187529582019590820190600101614c60565b509495945050505050565b60208152614c9b60208201835160020b9052565b60006020830151614cb1604084018260020b9052565b506040830151614cc6606084018260020b9052565b506060830151614cdb608084018260020b9052565b50608083015163ffffffff811660a08401525060a083015160c083015260c083015160e083015260e0830151610100818185015280850151915050610120818185015280850151915050610140808185015250612a78610160840182614c4c565b6001600160a01b03841681526001600160e01b031983166020820152606060408201819052600090614d7090830184614662565b95945050505050565b600060208284031215614d8b57600080fd5b81516001600160401b0380821115614da257600080fd5b818401915084601f830112614db657600080fd5b815181811115614dc857614dc861413f565b614ddb601f8201601f19166020016141a0565b9150808252856020828501011115614df257600080fd5b614e03816020840160208601614636565b50949350505050565b6000600019821415614e2057614e20614982565b5060010190565b6000808335601e19843603018112614e3e57600080fd5b8301803591506001600160401b03821115614e5857600080fd5b602001915036819003821315614e6d57600080fd5b9250929050565b805161ffff811681146141ea57600080fd5b805180151581146141ea57600080fd5b600080600080600080600060e0888a031215614eb157600080fd5b8751614ebc8161435a565b6020890151909750614ecd816141d0565b9550614edb60408901614e74565b9450614ee960608901614e74565b9350614ef760808901614e74565b925060a088015160ff81168114614f0d57600080fd5b9150614f1b60c08901614e86565b905092959891949750929550565b60008160020b8360020b6000811281627fffff1901831281151615614f5057614f50614982565b81627fffff018313811615614f6757614f67614982565b5090039392505050565b805162ffffff811681146141ea57600080fd5b80516001600160801b03811681146141ea57600080fd5b6000806000806000806000806000806000806101808d8f031215614fbe57600080fd5b8c516bffffffffffffffffffffffff81168114614fda57600080fd5b9b50614fe860208e01614ad0565b9a50614ff660408e01614ad0565b995061500460608e01614ad0565b985061501260808e01614f71565b975061502060a08e0161495a565b965061502e60c08e0161495a565b955061503c60e08e01614f84565b94506101008d015193506101208d0151925061505b6101408e01614f84565b915061506a6101608e01614f84565b90509295989b509295989b509295989b565b60008160020b8360020b6000821282627fffff038213811516156150a2576150a2614982565b82627fffff190382128116156150ba576150ba614982565b50019392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516150fb816017850160208801614636565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161512c816028840160208801614636565b01602801949350505050565b60006020828403121561514a57600080fd5b5051919050565b6000600160ff1b82141561516757615167614982565b5060000390565b600081600019048311821515161561518857615188614982565b500290565b60008261519c5761519c614a25565b500490565b6000826151b0576151b0614a25565b500690565b6001600160a01b0384811682526080602080840182905285519184018290526000928682019290919060a0860190855b818110156152035785518516835294830194918301916001016151e5565b505085810360408701526152178188614c4c565b86810360609097019690965250600085529093019695505050505050565b60006020828403121561524757600080fd5b81516001600160401b0381111561525d57600080fd5b612a7884828501614b80565b6020808252825182820181905260009190848201906040850190845b818110156152a757835163ffffffff1683529284019291840191600101615285565b50909695505050505050565b600082601f8301126152c457600080fd5b815160206152d461424783614203565b82815260059290921b840181019181810190868411156152f357600080fd5b8286015b8481101561428657805161530a8161435a565b83529183019183016152f7565b6000806040838503121561532a57600080fd5b82516001600160401b038082111561534157600080fd5b818501915085601f83011261535557600080fd5b8151602061536561424783614203565b82815260059290921b8401810191818101908984111561538457600080fd5b948201945b838610156153b25785518060060b81146153a35760008081fd5b82529482019490820190615389565b918801519196509093505050808211156153cb57600080fd5b506144a5858286016152b3565b60008160060b8360060b6000811281667fffffffffffff190183128115161561540357615403614982565b81667fffffffffffff018313811615614f6757614f67614982565b60006001600160a01b038381169083168181101561543e5761543e614982565b039392505050565b60008160060b8360060b8061545d5761545d614a25565b667fffffffffffff19821460001982141615614ab157614ab1614982565b60008260060b8061548e5761548e614a25565b808360060b0791505092915050565b60008160020b627fffff198114156154b7576154b7614982565b6000190192915050565b60006001600160c01b03828116848216811515828404821116156154e7576154e7614982565b02949350505050565b60006001600160c01b038381168061550a5761550a614a25565b92169190910492915050565b60006020828403121561552857600080fd5b61192182614f71565b81516001600160a01b031681526101608101602083015161555d60208401826001600160a01b03169052565b506040830151615574604084018262ffffff169052565b506060830151615589606084018260020b9052565b50608083015161559e608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516155e4828501826001600160a01b03169052565b505061014092830151919092015290565b6000806000806080858703121561560b57600080fd5b8451935061561b60208601614f84565b6040860151606090960151949790965092505050565b6000808585111561564157600080fd5b8386111561564e57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156156835780818660040360031b1b83161692505b505092915050565b6001600160a01b03851681526001600160e01b0319841660208201526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b6000816156eb576156eb614982565b506000190190565b60006020828403121561570557600080fd5b61192182614e86565b60008251615720818460208701614636565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfec171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d846a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f622416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122017f57f6fed1e8daf24c2884a5fbfd4be9a2e3e6e7fd27df7c37993867d96e18464736f6c63430008090033000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102325760003560e01c806375b238fc11610130578063a217fddf116100b8578063d547741f1161007c578063d547741f146105b3578063e521826f146105c6578063f05329b2146105ce578063f936506c146105e1578063fe57ed61146105f457600080fd5b8063a217fddf1461052e578063ac9650d814610536578063b4559f3e1461029f578063c8014d5314610556578063ca15c873146105a057600080fd5b806391d14854116100ff57806391d14854146104e1578063983d2737146104f45780639bb37ba814610509578063a0a8e4601461051c578063a11bac741461052457600080fd5b806375b238fc1461046557806375d0c0dc1461047a578063791b98bc1461048f5780639010d07c146104ce57600080fd5b80632f2ff15d116101be578063551530ae11610182578063551530ae146103795780635f408a211461038457806360aa27051461042c5780636d70f7ae1461043f5780636ff0b3581461045257600080fd5b80632f2ff15d1461030d57806336568abe146103205780634079246514610333578063475cffef1461033e57806350c9d3bb1461035157600080fd5b80630e3e80ac116102055780630e3e80ac146102a1578063158ef93e146102b757806319ab453c146102c4578063248a9ca3146102d757806324d7806c146102fa57600080fd5b806301ffc9a71461023757806306a462391461025f5780630952ff54146102775780630e3055151461028c575b600080fd5b61024a610245366004614115565b610632565b60405190151581526020015b60405180910390f35b640312e302e360dc1b5b604051908152602001610256565b61026960008051602061574183398151915281565b61029f61029a36600461444c565b610662565b005b6c50756c7365537472617465677960981b610269565b60025461024a9060ff1681565b61029f6102d23660046144af565b610b06565b6102696102e53660046144cc565b60009081526020819052604090206001015490565b61024a6103083660046144af565b610c2c565b61029f61031b3660046144e5565b610c64565b61029f61032e3660046144e5565b610c8f565b610269600160601b81565b61029f61034c366004614515565b610d0d565b61036461035f366004614549565b6112ac565b60408051928352602083019190915201610256565b610269633b9aca0081565b600754600854600954600a54600b546103d294600281810b9563010000008304820b95600160301b8404830b95600160481b850490930b94600160601b90940463ffffffff16939192909189565b6040805160029a8b0b8152988a0b60208a015296890b968801969096529390960b606086015263ffffffff909116608085015260a084015260c083019390935260e082019290925261010081019190915261012001610256565b61029f61043a3660046145bc565b61153a565b61024a61044d3660046144af565b6116f4565b61029f6104603660046145f0565b61170e565b61026960008051602061576183398151915281565b6104826118ee565b604051610256919061468e565b6104b67f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe8881565b6040516001600160a01b039091168152602001610256565b6104b66104dc3660046146a1565b611909565b61024a6104ef3660046144e5565b611928565b61026960008051602061578183398151915281565b6102696105173660046146c3565b611951565b610482611a3c565b610269620f424081565b610269600081565b61054961054436600461474e565b611a4f565b60405161025691906147c2565b600354600454600554610576926001600160a01b03908116928116911683565b604080516001600160a01b0394851681529284166020840152921691810191909152606001610256565b6102696105ae3660046144cc565b611b45565b61029f6105c13660046144e5565b611b5c565b61029f611b82565b61029f6105dc366004614824565b611c1c565b61029f6105ef366004614859565b611d63565b6106076106023660046148d4565b612075565b604080518351600290810b8252602094850151900b9381019390935290151590820152606001610256565b60006001600160e01b03198216635a05180f60e01b14806106575750610657826122dd565b92915050565b905090565b600081604001516001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106a157600080fd5b505afa1580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d9919061493d565b6001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561071157600080fd5b505afa158015610725573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107499190614965565b90506000836020015160020b13801561077c5750610768816002614998565b83602001516107779190614a3b565b60020b155b6040518060400160405280600381526020016224a72b60e91b815250906107bf5760405162461bcd60e51b81526004016107b6919061468e565b60405180910390fd5b5082602001516107ce90614a5d565b60020b836040015160020b121580156108015750600283602001516107f39190614a80565b60020b836040015160020b13155b604051806040016040528060048152602001634c494d4f60e01b8152509061083c5760405162461bcd60e51b81526004016107b6919061468e565b506000836060015160020b13604051806040016040528060048152602001634c494d5560e01b815250906108835760405162461bcd60e51b81526004016107b6919061468e565b506000836080015163ffffffff1611604051806040016040528060028152602001612b2d60f11b815250906108cb5760405162461bcd60e51b81526004016107b6919061468e565b5062093a80836080015163ffffffff1610604051806040016040528060028152602001612b2d60f11b815250906109155760405162461bcd60e51b81526004016107b6919061468e565b5060008360a0015111604051806040016040528060028152602001612b2d60f11b815250906109575760405162461bcd60e51b81526004016107b6919061468e565b50633b9aca008360a001511115604051806040016040528060048152602001634c494d4f60e01b8152509061099f5760405162461bcd60e51b81526004016107b6919061468e565b5060008360c0015111604051806040016040528060028152602001612b2d60f11b815250906109e15760405162461bcd60e51b81526004016107b6919061468e565b50633b9aca008360c001511115604051806040016040528060048152602001634c494d4f60e01b81525090610a295760405162461bcd60e51b81526004016107b6919061468e565b5082610120015151600214604051806040016040528060048152602001631253959360e21b81525090610a6f5760405162461bcd60e51b81526004016107b6919061468e565b50633b9aca008360e001511115604051806040016040528060048152602001634c494d4f60e01b81525090610ab75760405162461bcd60e51b81526004016107b6919061468e565b50633b9aca008361010001511115604051806040016040528060048152602001634c494d4f60e01b81525090610b005760405162461bcd60e51b81526004016107b6919061468e565b50505050565b60408051808201909152600281526120ad60f11b60208201526001600160a01b038216610b465760405162461bcd60e51b81526004016107b6919061468e565b506002546040805180820190915260048152631253925560e21b60208201529060ff1615610b875760405162461bcd60e51b81526004016107b6919061468e565b50610ba060008051602061578183398151915282612312565b610bb860008051602061576183398151915282612312565b610bd06000805160206157618339815191528061231c565b610bf660008051602061574183398151915260008051602061576183398151915261231c565b610c1c60008051602061578183398151915260008051602061574183398151915261231c565b506002805460ff19166001179055565b6000610c4660008051602061576183398151915283611928565b80610657575061065760008051602061574183398151915283611928565b600082815260208190526040902060010154610c808133612367565b610c8a83836123cb565b505050565b6001600160a01b0381163314610cff5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107b6565b610d0982826123ed565b5050565b806060015151600214604051806040016040528060048152602001631253959360e21b81525090610d515760405162461bcd60e51b81526004016107b6919061468e565b5060006001600160a01b03168160600151600081518110610d7457610d74614aba565b60200260200101516001600160a01b031614156040518060400160405280600281526020016120ad60f11b81525090610dc05760405162461bcd60e51b81526004016107b6919061468e565b5060006001600160a01b03168160600151600181518110610de357610de3614aba565b60200260200101516001600160a01b031614156040518060400160405280600281526020016120ad60f11b81525090610e2f5760405162461bcd60e51b81526004016107b6919061468e565b50805160408051808201909152600281526120ad60f11b6020820152906001600160a01b0316610e725760405162461bcd60e51b81526004016107b6919061468e565b5060006001600160a01b031681602001516001600160a01b031614156040518060400160405280600281526020016120ad60f11b81525090610ec75760405162461bcd60e51b81526004016107b6919061468e565b50600081602001516001600160a01b031663697222336040518163ffffffff1660e01b815260040160006040518083038186803b158015610f0757600080fd5b505afa158015610f1b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f439190810190614adb565b90508051600214604051806040016040528060048152602001631253959360e21b81525090610f855760405162461bcd60e51b81526004016107b6919061468e565b508160600151600081518110610f9d57610f9d614aba565b60200260200101516001600160a01b031681600081518110610fc157610fc1614aba565b60200260200101516001600160a01b03161460405180604001604052806004815260200163494e564160e01b8152509061100e5760405162461bcd60e51b81526004016107b6919061468e565b50816060015160018151811061102657611026614aba565b60200260200101516001600160a01b03168160018151811061104a5761104a614aba565b60200260200101516001600160a01b03161460405180604001604052806004815260200163494e564160e01b815250906110975760405162461bcd60e51b81526004016107b6919061468e565b50506040808201518151808301909252600282526120ad60f11b60208301526001600160a01b03166110dc5760405162461bcd60e51b81526004016107b6919061468e565b50600081604001516001600160a01b031663697222336040518163ffffffff1660e01b815260040160006040518083038186803b15801561111c57600080fd5b505afa158015611130573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111589190810190614adb565b90508051600214604051806040016040528060048152602001631253959360e21b8152509061119a5760405162461bcd60e51b81526004016107b6919061468e565b5081606001516000815181106111b2576111b2614aba565b60200260200101516001600160a01b0316816000815181106111d6576111d6614aba565b60200260200101516001600160a01b03161460405180604001604052806004815260200163494e564160e01b815250906112235760405162461bcd60e51b81526004016107b6919061468e565b50816060015160018151811061123b5761123b614aba565b60200260200101516001600160a01b03168160018151811061125f5761125f614aba565b60200260200101516001600160a01b03161460405180604001604052806004815260200163494e564160e01b81525090610c8a5760405162461bcd60e51b81526004016107b6919061468e565b600080806112be84600160601b614b69565b9050600087602001516001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160006040518083038186803b1580156112ff57600080fd5b505afa158015611313573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261133b9190810190614bdb565b50905060006113b68260018151811061135657611356614aba565b6020026020010151600160601b61138c8560008151811061137957611379614aba565b60200260200101518b600160601b61240f565b8560018151811061139f5761139f614aba565b60200260200101516113b19190614c34565b61240f565b905060006113d3600160601b8a6000015160020b620f424061240f565b905086821115611479576001955060006113f2600160601b808b61240f565b905061147161141c898660008151811061140e5761140e614aba565b60200260200101518461240f565b6114458660018151811061143257611432614aba565b602002602001015188600160601b61240f565b61144f9190614b69565b600160601b6114638b86600160601b61240f565b6113b190600160601b614b69565b9550506114ef565b600095506114ec6114a5858560018151811061149757611497614aba565b60200260200101518b61240f565b6114ce856000815181106114bb576114bb614aba565b60200260200101518a600160601b61240f565b6114d89190614b69565b600160601b6114638785600160601b61240f565b94505b82868151811061150157611501614aba565b602002602001015185111561152d5782868151811061152257611522614aba565b602002602001015194505b5050505094509492505050565b6115426124c2565b60408051608081018252600380546001600160a01b039081168352600454811660208085019190915260055490911683850152600680548551818402810184019096528086526115df958795949360608601939192908301828280156115d157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115b3575b505050505081525050610662565b80516007805460208085015160408601516060870151608088015163ffffffff16600160601b0263ffffffff60601b1962ffffff928316600160481b026bffffff00000000000000000019948416600160301b02949094166bffffffffffff0000000000001995841663010000000265ffffffffffff199098169390991692909217959095179290921695909517949094179390931617815560a083015160085560c083015160095560e0830151600a55610100830151600b55610120830151805184936116b292600c92910190614060565b505060405133915032907faccfbfe1fb913357d3f38219613942ea367e6b50b076facee40e8400cf114f28906116e9908590614c87565b60405180910390a350565b600061065760008051602061578183398151915283611928565b61171782610d0d565b8151600380546001600160a01b03199081166001600160a01b039384161782556020808601516004805484169186169190911790556040860151600580549093169416939093179055606084015180518593611778926006929101906140ab565b5090505060005b60028110156118e4576117e57f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88600019856060015184815181106117c5576117c5614aba565b60200260200101516001600160a01b03166125089092919063ffffffff16565b82602001516001600160a01b0316632e2f4cc28460600151838151811061180e5761180e614aba565b602002602001015163095ea7b360e01b866000015160001960405160200161184b9291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161187893929190614d3c565b600060405180830381600087803b15801561189257600080fd5b505af19250505080156118c757506040513d6000823e601f3d908101601f191682016040526118c49190810190614d79565b60015b6118d0576118d2565b505b806118dc81614e0c565b91505061177f565b50610d0981610b06565b606061065d6c50756c7365537472617465677960981b6125eb565b60008281526001602052604081206119219083612657565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000806119618560000151612663565b6001600160a01b03169050600061197b8660200151612663565b6001600160a01b03169050846001600160a01b031682106119a157600092505050611921565b846001600160a01b031681116119bf57600160601b92505050611921565b60006119f46119d76001600160a01b03881684614b69565b600160601b6113b1896001600160a01b031686600160601b61240f565b90506000611a0b846001600160a01b038916614b69565b9050611a3081600160601b83611a26868b600160601b61240f565b6113b19190614c34565b98975050505050505050565b606061065d640312e302e360dc1b6125eb565b6060816001600160401b03811115611a6957611a6961413f565b604051908082528060200260200182016040528015611a9c57816020015b6060815260200190600190039081611a875790505b50905060005b82811015611b3c57611b0c30858584818110611ac057611ac0614aba565b9050602002810190611ad29190614e27565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a8092505050565b828281518110611b1e57611b1e614aba565b60200260200101819052508080611b3490614e0c565b915050611aa2565b5092915050565b565b600081815260016020526040812061065790612aa5565b600082815260208190526040902060010154611b788133612367565b610c8a83836123ed565b60408051608081018252600380546001600160a01b03908116835260045481166020808501919091526005549091168385015260068054855181840281018401909652808652611b4395606086019390929190830182828015611c0e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bf0575b505050505081525050612aaf565b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015611c5757600080fd5b505afa158015611c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8f9190614e96565b5050505050915050600080611ca8848660800151612c07565b925050915080156040518060400160405280600581526020016412539594d560da1b81525090611ceb5760405162461bcd60e51b81526004016107b6919061468e565b506000611cf88385614f29565b905060008160020b1215611d1257611d0f81614a5d565b90505b856060015160020b8160020b12604051806040016040528060048152602001634c494d4f60e01b81525090611d5a5760405162461bcd60e51b81526004016107b6919061468e565b50505050505050565b8242111560405180604001604052806002815260200161545360f01b81525090611da05760405162461bcd60e51b81526004016107b6919061468e565b50611da9612e61565b60408051608081018252600380546001600160a01b03908116835260045481166020808501919091526005549091168385015260068054855181840281018401909652808652600095606086019390929190830182828015611e3457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611e16575b505050919092525050604080516101408101825260078054600281810b845263010000008204810b602080860191909152600160301b8304820b85870152600160481b830490910b6060850152600160601b90910463ffffffff16608084015260085460a084015260095460c0840152600a5460e0840152600b54610100840152600c80548551818402810184019096528086529697506000969395509193610120860193909291830182828015611f0b57602002820191906000526020600020905b815481526020019060010190808311611ef7575b5050505050815250509050600082604001516001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5557600080fd5b505afa158015611f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8d919061493d565b9050611f998282611c1c565b600080826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015611fd557600080fd5b505afa158015611fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200d9190614e96565b505050505091509150600061202486868487612e79565b9050612034868683868c8c61341b565b61203d86612aaf565b604051339032907f6dcf4e69cd04d9def52d660ea37a5b366adb7701505e48e75c03d6a51a343f6490600090a3505050505050505050565b6040805180820190915260008082526020820152600082156121cd5760408051808201825260008082526020820152905163133f757160e31b8152600481018590526001600160a01b037f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe8816906399fbab88906024016101806040518083038186803b15801561210457600080fd5b505afa158015612118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213c9190614f9b565b50505050600291820b60208a01525090810b80885260408e0151918d900b965061216c95509350915061507c9050565b60020b1315801561219657508660400151816020015161218c9190614f29565b60020b8660020b13155b80156121bb5750805160208201516121ae9190614f29565b60020b876020015160020b145b156121cb579150600090506122d4565b505b6000846001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561220857600080fd5b505afa15801561221c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122409190614965565b9050600061224e8288614a3b565b6122589088614f29565b9050600282900b6122698389614a3b565b612274906002614998565b60020b131561228a57612287828261507c565b90505b6002886020015161229b9190614a80565b6122a59082614f29565b600290810b855260208901516122bb9190614a80565b6122c5908261507c565b60020b60208501525060019150505b94509492505050565b60006001600160e01b03198216637965db0b60e01b148061065757506301ffc9a760e01b6001600160e01b0319831614610657565b610d0982826123cb565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6123718282611928565b610d0957612389816001600160a01b03166014613930565b612394836020613930565b6040516020016123a59291906150c3565b60408051601f198184030181529082905262461bcd60e51b82526107b69160040161468e565b6123d58282613acb565b6000828152600160205260409020610c8a9082613b4f565b6123f78282613b64565b6000828152600160205260409020610c8a9082613bc9565b600080806000198587098587029250828110838203039150508060001415612449576000841161243e57600080fd5b508290049050611921565b80841161245557600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6124cb33610c2c565b6040518060400160405280600381526020016223292160e91b815250906125055760405162461bcd60e51b81526004016107b6919061468e565b50565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b15801561255457600080fd5b505afa158015612568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258c9190615138565b6125969190614c34565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052909150610b00908590613bde565b604080516020808252818301909252606091602082018180368337019050509050602060005b60208110156126495783816020811061262c5761262c614aba565b1a61263957809150612649565b61264281614e0c565b9050612611565b508152602081019190915290565b60006119218383613cb0565b60008060008360020b1261267a578260020b612687565b8260020b61268790615151565b9050612696620d89e719614a5d565b60020b8111156126cc5760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016107b6565b6000600182166126e057600160801b6126f2565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561273157608061272c826ffff97272373d413259a46990580e213a61516e565b901c90505b600482161561275b576080612756826ffff2e50f5f656932ef12357cf3c7fdcc61516e565b901c90505b6008821615612785576080612780826fffe5caca7e10e4e61c3624eaa0941cd061516e565b901c90505b60108216156127af5760806127aa826fffcb9843d60f6159c9db58835c92664461516e565b901c90505b60208216156127d95760806127d4826fff973b41fa98c081472e6896dfb254c061516e565b901c90505b60408216156128035760806127fe826fff2ea16466c96a3843ec78b326b5286161516e565b901c90505b608082161561282d576080612828826ffe5dee046a99a2a811c461f1969c305361516e565b901c90505b610100821615612858576080612853826ffcbe86c7900a88aedcffc83b479aa3a461516e565b901c90505b61020082161561288357608061287e826ff987a7253ac413176f2b074cf7815e5461516e565b901c90505b6104008216156128ae5760806128a9826ff3392b0822b70005940c7a398e4b70f361516e565b901c90505b6108008216156128d95760806128d4826fe7159475a2c29b7443b29c7fa6e889d961516e565b901c90505b6110008216156129045760806128ff826fd097f3bdfd2022b8845ad8f792aa582561516e565b901c90505b61200082161561292f57608061292a826fa9f746462d870fdf8a65dc1f90e061e561516e565b901c90505b61400082161561295a576080612955826f70d869a156d2a1b890bb3df62baf32f761516e565b901c90505b618000821615612985576080612980826f31be135f97d08fd981231505542fcfa661516e565b901c90505b620100008216156129b15760806129ac826f09aa508b5b7a84e1c677de54f3e99bc961516e565b901c90505b620200008216156129dc5760806129d7826e5d6af8dedb81196699c329225ee60461516e565b901c90505b62040000821615612a06576080612a01826d2216e584f5fa1ea926041bedfe9861516e565b901c90505b62080000821615612a2e576080612a29826b048a170391f7dc42444e8fa261516e565b901c90505b60008460020b1315612a4957612a468160001961518d565b90505b612a58640100000000826151a1565b15612a64576001612a67565b60005b612a789060ff16602083901c614c34565b949350505050565b606061192183836040518060600160405280602781526020016157a160279139613cda565b6000610657825490565b600081602001516001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160006040518083038186803b158015612aee57600080fd5b505afa158015612b02573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b2a9190810190614bdb565b509050600081600081518110612b4257612b42614aba565b60200260200101511180612b705750600081600181518110612b6657612b66614aba565b6020026020010151115b15610d095781602001516001600160a01b0316632062d75483604001518460600151846040518463ffffffff1660e01b8152600401612bb1939291906151b5565b600060405180830381600087803b158015612bcb57600080fd5b505af1158015612bdf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c8a9190810190615235565b6000808063ffffffff8416612c435760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064016107b6565b6040805160028082526060820183526000926020830190803683370190505090508481600081518110612c7857612c78614aba565b602002602001019063ffffffff16908163ffffffff1681525050600081600181518110612ca757612ca7614aba565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526001600160a01b0387169063883bdbfd90612ce8908490600401615269565b60006040518083038186803b158015612d0057600080fd5b505afa925050508015612d3557506040513d6000823e601f3d908101601f19168201604052612d329190810190615317565b60015b612d4a57600080600193509350935050612e5a565b600082600081518110612d5f57612d5f614aba565b602002602001015183600181518110612d7a57612d7a614aba565b6020026020010151612d8c91906153d8565b9050600082600081518110612da357612da3614aba565b602002602001015183600181518110612dbe57612dbe614aba565b6020026020010151612dd0919061541e565b9050612de263ffffffff8a1683615446565b975060008260060b128015612e085750612e0263ffffffff8a168361547b565b60060b15155b15612e1b5787612e178161549d565b9850505b6000612e346001600160a01b0363ffffffff8c166154c1565b9050612e51640100000000600160c01b03602084901b16826154f0565b97505050505050505b9250925092565b612e6a33610c2c565b806124cb57506124cb336116f4565b60408051808201909152600080825260208201526000856040015190506000816001600160a01b031663f4adc08b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ed157600080fd5b505afa158015612ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f099190615138565b9050600080612f1a88888886612075565b9150915080612fa757836001600160a01b031663c27b2c2d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612f5e57600080fd5b505af1158015612f72573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f9a9190810190615235565b5081945050505050612a78565b82156130b957602089015160608a01516040516303217f1d60e61b81526001600160801b0360048201526001600160a01b03871692632062d754929091849063c85fc7409060240160006040518083038186803b15801561300757600080fd5b505afa15801561301b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130439190810190615235565b6040518463ffffffff1660e01b8152600401613061939291906151b5565b600060405180830381600087803b15801561307b57600080fd5b505af115801561308f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130b79190810190615235565b505b60007f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b031663883164566040518061016001604052808d6060015160008151811061310d5761310d614aba565b60200260200101516001600160a01b031681526020018d6060015160018151811061313a5761313a614aba565b60200260200101516001600160a01b031681526020018a6001600160a01b031663ddca3f436040518163ffffffff1660e01b815260040160206040518083038186803b15801561318957600080fd5b505afa15801561319d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c19190615516565b62ffffff168152602001866000015160020b8152602001866020015160020b81526020018c60a0015181526020018c60c0015181526020016000815260200160008152602001306001600160a01b031681526020016000198152506040518263ffffffff1660e01b81526004016132389190615531565b608060405180830381600087803b15801561325257600080fd5b505af1158015613266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328a91906155f5565b5050604051632142170760e11b81523060048201526001600160a01b038881166024830152604482018490529293507f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88909216916342842e0e9150606401600060405180830381600087803b15801561330257600080fd5b505af1158015613316573d6000803e3d6000fd5b505050507face8748d23af65e86cf543d0298345b95115752e382befe3e832eacd1508adb08160405161334b91815260200190565b60405180910390a1831561340d57604051630852cd8d60e31b8152600481018590527f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b0316906342966c6890602401600060405180830381600087803b1580156133bb57600080fd5b505af11580156133cf573d6000803e3d6000fd5b505050507f65d33d8ef62a81711748bbe2a7b67aef94d1a9af04a2690d3a4dfd13d9c1d22b8460405161340491815260200190565b60405180910390a15b509098975050505050505050565b60006134356001600160a01b03851680600160601b61240f565b905060008061344b89898561035f8b8b89611951565b91509150876101200151828151811061346657613466614aba565b602002602001015181101561347d57505050613928565b816001141561349857613495600160601b808561240f565b92505b600089602001516001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160006040518083038186803b1580156134d757600080fd5b505afa1580156134eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135139190810190614bdb565b5060208b01518b519192506001600160a01b031690632e2f4cc29061353c600460008a8c615631565b6135459161565b565b613552896004818d615631565b6040518563ffffffff1660e01b8152600401613571949392919061568b565b600060405180830381600087803b15801561358b57600080fd5b505af115801561359f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135c79190810190614d79565b5060008a602001516001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160006040518083038186803b15801561360757600080fd5b505afa15801561361b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136439190810190614bdb565b50905081848151811061365857613658614aba565b602002602001015181858151811061367257613672614aba565b6020026020010151111560405180604001604052806004815260200163494e564160e01b815250906136b75760405162461bcd60e51b81526004016107b6919061468e565b508184600118815181106136cd576136cd614aba565b60200260200101518185600118815181106136ea576136ea614aba565b6020026020010151101560405180604001604052806004815260200163494e564160e01b8152509061372f5760405162461bcd60e51b81526004016107b6919061468e565b50600081858151811061374457613744614aba565b602002602001015183868151811061375e5761375e614aba565b60200260200101516137709190614b69565b9050600083866001188151811061378957613789614aba565b60200260200101518387600118815181106137a6576137a6614aba565b60200260200101516137b89190614b69565b905060006137cb82600160601b8561240f565b9050806137f0898f60e00151633b9aca006137e69190614b69565b633b9aca0061240f565b1115604051806040016040528060048152602001634c494d5560e01b8152509061382d5760405162461bcd60e51b81526004016107b6919061468e565b5082613848878f6101000151633b9aca006137e69190614b69565b1115604051806040016040528060048152602001634c494d5560e01b815250906138855760405162461bcd60e51b81526004016107b6919061468e565b50856138a0848f6101000151633b9aca006137e69190614b69565b1115604051806040016040528060048152602001634c494d5560e01b815250906138dd5760405162461bcd60e51b81526004016107b6919061468e565b5060408051848152602081018490529081018890527f984c316f55901f828cae2a57394002595129e75b4546d4a80c6c1a4787d748c29060600160405180910390a150505050505050505b505050505050565b6060600061393f83600261516e565b61394a906002614c34565b6001600160401b038111156139615761396161413f565b6040519080825280601f01601f19166020018201604052801561398b576020820181803683370190505b509050600360fc1b816000815181106139a6576139a6614aba565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106139d5576139d5614aba565b60200101906001600160f81b031916908160001a90535060006139f984600261516e565b613a04906001614c34565b90505b6001811115613a7c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613a3857613a38614aba565b1a60f81b828281518110613a4e57613a4e614aba565b60200101906001600160f81b031916908160001a90535060049490941c93613a75816156dc565b9050613a07565b5083156119215760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107b6565b613ad58282611928565b610d09576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055613b0b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611921836001600160a01b038416613dae565b613b6e8282611928565b15610d09576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611921836001600160a01b038416613dfd565b6000613c33826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613ef09092919063ffffffff16565b805190915015610c8a5780806020019051810190613c5191906156f3565b610c8a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107b6565b6000826000018281548110613cc757613cc7614aba565b9060005260206000200154905092915050565b6060833b613d395760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107b6565b600080856001600160a01b031685604051613d54919061570e565b600060405180830381855af49150503d8060008114613d8f576040519150601f19603f3d011682016040523d82523d6000602084013e613d94565b606091505b5091509150613da4828286613eff565b9695505050505050565b6000818152600183016020526040812054613df557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610657565b506000610657565b60008181526001830160205260408120548015613ee6576000613e21600183614b69565b8554909150600090613e3590600190614b69565b9050818114613e9a576000866000018281548110613e5557613e55614aba565b9060005260206000200154905080876000018481548110613e7857613e78614aba565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613eab57613eab61572a565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610657565b6000915050610657565b6060612a788484600085613f38565b60608315613f0e575081611921565b825115613f1e5782518084602001fd5b8160405162461bcd60e51b81526004016107b6919061468e565b606082471015613f995760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107b6565b843b613fe75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107b6565b600080866001600160a01b03168587604051614003919061570e565b60006040518083038185875af1925050503d8060008114614040576040519150601f19603f3d011682016040523d82523d6000602084013e614045565b606091505b5091509150614055828286613eff565b979650505050505050565b82805482825590600052602060002090810192821561409b579160200282015b8281111561409b578251825591602001919060010190614080565b506140a7929150614100565b5090565b82805482825590600052602060002090810192821561409b579160200282015b8281111561409b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906140cb565b5b808211156140a75760008155600101614101565b60006020828403121561412757600080fd5b81356001600160e01b03198116811461192157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156141785761417861413f565b60405290565b604051608081016001600160401b03811182821017156141785761417861413f565b604051601f8201601f191681016001600160401b03811182821017156141c8576141c861413f565b604052919050565b8060020b811461250557600080fd5b80356141ea816141d0565b919050565b803563ffffffff811681146141ea57600080fd5b60006001600160401b0382111561421c5761421c61413f565b5060051b60200190565b600082601f83011261423757600080fd5b8135602061424c61424783614203565b6141a0565b82815260059290921b8401810191818101908684111561426b57600080fd5b8286015b84811015614286578035835291830191830161426f565b509695505050505050565b600061014082840312156142a457600080fd5b6142ac614155565b90506142b7826141df565b81526142c5602083016141df565b60208201526142d6604083016141df565b60408201526142e7606083016141df565b60608201526142f8608083016141ef565b608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301356001600160401b0381111561434257600080fd5b61434e85828601614226565b82840152505092915050565b6001600160a01b038116811461250557600080fd5b60006080828403121561438157600080fd5b61438961417e565b905081356143968161435a565b81526020828101356143a78161435a565b8282015260408301356143b98161435a565b604083015260608301356001600160401b038111156143d757600080fd5b8301601f810185136143e857600080fd5b80356143f661424782614203565b81815260059190911b8201830190838101908783111561441557600080fd5b928401925b8284101561443c57833561442d8161435a565b8252928401929084019061441a565b6060860152509295945050505050565b6000806040838503121561445f57600080fd5b82356001600160401b038082111561447657600080fd5b61448286838701614291565b9350602085013591508082111561449857600080fd5b506144a58582860161436f565b9150509250929050565b6000602082840312156144c157600080fd5b81356119218161435a565b6000602082840312156144de57600080fd5b5035919050565b600080604083850312156144f857600080fd5b82359150602083013561450a8161435a565b809150509250929050565b60006020828403121561452757600080fd5b81356001600160401b0381111561453d57600080fd5b612a788482850161436f565b6000806000806080858703121561455f57600080fd5b84356001600160401b038082111561457657600080fd5b6145828883890161436f565b9550602087013591508082111561459857600080fd5b506145a587828801614291565b949794965050505060408301359260600135919050565b6000602082840312156145ce57600080fd5b81356001600160401b038111156145e457600080fd5b612a7884828501614291565b6000806040838503121561460357600080fd5b82356001600160401b0381111561461957600080fd5b6146258582860161436f565b925050602083013561450a8161435a565b60005b83811015614651578181015183820152602001614639565b83811115610b005750506000910152565b6000815180845261467a816020860160208601614636565b601f01601f19169290920160200192915050565b6020815260006119216020830184614662565b600080604083850312156146b457600080fd5b50508035926020909101359150565b600080600083850360808112156146d957600080fd5b60408112156146e757600080fd5b50604051604081018181106001600160401b038211171561470a5761470a61413f565b6040528435614718816141d0565b81526020850135614728816141d0565b60208201529250604084013561473d8161435a565b929592945050506060919091013590565b6000806020838503121561476157600080fd5b82356001600160401b038082111561477857600080fd5b818501915085601f83011261478c57600080fd5b81358181111561479b57600080fd5b8660208260051b85010111156147b057600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561481757603f19888603018452614805858351614662565b945092850192908501906001016147e9565b5092979650505050505050565b6000806040838503121561483757600080fd5b82356001600160401b0381111561484d57600080fd5b61462585828601614291565b60008060006040848603121561486e57600080fd5b8335925060208401356001600160401b038082111561488c57600080fd5b818601915086601f8301126148a057600080fd5b8135818111156148af57600080fd5b8760208285010111156148c157600080fd5b6020830194508093505050509250925092565b600080600080608085870312156148ea57600080fd5b84356001600160401b0381111561490057600080fd5b61490c87828801614291565b945050602085013561491d816141d0565b9250604085013561492d8161435a565b9396929550929360600135925050565b60006020828403121561494f57600080fd5b81516119218161435a565b80516141ea816141d0565b60006020828403121561497757600080fd5b8151611921816141d0565b634e487b7160e01b600052601160045260246000fd5b60008160020b8360020b627fffff6000821360008413838304851182821616156149c4576149c4614982565b627fffff1960008512828116878305871216156149e3576149e3614982565b600087129250858205871284841616156149ff576149ff614982565b85850587128184161615614a1557614a15614982565b5050509290910295945050505050565b634e487b7160e01b600052601260045260246000fd5b60008260020b80614a4e57614a4e614a25565b808360020b0791505092915050565b60008160020b627fffff19811415614a7757614a77614982565b60000392915050565b60008160020b8360020b80614a9757614a97614a25565b627fffff19821460001982141615614ab157614ab1614982565b90059392505050565b634e487b7160e01b600052603260045260246000fd5b80516141ea8161435a565b60006020808385031215614aee57600080fd5b82516001600160401b03811115614b0457600080fd5b8301601f81018513614b1557600080fd5b8051614b2361424782614203565b81815260059190911b82018301908381019087831115614b4257600080fd5b928401925b82841015614055578351614b5a8161435a565b82529284019290840190614b47565b600082821015614b7b57614b7b614982565b500390565b600082601f830112614b9157600080fd5b81516020614ba161424783614203565b82815260059290921b84018101918181019086841115614bc057600080fd5b8286015b848110156142865780518352918301918301614bc4565b60008060408385031215614bee57600080fd5b82516001600160401b0380821115614c0557600080fd5b614c1186838701614b80565b93506020850151915080821115614c2757600080fd5b506144a585828601614b80565b60008219821115614c4757614c47614982565b500190565b600081518084526020808501945080840160005b83811015614c7c57815187529582019590820190600101614c60565b509495945050505050565b60208152614c9b60208201835160020b9052565b60006020830151614cb1604084018260020b9052565b506040830151614cc6606084018260020b9052565b506060830151614cdb608084018260020b9052565b50608083015163ffffffff811660a08401525060a083015160c083015260c083015160e083015260e0830151610100818185015280850151915050610120818185015280850151915050610140808185015250612a78610160840182614c4c565b6001600160a01b03841681526001600160e01b031983166020820152606060408201819052600090614d7090830184614662565b95945050505050565b600060208284031215614d8b57600080fd5b81516001600160401b0380821115614da257600080fd5b818401915084601f830112614db657600080fd5b815181811115614dc857614dc861413f565b614ddb601f8201601f19166020016141a0565b9150808252856020828501011115614df257600080fd5b614e03816020840160208601614636565b50949350505050565b6000600019821415614e2057614e20614982565b5060010190565b6000808335601e19843603018112614e3e57600080fd5b8301803591506001600160401b03821115614e5857600080fd5b602001915036819003821315614e6d57600080fd5b9250929050565b805161ffff811681146141ea57600080fd5b805180151581146141ea57600080fd5b600080600080600080600060e0888a031215614eb157600080fd5b8751614ebc8161435a565b6020890151909750614ecd816141d0565b9550614edb60408901614e74565b9450614ee960608901614e74565b9350614ef760808901614e74565b925060a088015160ff81168114614f0d57600080fd5b9150614f1b60c08901614e86565b905092959891949750929550565b60008160020b8360020b6000811281627fffff1901831281151615614f5057614f50614982565b81627fffff018313811615614f6757614f67614982565b5090039392505050565b805162ffffff811681146141ea57600080fd5b80516001600160801b03811681146141ea57600080fd5b6000806000806000806000806000806000806101808d8f031215614fbe57600080fd5b8c516bffffffffffffffffffffffff81168114614fda57600080fd5b9b50614fe860208e01614ad0565b9a50614ff660408e01614ad0565b995061500460608e01614ad0565b985061501260808e01614f71565b975061502060a08e0161495a565b965061502e60c08e0161495a565b955061503c60e08e01614f84565b94506101008d015193506101208d0151925061505b6101408e01614f84565b915061506a6101608e01614f84565b90509295989b509295989b509295989b565b60008160020b8360020b6000821282627fffff038213811516156150a2576150a2614982565b82627fffff190382128116156150ba576150ba614982565b50019392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516150fb816017850160208801614636565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161512c816028840160208801614636565b01602801949350505050565b60006020828403121561514a57600080fd5b5051919050565b6000600160ff1b82141561516757615167614982565b5060000390565b600081600019048311821515161561518857615188614982565b500290565b60008261519c5761519c614a25565b500490565b6000826151b0576151b0614a25565b500690565b6001600160a01b0384811682526080602080840182905285519184018290526000928682019290919060a0860190855b818110156152035785518516835294830194918301916001016151e5565b505085810360408701526152178188614c4c565b86810360609097019690965250600085529093019695505050505050565b60006020828403121561524757600080fd5b81516001600160401b0381111561525d57600080fd5b612a7884828501614b80565b6020808252825182820181905260009190848201906040850190845b818110156152a757835163ffffffff1683529284019291840191600101615285565b50909695505050505050565b600082601f8301126152c457600080fd5b815160206152d461424783614203565b82815260059290921b840181019181810190868411156152f357600080fd5b8286015b8481101561428657805161530a8161435a565b83529183019183016152f7565b6000806040838503121561532a57600080fd5b82516001600160401b038082111561534157600080fd5b818501915085601f83011261535557600080fd5b8151602061536561424783614203565b82815260059290921b8401810191818101908984111561538457600080fd5b948201945b838610156153b25785518060060b81146153a35760008081fd5b82529482019490820190615389565b918801519196509093505050808211156153cb57600080fd5b506144a5858286016152b3565b60008160060b8360060b6000811281667fffffffffffff190183128115161561540357615403614982565b81667fffffffffffff018313811615614f6757614f67614982565b60006001600160a01b038381169083168181101561543e5761543e614982565b039392505050565b60008160060b8360060b8061545d5761545d614a25565b667fffffffffffff19821460001982141615614ab157614ab1614982565b60008260060b8061548e5761548e614a25565b808360060b0791505092915050565b60008160020b627fffff198114156154b7576154b7614982565b6000190192915050565b60006001600160c01b03828116848216811515828404821116156154e7576154e7614982565b02949350505050565b60006001600160c01b038381168061550a5761550a614a25565b92169190910492915050565b60006020828403121561552857600080fd5b61192182614f71565b81516001600160a01b031681526101608101602083015161555d60208401826001600160a01b03169052565b506040830151615574604084018262ffffff169052565b506060830151615589606084018260020b9052565b50608083015161559e608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516155e4828501826001600160a01b03169052565b505061014092830151919092015290565b6000806000806080858703121561560b57600080fd5b8451935061561b60208601614f84565b6040860151606090960151949790965092505050565b6000808585111561564157600080fd5b8386111561564e57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156156835780818660040360031b1b83161692505b505092915050565b6001600160a01b03851681526001600160e01b0319841660208201526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b6000816156eb576156eb614982565b506000190190565b60006020828403121561570557600080fd5b61192182614e86565b60008251615720818460208701614636565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfec171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d846a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f622416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122017f57f6fed1e8daf24c2884a5fbfd4be9a2e3e6e7fd27df7c37993867d96e18464736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88
-----Decoded View---------------
Arg [0] : positionManager_ (address): 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88
🤖 Code Reader Beta
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.


