ETH Price: $1,575.84 (-8.85%)

Contract

0x1DD0dEFe25dad4003DB39EBd618D3cCbAC288804
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

ERC721ABeanBasinV2

Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled
No with 200 runs
Other Settings
paris EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"degradeNFTs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isNFTUpgraded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isUpgraded","outputs":[{"internalType":"bool","name":"upgraded","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"numberMinted","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":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_baseUri","type":"string"}],"name":"setBaseUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_upgradedBaseUri","type":"string"}],"name":"setUpgradedBaseUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"upgradeNFTs","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":[],"name":"upgradedBaseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"upgradedBaseUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801561004357600080fd5b506080516155c26200006e60003960008181613868015281816138bd0152613a7801526155c26000f3fe6080604052600436106102255760003560e01c8063715018a611610123578063a22cb465116100ab578063ca577d291161006f578063ca577d29146107c4578063d89135cd14610801578063dc33e6811461082c578063e985e9c514610869578063f2fde38b146108a657610225565b8063a22cb465146106ec578063a2309ff814610715578063ad3cb1cc14610740578063b88d4fde1461076b578063c87b56dd1461078757610225565b80638da5cb5b116100f25780638da5cb5b1461061757806395d89b411461064257806396de58251461066d5780639abc832014610698578063a0bcfc7f146106c357610225565b8063715018a61461056f578063739685061461058657806375794a3c146105af57806382f11a1a146105da57610225565b806342842e0e116101b157806352d1902d1161017557806352d1902d14610476578063605143d3146104a15780636352211e146104ca5780636c0360eb1461050757806370a082311461053257610225565b806342842e0e146103af57806342966c68146103cb5780634cd88b76146103f45780634f1ef2861461041d5780634f558e791461043957610225565b8063095ea7b3116101f8578063095ea7b3146102f857806318160ddd1461031457806323b872dd1461033f57806325f2318e1461035b57806340c10f191461038657610225565b806301ffc9a71461022a57806306fdde031461026757806307d869b314610292578063081812fc146102bb575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190614647565b6108cf565b60405161025e919061468f565b60405180910390f35b34801561027357600080fd5b5061027c610961565b604051610289919061473a565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906147c1565b6109fc565b005b3480156102c757600080fd5b506102e260048036038101906102dd9190614844565b610a6c565b6040516102ef91906148b2565b60405180910390f35b610312600480360381019061030d91906148f9565b610af4565b005b34801561032057600080fd5b50610329610b04565b6040516103369190614948565b60405180910390f35b61035960048036038101906103549190614963565b610b2d565b005b34801561036757600080fd5b50610370610e85565b60405161037d919061473a565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a891906148f9565b610e94565b005b6103c960048036038101906103c49190614963565b610eaa565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190614844565b610eca565b005b34801561040057600080fd5b5061041b60048036038101906104169190614ae6565b610ed8565b005b61043760048036038101906104329190614bff565b611197565b005b34801561044557600080fd5b50610460600480360381019061045b9190614844565b6111b6565b60405161046d919061468f565b60405180910390f35b34801561048257600080fd5b5061048b6111c8565b6040516104989190614c74565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906147c1565b6111fb565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190614844565b61126b565b6040516104fe91906148b2565b60405180910390f35b34801561051357600080fd5b5061051c61127d565b604051610529919061473a565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190614c8f565b61128c565b6040516105669190614948565b60405180910390f35b34801561057b57600080fd5b5061058461134d565b005b34801561059257600080fd5b506105ad60048036038101906105a89190614cbc565b611361565b005b3480156105bb57600080fd5b506105c461137c565b6040516105d19190614948565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190614844565b61138b565b60405161060e919061468f565b60405180910390f35b34801561062357600080fd5b5061062c6113ab565b60405161063991906148b2565b60405180910390f35b34801561064e57600080fd5b506106576113e3565b604051610664919061473a565b60405180910390f35b34801561067957600080fd5b5061068261147e565b60405161068f919061473a565b60405180910390f35b3480156106a457600080fd5b506106ad61150c565b6040516106ba919061473a565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190614cbc565b61159a565b005b3480156106f857600080fd5b50610713600480360381019061070e9190614d31565b6115b5565b005b34801561072157600080fd5b5061072a6116c9565b6040516107379190614948565b60405180910390f35b34801561074c57600080fd5b506107556116d8565b604051610762919061473a565b60405180910390f35b61078560048036038101906107809190614d71565b611711565b005b34801561079357600080fd5b506107ae60048036038101906107a99190614844565b611784565b6040516107bb919061473a565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e69190614844565b611854565b6040516107f8919061468f565b60405180910390f35b34801561080d57600080fd5b5061081661187d565b6040516108239190614948565b60405180910390f35b34801561083857600080fd5b50610853600480360381019061084e9190614c8f565b61188c565b6040516108609190614948565b60405180910390f35b34801561087557600080fd5b50610890600480360381019061088b9190614df4565b61189e565b60405161089d919061468f565b60405180910390f35b3480156108b257600080fd5b506108cd60048036038101906108c89190614c8f565b61193b565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061092a57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061095a5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606061096b6119c1565b600201805461097990614e63565b80601f01602080910402602001604051908101604052809291908181526020018280546109a590614e63565b80156109f25780601f106109c7576101008083540402835291602001916109f2565b820191906000526020600020905b8154815290600101906020018083116109d557829003601f168201915b5050505050905090565b610a046119ee565b60005b82829050811015610a67576001600080858585818110610a2a57610a29614e94565b5b90506020020135815260200190815260200160002060006101000a81548160ff02191690831515021790555080610a6090614ef2565b9050610a07565b505050565b6000610a7782611a75565b610aad576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab56119c1565b600601600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610b0082826001611ae6565b5050565b6000610b0e611c3b565b610b166119c1565b60010154610b226119c1565b600001540303905090565b6000610b3882611c40565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610bab84611d53565b91509150610bc18187610bbc611d83565b611d8b565b610c0d57610bd686610bd1611d83565b61189e565b610c0c576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610c73576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c808686866001611dcf565b8015610c8b57600082555b610c936119c1565b60050160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550610cea6119c1565b60050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610d6b85610d47888887611dd5565b7c020000000000000000000000000000000000000000000000000000000017611dfd565b610d736119c1565b60040160008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610e155760006001850190506000610dc46119c1565b60040160008381526020019081526020016000205403610e1357610de66119c1565b600001548114610e125783610df96119c1565b6004016000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e7d8686866001611e28565b505050505050565b6060610e8f611e2e565b905090565b610e9c6119ee565b610ea68282611ec0565b5050565b610ec583838360405180602001604052806000815250611711565b505050565b610ed58160016120a0565b50565b610ee0612328565b60000160019054906101000a900460ff16610f1457610efd612328565b60000160009054906101000a900460ff1615610f1d565b610f1c612355565b5b610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390614fac565b60405180910390fd5b6000610f66612328565b60000160019054906101000a900460ff161590508015610fc9576001610f8a612328565b60000160016101000a81548160ff0219169083151502179055506001610fae612328565b60000160006101000a81548160ff0219169083151502179055505b6000610fd361236c565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156110215750825b9050600060018367ffffffffffffffff16148015611056575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611064575080155b1561109b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156110eb5760018560000160086101000a81548160ff0219169083151502179055505b6110f58888612394565b6110fe336123fa565b61110661240e565b83156111625760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516111599190615025565b60405180910390a15b50505050508015611192576000611177612328565b60000160016101000a81548160ff0219169083151502179055505b505050565b61119f613866565b6111a88261394c565b6111b28282613957565b5050565b60006111c182611a75565b9050919050565b60006111d2613a76565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b6112036119ee565b60005b8282905081101561126657600080600085858581811061122957611228614e94565b5b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055508061125f90614ef2565b9050611206565b505050565b600061127682611c40565b9050919050565b6060611287613afd565b905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f3576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff6113046119c1565b60050160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6113556119ee565b61135f6000613b8f565b565b6113696119ee565b806002908161137891906151e2565b5050565b6000611386613c66565b905090565b60006020528060005260406000206000915054906101000a900460ff1681565b6000806113b6613c79565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606113ed6119c1565b60030180546113fb90614e63565b80601f016020809104026020016040519081016040528092919081815260200182805461142790614e63565b80156114745780601f1061144957610100808354040283529160200191611474565b820191906000526020600020905b81548152906001019060200180831161145757829003601f168201915b5050505050905090565b6002805461148b90614e63565b80601f01602080910402602001604051908101604052809291908181526020018280546114b790614e63565b80156115045780601f106114d957610100808354040283529160200191611504565b820191906000526020600020905b8154815290600101906020018083116114e757829003601f168201915b505050505081565b6001805461151990614e63565b80601f016020809104026020016040519081016040528092919081815260200182805461154590614e63565b80156115925780601f1061156757610100808354040283529160200191611592565b820191906000526020600020905b81548152906001019060200180831161157557829003601f168201915b505050505081565b6115a26119ee565b80600190816115b191906151e2565b5050565b806115be6119c1565b60070160006115cb611d83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611678611d83565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116bd919061468f565b60405180910390a35050565b60006116d3613ca1565b905090565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b61171c848484610b2d565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461177e5761174784848484613cbd565b61177d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b606061178f82611a75565b6117c5576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600084815260200190815260200160002060009054906101000a900460ff166117f8576117f3613afd565b611801565b611800611e2e565b5b90506000815103611821576040518060200160405280600081525061184c565b8061182b84613e0d565b60405160200161183c92919061533c565b6040516020818303038152906040525b915050919050565b600080600083815260200190815260200160002060009054906101000a900460ff169050919050565b6000611887613e5d565b905090565b600061189782613e70565b9050919050565b60006118a86119c1565b60070160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6119436119ee565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119b55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016119ac91906148b2565b60405180910390fd5b6119be81613b8f565b50565b6000807f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4090508091505090565b6119f6613ed0565b73ffffffffffffffffffffffffffffffffffffffff16611a146113ab565b73ffffffffffffffffffffffffffffffffffffffff1614611a7357611a37613ed0565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611a6a91906148b2565b60405180910390fd5b565b600081611a80611c3b565b11158015611a985750611a916119c1565b6000015482105b8015611adf575060007c0100000000000000000000000000000000000000000000000000000000611ac76119c1565b60040160008581526020019081526020016000205416145b9050919050565b6000611af18361126b565b90508115611b7c578073ffffffffffffffffffffffffffffffffffffffff16611b18611d83565b73ffffffffffffffffffffffffffffffffffffffff1614611b7b57611b4481611b3f611d83565b61189e565b611b7a576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b83611b856119c1565b600601600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b600090565b600081611c4b611c3b565b11611d1c57611c586119c1565b600401600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611d1b5760008103611d1657611ca66119c1565b600001548210611ce2576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b611ceb6119c1565b60040160008360019003935083815260200190815260200160002054905060008103611d4e57611ce3565b611d4e565b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000611d606119c1565b600601600085815260200190815260200160002090508092508254915050915091565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611dec868684613ed8565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b606060028054611e3d90614e63565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6990614e63565b8015611eb65780601f10611e8b57610100808354040283529160200191611eb6565b820191906000526020600020905b815481529060010190602001808311611e9957829003601f168201915b5050505050905090565b6000611eca6119c1565b60000154905060008203611f0a576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f176000848385611dcf565b600160406001901b178202611f2a6119c1565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611f9783611f886000866000611dd5565b611f9185613ee1565b17611dfd565b611f9f6119c1565b600401600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461204157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612006565b506000820361207c576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806120856119c1565b60000181905550505061209b6000848385611e28565b505050565b60006120ab83611c40565b905060008190506000806120be86611d53565b915091508415612127576120da81846120d5611d83565b611d8b565b612126576120ef836120ea611d83565b61189e565b612125576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b612135836000886001611dcf565b801561214057600082555b600160806001901b036121516119c1565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506121f1836121ae85600088611dd5565b7c02000000000000000000000000000000000000000000000000000000007c01000000000000000000000000000000000000000000000000000000001717611dfd565b6121f96119c1565b60040160008881526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000085160361229b576000600187019050600061224a6119c1565b600401600083815260200190815260200160002054036122995761226c6119c1565b600001548114612298578461227f6119c1565b6004016000838152602001908152602001600020819055505b5b505b85600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612305836000886001611e28565b61230d6119c1565b60010160008154809291906001019190505550505050505050565b6000807fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f90508091505090565b6000803090506000813b9050600081149250505090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b61239c612328565b60000160019054906101000a900460ff166123ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e3906153dd565b60405180910390fd5b6123f68282613ef1565b5050565b612402613f96565b61240b81613fd6565b50565b612416612328565b60000160019054906101000a900460ff16612466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245d906153dd565b60405180910390fd5b600060405180610900016040528073a92ab746eac03e5ec31cd3a879014a7d1e04640c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c19cf05f28bd4fd58e427a60ec9416d73b6d6c5773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017314f78bdcccd12c4f963bd0457212b3517f974b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b0b822e1c3995503442682caeea1b6c683169d2e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737aaee144a14ec3ba0e468c9dcf4a89fdb62c5aa673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b345720ab089a6748ccec3b59caf642583e308bf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a9a01cf812da74e3100e1fb9b28224902d403ed773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f9d183af486a973b7921ceb5fdc9908d12aab44073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017343a9da9bade357843fbe7e5ee3eedd910f9fac1e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739a428d7491ec6a669c7fe93e1e331fe881e9746f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017314f78bdcccd12c4f963bd0457212b3517f974b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173340bc7511e4e6c1cdd9dcd8f02827fd08edc6fb273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173bc4de0a59d8af0af3e66e08e488400aa6f8bb0fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739401676cd2d01e02a97fcf1f567a369bbae37f0c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d6e91233068c81b0eb6aac77620641f72d27a03973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734c180462a051ab67d8237ede2c987590df2fbbe673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737b2366996a64effe1af089fa64e9cf4361fddc6e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3cd19fabc17ba4b3d11341aa06b6f245de3f9a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017336998db3f9d958f0ebaef7b0b6bf11f3441b216f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a36aa9dbdb7bbc2c986a5e30386a057f8aa38d9c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737aaee144a14ec3ba0e468c9dcf4a89fdb62c5aa673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738d9261369e3bfba715f63303236c324d2e3c44ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001731b7ea7d42c476a1e2808f23e18d850c5a4692df773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001731348ea8e35236aa0769b91ae291e7291117bf15c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c19cf05f28bd4fd58e427a60ec9416d73b6d6c5773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734bf44e0c856d096b755d54ca1e9cfdc0115ed2e673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739832ee476d66b58d185b7bd46d05cbcbe4e543e173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c7c1b169a8d3c5f2d6b25642c4d10da94ffcd3c973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017314f78bdcccd12c4f963bd0457212b3517f974b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737211eead6c7db1d1ebd70f5cbcd8833935a0412673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738d9261369e3bfba715f63303236c324d2e3c44ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737aaee144a14ec3ba0e468c9dcf4a89fdb62c5aa673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e2cdf066eee46b2c424dd1894b8ae33f153f533c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017341dd131e460e18befd262cf4fe2e2b2f43f6fb7b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d441c97ef1458d847271f91714799007081494ef73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b345720ab089a6748ccec3b59caf642583e308bf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001733d138e67dfac9a7af69d2694470b0b6d37721b0673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173baec6ed4a9c3b333e1cb20c3e729d7100c85d8f173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e543357d4f0eb174cfc6bed6ef5e7ab5762f1b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c1f80163cc753f460a190643d8fcbb7755a4840973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001733d7cde7ea3da7fdd724482f11174cbc0b389bd8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200172d1ebe373806b2e5a3db01903aa777ff3f4471d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017334a649fde43ce36882091a010aae2805a9fcff0d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017334a649fde43ce36882091a010aae2805a9fcff0d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739a00beffa3fc064104b71f6b7ea93babdc44d9da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738d9261369e3bfba715f63303236c324d2e3c44ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ddfe74f671f6546f49a6d20909999cfe5f09ad7873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734c180462a051ab67d8237ede2c987590df2fbbe673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173de3e4d173f754704a763d39e1dcf0a90c37ec7f073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001730b8e605a7446801ae645e57de5aabbc251cd1e3c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017359229efd5206968301ed67d5b08e1c39e017989773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f05b641229bb2aa63b205ad8b423a390f7ef05a773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734cc19a7a359f2ff54ff087f03b6887f436f08c1173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f9d183af486a973b7921ceb5fdc9908d12aab44073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f1a621fe077e4e9ac2c0cefd9b69551db9c3f65773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017343a9da9bade357843fbe7e5ee3eedd910f9fac1e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3cd19fabc17ba4b3d11341aa06b6f245de3f9a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739a00beffa3fc064104b71f6b7ea93babdc44d9da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739ec255f1af4d3e4a813aadab8ff0497398037d5673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739d840dccb22e781e7f223ada4dc49e6734d2ce1773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3cd19fabc17ba4b3d11341aa06b6f245de3f9a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173394c357db3177e33bde63f259f0eb2c04a46827c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735b45b0a5c1e3d570282bddfe01b0465c1b33243073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3cd19fabc17ba4b3d11341aa06b6f245de3f9a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b3f3658bf332ba6c9c0cc5bc1201caba7ada819b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017369e02d001146a86d4e2995f9ecf906265aa77d8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250905060005b60488110156138625761385182826048811061384557613844614e94565b5b6020020151600161405c565b8061385b90614ef2565b9050613826565b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148061391357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166138fa614285565b73ffffffffffffffffffffffffffffffffffffffff1614155b1561394a576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6139546119ee565b50565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156139bf57506040513d601f19601f820116820180604052508101906139bc9190615429565b60015b613a0057816040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016139f791906148b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114613a6757806040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600401613a5e9190614c74565b60405180910390fd5b613a7183836142dc565b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614613afb576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b606060018054613b0c90614e63565b80601f0160208091040260200160405190810160405280929190818152602001828054613b3890614e63565b8015613b855780601f10613b5a57610100808354040283529160200191613b85565b820191906000526020600020905b815481529060010190602001808311613b6857829003601f168201915b5050505050905090565b6000613b99613c79565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000613c706119c1565b60000154905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b6000613cab611c3b565b613cb36119c1565b6000015403905090565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613ce3611d83565b8786866040518563ffffffff1660e01b8152600401613d0594939291906154ab565b6020604051808303816000875af1925050508015613d4157506040513d601f19601f82011682018060405250810190613d3e919061550c565b60015b613dba573d8060008114613d71576040519150601f19603f3d011682016040523d82523d6000602084013e613d76565b606091505b506000815103613db2576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060a060405101806040526020810391506000825281835b600115613e4857600184039350600a81066030018453600a8104905080613e26575b50828103602084039350808452505050919050565b6000613e676119c1565b60010154905090565b600067ffffffffffffffff6040613e856119c1565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b600033905090565b60009392505050565b60006001821460e11b9050919050565b613ef9612328565b60000160019054906101000a900460ff16613f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f40906153dd565b60405180910390fd5b81613f526119c1565b6002019081613f6191906151e2565b5080613f6b6119c1565b6003019081613f7a91906151e2565b50613f83611c3b565b613f8b6119c1565b600001819055505050565b613f9e61434f565b613fd4576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b613fde613f96565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036140505760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161404791906148b2565b60405180910390fd5b61405981613b8f565b50565b60006140666119c1565b600001549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036140d2576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000820361410c576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611388821115614148576040517f3db1f9af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6141556000848385611dcf565b600160406001901b1782026141686119c1565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506141d5836141c66000866000611dd5565b6141cf85613ee1565b17611dfd565b6141dd6119c1565b6004016000838152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16827fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d6001868601036040516142599190614948565b60405180910390a481810161426c6119c1565b600001819055506142806000848385611e28565b505050565b60006142b37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61436f565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6142e582614379565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156143425761433c8282614446565b5061434b565b61434a6144ca565b5b5050565b600061435961236c565b60000160089054906101000a900460ff16905090565b6000819050919050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036143d557806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016143cc91906148b2565b60405180910390fd5b806144027f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61436f565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516144709190615575565b600060405180830381855af49150503d80600081146144ab576040519150601f19603f3d011682016040523d82523d6000602084013e6144b0565b606091505b50915091506144c0858383614507565b9250505092915050565b6000341115614505576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60608261451c5761451782614596565b61458e565b60008251148015614544575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561458657836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161457d91906148b2565b60405180910390fd5b81905061458f565b5b9392505050565b6000815111156145a95780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614624816145ef565b811461462f57600080fd5b50565b6000813590506146418161461b565b92915050565b60006020828403121561465d5761465c6145e5565b5b600061466b84828501614632565b91505092915050565b60008115159050919050565b61468981614674565b82525050565b60006020820190506146a46000830184614680565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156146e45780820151818401526020810190506146c9565b60008484015250505050565b6000601f19601f8301169050919050565b600061470c826146aa565b61471681856146b5565b93506147268185602086016146c6565b61472f816146f0565b840191505092915050565b600060208201905081810360008301526147548184614701565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126147815761478061475c565b5b8235905067ffffffffffffffff81111561479e5761479d614761565b5b6020830191508360208202830111156147ba576147b9614766565b5b9250929050565b600080602083850312156147d8576147d76145e5565b5b600083013567ffffffffffffffff8111156147f6576147f56145ea565b5b6148028582860161476b565b92509250509250929050565b6000819050919050565b6148218161480e565b811461482c57600080fd5b50565b60008135905061483e81614818565b92915050565b60006020828403121561485a576148596145e5565b5b60006148688482850161482f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061489c82614871565b9050919050565b6148ac81614891565b82525050565b60006020820190506148c760008301846148a3565b92915050565b6148d681614891565b81146148e157600080fd5b50565b6000813590506148f3816148cd565b92915050565b600080604083850312156149105761490f6145e5565b5b600061491e858286016148e4565b925050602061492f8582860161482f565b9150509250929050565b6149428161480e565b82525050565b600060208201905061495d6000830184614939565b92915050565b60008060006060848603121561497c5761497b6145e5565b5b600061498a868287016148e4565b935050602061499b868287016148e4565b92505060406149ac8682870161482f565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6149f3826146f0565b810181811067ffffffffffffffff82111715614a1257614a116149bb565b5b80604052505050565b6000614a256145db565b9050614a3182826149ea565b919050565b600067ffffffffffffffff821115614a5157614a506149bb565b5b614a5a826146f0565b9050602081019050919050565b82818337600083830152505050565b6000614a89614a8484614a36565b614a1b565b905082815260208101848484011115614aa557614aa46149b6565b5b614ab0848285614a67565b509392505050565b600082601f830112614acd57614acc61475c565b5b8135614add848260208601614a76565b91505092915050565b60008060408385031215614afd57614afc6145e5565b5b600083013567ffffffffffffffff811115614b1b57614b1a6145ea565b5b614b2785828601614ab8565b925050602083013567ffffffffffffffff811115614b4857614b476145ea565b5b614b5485828601614ab8565b9150509250929050565b600067ffffffffffffffff821115614b7957614b786149bb565b5b614b82826146f0565b9050602081019050919050565b6000614ba2614b9d84614b5e565b614a1b565b905082815260208101848484011115614bbe57614bbd6149b6565b5b614bc9848285614a67565b509392505050565b600082601f830112614be657614be561475c565b5b8135614bf6848260208601614b8f565b91505092915050565b60008060408385031215614c1657614c156145e5565b5b6000614c24858286016148e4565b925050602083013567ffffffffffffffff811115614c4557614c446145ea565b5b614c5185828601614bd1565b9150509250929050565b6000819050919050565b614c6e81614c5b565b82525050565b6000602082019050614c896000830184614c65565b92915050565b600060208284031215614ca557614ca46145e5565b5b6000614cb3848285016148e4565b91505092915050565b600060208284031215614cd257614cd16145e5565b5b600082013567ffffffffffffffff811115614cf057614cef6145ea565b5b614cfc84828501614ab8565b91505092915050565b614d0e81614674565b8114614d1957600080fd5b50565b600081359050614d2b81614d05565b92915050565b60008060408385031215614d4857614d476145e5565b5b6000614d56858286016148e4565b9250506020614d6785828601614d1c565b9150509250929050565b60008060008060808587031215614d8b57614d8a6145e5565b5b6000614d99878288016148e4565b9450506020614daa878288016148e4565b9350506040614dbb8782880161482f565b925050606085013567ffffffffffffffff811115614ddc57614ddb6145ea565b5b614de887828801614bd1565b91505092959194509250565b60008060408385031215614e0b57614e0a6145e5565b5b6000614e19858286016148e4565b9250506020614e2a858286016148e4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614e7b57607f821691505b602082108103614e8e57614e8d614e34565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614efd8261480e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f2f57614f2e614ec3565b5b600182019050919050565b7f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460008201527f20697320616c726561647920696e697469616c697a6564000000000000000000602082015250565b6000614f966037836146b5565b9150614fa182614f3a565b604082019050919050565b60006020820190508181036000830152614fc581614f89565b9050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b600061500f61500a61500584614fcc565b614fea565b614fd6565b9050919050565b61501f81614ff4565b82525050565b600060208201905061503a6000830184615016565b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026150a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615065565b6150ac8683615065565b95508019841693508086168417925050509392505050565b60006150df6150da6150d58461480e565b614fea565b61480e565b9050919050565b6000819050919050565b6150f9836150c4565b61510d615105826150e6565b848454615072565b825550505050565b600090565b615122615115565b61512d8184846150f0565b505050565b5b818110156151515761514660008261511a565b600181019050615133565b5050565b601f8211156151965761516781615040565b61517084615055565b8101602085101561517f578190505b61519361518b85615055565b830182615132565b50505b505050565b600082821c905092915050565b60006151b96000198460080261519b565b1980831691505092915050565b60006151d283836151a8565b9150826002028217905092915050565b6151eb826146aa565b67ffffffffffffffff811115615204576152036149bb565b5b61520e8254614e63565b615219828285615155565b600060209050601f83116001811461524c576000841561523a578287015190505b61524485826151c6565b8655506152ac565b601f19841661525a86615040565b60005b828110156152825784890151825560018201915060208501945060208101905061525d565b8683101561529f578489015161529b601f8916826151a8565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b60006152ca826146aa565b6152d481856152b4565b93506152e48185602086016146c6565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006153266005836152b4565b9150615331826152f0565b600582019050919050565b600061534882856152bf565b915061535482846152bf565b915061535f82615319565b91508190509392505050565b7f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460008201527f206973206e6f7420696e697469616c697a696e67000000000000000000000000602082015250565b60006153c76034836146b5565b91506153d28261536b565b604082019050919050565b600060208201905081810360008301526153f6816153ba565b9050919050565b61540681614c5b565b811461541157600080fd5b50565b600081519050615423816153fd565b92915050565b60006020828403121561543f5761543e6145e5565b5b600061544d84828501615414565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061547d82615456565b6154878185615461565b93506154978185602086016146c6565b6154a0816146f0565b840191505092915050565b60006080820190506154c060008301876148a3565b6154cd60208301866148a3565b6154da6040830185614939565b81810360608301526154ec8184615472565b905095945050505050565b6000815190506155068161461b565b92915050565b600060208284031215615522576155216145e5565b5b6000615530848285016154f7565b91505092915050565b600081905092915050565b600061554f82615456565b6155598185615539565b93506155698185602086016146c6565b80840191505092915050565b60006155818284615544565b91508190509291505056fea264697066735822122053e3b8ac43a6510384aa51fae360db07a9a73546f8c84118c547cd55819a990a64736f6c63430008140033
Deployed Bytecode
0x6080604052600436106102255760003560e01c8063715018a611610123578063a22cb465116100ab578063ca577d291161006f578063ca577d29146107c4578063d89135cd14610801578063dc33e6811461082c578063e985e9c514610869578063f2fde38b146108a657610225565b8063a22cb465146106ec578063a2309ff814610715578063ad3cb1cc14610740578063b88d4fde1461076b578063c87b56dd1461078757610225565b80638da5cb5b116100f25780638da5cb5b1461061757806395d89b411461064257806396de58251461066d5780639abc832014610698578063a0bcfc7f146106c357610225565b8063715018a61461056f578063739685061461058657806375794a3c146105af57806382f11a1a146105da57610225565b806342842e0e116101b157806352d1902d1161017557806352d1902d14610476578063605143d3146104a15780636352211e146104ca5780636c0360eb1461050757806370a082311461053257610225565b806342842e0e146103af57806342966c68146103cb5780634cd88b76146103f45780634f1ef2861461041d5780634f558e791461043957610225565b8063095ea7b3116101f8578063095ea7b3146102f857806318160ddd1461031457806323b872dd1461033f57806325f2318e1461035b57806340c10f191461038657610225565b806301ffc9a71461022a57806306fdde031461026757806307d869b314610292578063081812fc146102bb575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190614647565b6108cf565b60405161025e919061468f565b60405180910390f35b34801561027357600080fd5b5061027c610961565b604051610289919061473a565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906147c1565b6109fc565b005b3480156102c757600080fd5b506102e260048036038101906102dd9190614844565b610a6c565b6040516102ef91906148b2565b60405180910390f35b610312600480360381019061030d91906148f9565b610af4565b005b34801561032057600080fd5b50610329610b04565b6040516103369190614948565b60405180910390f35b61035960048036038101906103549190614963565b610b2d565b005b34801561036757600080fd5b50610370610e85565b60405161037d919061473a565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a891906148f9565b610e94565b005b6103c960048036038101906103c49190614963565b610eaa565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190614844565b610eca565b005b34801561040057600080fd5b5061041b60048036038101906104169190614ae6565b610ed8565b005b61043760048036038101906104329190614bff565b611197565b005b34801561044557600080fd5b50610460600480360381019061045b9190614844565b6111b6565b60405161046d919061468f565b60405180910390f35b34801561048257600080fd5b5061048b6111c8565b6040516104989190614c74565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906147c1565b6111fb565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190614844565b61126b565b6040516104fe91906148b2565b60405180910390f35b34801561051357600080fd5b5061051c61127d565b604051610529919061473a565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190614c8f565b61128c565b6040516105669190614948565b60405180910390f35b34801561057b57600080fd5b5061058461134d565b005b34801561059257600080fd5b506105ad60048036038101906105a89190614cbc565b611361565b005b3480156105bb57600080fd5b506105c461137c565b6040516105d19190614948565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190614844565b61138b565b60405161060e919061468f565b60405180910390f35b34801561062357600080fd5b5061062c6113ab565b60405161063991906148b2565b60405180910390f35b34801561064e57600080fd5b506106576113e3565b604051610664919061473a565b60405180910390f35b34801561067957600080fd5b5061068261147e565b60405161068f919061473a565b60405180910390f35b3480156106a457600080fd5b506106ad61150c565b6040516106ba919061473a565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190614cbc565b61159a565b005b3480156106f857600080fd5b50610713600480360381019061070e9190614d31565b6115b5565b005b34801561072157600080fd5b5061072a6116c9565b6040516107379190614948565b60405180910390f35b34801561074c57600080fd5b506107556116d8565b604051610762919061473a565b60405180910390f35b61078560048036038101906107809190614d71565b611711565b005b34801561079357600080fd5b506107ae60048036038101906107a99190614844565b611784565b6040516107bb919061473a565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e69190614844565b611854565b6040516107f8919061468f565b60405180910390f35b34801561080d57600080fd5b5061081661187d565b6040516108239190614948565b60405180910390f35b34801561083857600080fd5b50610853600480360381019061084e9190614c8f565b61188c565b6040516108609190614948565b60405180910390f35b34801561087557600080fd5b50610890600480360381019061088b9190614df4565b61189e565b60405161089d919061468f565b60405180910390f35b3480156108b257600080fd5b506108cd60048036038101906108c89190614c8f565b61193b565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061092a57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061095a5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606061096b6119c1565b600201805461097990614e63565b80601f01602080910402602001604051908101604052809291908181526020018280546109a590614e63565b80156109f25780601f106109c7576101008083540402835291602001916109f2565b820191906000526020600020905b8154815290600101906020018083116109d557829003601f168201915b5050505050905090565b610a046119ee565b60005b82829050811015610a67576001600080858585818110610a2a57610a29614e94565b5b90506020020135815260200190815260200160002060006101000a81548160ff02191690831515021790555080610a6090614ef2565b9050610a07565b505050565b6000610a7782611a75565b610aad576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab56119c1565b600601600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610b0082826001611ae6565b5050565b6000610b0e611c3b565b610b166119c1565b60010154610b226119c1565b600001540303905090565b6000610b3882611c40565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610bab84611d53565b91509150610bc18187610bbc611d83565b611d8b565b610c0d57610bd686610bd1611d83565b61189e565b610c0c576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610c73576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c808686866001611dcf565b8015610c8b57600082555b610c936119c1565b60050160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550610cea6119c1565b60050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610d6b85610d47888887611dd5565b7c020000000000000000000000000000000000000000000000000000000017611dfd565b610d736119c1565b60040160008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610e155760006001850190506000610dc46119c1565b60040160008381526020019081526020016000205403610e1357610de66119c1565b600001548114610e125783610df96119c1565b6004016000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e7d8686866001611e28565b505050505050565b6060610e8f611e2e565b905090565b610e9c6119ee565b610ea68282611ec0565b5050565b610ec583838360405180602001604052806000815250611711565b505050565b610ed58160016120a0565b50565b610ee0612328565b60000160019054906101000a900460ff16610f1457610efd612328565b60000160009054906101000a900460ff1615610f1d565b610f1c612355565b5b610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390614fac565b60405180910390fd5b6000610f66612328565b60000160019054906101000a900460ff161590508015610fc9576001610f8a612328565b60000160016101000a81548160ff0219169083151502179055506001610fae612328565b60000160006101000a81548160ff0219169083151502179055505b6000610fd361236c565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156110215750825b9050600060018367ffffffffffffffff16148015611056575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611064575080155b1561109b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156110eb5760018560000160086101000a81548160ff0219169083151502179055505b6110f58888612394565b6110fe336123fa565b61110661240e565b83156111625760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516111599190615025565b60405180910390a15b50505050508015611192576000611177612328565b60000160016101000a81548160ff0219169083151502179055505b505050565b61119f613866565b6111a88261394c565b6111b28282613957565b5050565b60006111c182611a75565b9050919050565b60006111d2613a76565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b6112036119ee565b60005b8282905081101561126657600080600085858581811061122957611228614e94565b5b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055508061125f90614ef2565b9050611206565b505050565b600061127682611c40565b9050919050565b6060611287613afd565b905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f3576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff6113046119c1565b60050160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6113556119ee565b61135f6000613b8f565b565b6113696119ee565b806002908161137891906151e2565b5050565b6000611386613c66565b905090565b60006020528060005260406000206000915054906101000a900460ff1681565b6000806113b6613c79565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606113ed6119c1565b60030180546113fb90614e63565b80601f016020809104026020016040519081016040528092919081815260200182805461142790614e63565b80156114745780601f1061144957610100808354040283529160200191611474565b820191906000526020600020905b81548152906001019060200180831161145757829003601f168201915b5050505050905090565b6002805461148b90614e63565b80601f01602080910402602001604051908101604052809291908181526020018280546114b790614e63565b80156115045780601f106114d957610100808354040283529160200191611504565b820191906000526020600020905b8154815290600101906020018083116114e757829003601f168201915b505050505081565b6001805461151990614e63565b80601f016020809104026020016040519081016040528092919081815260200182805461154590614e63565b80156115925780601f1061156757610100808354040283529160200191611592565b820191906000526020600020905b81548152906001019060200180831161157557829003601f168201915b505050505081565b6115a26119ee565b80600190816115b191906151e2565b5050565b806115be6119c1565b60070160006115cb611d83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611678611d83565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116bd919061468f565b60405180910390a35050565b60006116d3613ca1565b905090565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b61171c848484610b2d565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461177e5761174784848484613cbd565b61177d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b606061178f82611a75565b6117c5576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600084815260200190815260200160002060009054906101000a900460ff166117f8576117f3613afd565b611801565b611800611e2e565b5b90506000815103611821576040518060200160405280600081525061184c565b8061182b84613e0d565b60405160200161183c92919061533c565b6040516020818303038152906040525b915050919050565b600080600083815260200190815260200160002060009054906101000a900460ff169050919050565b6000611887613e5d565b905090565b600061189782613e70565b9050919050565b60006118a86119c1565b60070160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6119436119ee565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119b55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016119ac91906148b2565b60405180910390fd5b6119be81613b8f565b50565b6000807f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4090508091505090565b6119f6613ed0565b73ffffffffffffffffffffffffffffffffffffffff16611a146113ab565b73ffffffffffffffffffffffffffffffffffffffff1614611a7357611a37613ed0565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611a6a91906148b2565b60405180910390fd5b565b600081611a80611c3b565b11158015611a985750611a916119c1565b6000015482105b8015611adf575060007c0100000000000000000000000000000000000000000000000000000000611ac76119c1565b60040160008581526020019081526020016000205416145b9050919050565b6000611af18361126b565b90508115611b7c578073ffffffffffffffffffffffffffffffffffffffff16611b18611d83565b73ffffffffffffffffffffffffffffffffffffffff1614611b7b57611b4481611b3f611d83565b61189e565b611b7a576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b83611b856119c1565b600601600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b600090565b600081611c4b611c3b565b11611d1c57611c586119c1565b600401600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611d1b5760008103611d1657611ca66119c1565b600001548210611ce2576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b611ceb6119c1565b60040160008360019003935083815260200190815260200160002054905060008103611d4e57611ce3565b611d4e565b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000611d606119c1565b600601600085815260200190815260200160002090508092508254915050915091565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611dec868684613ed8565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b606060028054611e3d90614e63565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6990614e63565b8015611eb65780601f10611e8b57610100808354040283529160200191611eb6565b820191906000526020600020905b815481529060010190602001808311611e9957829003601f168201915b5050505050905090565b6000611eca6119c1565b60000154905060008203611f0a576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f176000848385611dcf565b600160406001901b178202611f2a6119c1565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611f9783611f886000866000611dd5565b611f9185613ee1565b17611dfd565b611f9f6119c1565b600401600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461204157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612006565b506000820361207c576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806120856119c1565b60000181905550505061209b6000848385611e28565b505050565b60006120ab83611c40565b905060008190506000806120be86611d53565b915091508415612127576120da81846120d5611d83565b611d8b565b612126576120ef836120ea611d83565b61189e565b612125576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b612135836000886001611dcf565b801561214057600082555b600160806001901b036121516119c1565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506121f1836121ae85600088611dd5565b7c02000000000000000000000000000000000000000000000000000000007c01000000000000000000000000000000000000000000000000000000001717611dfd565b6121f96119c1565b60040160008881526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000085160361229b576000600187019050600061224a6119c1565b600401600083815260200190815260200160002054036122995761226c6119c1565b600001548114612298578461227f6119c1565b6004016000838152602001908152602001600020819055505b5b505b85600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612305836000886001611e28565b61230d6119c1565b60010160008154809291906001019190505550505050505050565b6000807fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f90508091505090565b6000803090506000813b9050600081149250505090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b61239c612328565b60000160019054906101000a900460ff166123ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e3906153dd565b60405180910390fd5b6123f68282613ef1565b5050565b612402613f96565b61240b81613fd6565b50565b612416612328565b60000160019054906101000a900460ff16612466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245d906153dd565b60405180910390fd5b600060405180610900016040528073a92ab746eac03e5ec31cd3a879014a7d1e04640c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c19cf05f28bd4fd58e427a60ec9416d73b6d6c5773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017314f78bdcccd12c4f963bd0457212b3517f974b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b0b822e1c3995503442682caeea1b6c683169d2e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737aaee144a14ec3ba0e468c9dcf4a89fdb62c5aa673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b345720ab089a6748ccec3b59caf642583e308bf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a9a01cf812da74e3100e1fb9b28224902d403ed773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f9d183af486a973b7921ceb5fdc9908d12aab44073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017343a9da9bade357843fbe7e5ee3eedd910f9fac1e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739a428d7491ec6a669c7fe93e1e331fe881e9746f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017314f78bdcccd12c4f963bd0457212b3517f974b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173340bc7511e4e6c1cdd9dcd8f02827fd08edc6fb273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173bc4de0a59d8af0af3e66e08e488400aa6f8bb0fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739401676cd2d01e02a97fcf1f567a369bbae37f0c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d6e91233068c81b0eb6aac77620641f72d27a03973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734c180462a051ab67d8237ede2c987590df2fbbe673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737b2366996a64effe1af089fa64e9cf4361fddc6e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3cd19fabc17ba4b3d11341aa06b6f245de3f9a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017336998db3f9d958f0ebaef7b0b6bf11f3441b216f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a36aa9dbdb7bbc2c986a5e30386a057f8aa38d9c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737aaee144a14ec3ba0e468c9dcf4a89fdb62c5aa673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738d9261369e3bfba715f63303236c324d2e3c44ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001731b7ea7d42c476a1e2808f23e18d850c5a4692df773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001731348ea8e35236aa0769b91ae291e7291117bf15c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c19cf05f28bd4fd58e427a60ec9416d73b6d6c5773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734bf44e0c856d096b755d54ca1e9cfdc0115ed2e673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739832ee476d66b58d185b7bd46d05cbcbe4e543e173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c7c1b169a8d3c5f2d6b25642c4d10da94ffcd3c973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017314f78bdcccd12c4f963bd0457212b3517f974b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737211eead6c7db1d1ebd70f5cbcd8833935a0412673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738d9261369e3bfba715f63303236c324d2e3c44ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737aaee144a14ec3ba0e468c9dcf4a89fdb62c5aa673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e2cdf066eee46b2c424dd1894b8ae33f153f533c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017341dd131e460e18befd262cf4fe2e2b2f43f6fb7b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d441c97ef1458d847271f91714799007081494ef73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b345720ab089a6748ccec3b59caf642583e308bf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001733d138e67dfac9a7af69d2694470b0b6d37721b0673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173baec6ed4a9c3b333e1cb20c3e729d7100c85d8f173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e543357d4f0eb174cfc6bed6ef5e7ab5762f1b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c1f80163cc753f460a190643d8fcbb7755a4840973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001733d7cde7ea3da7fdd724482f11174cbc0b389bd8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200172d1ebe373806b2e5a3db01903aa777ff3f4471d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017334a649fde43ce36882091a010aae2805a9fcff0d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017334a649fde43ce36882091a010aae2805a9fcff0d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739a00beffa3fc064104b71f6b7ea93babdc44d9da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738d9261369e3bfba715f63303236c324d2e3c44ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ddfe74f671f6546f49a6d20909999cfe5f09ad7873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734c180462a051ab67d8237ede2c987590df2fbbe673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173de3e4d173f754704a763d39e1dcf0a90c37ec7f073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001730b8e605a7446801ae645e57de5aabbc251cd1e3c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017359229efd5206968301ed67d5b08e1c39e017989773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f05b641229bb2aa63b205ad8b423a390f7ef05a773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734cc19a7a359f2ff54ff087f03b6887f436f08c1173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f9d183af486a973b7921ceb5fdc9908d12aab44073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f1a621fe077e4e9ac2c0cefd9b69551db9c3f65773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017343a9da9bade357843fbe7e5ee3eedd910f9fac1e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3cd19fabc17ba4b3d11341aa06b6f245de3f9a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739a00beffa3fc064104b71f6b7ea93babdc44d9da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739ec255f1af4d3e4a813aadab8ff0497398037d5673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739d840dccb22e781e7f223ada4dc49e6734d2ce1773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3cd19fabc17ba4b3d11341aa06b6f245de3f9a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356a201b872b50bbdee0021ed4d1bb36359d291ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173394c357db3177e33bde63f259f0eb2c04a46827c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735b45b0a5c1e3d570282bddfe01b0465c1b33243073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3cd19fabc17ba4b3d11341aa06b6f245de3f9a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b3f3658bf332ba6c9c0cc5bc1201caba7ada819b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017369e02d001146a86d4e2995f9ecf906265aa77d8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250905060005b60488110156138625761385182826048811061384557613844614e94565b5b6020020151600161405c565b8061385b90614ef2565b9050613826565b5050565b7f0000000000000000000000001dd0defe25dad4003db39ebd618d3ccbac28880473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148061391357507f0000000000000000000000001dd0defe25dad4003db39ebd618d3ccbac28880473ffffffffffffffffffffffffffffffffffffffff166138fa614285565b73ffffffffffffffffffffffffffffffffffffffff1614155b1561394a576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6139546119ee565b50565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156139bf57506040513d601f19601f820116820180604052508101906139bc9190615429565b60015b613a0057816040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016139f791906148b2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114613a6757806040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600401613a5e9190614c74565b60405180910390fd5b613a7183836142dc565b505050565b7f0000000000000000000000001dd0defe25dad4003db39ebd618d3ccbac28880473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614613afb576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b606060018054613b0c90614e63565b80601f0160208091040260200160405190810160405280929190818152602001828054613b3890614e63565b8015613b855780601f10613b5a57610100808354040283529160200191613b85565b820191906000526020600020905b815481529060010190602001808311613b6857829003601f168201915b5050505050905090565b6000613b99613c79565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000613c706119c1565b60000154905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b6000613cab611c3b565b613cb36119c1565b6000015403905090565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613ce3611d83565b8786866040518563ffffffff1660e01b8152600401613d0594939291906154ab565b6020604051808303816000875af1925050508015613d4157506040513d601f19601f82011682018060405250810190613d3e919061550c565b60015b613dba573d8060008114613d71576040519150601f19603f3d011682016040523d82523d6000602084013e613d76565b606091505b506000815103613db2576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060a060405101806040526020810391506000825281835b600115613e4857600184039350600a81066030018453600a8104905080613e26575b50828103602084039350808452505050919050565b6000613e676119c1565b60010154905090565b600067ffffffffffffffff6040613e856119c1565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b600033905090565b60009392505050565b60006001821460e11b9050919050565b613ef9612328565b60000160019054906101000a900460ff16613f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f40906153dd565b60405180910390fd5b81613f526119c1565b6002019081613f6191906151e2565b5080613f6b6119c1565b6003019081613f7a91906151e2565b50613f83611c3b565b613f8b6119c1565b600001819055505050565b613f9e61434f565b613fd4576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b613fde613f96565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036140505760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161404791906148b2565b60405180910390fd5b61405981613b8f565b50565b60006140666119c1565b600001549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036140d2576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000820361410c576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611388821115614148576040517f3db1f9af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6141556000848385611dcf565b600160406001901b1782026141686119c1565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506141d5836141c66000866000611dd5565b6141cf85613ee1565b17611dfd565b6141dd6119c1565b6004016000838152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16827fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d6001868601036040516142599190614948565b60405180910390a481810161426c6119c1565b600001819055506142806000848385611e28565b505050565b60006142b37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61436f565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6142e582614379565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156143425761433c8282614446565b5061434b565b61434a6144ca565b5b5050565b600061435961236c565b60000160089054906101000a900460ff16905090565b6000819050919050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036143d557806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016143cc91906148b2565b60405180910390fd5b806144027f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61436f565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516144709190615575565b600060405180830381855af49150503d80600081146144ab576040519150601f19603f3d011682016040523d82523d6000602084013e6144b0565b606091505b50915091506144c0858383614507565b9250505092915050565b6000341115614505576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60608261451c5761451782614596565b61458e565b60008251148015614544575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561458657836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161457d91906148b2565b60405180910390fd5b81905061458f565b5b9392505050565b6000815111156145a95780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614624816145ef565b811461462f57600080fd5b50565b6000813590506146418161461b565b92915050565b60006020828403121561465d5761465c6145e5565b5b600061466b84828501614632565b91505092915050565b60008115159050919050565b61468981614674565b82525050565b60006020820190506146a46000830184614680565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156146e45780820151818401526020810190506146c9565b60008484015250505050565b6000601f19601f8301169050919050565b600061470c826146aa565b61471681856146b5565b93506147268185602086016146c6565b61472f816146f0565b840191505092915050565b600060208201905081810360008301526147548184614701565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126147815761478061475c565b5b8235905067ffffffffffffffff81111561479e5761479d614761565b5b6020830191508360208202830111156147ba576147b9614766565b5b9250929050565b600080602083850312156147d8576147d76145e5565b5b600083013567ffffffffffffffff8111156147f6576147f56145ea565b5b6148028582860161476b565b92509250509250929050565b6000819050919050565b6148218161480e565b811461482c57600080fd5b50565b60008135905061483e81614818565b92915050565b60006020828403121561485a576148596145e5565b5b60006148688482850161482f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061489c82614871565b9050919050565b6148ac81614891565b82525050565b60006020820190506148c760008301846148a3565b92915050565b6148d681614891565b81146148e157600080fd5b50565b6000813590506148f3816148cd565b92915050565b600080604083850312156149105761490f6145e5565b5b600061491e858286016148e4565b925050602061492f8582860161482f565b9150509250929050565b6149428161480e565b82525050565b600060208201905061495d6000830184614939565b92915050565b60008060006060848603121561497c5761497b6145e5565b5b600061498a868287016148e4565b935050602061499b868287016148e4565b92505060406149ac8682870161482f565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6149f3826146f0565b810181811067ffffffffffffffff82111715614a1257614a116149bb565b5b80604052505050565b6000614a256145db565b9050614a3182826149ea565b919050565b600067ffffffffffffffff821115614a5157614a506149bb565b5b614a5a826146f0565b9050602081019050919050565b82818337600083830152505050565b6000614a89614a8484614a36565b614a1b565b905082815260208101848484011115614aa557614aa46149b6565b5b614ab0848285614a67565b509392505050565b600082601f830112614acd57614acc61475c565b5b8135614add848260208601614a76565b91505092915050565b60008060408385031215614afd57614afc6145e5565b5b600083013567ffffffffffffffff811115614b1b57614b1a6145ea565b5b614b2785828601614ab8565b925050602083013567ffffffffffffffff811115614b4857614b476145ea565b5b614b5485828601614ab8565b9150509250929050565b600067ffffffffffffffff821115614b7957614b786149bb565b5b614b82826146f0565b9050602081019050919050565b6000614ba2614b9d84614b5e565b614a1b565b905082815260208101848484011115614bbe57614bbd6149b6565b5b614bc9848285614a67565b509392505050565b600082601f830112614be657614be561475c565b5b8135614bf6848260208601614b8f565b91505092915050565b60008060408385031215614c1657614c156145e5565b5b6000614c24858286016148e4565b925050602083013567ffffffffffffffff811115614c4557614c446145ea565b5b614c5185828601614bd1565b9150509250929050565b6000819050919050565b614c6e81614c5b565b82525050565b6000602082019050614c896000830184614c65565b92915050565b600060208284031215614ca557614ca46145e5565b5b6000614cb3848285016148e4565b91505092915050565b600060208284031215614cd257614cd16145e5565b5b600082013567ffffffffffffffff811115614cf057614cef6145ea565b5b614cfc84828501614ab8565b91505092915050565b614d0e81614674565b8114614d1957600080fd5b50565b600081359050614d2b81614d05565b92915050565b60008060408385031215614d4857614d476145e5565b5b6000614d56858286016148e4565b9250506020614d6785828601614d1c565b9150509250929050565b60008060008060808587031215614d8b57614d8a6145e5565b5b6000614d99878288016148e4565b9450506020614daa878288016148e4565b9350506040614dbb8782880161482f565b925050606085013567ffffffffffffffff811115614ddc57614ddb6145ea565b5b614de887828801614bd1565b91505092959194509250565b60008060408385031215614e0b57614e0a6145e5565b5b6000614e19858286016148e4565b9250506020614e2a858286016148e4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614e7b57607f821691505b602082108103614e8e57614e8d614e34565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614efd8261480e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f2f57614f2e614ec3565b5b600182019050919050565b7f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460008201527f20697320616c726561647920696e697469616c697a6564000000000000000000602082015250565b6000614f966037836146b5565b9150614fa182614f3a565b604082019050919050565b60006020820190508181036000830152614fc581614f89565b9050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b600061500f61500a61500584614fcc565b614fea565b614fd6565b9050919050565b61501f81614ff4565b82525050565b600060208201905061503a6000830184615016565b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026150a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615065565b6150ac8683615065565b95508019841693508086168417925050509392505050565b60006150df6150da6150d58461480e565b614fea565b61480e565b9050919050565b6000819050919050565b6150f9836150c4565b61510d615105826150e6565b848454615072565b825550505050565b600090565b615122615115565b61512d8184846150f0565b505050565b5b818110156151515761514660008261511a565b600181019050615133565b5050565b601f8211156151965761516781615040565b61517084615055565b8101602085101561517f578190505b61519361518b85615055565b830182615132565b50505b505050565b600082821c905092915050565b60006151b96000198460080261519b565b1980831691505092915050565b60006151d283836151a8565b9150826002028217905092915050565b6151eb826146aa565b67ffffffffffffffff811115615204576152036149bb565b5b61520e8254614e63565b615219828285615155565b600060209050601f83116001811461524c576000841561523a578287015190505b61524485826151c6565b8655506152ac565b601f19841661525a86615040565b60005b828110156152825784890151825560018201915060208501945060208101905061525d565b8683101561529f578489015161529b601f8916826151a8565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b60006152ca826146aa565b6152d481856152b4565b93506152e48185602086016146c6565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006153266005836152b4565b9150615331826152f0565b600582019050919050565b600061534882856152bf565b915061535482846152bf565b915061535f82615319565b91508190509392505050565b7f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460008201527f206973206e6f7420696e697469616c697a696e67000000000000000000000000602082015250565b60006153c76034836146b5565b91506153d28261536b565b604082019050919050565b600060208201905081810360008301526153f6816153ba565b9050919050565b61540681614c5b565b811461541157600080fd5b50565b600081519050615423816153fd565b92915050565b60006020828403121561543f5761543e6145e5565b5b600061544d84828501615414565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061547d82615456565b6154878185615461565b93506154978185602086016146c6565b6154a0816146f0565b840191505092915050565b60006080820190506154c060008301876148a3565b6154cd60208301866148a3565b6154da6040830185614939565b81810360608301526154ec8184615472565b905095945050505050565b6000815190506155068161461b565b92915050565b600060208284031215615522576155216145e5565b5b6000615530848285016154f7565b91505092915050565b600081905092915050565b600061554f82615456565b6155598185615539565b93506155698185602086016146c6565b80840191505092915050565b60006155818284615544565b91508190509291505056fea264697066735822122053e3b8ac43a6510384aa51fae360db07a9a73546f8c84118c547cd55819a990a64736f6c63430008140033
🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.