Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View 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[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_token","type":"address"},{"indexed":true,"internalType":"address","name":"_toAddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_originChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_fromChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_index","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_claimId","type":"bytes32"}],"name":"ClaimToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_token","type":"address"},{"indexed":false,"internalType":"bytes","name":"_toAddr","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_originChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_fromChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_index","type":"uint256"}],"name":"RequestBridge","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetFeeToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_validator","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_claimId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"ValidatorSign","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawStuckERC20","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"WithdrawStuckERC721","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawStuckEther","type":"event"},{"inputs":[],"name":"DEFAULT_FEE_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_FEE_PERCENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"addApprover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addrs","type":"address[]"}],"name":"addApprovers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"alreadyClaims","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"approverMap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bridgeApprovers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bridgeTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_originToken","type":"address"},{"internalType":"address","name":"_toAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256[]","name":"_chainIdsIndex","type":"uint256[]"},{"internalType":"bytes32","name":"_txHash","type":"bytes32"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"name":"claimToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"defaultFeePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"feeForTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBridgeApprovers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getFeeInfo","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"feePercent","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"getSupportedChainsForToken","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_chainIds","type":"uint256[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"isBridgeToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minApprovers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"removeApprover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"bytes","name":"_toAddr","type":"bytes"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_toChainId","type":"uint256"}],"name":"requestBridge","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setDefaultFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"chainIds","type":"uint256[]"},{"internalType":"address[]","name":"originTokens","type":"address[]"},{"internalType":"uint256[]","name":"fees","type":"uint256[]"}],"name":"setFeeForTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_feeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setGovernanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setMinApprovers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainId","type":"uint256"},{"internalType":"bool","name":"_val","type":"bool"}],"name":"setSupportedChainId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_chainIds","type":"uint256[]"},{"internalType":"bool","name":"_val","type":"bool"}],"name":"setSupportedChainIds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"supportedChainIds","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"tokenMap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenMapList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenMapReverse","outputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenMapSupportCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"receiver","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"receiver","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60a06040523060601b6080523480156200001857600080fd5b50600054610100900460ff168062000033575060005460ff16155b6200009b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000be576000805461ffff19166101011790555b8015620000d1576000805461ff00191690555b5060805160601c615d166200010660003960008181610cf701528181610d3701528181610e8b0152610ecb0152615d166000f3fe60806040526004361061027d5760003560e01c80638da5cb5b1161014f578063bfa411f8116100c1578063df2ebdbb1161007a578063df2ebdbb14610852578063e724604214610872578063e9008d5b14610887578063efdcd974146108c1578063f2fde38b146108e1578063ffb2efb8146109015761027d565b8063bfa411f81461075f578063c60c9a5414610781578063d4638d4e146107bd578063d641e916146107dd578063d9bdd6591461080e578063dee157ca1461083b5761027d565b8063ab033ea911610113578063ab033ea91461069b578063b3f00674146106bb578063b4824034146106dc578063b4c530ad146106f3578063b646c19414610706578063b754577d146107265761027d565b80638da5cb5b146105d057806394c9d29b146105ee57806399d32fc41461064e5780639a8a0592146106655780639f92b7151461067b5761027d565b8063522f6815116101f35780636cf4c88f116101ac5780636cf4c88f146104e55780636d1ac36a146105055780636fe0e55914610536578063715018a6146105565780637439459b1461056b5780638d68fdc8146105a05761027d565b8063522f68151461042f5780635260136c1461044f57806354f7088f1461046f5780635aa6e6751461048557806367844634146104a55780636a882d51146104c55761027d565b806336db95fb1161024557806336db95fb1461035b5780634025feb21461037b57806344004cc11461039b57806345923dfb146103bb5780634cf2ab32146103db5780634f1ef2861461041c5761027d565b806313ac7898146102825780632986c0e5146102e15780632db34b271461030657806332a693301461031b5780633659cfe61461033b575b600080fd5b34801561028e57600080fd5b506102c461029d366004613fb4565b6101046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102ed57600080fd5b506102f86101085481565b6040519081526020016102d8565b610319610314366004613dd0565b610921565b005b34801561032757600080fd5b50610319610336366004613f84565b610cbc565b34801561034757600080fd5b50610319610356366004613b9e565b610cec565b34801561036757600080fd5b506102f8610376366004613c16565b610db5565b34801561038757600080fd5b50610319610396366004613bd6565b610de7565b3480156103a757600080fd5b506103196103b6366004613bd6565b610e21565b3480156103c757600080fd5b506102c46103d6366004613f84565b610e56565b3480156103e757600080fd5b5061040c6103f6366004613f84565b6101016020526000908152604090205460ff1681565b60405190151581526020016102d8565b61031961042a366004613d82565b610e80565b34801561043b57600080fd5b5061031961044a366004613c16565b610f3a565b34801561045b57600080fd5b5061031961046a366004613e94565b610f6e565b34801561047b57600080fd5b506102f861271081565b34801561049157600080fd5b5060fb546102c4906001600160a01b031681565b3480156104b157600080fd5b506103196104c0366004613f18565b611185565b3480156104d157600080fd5b506103196104e0366004613e2e565b611221565b3480156104f157600080fd5b50610319610500366004613b9e565b61137e565b34801561051157600080fd5b5061040c610520366004613b9e565b6101066020526000908152604090205460ff1681565b34801561054257600080fd5b50610319610551366004613e61565b611563565b34801561056257600080fd5b506103196116e1565b34801561057757600080fd5b5061058b610586366004613b9e565b611717565b604080519283526020830191909152016102d8565b3480156105ac57600080fd5b5061040c6105bb366004613f84565b60fe6020526000908152604090205460ff1681565b3480156105dc57600080fd5b506097546001600160a01b03166102c4565b3480156105fa57600080fd5b5061062f610609366004613b9e565b61010560205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b0390931683526020830191909152016102d8565b34801561065a57600080fd5b506102f86101075481565b34801561067157600080fd5b506102f860fc5481565b34801561068757600080fd5b50610319610696366004613f84565b611738565b3480156106a757600080fd5b506103196106b6366004613b9e565b611768565b3480156106c757600080fd5b5061010a546102c4906001600160a01b031681565b3480156106e857600080fd5b506102f861010c5481565b610319610701366004613c41565b6117b4565b34801561071257600080fd5b50610319610721366004613b9e565b6121b0565b34801561073257600080fd5b506102f8610741366004613fb4565b61010b60209081526000928352604080842090915290825290205481565b34801561076b57600080fd5b506107746122e8565b6040516102d8919061418d565b34801561078d57600080fd5b5061040c61079c366004613c16565b61010360209081526000928352604080842090915290825290205460ff1681565b3480156107c957600080fd5b506103196107d8366004613f84565b61234a565b3480156107e957600080fd5b5061040c6107f8366004613b9e565b6101006020526000908152604090205460ff1681565b34801561081a57600080fd5b5061082e610829366004613b9e565b6123bf565b6040516102d891906141da565b34801561084757600080fd5b506102f86101095481565b34801561085e57600080fd5b5060fd546102c4906001600160a01b031681565b34801561087e57600080fd5b506102f8600a81565b34801561089357600080fd5b5061040c6108a2366004613b9e565b6001600160a01b03166000908152610106602052604090205460ff1690565b3480156108cd57600080fd5b506103196108dc366004613b9e565b61242d565b3480156108ed57600080fd5b506103196108fc366004613b9e565b61247a565b34801561090d57600080fd5b5061031961091c366004613fd8565b612512565b600260c95414156109795760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260c95560fc548114156109e65760405162461bcd60e51b815260206004820152602d60248201527f736f7572636520616e642074617267657420636861696e20696473206d75737460448201526c08189948191a5999995c995b9d609a1b6064820152608401610970565b6000818152610101602052604090205460ff16610a3b5760405162461bcd60e51b81526020600482015260136024820152721d5b9cdd5c1c1bdc9d19590818da185a5b9259606a1b6044820152606401610970565b6001600160a01b0384166000908152610106602052604090205460ff16610bac57600061010c54600014610a725761010c54610a75565b600a5b90506000612710610a86838261444f565b610a909086614430565b610a9a9190614410565b90506000610aa8828661444f565b9050610ab587338761255d565b610ac2873360008461271c565b866001600160a01b03167fc210de9a5a98ab6c6b579b8d4b8003cce89c8ec3ff669ff2481d63172e00779b878460fc5460fc548961010854604051610b0c969594939291906141ed565b60405180910390a26101088054906000610b2583614492565b90915550506001600160a01b03871660009081526101036020908152604080832087845290915290205460ff16610ba4576001600160a01b0387166000818152610102602090815260408083208054600181810183559185528385200189905593835261010382528083208884529091529020805460ff191690911790555b505050610cb1565b6001600160a01b03848116600081815261010560205260409081902054905163079cc67960e41b8152336004820152602481018690529216916379cc679090604401600060405180830381600087803b158015610c0857600080fd5b505af1158015610c1c573d6000803e3d6000fd5b50505050806001600160a01b03167fc210de9a5a98ab6c6b579b8d4b8003cce89c8ec3ff669ff2481d63172e00779b858561010560008a6001600160a01b03166001600160a01b031681526020019081526020016000206001015460fc548761010854604051610c91969594939291906141ed565b60405180910390a26101088054906000610caa83614492565b9190505550505b5050600160c9555050565b6097546001600160a01b03163314610ce65760405162461bcd60e51b8152600401610970906142f7565b61010755565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610d355760405162461bcd60e51b81526004016109709061425f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d676128ef565b6001600160a01b031614610d8d5760405162461bcd60e51b8152600401610970906142ab565b610d968161291d565b60408051600080825260208201909252610db291839190612947565b50565b6101026020528160005260406000208181548110610dd257600080fd5b90600052602060002001600091509150505481565b6097546001600160a01b03163314610e115760405162461bcd60e51b8152600401610970906142f7565b610e1c838383612a8b565b505050565b6097546001600160a01b03163314610e4b5760405162461bcd60e51b8152600401610970906142f7565b610e1c838383612be8565b60ff8181548110610e6657600080fd5b6000918252602090912001546001600160a01b0316905081565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610ec95760405162461bcd60e51b81526004016109709061425f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610efb6128ef565b6001600160a01b031614610f215760405162461bcd60e51b8152600401610970906142ab565b610f2a8261291d565b610f3682826001612947565b5050565b6097546001600160a01b03163314610f645760405162461bcd60e51b8152600401610970906142f7565b610f368282612cf2565b6097546001600160a01b03163314610f985760405162461bcd60e51b8152600401610970906142f7565b81518351148015610faa575080518251145b610fdf5760405162461bcd60e51b8152602060048201526006602482015265085a5b9c1d5d60d21b6044820152606401610970565b60005b825181101561117f5781818151811061100b57634e487b7160e01b600052603260045260246000fd5b602002602001015161010b600086848151811061103857634e487b7160e01b600052603260045260246000fd5b60200260200101518152602001908152602001600020600085848151811061107057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055507fdf597e00478ce70575315b7d3a631155dd44024ed3cb828ecac3cb83c28ffe048482815181106110dd57634e487b7160e01b600052603260045260246000fd5b602002602001015184838151811061110557634e487b7160e01b600052603260045260246000fd5b602002602001015184848151811061112d57634e487b7160e01b600052603260045260246000fd5b60200260200101514260405161116594939291909384526001600160a01b039290921660208401526040830152606082015260800190565b60405180910390a18061117781614492565b915050610fe2565b50505050565b6097546001600160a01b031633146111af5760405162461bcd60e51b8152600401610970906142f7565b60005b8251811015610e1c578161010160008584815181106111e157634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061121990614492565b9150506111b2565b6097546001600160a01b0316331461124b5760405162461bcd60e51b8152600401610970906142f7565b60005b8151811015610f3657610100600083838151811061127c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661136c5760ff8282815181106112c957634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182546001808201855560009485529284200180546001600160a01b0319166001600160a01b03909216919091179055835190916101009185908590811061132c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8061137681614492565b91505061124e565b6097546001600160a01b031633146113a85760405162461bcd60e51b8152600401610970906142f7565b6001600160a01b0381166000908152610100602052604090205460ff166114005760405162461bcd60e51b815260206004820152600c60248201526b3737ba1030b8383937bb32b960a11b6044820152606401610970565b60005b60ff54811015610f3657816001600160a01b031660ff828154811061143857634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156115515760ff80546114639060019061444f565b8154811061148157634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460ff80546001600160a01b0390921691839081106114bb57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ff80548061150857634e487b7160e01b600052603160045260246000fd5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0384168252610100905260409020805460ff1916905550610db2565b8061155b81614492565b915050611403565b600054610100900460ff168061157c575060005460ff16155b6115985760405162461bcd60e51b815260040161097090614320565b600054610100900460ff161580156115ba576000805461ffff19166101011790555b6115c2612d78565b6115ca612d78565b6115d34660fc55565b60fd80546001600160a01b03191673111111111111111111111111111111111111111117905560fc54600090815261010160205260408120805460ff19166001179055600261010955610107556116326097546001600160a01b031690565b60fb80546001600160a01b0319166001600160a01b039290921691909117905560005b82518110156116c5576001610101600085848151811061168557634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116bd90614492565b915050611655565b50600a61010c558015610f36576000805461ff00191690555050565b6097546001600160a01b0316331461170b5760405162461bcd60e51b81526004016109709061436e565b6117156000612deb565b565b60008061010c5460001461172e5761010c54611731565b600a5b9050915091565b6097546001600160a01b031633146117625760405162461bcd60e51b8152600401610970906142f7565b61010c55565b6097546001600160a01b031633146117925760405162461bcd60e51b8152600401610970906142f7565b60fb80546001600160a01b0319166001600160a01b0392909216919091179055565b600260c95414156118075760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610970565b600260c9558751600414801561184657508760028151811061183957634e487b7160e01b600052603260045260246000fd5b602002602001015160fc54145b6118845760405162461bcd60e51b815260206004820152600f60248201526e21636861696e20696420636c61696d60881b6044820152606401610970565b60008b8b8b8b8b8888886040516020016118a59897969594939291906140c3565b60408051601f198184030181529181528151602092830120600081815260fe90935291205490915060ff161561190d5760405162461bcd60e51b815260206004820152600d60248201526c616c726561647920636c61696d60981b6044820152606401610970565b61191987878784612e3d565b61195a5760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964207369676e61747572657360701b6044820152606401610970565b611963346130cb565b600081815260fe60205260409020805460ff1916600117905560fd546001600160a01b038d811691161415611e1a5760fc54896000815181106119b657634e487b7160e01b600052603260045260246000fd5b602002602001015114611d205760006001600160a01b031661010460008b6000815181106119f457634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b03161415611c26576000604051611a5e906139d1565b604051809103906000f080158015611a7a573d6000803e3d6000fd5b509050806001600160a01b031663be88368d8e8c600081518110611aae57634e487b7160e01b600052603260045260246000fd5b60200260200101518888886040518663ffffffff1660e01b8152600401611ad995949392919061413e565b600060405180830381600087803b158015611af357600080fd5b505af1158015611b07573d6000803e3d6000fd5b505050508061010460008c600081518110611b3257634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060008f6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060405180604001604052808e6001600160a01b031681526020018b600081518110611bca57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101519091526001600160a01b03928316600090815261010582526040808220845181546001600160a01b03191696169590951785559282015160019485015561010690915220805460ff191690911790555b611c338a8d8b8b8f61312e565b8a6001600160a01b03168c6001600160a01b03167f91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d8c8c600081518110611c8a57634e487b7160e01b600052603260045260246000fd5b60200260200101518d600181518110611cb357634e487b7160e01b600052603260045260246000fd5b602002602001015160fc548f600381518110611cdf57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160408051968752918601949094528401919091526060830152608082015260a0810185905260c00160405180910390a3611e15565b611d2c8a8d8b8e6131ea565b8a6001600160a01b03168c6001600160a01b03167f91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d8c8c600081518110611d8357634e487b7160e01b600052603260045260246000fd5b60200260200101518d600181518110611dac57634e487b7160e01b600052603260045260246000fd5b602002602001015160fc548f600381518110611dd857634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160408051968752918601949094528401919091526060830152608082015260a0810185905260c00160405180910390a35b61219d565b6001600160a01b038c16600090815261010260205260409020546120a85760006001600160a01b031661010460008b600081518110611e6957634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b0316141561209b576000604051611ed3906139d1565b604051809103906000f080158015611eef573d6000803e3d6000fd5b509050806001600160a01b031663be88368d8e8c600081518110611f2357634e487b7160e01b600052603260045260246000fd5b60200260200101518888886040518663ffffffff1660e01b8152600401611f4e95949392919061413e565b600060405180830381600087803b158015611f6857600080fd5b505af1158015611f7c573d6000803e3d6000fd5b505050508061010460008c600081518110611fa757634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060008f6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060405180604001604052808e6001600160a01b031681526020018b60008151811061203f57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101519091526001600160a01b03928316600090815261010582526040808220845181546001600160a01b03191696169590951785559282015160019485015561010690915220805460ff191690911790555b611d2c8a8d8b8b8f61312e565b6120b48a8d8b8e6131ea565b8a6001600160a01b03168c6001600160a01b03167f91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d8c8c60008151811061210b57634e487b7160e01b600052603260045260246000fd5b60200260200101518d60018151811061213457634e487b7160e01b600052603260045260246000fd5b602002602001015160fc548f60038151811061216057634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160408051968752918601949094528401919091526060830152608082015260a0810185905260c00160405180910390a35b5050600160c95550505050505050505050565b6097546001600160a01b031633146121da5760405162461bcd60e51b8152600401610970906142f7565b6001600160a01b0381166000908152610100602052604090205460ff16156122375760405162461bcd60e51b815260206004820152601060248201526f30b63932b0b23c9030b8383937bb32b960811b6044820152606401610970565b6001600160a01b0381166122805760405162461bcd60e51b815260206004820152601060248201526f6e6f6e207a65726f206164647265737360801b6044820152606401610970565b60ff805460018181019092557fe08ec2af2cfc251225e1968fd6ca21e4044f129bffa95bac3503be8bdb30a3670180546001600160a01b039093166001600160a01b03199093168317905560009182526101006020526040909120805460ff19169091179055565b606060ff80548060200260200160405190810160405280929190818152602001828054801561234057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612322575b5050505050905090565b6097546001600160a01b031633146123745760405162461bcd60e51b8152600401610970906142f7565b60028110156123b95760405162461bcd60e51b815260206004820152601160248201527010b6b4b71039b2ba1030b8383937bb32b960791b6044820152606401610970565b61010955565b6001600160a01b0381166000908152610102602090815260409182902080548351818402810184019094528084526060939283018282801561242057602002820191906000526020600020905b81548152602001906001019080831161240c575b505050505090505b919050565b6097546001600160a01b031633146124575760405162461bcd60e51b8152600401610970906142f7565b61010a80546001600160a01b0319166001600160a01b0392909216919091179055565b6097546001600160a01b031633146124a45760405162461bcd60e51b81526004016109709061436e565b6001600160a01b0381166125095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610970565b610db281612deb565b6097546001600160a01b0316331461253c5760405162461bcd60e51b8152600401610970906142f7565b60009182526101016020526040909120805460ff1916911515919091179055565b60fd546001600160a01b03848116911614156125bf578034146125ba5760405162461bcd60e51b81526020600482015260156024820152741a5b9d985b1a5908189c9a5919d948185b5bdd5b9d605a1b6044820152606401610970565b610e1c565b6040516370a0823160e01b815230600482015283906000906001600160a01b038316906370a082319060240160206040518083038186803b15801561260357600080fd5b505afa158015612617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263b9190613f9c565b90506126526001600160a01b038316853086613230565b6040516370a0823160e01b815230600482015283906126d79083906001600160a01b038616906370a082319060240160206040518083038186803b15801561269957600080fd5b505afa1580156126ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d19190613f9c565b9061329b565b146127155760405162461bcd60e51b815260206004820152600e60248201526d217472616e736665722066726f6d60901b6044820152606401610970565b5050505050565b60fd546001600160a01b0385811691161415612765576127456001600160a01b038416836132ae565b612760816127516133c7565b6001600160a01b0316906132ae565b61117f565b6040516370a0823160e01b815230600482015284906000906001600160a01b038316906370a082319060240160206040518083038186803b1580156127a957600080fd5b505afa1580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e19190613f9c565b905083156127fd576127fd6001600160a01b0383168686613400565b821561281f5761281f61280e6133c7565b6001600160a01b0384169085613400565b61282983856143f8565b6040516370a0823160e01b81523060048201526128ab906001600160a01b038516906370a082319060240160206040518083038186803b15801561286c57600080fd5b505afa158015612880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a49190613f9c565b839061329b565b146128e75760405162461bcd60e51b815260206004820152600c60248201526b217472616e7366657220746f60a01b6044820152606401610970565b505050505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6097546001600160a01b03163314610db25760405162461bcd60e51b81526004016109709061436e565b60006129516128ef565b905061295c84613430565b6000835111806129695750815b1561297a5761297884846134d5565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661271557805460ff191660011781556040516001600160a01b03831660248201526129f990869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526134d5565b50805460ff19168155612a0a6128ef565b6001600160a01b0316826001600160a01b031614612a825760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610970565b612715856135c0565b6001600160a01b038316612ab15760405162461bcd60e51b81526004016109709061423c565b6040516331a9108f60e11b81526004810182905230906001600160a01b03841690636352211e9060240160206040518083038186803b158015612af357600080fd5b505afa158015612b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2b9190613bba565b6001600160a01b03161415610e1c576040516323b872dd60e01b81523060048201526001600160a01b038481166024830152604482018390528316906323b872dd90606401600060405180830381600087803b158015612b8a57600080fd5b505af1158015612b9e573d6000803e3d6000fd5b5050505080826001600160a01b0316846001600160a01b03167ffefe036cac4ee3a4aca074a81cbcc4376e1484693289078dbec149c890101d5b60405160405180910390a4505050565b6001600160a01b038316612c0e5760405162461bcd60e51b81526004016109709061423c565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a082319060240160206040518083038186803b158015612c4f57600080fd5b505afa158015612c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c879190613f9c565b10610e1c57612ca06001600160a01b0383168483613400565b816001600160a01b0316836001600160a01b03167f6c9d637297625e945b296ff73a71fcfbd0a9e062652b6491a921c4c60194176b83604051612ce591815260200190565b60405180910390a3505050565b6001600160a01b038216612d185760405162461bcd60e51b81526004016109709061423c565b804710610f3657612d326001600160a01b038316826132ae565b816001600160a01b03167eddb683bb45cd5d0ad8a200c6fae7152b1c236ee90a4a37db692407f5cc38bd82604051612d6c91815260200190565b60405180910390a25050565b600054610100900460ff1680612d91575060005460ff16155b612dad5760405162461bcd60e51b815260040161097090614320565b600054610100900460ff16158015612dcf576000805461ffff19166101011790555b612dd7613600565b8015610db2576000805461ff001916905550565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006002610109541015612e845760405162461bcd60e51b815260206004820152600e60248201526d216d696e20617070726f7665727360901b6044820152606401610970565b6101095460ff541015612eca5760405162461bcd60e51b815260206004820152600e60248201526d216d696e20617070726f7665727360901b6044820152606401610970565b600084518651148015612ede575083518551145b8015612eee575061010954845110155b156130bc5760005b86518110156130ba576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101859052600090600190605c0160405160208183030381529060405280519060200120878481518110612f6e57634e487b7160e01b600052603260045260246000fd5b60200260200101518a8581518110612f9657634e487b7160e01b600052603260045260246000fd5b60200260200101518a8681518110612fbe57634e487b7160e01b600052603260045260246000fd5b602002602001015160405160008152602001604052604051612ffc949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561301e573d6000803e3d6000fd5b505060408051601f1901516001600160a01b0381166000908152610100602052919091205490925060ff161590506130a7578261305a81614492565b604080516001600160a01b038516815260208101899052428183015290519195507fa1164cf36cb74b65282452422c4a4b867b03edb7007d123f7546f35ea3bf762b925081900360600190a15b50806130b281614492565b915050612ef6565b505b61010954111595945050505050565b6101075415610db257610107548110156131185760405162461bcd60e51b815260206004820152600e60248201526d216d696e20636c61696d2066656560901b6044820152606401610970565b60fb54610db2906001600160a01b0316826132ae565b61010460008460008151811061315457634e487b7160e01b600052603260045260246000fd5b602090810291909101810151825281810192909252604090810160009081206001600160a01b0380891683529352819020549051633c03168160e11b81529116906378062d02906131b190879085908a908990899060040161407e565b600060405180830381600087803b1580156131cb57600080fd5b505af11580156131df573d6000803e3d6000fd5b505050505050505050565b60008061322086868660008151811061321357634e487b7160e01b600052603260045260246000fd5b6020026020010151613667565b915091506128e78584848461271c565b6040516001600160a01b038085166024830152831660448201526064810182905261117f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526136bd565b60006132a7828461444f565b9392505050565b804710156132fe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610970565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461334b576040519150601f19603f3d011682016040523d82523d6000602084013e613350565b606091505b5050905080610e1c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610970565b61010a546000906001600160a01b0316156133ee5761010a546001600160a01b03166133fb565b6097546001600160a01b03165b905090565b6040516001600160a01b038316602482015260448101829052610e1c90849063a9059cbb60e01b90606401613264565b803b6134945760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610970565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6135345760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610970565b600080846001600160a01b03168460405161354f9190614062565b600060405180830381855af49150503d806000811461358a576040519150601f19603f3d011682016040523d82523d6000602084013e61358f565b606091505b50915091506135b78282604051806060016040528060278152602001615cba6027913961378f565b95945050505050565b6135c981613430565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff1680613619575060005460ff16155b6136355760405162461bcd60e51b815260040161097090614320565b600054610100900460ff16158015613657576000805461ffff19166101011790555b61365f6137c8565b612dd7613832565b600080600061010c546000146136805761010c54613683565b600a5b9050612710613692828261444f565b61369c9088614430565b6136a69190614410565b92506136b2838761444f565b915050935093915050565b6000613712826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138929092919063ffffffff16565b805190915015610e1c57808060200190518101906137309190613f68565b610e1c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610970565b6060831561379e5750816132a7565b8251156137ae5782518084602001fd5b8160405162461bcd60e51b81526004016109709190614229565b600054610100900460ff16806137e1575060005460ff16155b6137fd5760405162461bcd60e51b815260040161097090614320565b600054610100900460ff16158015612dd7576000805461ffff19166101011790558015610db2576000805461ff001916905550565b600054610100900460ff168061384b575060005460ff16155b6138675760405162461bcd60e51b815260040161097090614320565b600054610100900460ff16158015613889576000805461ffff19166101011790555b612dd733612deb565b60606138a184846000856138a9565b949350505050565b60608247101561390a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610970565b843b6139585760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610970565b600080866001600160a01b031685876040516139749190614062565b60006040518083038185875af1925050503d80600081146139b1576040519150601f19603f3d011682016040523d82523d6000602084013e6139b6565b606091505b50915091506139c682828661378f565b979650505050505050565b6117bd806144fd83390190565b8035612428816144d9565b600082601f8301126139f9578081fd5b81356020613a0e613a09836143d4565b6143a3565b80838252828201915082860187848660051b8901011115613a2d578586fd5b855b85811015613a54578135613a42816144d9565b84529284019290840190600101613a2f565b5090979650505050505050565b600082601f830112613a71578081fd5b81356020613a81613a09836143d4565b80838252828201915082860187848660051b8901011115613aa0578586fd5b855b85811015613a5457813584529284019290840190600101613aa2565b600082601f830112613ace578081fd5b81356020613ade613a09836143d4565b80838252828201915082860187848660051b8901011115613afd578586fd5b855b85811015613a5457613b1082613b8d565b84529284019290840190600101613aff565b600082601f830112613b32578081fd5b813567ffffffffffffffff811115613b4c57613b4c6144c3565b613b5f601f8201601f19166020016143a3565b818152846020838601011115613b73578283fd5b816020850160208301379081016020019190915292915050565b803560ff8116811461242857600080fd5b600060208284031215613baf578081fd5b81356132a7816144d9565b600060208284031215613bcb578081fd5b81516132a7816144d9565b600080600060608486031215613bea578182fd5b8335613bf5816144d9565b92506020840135613c05816144d9565b929592945050506040919091013590565b60008060408385031215613c28578182fd5b8235613c33816144d9565b946020939093013593505050565b60008060008060008060008060008060006101608c8e031215613c62578889fd5b613c6b8c6139de565b9a50613c7960208d016139de565b995060408c0135985067ffffffffffffffff8060608e01351115613c9b578788fd5b613cab8e60608f01358f01613a61565b985060808d013597508060a08e01351115613cc4578687fd5b613cd48e60a08f01358f01613a61565b96508060c08e01351115613ce6578586fd5b613cf68e60c08f01358f01613a61565b95508060e08e01351115613d08578485fd5b613d188e60e08f01358f01613abe565b9450806101008e01351115613d2b578384fd5b613d3c8e6101008f01358f01613b22565b9350806101208e01351115613d4f578283fd5b50613d618d6101208e01358e01613b22565b9150613d706101408d01613b8d565b90509295989b509295989b9093969950565b60008060408385031215613d94578182fd5b8235613d9f816144d9565b9150602083013567ffffffffffffffff811115613dba578182fd5b613dc685828601613b22565b9150509250929050565b60008060008060808587031215613de5578182fd5b8435613df0816144d9565b9350602085013567ffffffffffffffff811115613e0b578283fd5b613e1787828801613b22565b949794965050505060408301359260600135919050565b600060208284031215613e3f578081fd5b813567ffffffffffffffff811115613e55578182fd5b6138a1848285016139e9565b600060208284031215613e72578081fd5b813567ffffffffffffffff811115613e88578182fd5b6138a184828501613a61565b600080600060608486031215613ea8578081fd5b833567ffffffffffffffff80821115613ebf578283fd5b613ecb87838801613a61565b94506020860135915080821115613ee0578283fd5b613eec878388016139e9565b93506040860135915080821115613f01578283fd5b50613f0e86828701613a61565b9150509250925092565b60008060408385031215613f2a578182fd5b823567ffffffffffffffff811115613f40578283fd5b613f4c85828601613a61565b9250506020830135613f5d816144ee565b809150509250929050565b600060208284031215613f79578081fd5b81516132a7816144ee565b600060208284031215613f95578081fd5b5035919050565b600060208284031215613fad578081fd5b5051919050565b60008060408385031215613fc6578182fd5b823591506020830135613f5d816144d9565b60008060408385031215613fea578182fd5b823591506020830135613f5d816144ee565b6000815180845260208085019450808401835b8381101561402b5781518752958201959082019060010161400f565b509495945050505050565b6000815180845261404e816020860160208601614466565b601f01601f19169290920160200192915050565b60008251614074818460208701614466565b9190910192915050565b6001600160a01b038681168252851660208201526040810184905260a0606082018190526000906140b190830185613ffc565b90508260808301529695505050505050565b6001600160a01b0389811682528816602082015260408101879052610100606082018190526000906140f783820189613ffc565b905086608084015282810360a08401526141118187614036565b905082810360c08401526141258186614036565b91505060ff831660e08301529998505050505050505050565b600060018060a01b038716825285602083015260a0604083015261416560a0830186614036565b82810360608401526141778186614036565b91505060ff831660808301529695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156141ce5783516001600160a01b0316835292840192918401916001016141a9565b50909695505050505050565b6000602082526132a76020830184613ffc565b600060c0825261420060c0830189614036565b60208301979097525060408101949094526060840192909252608083015260a090910152919050565b6000602082526132a76020830184614036565b6020808252600990820152684248503a452d34303360b81b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600f908201526e216f6e6c79476f7665726e616e636560881b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156143cc576143cc6144c3565b604052919050565b600067ffffffffffffffff8211156143ee576143ee6144c3565b5060051b60200190565b6000821982111561440b5761440b6144ad565b500190565b60008261442b57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561444a5761444a6144ad565b500290565b600082821015614461576144616144ad565b500390565b60005b83811015614481578181015183820152602001614469565b8381111561117f5750506000910152565b60006000198214156144a6576144a66144ad565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610db257600080fd5b8015158114610db257600080fdfe608060405234801561001057600080fd5b5061179d806100206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806379cc6790116100b85780639a8a05921161007c5780639a8a05921461029f578063a457c2d7146102a8578063a9059cbb146102bb578063be88368d146102ce578063dd62ed3e146102e1578063f2fde38b1461031a57610142565b806379cc6790146102255780637a4f7d79146102385780638d68fdc8146102635780638da5cb5b1461028657806395d89b411461029757610142565b8063313ce5671161010a578063313ce567146101ba57806339509351146101cf57806342966c68146101e257806370a08231146101f7578063715018a61461020a57806378062d021461021257610142565b806306fdde0314610147578063095ea7b3146101655780630ac7f5611461018857806318160ddd1461019f57806323b872dd146101a7575b600080fd5b61014f61032d565b60405161015c919061160a565b60405180910390f35b61017861017336600461143e565b6103bf565b604051901515815260200161015c565b61019160cc5481565b60405190815260200161015c565b603554610191565b6101786101b5366004611328565b6103d5565b60cd5460405160ff909116815260200161015c565b6101786101dd36600461143e565b610484565b6101f56101f03660046114fc565b6104c0565b005b6101916102053660046112d5565b6104cd565b6101f56104ec565b6101f5610220366004611363565b610522565b6101f561023336600461143e565b610762565b60cb5461024b906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b6101786102713660046114fc565b60ca6020526000908152604090205460ff1681565b6097546001600160a01b031661024b565b61014f6107e8565b61019160c95481565b6101786102b636600461143e565b6107f7565b6101786102c936600461143e565b610890565b6101f56102dc366004611467565b61089d565b6101916102ef3660046112f6565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6101f56103283660046112d5565b610957565b60606036805461033c90611700565b80601f016020809104026020016040519081016040528092919081815260200182805461036890611700565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050905090565b60006103cc3384846109ef565b50600192915050565b60006103e2848484610b13565b6001600160a01b03841660009081526034602090815260408083203384529091529020548281101561046c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61047985338584036109ef565b506001949350505050565b3360008181526034602090815260408083206001600160a01b038716845290915281205490916103cc9185906104bb9086906116d1565b6109ef565b6104ca3382610ce2565b50565b6001600160a01b0381166000908152603360205260409020545b919050565b6097546001600160a01b031633146105165760405162461bcd60e51b81526004016104639061166b565b6105206000610e30565b565b6097546001600160a01b0316331461054c5760405162461bcd60e51b81526004016104639061166b565b81516004146105965760405162461bcd60e51b8152602060048201526016602482015275042bec6d0c2d2dc92c8e692dcc8caf05cd8cadccee8d60531b6044820152606401610463565b60cb546001600160a01b038681169116146105eb5760405162461bcd60e51b8152602060048201526015602482015274216f726967696e616c546f6b656e4164647265737360581b6044820152606401610463565b60c9548260028151811061060f57634e487b7160e01b600052603260045260246000fd5b6020026020010151146106575760405162461bcd60e51b815260206004820152601060248201526f085a5b9d985b1a590818da185a5b925960821b6044820152606401610463565b6001600160a01b03841661069b5760405162461bcd60e51b815260206004820152600b60248201526a21696e76616c696420746f60a81b6044820152606401610463565b600085858585856106aa61032d565b6106b26107e8565b60cd5460ff166040516020016106cf98979695949392919061155f565b60408051601f198184030181529181528151602092830120600081815260ca90935291205490915060ff16156107375760405162461bcd60e51b815260206004820152600d60248201526c616c726561647920636c61696d60981b6044820152606401610463565b600081815260ca60205260409020805460ff1916600117905561075a8585610e82565b505050505050565b600061076e83336102ef565b9050818110156107cc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610463565b6107d983338484036109ef565b6107e38383610ce2565b505050565b60606037805461033c90611700565b3360009081526034602090815260408083206001600160a01b0386168452909152812054828110156108795760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610463565b61088633858584036109ef565b5060019392505050565b60006103cc338484610b13565b600054610100900460ff16806108b6575060005460ff16155b6108d25760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff161580156108f4576000805461ffff19166101011790555b6108fc610f61565b6109054660c955565b61090f8484610fdc565b60cd805460ff191660ff841617905560cb80546001600160a01b0319166001600160a01b03881617905560cc859055801561075a576000805461ff0019169055505050505050565b6097546001600160a01b031633146109815760405162461bcd60e51b81526004016104639061166b565b6001600160a01b0381166109e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610463565b6104ca81610e30565b6001600160a01b038316610a515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610463565b6001600160a01b038216610ab25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610463565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610463565b6001600160a01b038216610bd95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610463565b6001600160a01b03831660009081526033602052604090205481811015610c515760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610463565b6001600160a01b03808516600090815260336020526040808220858503905591851681529081208054849290610c889084906116d1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cd491815260200190565b60405180910390a350505050565b6001600160a01b038216610d425760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610463565b6001600160a01b03821660009081526033602052604090205481811015610db65760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610463565b6001600160a01b0383166000908152603360205260408120838303905560358054849290610de59084906116e9565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36107e3565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610ed85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610463565b8060356000828254610eea91906116d1565b90915550506001600160a01b03821660009081526033602052604081208054839290610f179084906116d1565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600054610100900460ff1680610f7a575060005460ff16155b610f965760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff16158015610fb8576000805461ffff19166101011790555b610fc061105b565b610fc86110c5565b80156104ca576000805461ff001916905550565b600054610100900460ff1680610ff5575060005460ff16155b6110115760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff16158015611033576000805461ffff19166101011790555b61103b61105b565b6110458383611125565b80156107e3576000805461ff0019169055505050565b600054610100900460ff1680611074575060005460ff16155b6110905760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff16158015610fc8576000805461ffff191661010117905580156104ca576000805461ff001916905550565b600054610100900460ff16806110de575060005460ff16155b6110fa5760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff1615801561111c576000805461ffff19166101011790555b610fc833610e30565b600054610100900460ff168061113e575060005460ff16155b61115a5760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff1615801561117c576000805461ffff19166101011790555b825161118f9060369060208601906111ba565b5081516111a39060379060208501906111ba565b5080156107e3576000805461ff0019169055505050565b8280546111c690611700565b90600052602060002090601f0160209004810192826111e8576000855561122e565b82601f1061120157805160ff191683800117855561122e565b8280016001018555821561122e579182015b8281111561122e578251825591602001919060010190611213565b5061123a92915061123e565b5090565b5b8082111561123a576000815560010161123f565b80356001600160a01b03811681146104e757600080fd5b600082601f83011261127a578081fd5b813567ffffffffffffffff81111561129457611294611751565b6112a7601f8201601f19166020016116a0565b8181528460208386010111156112bb578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156112e6578081fd5b6112ef82611253565b9392505050565b60008060408385031215611308578081fd5b61131183611253565b915061131f60208401611253565b90509250929050565b60008060006060848603121561133c578081fd5b61134584611253565b925061135360208501611253565b9150604084013590509250925092565b600080600080600060a0868803121561137a578081fd5b61138386611253565b94506020611392818801611253565b945060408701359350606087013567ffffffffffffffff808211156113b5578384fd5b818901915089601f8301126113c8578384fd5b8135818111156113da576113da611751565b8060051b91506113eb8483016116a0565b8181528481019084860184860187018e1015611405578788fd5b8795505b83861015611427578035835260019590950194918601918601611409565b50999c989b50969960800135979650505050505050565b60008060408385031215611450578182fd5b61145983611253565b946020939093013593505050565b600080600080600060a0868803121561147e578081fd5b61148786611253565b945060208601359350604086013567ffffffffffffffff808211156114aa578283fd5b6114b689838a0161126a565b945060608801359150808211156114cb578283fd5b506114d88882890161126a565b925050608086013560ff811681146114ee578182fd5b809150509295509295909350565b60006020828403121561150d578081fd5b5035919050565b60008151808452815b818110156115395760208185018101518683018201520161151d565b8181111561154a5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03898116825288166020808301919091526040820188905261010060608301819052875190830181905260009161012084019189820191845b828110156115bb5783518552938101939281019260010161159f565b5050505086608084015282810360a08401526115d78187611514565b905082810360c08401526115eb8186611514565b9150506115fd60e083018460ff169052565b9998505050505050505050565b6000602082526112ef6020830184611514565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156116c9576116c9611751565b604052919050565b600082198211156116e4576116e461173b565b500190565b6000828210156116fb576116fb61173b565b500390565b600181811c9082168061171457607f821691505b6020821081141561173557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212202e783c26bb0bf9148b574516dd5ffb57e74843cb1dc949eaf010a2fac8d7a41664736f6c63430008030033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f98e6b7d9a223511be28973472f10002444beaf9d2a4f30d4b4323acaf7082364736f6c63430008030033
Deployed Bytecode
0x60806040526004361061027d5760003560e01c80638da5cb5b1161014f578063bfa411f8116100c1578063df2ebdbb1161007a578063df2ebdbb14610852578063e724604214610872578063e9008d5b14610887578063efdcd974146108c1578063f2fde38b146108e1578063ffb2efb8146109015761027d565b8063bfa411f81461075f578063c60c9a5414610781578063d4638d4e146107bd578063d641e916146107dd578063d9bdd6591461080e578063dee157ca1461083b5761027d565b8063ab033ea911610113578063ab033ea91461069b578063b3f00674146106bb578063b4824034146106dc578063b4c530ad146106f3578063b646c19414610706578063b754577d146107265761027d565b80638da5cb5b146105d057806394c9d29b146105ee57806399d32fc41461064e5780639a8a0592146106655780639f92b7151461067b5761027d565b8063522f6815116101f35780636cf4c88f116101ac5780636cf4c88f146104e55780636d1ac36a146105055780636fe0e55914610536578063715018a6146105565780637439459b1461056b5780638d68fdc8146105a05761027d565b8063522f68151461042f5780635260136c1461044f57806354f7088f1461046f5780635aa6e6751461048557806367844634146104a55780636a882d51146104c55761027d565b806336db95fb1161024557806336db95fb1461035b5780634025feb21461037b57806344004cc11461039b57806345923dfb146103bb5780634cf2ab32146103db5780634f1ef2861461041c5761027d565b806313ac7898146102825780632986c0e5146102e15780632db34b271461030657806332a693301461031b5780633659cfe61461033b575b600080fd5b34801561028e57600080fd5b506102c461029d366004613fb4565b6101046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102ed57600080fd5b506102f86101085481565b6040519081526020016102d8565b610319610314366004613dd0565b610921565b005b34801561032757600080fd5b50610319610336366004613f84565b610cbc565b34801561034757600080fd5b50610319610356366004613b9e565b610cec565b34801561036757600080fd5b506102f8610376366004613c16565b610db5565b34801561038757600080fd5b50610319610396366004613bd6565b610de7565b3480156103a757600080fd5b506103196103b6366004613bd6565b610e21565b3480156103c757600080fd5b506102c46103d6366004613f84565b610e56565b3480156103e757600080fd5b5061040c6103f6366004613f84565b6101016020526000908152604090205460ff1681565b60405190151581526020016102d8565b61031961042a366004613d82565b610e80565b34801561043b57600080fd5b5061031961044a366004613c16565b610f3a565b34801561045b57600080fd5b5061031961046a366004613e94565b610f6e565b34801561047b57600080fd5b506102f861271081565b34801561049157600080fd5b5060fb546102c4906001600160a01b031681565b3480156104b157600080fd5b506103196104c0366004613f18565b611185565b3480156104d157600080fd5b506103196104e0366004613e2e565b611221565b3480156104f157600080fd5b50610319610500366004613b9e565b61137e565b34801561051157600080fd5b5061040c610520366004613b9e565b6101066020526000908152604090205460ff1681565b34801561054257600080fd5b50610319610551366004613e61565b611563565b34801561056257600080fd5b506103196116e1565b34801561057757600080fd5b5061058b610586366004613b9e565b611717565b604080519283526020830191909152016102d8565b3480156105ac57600080fd5b5061040c6105bb366004613f84565b60fe6020526000908152604090205460ff1681565b3480156105dc57600080fd5b506097546001600160a01b03166102c4565b3480156105fa57600080fd5b5061062f610609366004613b9e565b61010560205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b0390931683526020830191909152016102d8565b34801561065a57600080fd5b506102f86101075481565b34801561067157600080fd5b506102f860fc5481565b34801561068757600080fd5b50610319610696366004613f84565b611738565b3480156106a757600080fd5b506103196106b6366004613b9e565b611768565b3480156106c757600080fd5b5061010a546102c4906001600160a01b031681565b3480156106e857600080fd5b506102f861010c5481565b610319610701366004613c41565b6117b4565b34801561071257600080fd5b50610319610721366004613b9e565b6121b0565b34801561073257600080fd5b506102f8610741366004613fb4565b61010b60209081526000928352604080842090915290825290205481565b34801561076b57600080fd5b506107746122e8565b6040516102d8919061418d565b34801561078d57600080fd5b5061040c61079c366004613c16565b61010360209081526000928352604080842090915290825290205460ff1681565b3480156107c957600080fd5b506103196107d8366004613f84565b61234a565b3480156107e957600080fd5b5061040c6107f8366004613b9e565b6101006020526000908152604090205460ff1681565b34801561081a57600080fd5b5061082e610829366004613b9e565b6123bf565b6040516102d891906141da565b34801561084757600080fd5b506102f86101095481565b34801561085e57600080fd5b5060fd546102c4906001600160a01b031681565b34801561087e57600080fd5b506102f8600a81565b34801561089357600080fd5b5061040c6108a2366004613b9e565b6001600160a01b03166000908152610106602052604090205460ff1690565b3480156108cd57600080fd5b506103196108dc366004613b9e565b61242d565b3480156108ed57600080fd5b506103196108fc366004613b9e565b61247a565b34801561090d57600080fd5b5061031961091c366004613fd8565b612512565b600260c95414156109795760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260c95560fc548114156109e65760405162461bcd60e51b815260206004820152602d60248201527f736f7572636520616e642074617267657420636861696e20696473206d75737460448201526c08189948191a5999995c995b9d609a1b6064820152608401610970565b6000818152610101602052604090205460ff16610a3b5760405162461bcd60e51b81526020600482015260136024820152721d5b9cdd5c1c1bdc9d19590818da185a5b9259606a1b6044820152606401610970565b6001600160a01b0384166000908152610106602052604090205460ff16610bac57600061010c54600014610a725761010c54610a75565b600a5b90506000612710610a86838261444f565b610a909086614430565b610a9a9190614410565b90506000610aa8828661444f565b9050610ab587338761255d565b610ac2873360008461271c565b866001600160a01b03167fc210de9a5a98ab6c6b579b8d4b8003cce89c8ec3ff669ff2481d63172e00779b878460fc5460fc548961010854604051610b0c969594939291906141ed565b60405180910390a26101088054906000610b2583614492565b90915550506001600160a01b03871660009081526101036020908152604080832087845290915290205460ff16610ba4576001600160a01b0387166000818152610102602090815260408083208054600181810183559185528385200189905593835261010382528083208884529091529020805460ff191690911790555b505050610cb1565b6001600160a01b03848116600081815261010560205260409081902054905163079cc67960e41b8152336004820152602481018690529216916379cc679090604401600060405180830381600087803b158015610c0857600080fd5b505af1158015610c1c573d6000803e3d6000fd5b50505050806001600160a01b03167fc210de9a5a98ab6c6b579b8d4b8003cce89c8ec3ff669ff2481d63172e00779b858561010560008a6001600160a01b03166001600160a01b031681526020019081526020016000206001015460fc548761010854604051610c91969594939291906141ed565b60405180910390a26101088054906000610caa83614492565b9190505550505b5050600160c9555050565b6097546001600160a01b03163314610ce65760405162461bcd60e51b8152600401610970906142f7565b61010755565b306001600160a01b037f000000000000000000000000f62640dd45572f2d2c0e1122aada9bb57c96b4b9161415610d355760405162461bcd60e51b81526004016109709061425f565b7f000000000000000000000000f62640dd45572f2d2c0e1122aada9bb57c96b4b96001600160a01b0316610d676128ef565b6001600160a01b031614610d8d5760405162461bcd60e51b8152600401610970906142ab565b610d968161291d565b60408051600080825260208201909252610db291839190612947565b50565b6101026020528160005260406000208181548110610dd257600080fd5b90600052602060002001600091509150505481565b6097546001600160a01b03163314610e115760405162461bcd60e51b8152600401610970906142f7565b610e1c838383612a8b565b505050565b6097546001600160a01b03163314610e4b5760405162461bcd60e51b8152600401610970906142f7565b610e1c838383612be8565b60ff8181548110610e6657600080fd5b6000918252602090912001546001600160a01b0316905081565b306001600160a01b037f000000000000000000000000f62640dd45572f2d2c0e1122aada9bb57c96b4b9161415610ec95760405162461bcd60e51b81526004016109709061425f565b7f000000000000000000000000f62640dd45572f2d2c0e1122aada9bb57c96b4b96001600160a01b0316610efb6128ef565b6001600160a01b031614610f215760405162461bcd60e51b8152600401610970906142ab565b610f2a8261291d565b610f3682826001612947565b5050565b6097546001600160a01b03163314610f645760405162461bcd60e51b8152600401610970906142f7565b610f368282612cf2565b6097546001600160a01b03163314610f985760405162461bcd60e51b8152600401610970906142f7565b81518351148015610faa575080518251145b610fdf5760405162461bcd60e51b8152602060048201526006602482015265085a5b9c1d5d60d21b6044820152606401610970565b60005b825181101561117f5781818151811061100b57634e487b7160e01b600052603260045260246000fd5b602002602001015161010b600086848151811061103857634e487b7160e01b600052603260045260246000fd5b60200260200101518152602001908152602001600020600085848151811061107057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055507fdf597e00478ce70575315b7d3a631155dd44024ed3cb828ecac3cb83c28ffe048482815181106110dd57634e487b7160e01b600052603260045260246000fd5b602002602001015184838151811061110557634e487b7160e01b600052603260045260246000fd5b602002602001015184848151811061112d57634e487b7160e01b600052603260045260246000fd5b60200260200101514260405161116594939291909384526001600160a01b039290921660208401526040830152606082015260800190565b60405180910390a18061117781614492565b915050610fe2565b50505050565b6097546001600160a01b031633146111af5760405162461bcd60e51b8152600401610970906142f7565b60005b8251811015610e1c578161010160008584815181106111e157634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061121990614492565b9150506111b2565b6097546001600160a01b0316331461124b5760405162461bcd60e51b8152600401610970906142f7565b60005b8151811015610f3657610100600083838151811061127c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661136c5760ff8282815181106112c957634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182546001808201855560009485529284200180546001600160a01b0319166001600160a01b03909216919091179055835190916101009185908590811061132c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8061137681614492565b91505061124e565b6097546001600160a01b031633146113a85760405162461bcd60e51b8152600401610970906142f7565b6001600160a01b0381166000908152610100602052604090205460ff166114005760405162461bcd60e51b815260206004820152600c60248201526b3737ba1030b8383937bb32b960a11b6044820152606401610970565b60005b60ff54811015610f3657816001600160a01b031660ff828154811061143857634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156115515760ff80546114639060019061444f565b8154811061148157634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460ff80546001600160a01b0390921691839081106114bb57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ff80548061150857634e487b7160e01b600052603160045260246000fd5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0384168252610100905260409020805460ff1916905550610db2565b8061155b81614492565b915050611403565b600054610100900460ff168061157c575060005460ff16155b6115985760405162461bcd60e51b815260040161097090614320565b600054610100900460ff161580156115ba576000805461ffff19166101011790555b6115c2612d78565b6115ca612d78565b6115d34660fc55565b60fd80546001600160a01b03191673111111111111111111111111111111111111111117905560fc54600090815261010160205260408120805460ff19166001179055600261010955610107556116326097546001600160a01b031690565b60fb80546001600160a01b0319166001600160a01b039290921691909117905560005b82518110156116c5576001610101600085848151811061168557634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116bd90614492565b915050611655565b50600a61010c558015610f36576000805461ff00191690555050565b6097546001600160a01b0316331461170b5760405162461bcd60e51b81526004016109709061436e565b6117156000612deb565b565b60008061010c5460001461172e5761010c54611731565b600a5b9050915091565b6097546001600160a01b031633146117625760405162461bcd60e51b8152600401610970906142f7565b61010c55565b6097546001600160a01b031633146117925760405162461bcd60e51b8152600401610970906142f7565b60fb80546001600160a01b0319166001600160a01b0392909216919091179055565b600260c95414156118075760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610970565b600260c9558751600414801561184657508760028151811061183957634e487b7160e01b600052603260045260246000fd5b602002602001015160fc54145b6118845760405162461bcd60e51b815260206004820152600f60248201526e21636861696e20696420636c61696d60881b6044820152606401610970565b60008b8b8b8b8b8888886040516020016118a59897969594939291906140c3565b60408051601f198184030181529181528151602092830120600081815260fe90935291205490915060ff161561190d5760405162461bcd60e51b815260206004820152600d60248201526c616c726561647920636c61696d60981b6044820152606401610970565b61191987878784612e3d565b61195a5760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964207369676e61747572657360701b6044820152606401610970565b611963346130cb565b600081815260fe60205260409020805460ff1916600117905560fd546001600160a01b038d811691161415611e1a5760fc54896000815181106119b657634e487b7160e01b600052603260045260246000fd5b602002602001015114611d205760006001600160a01b031661010460008b6000815181106119f457634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b03161415611c26576000604051611a5e906139d1565b604051809103906000f080158015611a7a573d6000803e3d6000fd5b509050806001600160a01b031663be88368d8e8c600081518110611aae57634e487b7160e01b600052603260045260246000fd5b60200260200101518888886040518663ffffffff1660e01b8152600401611ad995949392919061413e565b600060405180830381600087803b158015611af357600080fd5b505af1158015611b07573d6000803e3d6000fd5b505050508061010460008c600081518110611b3257634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060008f6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060405180604001604052808e6001600160a01b031681526020018b600081518110611bca57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101519091526001600160a01b03928316600090815261010582526040808220845181546001600160a01b03191696169590951785559282015160019485015561010690915220805460ff191690911790555b611c338a8d8b8b8f61312e565b8a6001600160a01b03168c6001600160a01b03167f91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d8c8c600081518110611c8a57634e487b7160e01b600052603260045260246000fd5b60200260200101518d600181518110611cb357634e487b7160e01b600052603260045260246000fd5b602002602001015160fc548f600381518110611cdf57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160408051968752918601949094528401919091526060830152608082015260a0810185905260c00160405180910390a3611e15565b611d2c8a8d8b8e6131ea565b8a6001600160a01b03168c6001600160a01b03167f91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d8c8c600081518110611d8357634e487b7160e01b600052603260045260246000fd5b60200260200101518d600181518110611dac57634e487b7160e01b600052603260045260246000fd5b602002602001015160fc548f600381518110611dd857634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160408051968752918601949094528401919091526060830152608082015260a0810185905260c00160405180910390a35b61219d565b6001600160a01b038c16600090815261010260205260409020546120a85760006001600160a01b031661010460008b600081518110611e6957634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b0316141561209b576000604051611ed3906139d1565b604051809103906000f080158015611eef573d6000803e3d6000fd5b509050806001600160a01b031663be88368d8e8c600081518110611f2357634e487b7160e01b600052603260045260246000fd5b60200260200101518888886040518663ffffffff1660e01b8152600401611f4e95949392919061413e565b600060405180830381600087803b158015611f6857600080fd5b505af1158015611f7c573d6000803e3d6000fd5b505050508061010460008c600081518110611fa757634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060008f6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060405180604001604052808e6001600160a01b031681526020018b60008151811061203f57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101519091526001600160a01b03928316600090815261010582526040808220845181546001600160a01b03191696169590951785559282015160019485015561010690915220805460ff191690911790555b611d2c8a8d8b8b8f61312e565b6120b48a8d8b8e6131ea565b8a6001600160a01b03168c6001600160a01b03167f91e6edd0a13d88402389ca421cdea8b8c5e72d7b05706b6488c7d0008f853a0d8c8c60008151811061210b57634e487b7160e01b600052603260045260246000fd5b60200260200101518d60018151811061213457634e487b7160e01b600052603260045260246000fd5b602002602001015160fc548f60038151811061216057634e487b7160e01b600052603260045260246000fd5b60209081029190910181015160408051968752918601949094528401919091526060830152608082015260a0810185905260c00160405180910390a35b5050600160c95550505050505050505050565b6097546001600160a01b031633146121da5760405162461bcd60e51b8152600401610970906142f7565b6001600160a01b0381166000908152610100602052604090205460ff16156122375760405162461bcd60e51b815260206004820152601060248201526f30b63932b0b23c9030b8383937bb32b960811b6044820152606401610970565b6001600160a01b0381166122805760405162461bcd60e51b815260206004820152601060248201526f6e6f6e207a65726f206164647265737360801b6044820152606401610970565b60ff805460018181019092557fe08ec2af2cfc251225e1968fd6ca21e4044f129bffa95bac3503be8bdb30a3670180546001600160a01b039093166001600160a01b03199093168317905560009182526101006020526040909120805460ff19169091179055565b606060ff80548060200260200160405190810160405280929190818152602001828054801561234057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612322575b5050505050905090565b6097546001600160a01b031633146123745760405162461bcd60e51b8152600401610970906142f7565b60028110156123b95760405162461bcd60e51b815260206004820152601160248201527010b6b4b71039b2ba1030b8383937bb32b960791b6044820152606401610970565b61010955565b6001600160a01b0381166000908152610102602090815260409182902080548351818402810184019094528084526060939283018282801561242057602002820191906000526020600020905b81548152602001906001019080831161240c575b505050505090505b919050565b6097546001600160a01b031633146124575760405162461bcd60e51b8152600401610970906142f7565b61010a80546001600160a01b0319166001600160a01b0392909216919091179055565b6097546001600160a01b031633146124a45760405162461bcd60e51b81526004016109709061436e565b6001600160a01b0381166125095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610970565b610db281612deb565b6097546001600160a01b0316331461253c5760405162461bcd60e51b8152600401610970906142f7565b60009182526101016020526040909120805460ff1916911515919091179055565b60fd546001600160a01b03848116911614156125bf578034146125ba5760405162461bcd60e51b81526020600482015260156024820152741a5b9d985b1a5908189c9a5919d948185b5bdd5b9d605a1b6044820152606401610970565b610e1c565b6040516370a0823160e01b815230600482015283906000906001600160a01b038316906370a082319060240160206040518083038186803b15801561260357600080fd5b505afa158015612617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263b9190613f9c565b90506126526001600160a01b038316853086613230565b6040516370a0823160e01b815230600482015283906126d79083906001600160a01b038616906370a082319060240160206040518083038186803b15801561269957600080fd5b505afa1580156126ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d19190613f9c565b9061329b565b146127155760405162461bcd60e51b815260206004820152600e60248201526d217472616e736665722066726f6d60901b6044820152606401610970565b5050505050565b60fd546001600160a01b0385811691161415612765576127456001600160a01b038416836132ae565b612760816127516133c7565b6001600160a01b0316906132ae565b61117f565b6040516370a0823160e01b815230600482015284906000906001600160a01b038316906370a082319060240160206040518083038186803b1580156127a957600080fd5b505afa1580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e19190613f9c565b905083156127fd576127fd6001600160a01b0383168686613400565b821561281f5761281f61280e6133c7565b6001600160a01b0384169085613400565b61282983856143f8565b6040516370a0823160e01b81523060048201526128ab906001600160a01b038516906370a082319060240160206040518083038186803b15801561286c57600080fd5b505afa158015612880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a49190613f9c565b839061329b565b146128e75760405162461bcd60e51b815260206004820152600c60248201526b217472616e7366657220746f60a01b6044820152606401610970565b505050505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6097546001600160a01b03163314610db25760405162461bcd60e51b81526004016109709061436e565b60006129516128ef565b905061295c84613430565b6000835111806129695750815b1561297a5761297884846134d5565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661271557805460ff191660011781556040516001600160a01b03831660248201526129f990869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526134d5565b50805460ff19168155612a0a6128ef565b6001600160a01b0316826001600160a01b031614612a825760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610970565b612715856135c0565b6001600160a01b038316612ab15760405162461bcd60e51b81526004016109709061423c565b6040516331a9108f60e11b81526004810182905230906001600160a01b03841690636352211e9060240160206040518083038186803b158015612af357600080fd5b505afa158015612b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2b9190613bba565b6001600160a01b03161415610e1c576040516323b872dd60e01b81523060048201526001600160a01b038481166024830152604482018390528316906323b872dd90606401600060405180830381600087803b158015612b8a57600080fd5b505af1158015612b9e573d6000803e3d6000fd5b5050505080826001600160a01b0316846001600160a01b03167ffefe036cac4ee3a4aca074a81cbcc4376e1484693289078dbec149c890101d5b60405160405180910390a4505050565b6001600160a01b038316612c0e5760405162461bcd60e51b81526004016109709061423c565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a082319060240160206040518083038186803b158015612c4f57600080fd5b505afa158015612c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c879190613f9c565b10610e1c57612ca06001600160a01b0383168483613400565b816001600160a01b0316836001600160a01b03167f6c9d637297625e945b296ff73a71fcfbd0a9e062652b6491a921c4c60194176b83604051612ce591815260200190565b60405180910390a3505050565b6001600160a01b038216612d185760405162461bcd60e51b81526004016109709061423c565b804710610f3657612d326001600160a01b038316826132ae565b816001600160a01b03167eddb683bb45cd5d0ad8a200c6fae7152b1c236ee90a4a37db692407f5cc38bd82604051612d6c91815260200190565b60405180910390a25050565b600054610100900460ff1680612d91575060005460ff16155b612dad5760405162461bcd60e51b815260040161097090614320565b600054610100900460ff16158015612dcf576000805461ffff19166101011790555b612dd7613600565b8015610db2576000805461ff001916905550565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006002610109541015612e845760405162461bcd60e51b815260206004820152600e60248201526d216d696e20617070726f7665727360901b6044820152606401610970565b6101095460ff541015612eca5760405162461bcd60e51b815260206004820152600e60248201526d216d696e20617070726f7665727360901b6044820152606401610970565b600084518651148015612ede575083518551145b8015612eee575061010954845110155b156130bc5760005b86518110156130ba576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101859052600090600190605c0160405160208183030381529060405280519060200120878481518110612f6e57634e487b7160e01b600052603260045260246000fd5b60200260200101518a8581518110612f9657634e487b7160e01b600052603260045260246000fd5b60200260200101518a8681518110612fbe57634e487b7160e01b600052603260045260246000fd5b602002602001015160405160008152602001604052604051612ffc949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561301e573d6000803e3d6000fd5b505060408051601f1901516001600160a01b0381166000908152610100602052919091205490925060ff161590506130a7578261305a81614492565b604080516001600160a01b038516815260208101899052428183015290519195507fa1164cf36cb74b65282452422c4a4b867b03edb7007d123f7546f35ea3bf762b925081900360600190a15b50806130b281614492565b915050612ef6565b505b61010954111595945050505050565b6101075415610db257610107548110156131185760405162461bcd60e51b815260206004820152600e60248201526d216d696e20636c61696d2066656560901b6044820152606401610970565b60fb54610db2906001600160a01b0316826132ae565b61010460008460008151811061315457634e487b7160e01b600052603260045260246000fd5b602090810291909101810151825281810192909252604090810160009081206001600160a01b0380891683529352819020549051633c03168160e11b81529116906378062d02906131b190879085908a908990899060040161407e565b600060405180830381600087803b1580156131cb57600080fd5b505af11580156131df573d6000803e3d6000fd5b505050505050505050565b60008061322086868660008151811061321357634e487b7160e01b600052603260045260246000fd5b6020026020010151613667565b915091506128e78584848461271c565b6040516001600160a01b038085166024830152831660448201526064810182905261117f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526136bd565b60006132a7828461444f565b9392505050565b804710156132fe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610970565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461334b576040519150601f19603f3d011682016040523d82523d6000602084013e613350565b606091505b5050905080610e1c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610970565b61010a546000906001600160a01b0316156133ee5761010a546001600160a01b03166133fb565b6097546001600160a01b03165b905090565b6040516001600160a01b038316602482015260448101829052610e1c90849063a9059cbb60e01b90606401613264565b803b6134945760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610970565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6135345760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610970565b600080846001600160a01b03168460405161354f9190614062565b600060405180830381855af49150503d806000811461358a576040519150601f19603f3d011682016040523d82523d6000602084013e61358f565b606091505b50915091506135b78282604051806060016040528060278152602001615cba6027913961378f565b95945050505050565b6135c981613430565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff1680613619575060005460ff16155b6136355760405162461bcd60e51b815260040161097090614320565b600054610100900460ff16158015613657576000805461ffff19166101011790555b61365f6137c8565b612dd7613832565b600080600061010c546000146136805761010c54613683565b600a5b9050612710613692828261444f565b61369c9088614430565b6136a69190614410565b92506136b2838761444f565b915050935093915050565b6000613712826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138929092919063ffffffff16565b805190915015610e1c57808060200190518101906137309190613f68565b610e1c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610970565b6060831561379e5750816132a7565b8251156137ae5782518084602001fd5b8160405162461bcd60e51b81526004016109709190614229565b600054610100900460ff16806137e1575060005460ff16155b6137fd5760405162461bcd60e51b815260040161097090614320565b600054610100900460ff16158015612dd7576000805461ffff19166101011790558015610db2576000805461ff001916905550565b600054610100900460ff168061384b575060005460ff16155b6138675760405162461bcd60e51b815260040161097090614320565b600054610100900460ff16158015613889576000805461ffff19166101011790555b612dd733612deb565b60606138a184846000856138a9565b949350505050565b60608247101561390a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610970565b843b6139585760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610970565b600080866001600160a01b031685876040516139749190614062565b60006040518083038185875af1925050503d80600081146139b1576040519150601f19603f3d011682016040523d82523d6000602084013e6139b6565b606091505b50915091506139c682828661378f565b979650505050505050565b6117bd806144fd83390190565b8035612428816144d9565b600082601f8301126139f9578081fd5b81356020613a0e613a09836143d4565b6143a3565b80838252828201915082860187848660051b8901011115613a2d578586fd5b855b85811015613a54578135613a42816144d9565b84529284019290840190600101613a2f565b5090979650505050505050565b600082601f830112613a71578081fd5b81356020613a81613a09836143d4565b80838252828201915082860187848660051b8901011115613aa0578586fd5b855b85811015613a5457813584529284019290840190600101613aa2565b600082601f830112613ace578081fd5b81356020613ade613a09836143d4565b80838252828201915082860187848660051b8901011115613afd578586fd5b855b85811015613a5457613b1082613b8d565b84529284019290840190600101613aff565b600082601f830112613b32578081fd5b813567ffffffffffffffff811115613b4c57613b4c6144c3565b613b5f601f8201601f19166020016143a3565b818152846020838601011115613b73578283fd5b816020850160208301379081016020019190915292915050565b803560ff8116811461242857600080fd5b600060208284031215613baf578081fd5b81356132a7816144d9565b600060208284031215613bcb578081fd5b81516132a7816144d9565b600080600060608486031215613bea578182fd5b8335613bf5816144d9565b92506020840135613c05816144d9565b929592945050506040919091013590565b60008060408385031215613c28578182fd5b8235613c33816144d9565b946020939093013593505050565b60008060008060008060008060008060006101608c8e031215613c62578889fd5b613c6b8c6139de565b9a50613c7960208d016139de565b995060408c0135985067ffffffffffffffff8060608e01351115613c9b578788fd5b613cab8e60608f01358f01613a61565b985060808d013597508060a08e01351115613cc4578687fd5b613cd48e60a08f01358f01613a61565b96508060c08e01351115613ce6578586fd5b613cf68e60c08f01358f01613a61565b95508060e08e01351115613d08578485fd5b613d188e60e08f01358f01613abe565b9450806101008e01351115613d2b578384fd5b613d3c8e6101008f01358f01613b22565b9350806101208e01351115613d4f578283fd5b50613d618d6101208e01358e01613b22565b9150613d706101408d01613b8d565b90509295989b509295989b9093969950565b60008060408385031215613d94578182fd5b8235613d9f816144d9565b9150602083013567ffffffffffffffff811115613dba578182fd5b613dc685828601613b22565b9150509250929050565b60008060008060808587031215613de5578182fd5b8435613df0816144d9565b9350602085013567ffffffffffffffff811115613e0b578283fd5b613e1787828801613b22565b949794965050505060408301359260600135919050565b600060208284031215613e3f578081fd5b813567ffffffffffffffff811115613e55578182fd5b6138a1848285016139e9565b600060208284031215613e72578081fd5b813567ffffffffffffffff811115613e88578182fd5b6138a184828501613a61565b600080600060608486031215613ea8578081fd5b833567ffffffffffffffff80821115613ebf578283fd5b613ecb87838801613a61565b94506020860135915080821115613ee0578283fd5b613eec878388016139e9565b93506040860135915080821115613f01578283fd5b50613f0e86828701613a61565b9150509250925092565b60008060408385031215613f2a578182fd5b823567ffffffffffffffff811115613f40578283fd5b613f4c85828601613a61565b9250506020830135613f5d816144ee565b809150509250929050565b600060208284031215613f79578081fd5b81516132a7816144ee565b600060208284031215613f95578081fd5b5035919050565b600060208284031215613fad578081fd5b5051919050565b60008060408385031215613fc6578182fd5b823591506020830135613f5d816144d9565b60008060408385031215613fea578182fd5b823591506020830135613f5d816144ee565b6000815180845260208085019450808401835b8381101561402b5781518752958201959082019060010161400f565b509495945050505050565b6000815180845261404e816020860160208601614466565b601f01601f19169290920160200192915050565b60008251614074818460208701614466565b9190910192915050565b6001600160a01b038681168252851660208201526040810184905260a0606082018190526000906140b190830185613ffc565b90508260808301529695505050505050565b6001600160a01b0389811682528816602082015260408101879052610100606082018190526000906140f783820189613ffc565b905086608084015282810360a08401526141118187614036565b905082810360c08401526141258186614036565b91505060ff831660e08301529998505050505050505050565b600060018060a01b038716825285602083015260a0604083015261416560a0830186614036565b82810360608401526141778186614036565b91505060ff831660808301529695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156141ce5783516001600160a01b0316835292840192918401916001016141a9565b50909695505050505050565b6000602082526132a76020830184613ffc565b600060c0825261420060c0830189614036565b60208301979097525060408101949094526060840192909252608083015260a090910152919050565b6000602082526132a76020830184614036565b6020808252600990820152684248503a452d34303360b81b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600f908201526e216f6e6c79476f7665726e616e636560881b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156143cc576143cc6144c3565b604052919050565b600067ffffffffffffffff8211156143ee576143ee6144c3565b5060051b60200190565b6000821982111561440b5761440b6144ad565b500190565b60008261442b57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561444a5761444a6144ad565b500290565b600082821015614461576144616144ad565b500390565b60005b83811015614481578181015183820152602001614469565b8381111561117f5750506000910152565b60006000198214156144a6576144a66144ad565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610db257600080fd5b8015158114610db257600080fdfe608060405234801561001057600080fd5b5061179d806100206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806379cc6790116100b85780639a8a05921161007c5780639a8a05921461029f578063a457c2d7146102a8578063a9059cbb146102bb578063be88368d146102ce578063dd62ed3e146102e1578063f2fde38b1461031a57610142565b806379cc6790146102255780637a4f7d79146102385780638d68fdc8146102635780638da5cb5b1461028657806395d89b411461029757610142565b8063313ce5671161010a578063313ce567146101ba57806339509351146101cf57806342966c68146101e257806370a08231146101f7578063715018a61461020a57806378062d021461021257610142565b806306fdde0314610147578063095ea7b3146101655780630ac7f5611461018857806318160ddd1461019f57806323b872dd146101a7575b600080fd5b61014f61032d565b60405161015c919061160a565b60405180910390f35b61017861017336600461143e565b6103bf565b604051901515815260200161015c565b61019160cc5481565b60405190815260200161015c565b603554610191565b6101786101b5366004611328565b6103d5565b60cd5460405160ff909116815260200161015c565b6101786101dd36600461143e565b610484565b6101f56101f03660046114fc565b6104c0565b005b6101916102053660046112d5565b6104cd565b6101f56104ec565b6101f5610220366004611363565b610522565b6101f561023336600461143e565b610762565b60cb5461024b906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b6101786102713660046114fc565b60ca6020526000908152604090205460ff1681565b6097546001600160a01b031661024b565b61014f6107e8565b61019160c95481565b6101786102b636600461143e565b6107f7565b6101786102c936600461143e565b610890565b6101f56102dc366004611467565b61089d565b6101916102ef3660046112f6565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6101f56103283660046112d5565b610957565b60606036805461033c90611700565b80601f016020809104026020016040519081016040528092919081815260200182805461036890611700565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050905090565b60006103cc3384846109ef565b50600192915050565b60006103e2848484610b13565b6001600160a01b03841660009081526034602090815260408083203384529091529020548281101561046c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61047985338584036109ef565b506001949350505050565b3360008181526034602090815260408083206001600160a01b038716845290915281205490916103cc9185906104bb9086906116d1565b6109ef565b6104ca3382610ce2565b50565b6001600160a01b0381166000908152603360205260409020545b919050565b6097546001600160a01b031633146105165760405162461bcd60e51b81526004016104639061166b565b6105206000610e30565b565b6097546001600160a01b0316331461054c5760405162461bcd60e51b81526004016104639061166b565b81516004146105965760405162461bcd60e51b8152602060048201526016602482015275042bec6d0c2d2dc92c8e692dcc8caf05cd8cadccee8d60531b6044820152606401610463565b60cb546001600160a01b038681169116146105eb5760405162461bcd60e51b8152602060048201526015602482015274216f726967696e616c546f6b656e4164647265737360581b6044820152606401610463565b60c9548260028151811061060f57634e487b7160e01b600052603260045260246000fd5b6020026020010151146106575760405162461bcd60e51b815260206004820152601060248201526f085a5b9d985b1a590818da185a5b925960821b6044820152606401610463565b6001600160a01b03841661069b5760405162461bcd60e51b815260206004820152600b60248201526a21696e76616c696420746f60a81b6044820152606401610463565b600085858585856106aa61032d565b6106b26107e8565b60cd5460ff166040516020016106cf98979695949392919061155f565b60408051601f198184030181529181528151602092830120600081815260ca90935291205490915060ff16156107375760405162461bcd60e51b815260206004820152600d60248201526c616c726561647920636c61696d60981b6044820152606401610463565b600081815260ca60205260409020805460ff1916600117905561075a8585610e82565b505050505050565b600061076e83336102ef565b9050818110156107cc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610463565b6107d983338484036109ef565b6107e38383610ce2565b505050565b60606037805461033c90611700565b3360009081526034602090815260408083206001600160a01b0386168452909152812054828110156108795760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610463565b61088633858584036109ef565b5060019392505050565b60006103cc338484610b13565b600054610100900460ff16806108b6575060005460ff16155b6108d25760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff161580156108f4576000805461ffff19166101011790555b6108fc610f61565b6109054660c955565b61090f8484610fdc565b60cd805460ff191660ff841617905560cb80546001600160a01b0319166001600160a01b03881617905560cc859055801561075a576000805461ff0019169055505050505050565b6097546001600160a01b031633146109815760405162461bcd60e51b81526004016104639061166b565b6001600160a01b0381166109e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610463565b6104ca81610e30565b6001600160a01b038316610a515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610463565b6001600160a01b038216610ab25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610463565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610463565b6001600160a01b038216610bd95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610463565b6001600160a01b03831660009081526033602052604090205481811015610c515760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610463565b6001600160a01b03808516600090815260336020526040808220858503905591851681529081208054849290610c889084906116d1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cd491815260200190565b60405180910390a350505050565b6001600160a01b038216610d425760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610463565b6001600160a01b03821660009081526033602052604090205481811015610db65760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610463565b6001600160a01b0383166000908152603360205260408120838303905560358054849290610de59084906116e9565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36107e3565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610ed85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610463565b8060356000828254610eea91906116d1565b90915550506001600160a01b03821660009081526033602052604081208054839290610f179084906116d1565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600054610100900460ff1680610f7a575060005460ff16155b610f965760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff16158015610fb8576000805461ffff19166101011790555b610fc061105b565b610fc86110c5565b80156104ca576000805461ff001916905550565b600054610100900460ff1680610ff5575060005460ff16155b6110115760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff16158015611033576000805461ffff19166101011790555b61103b61105b565b6110458383611125565b80156107e3576000805461ff0019169055505050565b600054610100900460ff1680611074575060005460ff16155b6110905760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff16158015610fc8576000805461ffff191661010117905580156104ca576000805461ff001916905550565b600054610100900460ff16806110de575060005460ff16155b6110fa5760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff1615801561111c576000805461ffff19166101011790555b610fc833610e30565b600054610100900460ff168061113e575060005460ff16155b61115a5760405162461bcd60e51b81526004016104639061161d565b600054610100900460ff1615801561117c576000805461ffff19166101011790555b825161118f9060369060208601906111ba565b5081516111a39060379060208501906111ba565b5080156107e3576000805461ff0019169055505050565b8280546111c690611700565b90600052602060002090601f0160209004810192826111e8576000855561122e565b82601f1061120157805160ff191683800117855561122e565b8280016001018555821561122e579182015b8281111561122e578251825591602001919060010190611213565b5061123a92915061123e565b5090565b5b8082111561123a576000815560010161123f565b80356001600160a01b03811681146104e757600080fd5b600082601f83011261127a578081fd5b813567ffffffffffffffff81111561129457611294611751565b6112a7601f8201601f19166020016116a0565b8181528460208386010111156112bb578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156112e6578081fd5b6112ef82611253565b9392505050565b60008060408385031215611308578081fd5b61131183611253565b915061131f60208401611253565b90509250929050565b60008060006060848603121561133c578081fd5b61134584611253565b925061135360208501611253565b9150604084013590509250925092565b600080600080600060a0868803121561137a578081fd5b61138386611253565b94506020611392818801611253565b945060408701359350606087013567ffffffffffffffff808211156113b5578384fd5b818901915089601f8301126113c8578384fd5b8135818111156113da576113da611751565b8060051b91506113eb8483016116a0565b8181528481019084860184860187018e1015611405578788fd5b8795505b83861015611427578035835260019590950194918601918601611409565b50999c989b50969960800135979650505050505050565b60008060408385031215611450578182fd5b61145983611253565b946020939093013593505050565b600080600080600060a0868803121561147e578081fd5b61148786611253565b945060208601359350604086013567ffffffffffffffff808211156114aa578283fd5b6114b689838a0161126a565b945060608801359150808211156114cb578283fd5b506114d88882890161126a565b925050608086013560ff811681146114ee578182fd5b809150509295509295909350565b60006020828403121561150d578081fd5b5035919050565b60008151808452815b818110156115395760208185018101518683018201520161151d565b8181111561154a5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03898116825288166020808301919091526040820188905261010060608301819052875190830181905260009161012084019189820191845b828110156115bb5783518552938101939281019260010161159f565b5050505086608084015282810360a08401526115d78187611514565b905082810360c08401526115eb8186611514565b9150506115fd60e083018460ff169052565b9998505050505050505050565b6000602082526112ef6020830184611514565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156116c9576116c9611751565b604052919050565b600082198211156116e4576116e461173b565b500190565b6000828210156116fb576116fb61173b565b500390565b600181811c9082168061171457607f821691505b6020821081141561173557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212202e783c26bb0bf9148b574516dd5ffb57e74843cb1dc949eaf010a2fac8d7a41664736f6c63430008030033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f98e6b7d9a223511be28973472f10002444beaf9d2a4f30d4b4323acaf7082364736f6c63430008030033
🤖 Code Reader
Generate instant answers for your smart contract questions using AI Models. Read more.
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 31 Chains
Tokens
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
DeFi
0 Protocols
Loading...
Loading
| Chain | Protocol | Positions | Portfolio % | Value |
|---|---|---|---|---|
There are no matching entries |
||||
DeFi
0 Protocols
Loading...
Loading
| Protocol | Positions | Portfolio % | Value |
|---|---|---|---|
There are no matching entries |
|||
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.


