More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 957 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Approval For... | 25354900 | 74 days ago | IN | 0 ETH | 0.00001648 | ||||
| Safe Transfer Fr... | 25286998 | 83 days ago | IN | 0 ETH | 0.00003838 | ||||
| Safe Transfer Fr... | 25286994 | 83 days ago | IN | 0 ETH | 0.00004184 | ||||
| Safe Transfer Fr... | 25286989 | 83 days ago | IN | 0 ETH | 0.00004235 | ||||
| Set Approval For... | 25282436 | 84 days ago | IN | 0 ETH | 0.00001021 | ||||
| Set Approval For... | 25279090 | 84 days ago | IN | 0 ETH | 0.00000536 | ||||
| Set Approval For... | 25276775 | 85 days ago | IN | 0 ETH | 0.00001371 | ||||
| Set Approval For... | 25207245 | 94 days ago | IN | 0 ETH | 0.00001263 | ||||
| Set Approval For... | 25206452 | 94 days ago | IN | 0 ETH | 0.00001639 | ||||
| Set Approval For... | 25201902 | 95 days ago | IN | 0 ETH | 0.00004305 | ||||
| Set Approval For... | 25187680 | 97 days ago | IN | 0 ETH | 0.00003885 | ||||
| Set Approval For... | 25187653 | 97 days ago | IN | 0 ETH | 0.00006464 | ||||
| Set Approval For... | 25181603 | 98 days ago | IN | 0 ETH | 0.00001342 | ||||
| Set Approval For... | 25178607 | 98 days ago | IN | 0 ETH | 0.0000077 | ||||
| Set Approval For... | 25173744 | 99 days ago | IN | 0 ETH | 0.00004108 | ||||
| Set Approval For... | 25173602 | 99 days ago | IN | 0 ETH | 0.0000154 | ||||
| Safe Transfer Fr... | 25173561 | 99 days ago | IN | 0 ETH | 0.00001503 | ||||
| Set Approval For... | 25172370 | 99 days ago | IN | 0 ETH | 0.0000189 | ||||
| Set Approval For... | 25172369 | 99 days ago | IN | 0 ETH | 0.00003293 | ||||
| Set Approval For... | 25169104 | 100 days ago | IN | 0 ETH | 0.00000556 | ||||
| Set Approval For... | 25169089 | 100 days ago | IN | 0 ETH | 0.00000685 | ||||
| Safe Transfer Fr... | 24756935 | 157 days ago | IN | 0 ETH | 0.00000289 | ||||
| Merge | 24756906 | 157 days ago | IN | 0 ETH | 0.00000452 | ||||
| Merge | 24756868 | 157 days ago | IN | 0 ETH | 0.00001889 | ||||
| Set Approval For... | 24756829 | 157 days ago | IN | 0 ETH | 0.00000353 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method |
Block
|
From
|
To
|
|||
|---|---|---|---|---|---|---|---|
| Transfer | 16707629 | 1284 days ago | 25.037 ETH | ||||
| Transfer | 16686208 | 1287 days ago | 0.0048 ETH | ||||
| Transfer | 16686198 | 1287 days ago | 0.044 ETH | ||||
| Transfer | 16686197 | 1287 days ago | 0.003 ETH | ||||
| Transfer | 16686196 | 1287 days ago | 0.044 ETH | ||||
| Transfer | 16686195 | 1287 days ago | 0.044 ETH | ||||
| Transfer | 16686194 | 1287 days ago | 0.011 ETH | ||||
| Mint | 16686193 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686192 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686192 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686192 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686192 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686192 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686192 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686192 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH | ||||
| Mint | 16686188 | 1287 days ago | 0.015 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"_timedSalePrice","type":"uint256"},{"internalType":"address","name":"_renderer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","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"},{"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":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","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":[],"name":"TimedSaleStarted","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"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"BLACK_HOLE_NAMES","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY_OF_INTERSTELLAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_recipients","type":"address[]"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"allBlackHoleLevelNames","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":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"blackHoleForTokenId","outputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"mass","type":"uint256"},{"internalType":"uint256","name":"adjustment","type":"uint256"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct BlackHole","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"blackHolesForTokenIds","outputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"mass","type":"uint256"},{"internalType":"uint256","name":"adjustment","type":"uint256"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct BlackHole[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mass","type":"uint256"}],"name":"getAdjustmentForMass","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBaseUpgradeMass","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMintState","outputs":[{"internalType":"enum BlackHoles.MintState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"isMergingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mass","type":"uint256"}],"name":"levelForMass","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"massForTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"massesConsumed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"merge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mergingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_level","type":"uint256"}],"name":"nameForBlackHoleLevel","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renderer","outputs":[{"internalType":"contract Renderer","name":"","type":"address"}],"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":"uint256","name":"_mergingDelay","type":"uint256"}],"name":"setMergingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timedSaleDuration","type":"uint256"}],"name":"setTimedSaleDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timedSalePrice","type":"uint256"}],"name":"setTimedSalePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timedSaleThreshold","type":"uint256"}],"name":"setTimedSaleThreshold","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":[],"name":"timedSaleDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timedSaleEndTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timedSalePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timedSaleStartedTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timedSaleThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"upgradeIntervals","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60c06040526004608090815250602a60a0908152506040518060a001604052806040518060400160405280600581526020017f4d6963726f00000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f5374656c6c61720000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600c81526020017f496e7465726d656469617465000000000000000000000000000000000000000081525081526020016040518060400160405280600c81526020017f53757065726d617373697665000000000000000000000000000000000000000081525081526020016040518060400160405280600a81526020017f5072696d6f726469616c000000000000000000000000000000000000000000008152508152506009906005620001569291906200032d565b506103e8600d5562015180600e5562069780600f553480156200017857600080fd5b5060405162005d6738038062005d6783398181016040528101906200019e91906200064d565b84848160029081620001b1919062000954565b508060039081620001c3919062000954565b50620001d46200025660201b60201c565b6000819055505050620001fc620001f06200025f60201b60201c565b6200026760201b60201c565b82600a8190555081600b8190555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000a3b565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280548282559060005260206000209081019282156200037a579160200282015b828111156200037957825182908162000368919062000954565b50916020019190600101906200034e565b5b5090506200038991906200038d565b5090565b5b80821115620003b15760008181620003a79190620003b5565b506001016200038e565b5090565b508054620003c3906200074d565b6000825580601f10620003d75750620003f8565b601f016020900490600052602060002090810190620003f79190620003fb565b5b50565b5b8082111562000416576000816000905550600101620003fc565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004838262000438565b810181811067ffffffffffffffff82111715620004a557620004a462000449565b5b80604052505050565b6000620004ba6200041a565b9050620004c8828262000478565b919050565b600067ffffffffffffffff821115620004eb57620004ea62000449565b5b620004f68262000438565b9050602081019050919050565b60005b838110156200052357808201518184015260208101905062000506565b60008484015250505050565b6000620005466200054084620004cd565b620004ae565b90508281526020810184848401111562000565576200056462000433565b5b6200057284828562000503565b509392505050565b600082601f8301126200059257620005916200042e565b5b8151620005a48482602086016200052f565b91505092915050565b6000819050919050565b620005c281620005ad565b8114620005ce57600080fd5b50565b600081519050620005e281620005b7565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200061582620005e8565b9050919050565b620006278162000608565b81146200063357600080fd5b50565b60008151905062000647816200061c565b92915050565b600080600080600060a086880312156200066c576200066b62000424565b5b600086015167ffffffffffffffff8111156200068d576200068c62000429565b5b6200069b888289016200057a565b955050602086015167ffffffffffffffff811115620006bf57620006be62000429565b5b620006cd888289016200057a565b9450506040620006e088828901620005d1565b9350506060620006f388828901620005d1565b9250506080620007068882890162000636565b9150509295509295909350565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200076657607f821691505b6020821081036200077c576200077b6200071e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007a7565b620007f28683620007a7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620008356200082f6200082984620005ad565b6200080a565b620005ad565b9050919050565b6000819050919050565b620008518362000814565b6200086962000860826200083c565b848454620007b4565b825550505050565b600090565b6200088062000871565b6200088d81848462000846565b505050565b5b81811015620008b557620008a960008262000876565b60018101905062000893565b5050565b601f8211156200090457620008ce8162000782565b620008d98462000797565b81016020851015620008e9578190505b62000901620008f88562000797565b83018262000892565b50505b505050565b600082821c905092915050565b6000620009296000198460080262000909565b1980831691505092915050565b600062000944838362000916565b9150826002028217905092915050565b6200095f8262000713565b67ffffffffffffffff8111156200097b576200097a62000449565b5b6200098782546200074d565b62000994828285620008b9565b600060209050601f831160018114620009cc5760008415620009b7578287015190505b620009c3858262000936565b86555062000a33565b601f198416620009dc8662000782565b60005b8281101562000a0657848901518255600182019150602085019450602081019050620009df565b8683101562000a26578489015162000a22601f89168262000916565b8355505b6001600288020188555050505b505050505050565b60805160a0516152ea62000a7d60003960008181611458015261165d01526000818161142101528181611538015281816118110152611e6101526152ea6000f3fe6080604052600436106102ff5760003560e01c80637858a2a711610190578063a2309ff8116100dc578063ca714e5b11610095578063d89135cd1161006f578063d89135cd14610b70578063de62d84214610b9b578063e985e9c514610bc4578063f2fde38b14610c01576102ff565b8063ca714e5b14610ab9578063cbad784914610af6578063d3dedd6314610b33576102ff565b8063a2309ff8146109b1578063a49062d4146109dc578063b4449b2614610a07578063b88d4fde14610a44578063c204642c14610a60578063c87b56dd14610a7c576102ff565b806393d57dd4116101495780639fc8d6ae116101235780639fc8d6ae14610918578063a035b1fe14610941578063a0712d681461096c578063a22cb46514610988576102ff565b806393d57dd41461089757806395d89b41146108c257806398d5fdca146108ed576102ff565b80637858a2a71461078757806389327f28146107b05780638ada6b0f146107ed5780638b3578c6146108185780638da5cb5b1461084357806391b7f5ed1461086e576102ff565b80633ccfd60b1161024f5780635e23a7631161020857806370a08231116101e257806370a08231146106cb578063715018a614610708578063774a88351461071f5780637752e3681461074a576102ff565b80635e23a763146106265780636352211e146106635780636ae4c0b5146106a0576102ff565b80633ccfd60b1461054757806342842e0e1461055e5780634724d6bd1461057a57806348019b86146105a55780634ca7880c146105d05780635056af05146105fb576102ff565b806318160ddd116102bc5780631df4b972116102965780631df4b972146104ac578063208d12f5146104d757806323b872dd14610500578063310c18131461051c576102ff565b806318160ddd1461041957806318f58b73146104445780631d22dc6f14610481576102ff565b806301ffc9a71461030457806304ec7ed01461034157806306fdde031461036a578063081812fc14610395578063095ea7b3146103d25780630ed89bf0146103ee575b600080fd5b34801561031057600080fd5b5061032b60048036038101906103269190613596565b610c2a565b60405161033891906135de565b60405180910390f35b34801561034d57600080fd5b506103686004803603810190610363919061362f565b610cbc565b005b34801561037657600080fd5b5061037f610cce565b60405161038c91906136ec565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b7919061362f565b610d60565b6040516103c9919061374f565b60405180910390f35b6103ec60048036038101906103e79190613796565b610ddf565b005b3480156103fa57600080fd5b50610403610f23565b60405161041091906138e2565b60405180910390f35b34801561042557600080fd5b5061042e610ffc565b60405161043b9190613913565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190613a76565b611013565b6040516104789190613c19565b60405180910390f35b34801561048d57600080fd5b506104966110d8565b6040516104a39190613913565b60405180910390f35b3480156104b857600080fd5b506104c16110de565b6040516104ce9190613913565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f9919061362f565b6110e4565b005b61051a60048036038101906105159190613c3b565b6110f6565b005b34801561052857600080fd5b50610531611418565b60405161053e9190613913565b60405180910390f35b34801561055357600080fd5b5061055c61149f565b005b61057860048036038101906105739190613c3b565b6114e7565b005b34801561058657600080fd5b5061058f611507565b60405161059c9190613913565b60405180910390f35b3480156105b157600080fd5b506105ba61150d565b6040516105c79190613913565b60405180910390f35b3480156105dc57600080fd5b506105e5611524565b6040516105f29190613d3d565b60405180910390f35b34801561060757600080fd5b5061061061165b565b60405161061d9190613913565b60405180910390f35b34801561063257600080fd5b5061064d6004803603810190610648919061362f565b61167f565b60405161065a9190613913565b60405180910390f35b34801561066f57600080fd5b5061068a6004803603810190610685919061362f565b6116a8565b604051610697919061374f565b60405180910390f35b3480156106ac57600080fd5b506106b56116ba565b6040516106c29190613913565b60405180910390f35b3480156106d757600080fd5b506106f260048036038101906106ed9190613d5f565b6116c0565b6040516106ff9190613913565b60405180910390f35b34801561071457600080fd5b5061071d611778565b005b34801561072b57600080fd5b5061073461178c565b6040516107419190613e03565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c919061362f565b6117d7565b60405161077e9190613913565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a9919061362f565b6117ef565b005b3480156107bc57600080fd5b506107d760048036038101906107d2919061362f565b611801565b6040516107e49190613913565b60405180910390f35b3480156107f957600080fd5b506108026118ea565b60405161080f9190613e7d565b60405180910390f35b34801561082457600080fd5b5061082d611910565b60405161083a91906135de565b60405180910390f35b34801561084f57600080fd5b5061085861196c565b604051610865919061374f565b60405180910390f35b34801561087a57600080fd5b506108956004803603810190610890919061362f565b611996565b005b3480156108a357600080fd5b506108ac6119a8565b6040516108b99190613913565b60405180910390f35b3480156108ce57600080fd5b506108d76119ae565b6040516108e491906136ec565b60405180910390f35b3480156108f957600080fd5b50610902611a40565b60405161090f9190613913565b60405180910390f35b34801561092457600080fd5b5061093f600480360381019061093a919061362f565b611a88565b005b34801561094d57600080fd5b50610956611a9a565b6040516109639190613913565b60405180910390f35b6109866004803603810190610981919061362f565b611aa0565b005b34801561099457600080fd5b506109af60048036038101906109aa9190613ec4565b611d45565b005b3480156109bd57600080fd5b506109c6611e50565b6040516109d39190613913565b60405180910390f35b3480156109e857600080fd5b506109f1611e5f565b6040516109fe9190613913565b60405180910390f35b348015610a1357600080fd5b50610a2e6004803603810190610a29919061362f565b611e83565b604051610a3b91906136ec565b60405180910390f35b610a5e6004803603810190610a599190613fb9565b611f33565b005b610a7a6004803603810190610a759190614097565b611fa6565b005b348015610a8857600080fd5b50610aa36004803603810190610a9e919061362f565b612073565b604051610ab091906136ec565b60405180910390f35b348015610ac557600080fd5b50610ae06004803603810190610adb919061362f565b61225a565b604051610aed9190614180565b60405180910390f35b348015610b0257600080fd5b50610b1d6004803603810190610b18919061362f565b612381565b604051610b2a9190613913565b60405180910390f35b348015610b3f57600080fd5b50610b5a6004803603810190610b55919061362f565b61244d565b604051610b6791906136ec565b60405180910390f35b348015610b7c57600080fd5b50610b856124f9565b604051610b929190613913565b60405180910390f35b348015610ba757600080fd5b50610bc26004803603810190610bbd9190613a76565b612508565b005b348015610bd057600080fd5b50610beb6004803603810190610be691906141a2565b6127b2565b604051610bf891906135de565b60405180910390f35b348015610c0d57600080fd5b50610c286004803603810190610c239190613d5f565b612846565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c8557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610cb55750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b610cc46128c9565b80600e8190555050565b606060028054610cdd90614211565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0990614211565b8015610d565780601f10610d2b57610100808354040283529160200191610d56565b820191906000526020600020905b815481529060010190602001808311610d3957829003601f168201915b5050505050905090565b6000610d6b82612947565b610da1576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610dea826116a8565b90508073ffffffffffffffffffffffffffffffffffffffff16610e0b6129a6565b73ffffffffffffffffffffffffffffffffffffffff1614610e6e57610e3781610e326129a6565b6127b2565b610e6d576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60606009805480602002602001604051908101604052809291908181526020016000905b82821015610ff3578382906000526020600020018054610f6690614211565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9290614211565b8015610fdf5780601f10610fb457610100808354040283529160200191610fdf565b820191906000526020600020905b815481529060010190602001808311610fc257829003601f168201915b505050505081526020019060010190610f47565b50505050905090565b60006110066129ae565b6001546000540303905090565b60606000825167ffffffffffffffff81111561103257611031613933565b5b60405190808252806020026020018201604052801561106b57816020015b6110586134f4565b8152602001906001900390816110505790505b50905060005b83518110156110ce5761109d8482815181106110905761108f614242565b5b602002602001015161225a565b8282815181106110b0576110af614242565b5b602002602001018190525080806110c6906142a0565b915050611071565b5080915050919050565b600e5481565b600f5481565b6110ec6128c9565b80600b8190555050565b6000611101826129b7565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611168576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061117484612a83565b9150915061118a81876111856129a6565b612aaa565b6111d65761119f8661119a6129a6565b6127b2565b6111d5576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361123c576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112498686866001612aee565b801561125457600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550611322856112fe888887612af4565b7c020000000000000000000000000000000000000000000000000000000017612b1c565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416036113a857600060018501905060006004600083815260200190815260200160002054036113a65760005481146113a5578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46114108686866001612b47565b505050505050565b600061149a60017f000000000000000000000000000000000000000000000000000000000000000061144a91906142e8565b6002611456919061444f565b7f000000000000000000000000000000000000000000000000000000000000000061147f612b4d565b61148991906144c9565b61149391906144c9565b6002612b60565b905090565b6114a76128c9565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050506114e557600080fd5b565b61150283838360405180602001604052806000815250611f33565b505050565b600c5481565b6000600e54600c5461151f91906144fa565b905090565b60606000611530611418565b9050600060017f000000000000000000000000000000000000000000000000000000000000000061156191906144fa565b67ffffffffffffffff81111561157a57611579613933565b5b6040519080825280602002602001820160405280156115a85781602001602082028036833780820191505090505b50905081816000815181106115c0576115bf614242565b5b6020026020010181815250506002826115d9919061452e565b816001815181106115ed576115ec614242565b5b602002602001018181525050600482611606919061452e565b8160028151811061161a57611619614242565b5b602002602001018181525050600882611633919061452e565b8160038151811061164757611646614242565b5b602002602001018181525050809250505090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600160106000848152602001908152602001600020546116a191906144fa565b9050919050565b60006116b3826129b7565b9050919050565b600d5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611727576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6117806128c9565b61178a6000612b79565b565b600080611797612b4d565b9050600d548110156117ad5760009150506117d4565b600e54600c546117bd91906144fa565b4210156117ce5760019150506117d4565b60029150505b90565b60106020528060005260406000206000915090505481565b6117f76128c9565b80600d8190555050565b60008061180d83612381565b90507f000000000000000000000000000000000000000000000000000000000000000081036118405760009150506118e5565b600061184a611418565b905060006001808461185c91906144fa565b6002611868919061444f565b83611873919061452e565b61187d91906142e8565b9050600083600261188e919061444f565b83611899919061452e565b90506000808511156118a9578190505b600081846118b791906142e8565b88856118c391906142e8565b60146118cf919061452e565b6118d991906144c9565b90508096505050505050505b919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060028081111561192557611924613d8c565b5b61192d61178c565b600281111561193f5761193e613d8c565b5b1480156119675750600f54600e54600c5461195a91906144fa565b61196491906144fa565b42115b905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61199e6128c9565b80600a8190555050565b600b5481565b6060600380546119bd90614211565b80601f01602080910402602001604051908101604052809291908181526020018280546119e990614211565b8015611a365780601f10611a0b57610100808354040283529160200191611a36565b820191906000526020600020905b815481529060010190602001808311611a1957829003601f168201915b5050505050905090565b600060016002811115611a5657611a55613d8c565b5b611a5e61178c565b6002811115611a7057611a6f613d8c565b5b03611a7f57600b549050611a85565b600a5490505b90565b611a906128c9565b80600f8190555050565b600a5481565b6000611aaa611a40565b90506000611ab6612b4d565b90506000611ac261178c565b9050600280811115611ad757611ad6613d8c565b5b816002811115611aea57611ae9613d8c565b5b03611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b21906145d4565b60405180910390fd5b60008483611b3891906144fa565b905060008585611b48919061452e565b905060006002811115611b5e57611b5d613d8c565b5b836002811115611b7157611b70613d8c565b5b148015611b805750600d548210155b15611c2f576000600d5483611b9591906142e8565b905060008188611ba591906142e8565b90508681611bb3919061452e565b9250600b548334611bc491906142e8565b611bce91906144c9565b9150600b5482611bde919061452e565b83611be991906144fa565b92508181611bf791906144fa565b975042600c819055507f6829347062e9f3db38e85deaf425a1d7ea05e95e20362d8b3889a08745d144cb60405160405180910390a150505b80341015611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990614640565b60405180910390fd5b611c7c3387612c3f565b80341115611d3d5760003373ffffffffffffffffffffffffffffffffffffffff168234611ca991906142e8565b604051611cb590614691565b60006040518083038185875af1925050503d8060008114611cf2576040519150601f19603f3d011682016040523d82523d6000602084013e611cf7565b606091505b5050905080611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d32906146f2565b60405180910390fd5b505b505050505050565b8060076000611d526129a6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611dff6129a6565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611e4491906135de565b60405180910390a35050565b6000611e5a612b4d565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060098281548110611e9957611e98614242565b5b906000526020600020018054611eae90614211565b80601f0160208091040260200160405190810160405280929190818152602001828054611eda90614211565b8015611f275780601f10611efc57610100808354040283529160200191611f27565b820191906000526020600020905b815481529060010190602001808311611f0a57829003601f168201915b50505050509050919050565b611f3e8484846110f6565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611fa057611f6984848484612dfa565b611f9f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b611fae6128c9565b600280811115611fc157611fc0613d8c565b5b611fc961178c565b6002811115611fdb57611fda613d8c565b5b0361201b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120129061475e565b60405180910390fd5b60005b8383905081101561206d5761205a84848381811061203f5761203e614242565b5b90506020020160208101906120549190613d5f565b83612c3f565b8080612065906142a0565b91505061201e565b50505050565b606061207e82612947565b6120b4576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006120bf83612f4a565b6040516020016120cf9190614806565b604051602081830303815290604052905060006040518060600160405280603d8152602001615238603d9139905060006121088561225a565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfeb9a02836040518263ffffffff1660e01b81526004016121679190614180565b600060405180830381865afa158015612184573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906121ad91906148c9565b905060006121be8360200151612f4a565b8360a001516121d08560600151612f4a565b6040516020016121e293929190614ab4565b60405160208183030381529060405290506000858583612201866130d2565b6040516020016122149493929190614d34565b604051602081830303815290604052905061222e816130d2565b60405160200161223e9190614e00565b6040516020818303038152906040529650505050505050919050565b6122626134f4565b600061226d8361167f565b9050600061227a82612381565b9050600061228782611e83565b9050600061229484611801565b90506040518060c0016040528087815260200184815260200184600a6122ba91906142e8565b6002601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663030ac5256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234d9190614e37565b61235791906144c9565b61236191906142e8565b815260200185815260200182815260200183815250945050505050919050565b60008061238c611524565b9050806000815181106123a2576123a1614242565b5b60200260200101518310156123bb576000915050612448565b806001815181106123cf576123ce614242565b5b60200260200101518310156123e8576001915050612448565b806002815181106123fc576123fb614242565b5b6020026020010151831015612415576002915050612448565b8060038151811061242957612428614242565b5b6020026020010151831015612442576003915050612448565b60049150505b919050565b6009818154811061245d57600080fd5b90600052602060002001600091509050805461247890614211565b80601f01602080910402602001604051908101604052809291908181526020018280546124a490614211565b80156124f15780601f106124c6576101008083540402835291602001916124f1565b820191906000526020600020905b8154815290600101906020018083116124d457829003601f168201915b505050505081565b6000612503613269565b905090565b612510611910565b61254f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254690614eb0565b60405180910390fd5b6001815111612593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258a90614f1c565b60405180910390fd5b6000816000815181106125a9576125a8614242565b5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff166125ee836000815181106125e1576125e0614242565b5b60200260200101516116a8565b73ffffffffffffffffffffffffffffffffffffffff1614612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b90614f88565b60405180910390fd5b600080600190505b835181101561274b573373ffffffffffffffffffffffffffffffffffffffff1661268f85838151811061268257612681614242565b5b60200260200101516116a8565b73ffffffffffffffffffffffffffffffffffffffff16146126e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126dc90614ff4565b60405180910390fd5b6127088482815181106126fb576126fa614242565b5b602002602001015161167f565b8261271391906144fa565b915061273884828151811061272b5761272a614242565b5b6020026020010151613273565b8080612743906142a0565b91505061264c565b508060106000848152602001908152602001600020600082825461276f91906144fa565b925050819055507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516127a59190613913565b60405180910390a1505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61284e6128c9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490615086565b60405180910390fd5b6128c681612b79565b50565b6128d1613281565b73ffffffffffffffffffffffffffffffffffffffff166128ef61196c565b73ffffffffffffffffffffffffffffffffffffffff1614612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c906150f2565b60405180910390fd5b565b6000816129526129ae565b11158015612961575060005482105b801561299f575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b600080829050806129c66129ae565b11612a4c57600054811015612a4b5760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603612a49575b60008103612a3f576004600083600190039350838152602001908152602001600020549050612a15565b8092505050612a7e565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612b0b868684613289565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000612b576129ae565b60005403905090565b6000818311612b6f5781612b71565b825b905092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905060008203612c7f576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c8c6000848385612aee565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612d0383612cf46000866000612af4565b612cfd85613292565b17612b1c565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114612da457808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612d69565b5060008203612ddf576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050612df56000848385612b47565b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612e206129a6565b8786866040518563ffffffff1660e01b8152600401612e429493929190615167565b6020604051808303816000875af1925050508015612e7e57506040513d601f19601f82011682018060405250810190612e7b91906151c8565b60015b612ef7573d8060008114612eae576040519150601f19603f3d011682016040523d82523d6000602084013e612eb3565b606091505b506000815103612eef576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060008203612f91576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506130cd565b600082905060005b60008214612fc3578080612fac906142a0565b915050600a82612fbc91906144c9565b9150612f99565b60008167ffffffffffffffff811115612fdf57612fde613933565b5b6040519080825280601f01601f1916602001820160405280156130115781602001600182028036833780820191505090505b50905060008290505b600086146130c55760018161302f91906142e8565b90506000600a808861304191906144c9565b61304b919061452e565b8761305691906142e8565b60306130629190615202565b905060008160f81b9050808484815181106130805761307f614242565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a886130bc91906144c9565b9750505061301a565b819450505050505b919050565b6060600082519050600081036130fa5760405180602001604052806000815250915050613264565b6000600360028361310b91906144fa565b61311591906144c9565b6004613121919061452e565b9050600060208261313291906144fa565b67ffffffffffffffff81111561314b5761314a613933565b5b6040519080825280601f01601f19166020018201604052801561317d5781602001600182028036833780820191505090505b5090506000604051806060016040528060408152602001615275604091399050600181016020830160005b868110156132215760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b905080845260048401935050506131a8565b50600386066001811461323b576002811461324b57613256565b613d3d60f01b6002830352613256565b603d60f81b60018303525b508484525050819450505050505b919050565b6000600154905090565b61327e8160006132a2565b50565b600033905090565b60009392505050565b60006001821460e11b9050919050565b60006132ad836129b7565b905060008190506000806132c086612a83565b915091508415613329576132dc81846132d76129a6565b612aaa565b613328576132f1836132ec6129a6565b6127b2565b613327576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b613337836000886001612aee565b801561334257600082555b600160806001901b03600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506133ea836133a785600088612af4565b7c02000000000000000000000000000000000000000000000000000000007c01000000000000000000000000000000000000000000000000000000001717612b1c565b600460008881526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000851603613470576000600187019050600060046000838152602001908152602001600020540361346e57600054811461346d578460046000838152602001908152602001600020819055505b5b505b85600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46134da836000886001612b47565b600160008154809291906001019190505550505050505050565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001606081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6135738161353e565b811461357e57600080fd5b50565b6000813590506135908161356a565b92915050565b6000602082840312156135ac576135ab613534565b5b60006135ba84828501613581565b91505092915050565b60008115159050919050565b6135d8816135c3565b82525050565b60006020820190506135f360008301846135cf565b92915050565b6000819050919050565b61360c816135f9565b811461361757600080fd5b50565b60008135905061362981613603565b92915050565b60006020828403121561364557613644613534565b5b60006136538482850161361a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561369657808201518184015260208101905061367b565b60008484015250505050565b6000601f19601f8301169050919050565b60006136be8261365c565b6136c88185613667565b93506136d8818560208601613678565b6136e1816136a2565b840191505092915050565b6000602082019050818103600083015261370681846136b3565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137398261370e565b9050919050565b6137498161372e565b82525050565b60006020820190506137646000830184613740565b92915050565b6137738161372e565b811461377e57600080fd5b50565b6000813590506137908161376a565b92915050565b600080604083850312156137ad576137ac613534565b5b60006137bb85828601613781565b92505060206137cc8582860161361a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061381e8261365c565b6138288185613802565b9350613838818560208601613678565b613841816136a2565b840191505092915050565b60006138588383613813565b905092915050565b6000602082019050919050565b6000613878826137d6565b61388281856137e1565b935083602082028501613894856137f2565b8060005b858110156138d057848403895281516138b1858261384c565b94506138bc83613860565b925060208a01995050600181019050613898565b50829750879550505050505092915050565b600060208201905081810360008301526138fc818461386d565b905092915050565b61390d816135f9565b82525050565b60006020820190506139286000830184613904565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61396b826136a2565b810181811067ffffffffffffffff8211171561398a57613989613933565b5b80604052505050565b600061399d61352a565b90506139a98282613962565b919050565b600067ffffffffffffffff8211156139c9576139c8613933565b5b602082029050602081019050919050565b600080fd5b60006139f26139ed846139ae565b613993565b90508083825260208201905060208402830185811115613a1557613a146139da565b5b835b81811015613a3e5780613a2a888261361a565b845260208401935050602081019050613a17565b5050509392505050565b600082601f830112613a5d57613a5c61392e565b5b8135613a6d8482602086016139df565b91505092915050565b600060208284031215613a8c57613a8b613534565b5b600082013567ffffffffffffffff811115613aaa57613aa9613539565b5b613ab684828501613a48565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613af4816135f9565b82525050565b600060c083016000830151613b126000860182613aeb565b506020830151613b256020860182613aeb565b506040830151613b386040860182613aeb565b506060830151613b4b6060860182613aeb565b506080830151613b5e6080860182613aeb565b5060a083015184820360a0860152613b768282613813565b9150508091505092915050565b6000613b8f8383613afa565b905092915050565b6000602082019050919050565b6000613baf82613abf565b613bb98185613aca565b935083602082028501613bcb85613adb565b8060005b85811015613c075784840389528151613be88582613b83565b9450613bf383613b97565b925060208a01995050600181019050613bcf565b50829750879550505050505092915050565b60006020820190508181036000830152613c338184613ba4565b905092915050565b600080600060608486031215613c5457613c53613534565b5b6000613c6286828701613781565b9350506020613c7386828701613781565b9250506040613c848682870161361a565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000613cc68383613aeb565b60208301905092915050565b6000602082019050919050565b6000613cea82613c8e565b613cf48185613c99565b9350613cff83613caa565b8060005b83811015613d30578151613d178882613cba565b9750613d2283613cd2565b925050600181019050613d03565b5085935050505092915050565b60006020820190508181036000830152613d578184613cdf565b905092915050565b600060208284031215613d7557613d74613534565b5b6000613d8384828501613781565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110613dcc57613dcb613d8c565b5b50565b6000819050613ddd82613dbb565b919050565b6000613ded82613dcf565b9050919050565b613dfd81613de2565b82525050565b6000602082019050613e186000830184613df4565b92915050565b6000819050919050565b6000613e43613e3e613e398461370e565b613e1e565b61370e565b9050919050565b6000613e5582613e28565b9050919050565b6000613e6782613e4a565b9050919050565b613e7781613e5c565b82525050565b6000602082019050613e926000830184613e6e565b92915050565b613ea1816135c3565b8114613eac57600080fd5b50565b600081359050613ebe81613e98565b92915050565b60008060408385031215613edb57613eda613534565b5b6000613ee985828601613781565b9250506020613efa85828601613eaf565b9150509250929050565b600080fd5b600067ffffffffffffffff821115613f2457613f23613933565b5b613f2d826136a2565b9050602081019050919050565b82818337600083830152505050565b6000613f5c613f5784613f09565b613993565b905082815260208101848484011115613f7857613f77613f04565b5b613f83848285613f3a565b509392505050565b600082601f830112613fa057613f9f61392e565b5b8135613fb0848260208601613f49565b91505092915050565b60008060008060808587031215613fd357613fd2613534565b5b6000613fe187828801613781565b9450506020613ff287828801613781565b93505060406140038782880161361a565b925050606085013567ffffffffffffffff81111561402457614023613539565b5b61403087828801613f8b565b91505092959194509250565b600080fd5b60008083601f8401126140575761405661392e565b5b8235905067ffffffffffffffff8111156140745761407361403c565b5b6020830191508360208202830111156140905761408f6139da565b5b9250929050565b6000806000604084860312156140b0576140af613534565b5b600084013567ffffffffffffffff8111156140ce576140cd613539565b5b6140da86828701614041565b935093505060206140ed8682870161361a565b9150509250925092565b600060c08301600083015161410f6000860182613aeb565b5060208301516141226020860182613aeb565b5060408301516141356040860182613aeb565b5060608301516141486060860182613aeb565b50608083015161415b6080860182613aeb565b5060a083015184820360a08601526141738282613813565b9150508091505092915050565b6000602082019050818103600083015261419a81846140f7565b905092915050565b600080604083850312156141b9576141b8613534565b5b60006141c785828601613781565b92505060206141d885828601613781565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061422957607f821691505b60208210810361423c5761423b6141e2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142ab826135f9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036142dd576142dc614271565b5b600182019050919050565b60006142f3826135f9565b91506142fe836135f9565b925082820390508181111561431657614315614271565b5b92915050565b60008160011c9050919050565b6000808291508390505b60018511156143735780860481111561434f5761434e614271565b5b600185161561435e5780820291505b808102905061436c8561431c565b9450614333565b94509492505050565b60008261438c5760019050614448565b8161439a5760009050614448565b81600181146143b057600281146143ba576143e9565b6001915050614448565b60ff8411156143cc576143cb614271565b5b8360020a9150848211156143e3576143e2614271565b5b50614448565b5060208310610133831016604e8410600b841016171561441e5782820a90508381111561441957614418614271565b5b614448565b61442b8484846001614329565b9250905081840481111561444257614441614271565b5b81810290505b9392505050565b600061445a826135f9565b9150614465836135f9565b92506144927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461437c565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d4826135f9565b91506144df836135f9565b9250826144ef576144ee61449a565b5b828204905092915050565b6000614505826135f9565b9150614510836135f9565b925082820190508082111561452857614527614271565b5b92915050565b6000614539826135f9565b9150614544836135f9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561457d5761457c614271565b5b828202905092915050565b7f4d696e7420697320636c6f736564000000000000000000000000000000000000600082015250565b60006145be600e83613667565b91506145c982614588565b602082019050919050565b600060208201905081810360008301526145ed816145b1565b9050919050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b600061462a601083613667565b9150614635826145f4565b602082019050919050565b600060208201905081810360008301526146598161461d565b9050919050565b600081905092915050565b50565b600061467b600083614660565b91506146868261466b565b600082019050919050565b600061469c8261466e565b9150819050919050565b7f526566756e64206661696c656400000000000000000000000000000000000000600082015250565b60006146dc600d83613667565b91506146e7826146a6565b602082019050919050565b6000602082019050818103600083015261470b816146cf565b9050919050565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b6000614748601283613667565b915061475382614712565b602082019050919050565b600060208201905081810360008301526147778161473b565b9050919050565b600081905092915050565b7f426c61636b486f6c652023000000000000000000000000000000000000000000600082015250565b60006147bf600b8361477e565b91506147ca82614789565b600b82019050919050565b60006147e08261365c565b6147ea818561477e565b93506147fa818560208601613678565b80840191505092915050565b6000614811826147b2565b915061481d82846147d5565b915081905092915050565b600067ffffffffffffffff82111561484357614842613933565b5b61484c826136a2565b9050602081019050919050565b600061486c61486784614828565b613993565b90508281526020810184848401111561488857614887613f04565b5b614893848285613678565b509392505050565b600082601f8301126148b0576148af61392e565b5b81516148c0848260208601614859565b91505092915050565b6000602082840312156148df576148de613534565b5b600082015167ffffffffffffffff8111156148fd576148fc613539565b5b6149098482850161489b565b91505092915050565b7f5b00000000000000000000000000000000000000000000000000000000000000815250565b7f7b2274726169745f74797065223a20224c6576656c222c202276616c7565223a60008201527f2000000000000000000000000000000000000000000000000000000000000000602082015250565b600061499460218361477e565b915061499f82614938565b602182019050919050565b7f7d2c000000000000000000000000000000000000000000000000000000000000815250565b7f7b2274726169745f74797065223a20224e616d65222c202276616c7565223a2060008201527f2200000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a2c60218361477e565b9150614a37826149d0565b602182019050919050565b7f227d2c0000000000000000000000000000000000000000000000000000000000815250565b7f7b2274726169745f74797065223a20224d617373222c202276616c7565223a20815250565b7f7d5d000000000000000000000000000000000000000000000000000000000000815250565b6000614abf82614912565b600182019150614ace82614987565b9150614ada82866147d5565b9150614ae5826149aa565b600282019150614af482614a1f565b9150614b0082856147d5565b9150614b0b82614a42565b600382019150614b1a82614a68565b602082019150614b2a82846147d5565b9150614b3582614a8e565b600282019150819050949350505050565b7f7b226e616d65223a220000000000000000000000000000000000000000000000600082015250565b6000614b7c60098361477e565b9150614b8782614b46565b600982019050919050565b7f222c226465736372697074696f6e223a22000000000000000000000000000000600082015250565b6000614bc860118361477e565b9150614bd382614b92565b601182019050919050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b6000614c1460028361477e565b9150614c1f82614bde565b600282019050919050565b7f2261747472696275746573223a20000000000000000000000000000000000000600082015250565b6000614c60600e8361477e565b9150614c6b82614c2a565b600e82019050919050565b7f2c2022696d616765223a2022646174613a696d6167652f7376672b786d6c3b6260008201527f61736536342c0000000000000000000000000000000000000000000000000000602082015250565b6000614cd260268361477e565b9150614cdd82614c76565b602682019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000614d1e60028361477e565b9150614d2982614ce8565b600282019050919050565b6000614d3f82614b6f565b9150614d4b82876147d5565b9150614d5682614bbb565b9150614d6282866147d5565b9150614d6d82614c07565b9150614d7882614c53565b9150614d8482856147d5565b9150614d8f82614cc5565b9150614d9b82846147d5565b9150614da682614d11565b915081905095945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000614dea601d8361477e565b9150614df582614db4565b601d82019050919050565b6000614e0b82614ddd565b9150614e1782846147d5565b915081905092915050565b600081519050614e3181613603565b92915050565b600060208284031215614e4d57614e4c613534565b5b6000614e5b84828501614e22565b91505092915050565b7f4d657267696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614e9a601383613667565b9150614ea582614e64565b602082019050919050565b60006020820190508181036000830152614ec981614e8d565b9050919050565b7f4d757374206d65726765206174206c65617374203220746f6b656e7300000000600082015250565b6000614f06601c83613667565b9150614f1182614ed0565b602082019050919050565b60006020820190508181036000830152614f3581614ef9565b9050919050565b7f4d757374206f776e20616c6c20746f6b656e7320287461726765742900000000600082015250565b6000614f72601c83613667565b9150614f7d82614f3c565b602082019050919050565b60006020820190508181036000830152614fa181614f65565b9050919050565b7f4d757374206f776e20616c6c20746f6b656e7320286275726e29000000000000600082015250565b6000614fde601a83613667565b9150614fe982614fa8565b602082019050919050565b6000602082019050818103600083015261500d81614fd1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615070602683613667565b915061507b82615014565b604082019050919050565b6000602082019050818103600083015261509f81615063565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006150dc602083613667565b91506150e7826150a6565b602082019050919050565b6000602082019050818103600083015261510b816150cf565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061513982615112565b615143818561511d565b9350615153818560208601613678565b61515c816136a2565b840191505092915050565b600060808201905061517c6000830187613740565b6151896020830186613740565b6151966040830185613904565b81810360608301526151a8818461512e565b905095945050505050565b6000815190506151c28161356a565b92915050565b6000602082840312156151de576151dd613534565b5b60006151ec848285016151b3565b91505092915050565b600060ff82169050919050565b600061520d826151f5565b9150615218836151f5565b9250828201905060ff81111561523157615230614271565b5b9291505056fe46756c6c79206f6e2d636861696e2c2070726f6365647572616c6c792067656e6572617465642c20616e696d6174656420626c61636b20686f6c65732e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220fce6240cd098e15e26d0679837572138903940a1b2e39e1aa7cbd16f53d29e1464736f6c6343000810003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000aa87bee538000000000000000000000000000000000000000000000000000000e35fa931a0000000000000000000000000000a811607554419977bb372fa3a2ec9bbc81575fb4000000000000000000000000000000000000000000000000000000000000000a426c61636b486f6c657300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a424c41434b484f4c455300000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102ff5760003560e01c80637858a2a711610190578063a2309ff8116100dc578063ca714e5b11610095578063d89135cd1161006f578063d89135cd14610b70578063de62d84214610b9b578063e985e9c514610bc4578063f2fde38b14610c01576102ff565b8063ca714e5b14610ab9578063cbad784914610af6578063d3dedd6314610b33576102ff565b8063a2309ff8146109b1578063a49062d4146109dc578063b4449b2614610a07578063b88d4fde14610a44578063c204642c14610a60578063c87b56dd14610a7c576102ff565b806393d57dd4116101495780639fc8d6ae116101235780639fc8d6ae14610918578063a035b1fe14610941578063a0712d681461096c578063a22cb46514610988576102ff565b806393d57dd41461089757806395d89b41146108c257806398d5fdca146108ed576102ff565b80637858a2a71461078757806389327f28146107b05780638ada6b0f146107ed5780638b3578c6146108185780638da5cb5b1461084357806391b7f5ed1461086e576102ff565b80633ccfd60b1161024f5780635e23a7631161020857806370a08231116101e257806370a08231146106cb578063715018a614610708578063774a88351461071f5780637752e3681461074a576102ff565b80635e23a763146106265780636352211e146106635780636ae4c0b5146106a0576102ff565b80633ccfd60b1461054757806342842e0e1461055e5780634724d6bd1461057a57806348019b86146105a55780634ca7880c146105d05780635056af05146105fb576102ff565b806318160ddd116102bc5780631df4b972116102965780631df4b972146104ac578063208d12f5146104d757806323b872dd14610500578063310c18131461051c576102ff565b806318160ddd1461041957806318f58b73146104445780631d22dc6f14610481576102ff565b806301ffc9a71461030457806304ec7ed01461034157806306fdde031461036a578063081812fc14610395578063095ea7b3146103d25780630ed89bf0146103ee575b600080fd5b34801561031057600080fd5b5061032b60048036038101906103269190613596565b610c2a565b60405161033891906135de565b60405180910390f35b34801561034d57600080fd5b506103686004803603810190610363919061362f565b610cbc565b005b34801561037657600080fd5b5061037f610cce565b60405161038c91906136ec565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b7919061362f565b610d60565b6040516103c9919061374f565b60405180910390f35b6103ec60048036038101906103e79190613796565b610ddf565b005b3480156103fa57600080fd5b50610403610f23565b60405161041091906138e2565b60405180910390f35b34801561042557600080fd5b5061042e610ffc565b60405161043b9190613913565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190613a76565b611013565b6040516104789190613c19565b60405180910390f35b34801561048d57600080fd5b506104966110d8565b6040516104a39190613913565b60405180910390f35b3480156104b857600080fd5b506104c16110de565b6040516104ce9190613913565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f9919061362f565b6110e4565b005b61051a60048036038101906105159190613c3b565b6110f6565b005b34801561052857600080fd5b50610531611418565b60405161053e9190613913565b60405180910390f35b34801561055357600080fd5b5061055c61149f565b005b61057860048036038101906105739190613c3b565b6114e7565b005b34801561058657600080fd5b5061058f611507565b60405161059c9190613913565b60405180910390f35b3480156105b157600080fd5b506105ba61150d565b6040516105c79190613913565b60405180910390f35b3480156105dc57600080fd5b506105e5611524565b6040516105f29190613d3d565b60405180910390f35b34801561060757600080fd5b5061061061165b565b60405161061d9190613913565b60405180910390f35b34801561063257600080fd5b5061064d6004803603810190610648919061362f565b61167f565b60405161065a9190613913565b60405180910390f35b34801561066f57600080fd5b5061068a6004803603810190610685919061362f565b6116a8565b604051610697919061374f565b60405180910390f35b3480156106ac57600080fd5b506106b56116ba565b6040516106c29190613913565b60405180910390f35b3480156106d757600080fd5b506106f260048036038101906106ed9190613d5f565b6116c0565b6040516106ff9190613913565b60405180910390f35b34801561071457600080fd5b5061071d611778565b005b34801561072b57600080fd5b5061073461178c565b6040516107419190613e03565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c919061362f565b6117d7565b60405161077e9190613913565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a9919061362f565b6117ef565b005b3480156107bc57600080fd5b506107d760048036038101906107d2919061362f565b611801565b6040516107e49190613913565b60405180910390f35b3480156107f957600080fd5b506108026118ea565b60405161080f9190613e7d565b60405180910390f35b34801561082457600080fd5b5061082d611910565b60405161083a91906135de565b60405180910390f35b34801561084f57600080fd5b5061085861196c565b604051610865919061374f565b60405180910390f35b34801561087a57600080fd5b506108956004803603810190610890919061362f565b611996565b005b3480156108a357600080fd5b506108ac6119a8565b6040516108b99190613913565b60405180910390f35b3480156108ce57600080fd5b506108d76119ae565b6040516108e491906136ec565b60405180910390f35b3480156108f957600080fd5b50610902611a40565b60405161090f9190613913565b60405180910390f35b34801561092457600080fd5b5061093f600480360381019061093a919061362f565b611a88565b005b34801561094d57600080fd5b50610956611a9a565b6040516109639190613913565b60405180910390f35b6109866004803603810190610981919061362f565b611aa0565b005b34801561099457600080fd5b506109af60048036038101906109aa9190613ec4565b611d45565b005b3480156109bd57600080fd5b506109c6611e50565b6040516109d39190613913565b60405180910390f35b3480156109e857600080fd5b506109f1611e5f565b6040516109fe9190613913565b60405180910390f35b348015610a1357600080fd5b50610a2e6004803603810190610a29919061362f565b611e83565b604051610a3b91906136ec565b60405180910390f35b610a5e6004803603810190610a599190613fb9565b611f33565b005b610a7a6004803603810190610a759190614097565b611fa6565b005b348015610a8857600080fd5b50610aa36004803603810190610a9e919061362f565b612073565b604051610ab091906136ec565b60405180910390f35b348015610ac557600080fd5b50610ae06004803603810190610adb919061362f565b61225a565b604051610aed9190614180565b60405180910390f35b348015610b0257600080fd5b50610b1d6004803603810190610b18919061362f565b612381565b604051610b2a9190613913565b60405180910390f35b348015610b3f57600080fd5b50610b5a6004803603810190610b55919061362f565b61244d565b604051610b6791906136ec565b60405180910390f35b348015610b7c57600080fd5b50610b856124f9565b604051610b929190613913565b60405180910390f35b348015610ba757600080fd5b50610bc26004803603810190610bbd9190613a76565b612508565b005b348015610bd057600080fd5b50610beb6004803603810190610be691906141a2565b6127b2565b604051610bf891906135de565b60405180910390f35b348015610c0d57600080fd5b50610c286004803603810190610c239190613d5f565b612846565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c8557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610cb55750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b610cc46128c9565b80600e8190555050565b606060028054610cdd90614211565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0990614211565b8015610d565780601f10610d2b57610100808354040283529160200191610d56565b820191906000526020600020905b815481529060010190602001808311610d3957829003601f168201915b5050505050905090565b6000610d6b82612947565b610da1576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610dea826116a8565b90508073ffffffffffffffffffffffffffffffffffffffff16610e0b6129a6565b73ffffffffffffffffffffffffffffffffffffffff1614610e6e57610e3781610e326129a6565b6127b2565b610e6d576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60606009805480602002602001604051908101604052809291908181526020016000905b82821015610ff3578382906000526020600020018054610f6690614211565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9290614211565b8015610fdf5780601f10610fb457610100808354040283529160200191610fdf565b820191906000526020600020905b815481529060010190602001808311610fc257829003601f168201915b505050505081526020019060010190610f47565b50505050905090565b60006110066129ae565b6001546000540303905090565b60606000825167ffffffffffffffff81111561103257611031613933565b5b60405190808252806020026020018201604052801561106b57816020015b6110586134f4565b8152602001906001900390816110505790505b50905060005b83518110156110ce5761109d8482815181106110905761108f614242565b5b602002602001015161225a565b8282815181106110b0576110af614242565b5b602002602001018190525080806110c6906142a0565b915050611071565b5080915050919050565b600e5481565b600f5481565b6110ec6128c9565b80600b8190555050565b6000611101826129b7565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611168576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061117484612a83565b9150915061118a81876111856129a6565b612aaa565b6111d65761119f8661119a6129a6565b6127b2565b6111d5576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361123c576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112498686866001612aee565b801561125457600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550611322856112fe888887612af4565b7c020000000000000000000000000000000000000000000000000000000017612b1c565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416036113a857600060018501905060006004600083815260200190815260200160002054036113a65760005481146113a5578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46114108686866001612b47565b505050505050565b600061149a60017f000000000000000000000000000000000000000000000000000000000000000461144a91906142e8565b6002611456919061444f565b7f000000000000000000000000000000000000000000000000000000000000002a61147f612b4d565b61148991906144c9565b61149391906144c9565b6002612b60565b905090565b6114a76128c9565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050506114e557600080fd5b565b61150283838360405180602001604052806000815250611f33565b505050565b600c5481565b6000600e54600c5461151f91906144fa565b905090565b60606000611530611418565b9050600060017f000000000000000000000000000000000000000000000000000000000000000461156191906144fa565b67ffffffffffffffff81111561157a57611579613933565b5b6040519080825280602002602001820160405280156115a85781602001602082028036833780820191505090505b50905081816000815181106115c0576115bf614242565b5b6020026020010181815250506002826115d9919061452e565b816001815181106115ed576115ec614242565b5b602002602001018181525050600482611606919061452e565b8160028151811061161a57611619614242565b5b602002602001018181525050600882611633919061452e565b8160038151811061164757611646614242565b5b602002602001018181525050809250505090565b7f000000000000000000000000000000000000000000000000000000000000002a81565b6000600160106000848152602001908152602001600020546116a191906144fa565b9050919050565b60006116b3826129b7565b9050919050565b600d5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611727576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6117806128c9565b61178a6000612b79565b565b600080611797612b4d565b9050600d548110156117ad5760009150506117d4565b600e54600c546117bd91906144fa565b4210156117ce5760019150506117d4565b60029150505b90565b60106020528060005260406000206000915090505481565b6117f76128c9565b80600d8190555050565b60008061180d83612381565b90507f000000000000000000000000000000000000000000000000000000000000000481036118405760009150506118e5565b600061184a611418565b905060006001808461185c91906144fa565b6002611868919061444f565b83611873919061452e565b61187d91906142e8565b9050600083600261188e919061444f565b83611899919061452e565b90506000808511156118a9578190505b600081846118b791906142e8565b88856118c391906142e8565b60146118cf919061452e565b6118d991906144c9565b90508096505050505050505b919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060028081111561192557611924613d8c565b5b61192d61178c565b600281111561193f5761193e613d8c565b5b1480156119675750600f54600e54600c5461195a91906144fa565b61196491906144fa565b42115b905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61199e6128c9565b80600a8190555050565b600b5481565b6060600380546119bd90614211565b80601f01602080910402602001604051908101604052809291908181526020018280546119e990614211565b8015611a365780601f10611a0b57610100808354040283529160200191611a36565b820191906000526020600020905b815481529060010190602001808311611a1957829003601f168201915b5050505050905090565b600060016002811115611a5657611a55613d8c565b5b611a5e61178c565b6002811115611a7057611a6f613d8c565b5b03611a7f57600b549050611a85565b600a5490505b90565b611a906128c9565b80600f8190555050565b600a5481565b6000611aaa611a40565b90506000611ab6612b4d565b90506000611ac261178c565b9050600280811115611ad757611ad6613d8c565b5b816002811115611aea57611ae9613d8c565b5b03611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b21906145d4565b60405180910390fd5b60008483611b3891906144fa565b905060008585611b48919061452e565b905060006002811115611b5e57611b5d613d8c565b5b836002811115611b7157611b70613d8c565b5b148015611b805750600d548210155b15611c2f576000600d5483611b9591906142e8565b905060008188611ba591906142e8565b90508681611bb3919061452e565b9250600b548334611bc491906142e8565b611bce91906144c9565b9150600b5482611bde919061452e565b83611be991906144fa565b92508181611bf791906144fa565b975042600c819055507f6829347062e9f3db38e85deaf425a1d7ea05e95e20362d8b3889a08745d144cb60405160405180910390a150505b80341015611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990614640565b60405180910390fd5b611c7c3387612c3f565b80341115611d3d5760003373ffffffffffffffffffffffffffffffffffffffff168234611ca991906142e8565b604051611cb590614691565b60006040518083038185875af1925050503d8060008114611cf2576040519150601f19603f3d011682016040523d82523d6000602084013e611cf7565b606091505b5050905080611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d32906146f2565b60405180910390fd5b505b505050505050565b8060076000611d526129a6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611dff6129a6565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611e4491906135de565b60405180910390a35050565b6000611e5a612b4d565b905090565b7f000000000000000000000000000000000000000000000000000000000000000481565b606060098281548110611e9957611e98614242565b5b906000526020600020018054611eae90614211565b80601f0160208091040260200160405190810160405280929190818152602001828054611eda90614211565b8015611f275780601f10611efc57610100808354040283529160200191611f27565b820191906000526020600020905b815481529060010190602001808311611f0a57829003601f168201915b50505050509050919050565b611f3e8484846110f6565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611fa057611f6984848484612dfa565b611f9f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b611fae6128c9565b600280811115611fc157611fc0613d8c565b5b611fc961178c565b6002811115611fdb57611fda613d8c565b5b0361201b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120129061475e565b60405180910390fd5b60005b8383905081101561206d5761205a84848381811061203f5761203e614242565b5b90506020020160208101906120549190613d5f565b83612c3f565b8080612065906142a0565b91505061201e565b50505050565b606061207e82612947565b6120b4576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006120bf83612f4a565b6040516020016120cf9190614806565b604051602081830303815290604052905060006040518060600160405280603d8152602001615238603d9139905060006121088561225a565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfeb9a02836040518263ffffffff1660e01b81526004016121679190614180565b600060405180830381865afa158015612184573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906121ad91906148c9565b905060006121be8360200151612f4a565b8360a001516121d08560600151612f4a565b6040516020016121e293929190614ab4565b60405160208183030381529060405290506000858583612201866130d2565b6040516020016122149493929190614d34565b604051602081830303815290604052905061222e816130d2565b60405160200161223e9190614e00565b6040516020818303038152906040529650505050505050919050565b6122626134f4565b600061226d8361167f565b9050600061227a82612381565b9050600061228782611e83565b9050600061229484611801565b90506040518060c0016040528087815260200184815260200184600a6122ba91906142e8565b6002601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663030ac5256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234d9190614e37565b61235791906144c9565b61236191906142e8565b815260200185815260200182815260200183815250945050505050919050565b60008061238c611524565b9050806000815181106123a2576123a1614242565b5b60200260200101518310156123bb576000915050612448565b806001815181106123cf576123ce614242565b5b60200260200101518310156123e8576001915050612448565b806002815181106123fc576123fb614242565b5b6020026020010151831015612415576002915050612448565b8060038151811061242957612428614242565b5b6020026020010151831015612442576003915050612448565b60049150505b919050565b6009818154811061245d57600080fd5b90600052602060002001600091509050805461247890614211565b80601f01602080910402602001604051908101604052809291908181526020018280546124a490614211565b80156124f15780601f106124c6576101008083540402835291602001916124f1565b820191906000526020600020905b8154815290600101906020018083116124d457829003601f168201915b505050505081565b6000612503613269565b905090565b612510611910565b61254f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254690614eb0565b60405180910390fd5b6001815111612593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258a90614f1c565b60405180910390fd5b6000816000815181106125a9576125a8614242565b5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff166125ee836000815181106125e1576125e0614242565b5b60200260200101516116a8565b73ffffffffffffffffffffffffffffffffffffffff1614612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b90614f88565b60405180910390fd5b600080600190505b835181101561274b573373ffffffffffffffffffffffffffffffffffffffff1661268f85838151811061268257612681614242565b5b60200260200101516116a8565b73ffffffffffffffffffffffffffffffffffffffff16146126e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126dc90614ff4565b60405180910390fd5b6127088482815181106126fb576126fa614242565b5b602002602001015161167f565b8261271391906144fa565b915061273884828151811061272b5761272a614242565b5b6020026020010151613273565b8080612743906142a0565b91505061264c565b508060106000848152602001908152602001600020600082825461276f91906144fa565b925050819055507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516127a59190613913565b60405180910390a1505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61284e6128c9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490615086565b60405180910390fd5b6128c681612b79565b50565b6128d1613281565b73ffffffffffffffffffffffffffffffffffffffff166128ef61196c565b73ffffffffffffffffffffffffffffffffffffffff1614612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c906150f2565b60405180910390fd5b565b6000816129526129ae565b11158015612961575060005482105b801561299f575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b600080829050806129c66129ae565b11612a4c57600054811015612a4b5760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603612a49575b60008103612a3f576004600083600190039350838152602001908152602001600020549050612a15565b8092505050612a7e565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612b0b868684613289565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000612b576129ae565b60005403905090565b6000818311612b6f5781612b71565b825b905092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905060008203612c7f576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c8c6000848385612aee565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612d0383612cf46000866000612af4565b612cfd85613292565b17612b1c565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114612da457808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612d69565b5060008203612ddf576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050612df56000848385612b47565b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612e206129a6565b8786866040518563ffffffff1660e01b8152600401612e429493929190615167565b6020604051808303816000875af1925050508015612e7e57506040513d601f19601f82011682018060405250810190612e7b91906151c8565b60015b612ef7573d8060008114612eae576040519150601f19603f3d011682016040523d82523d6000602084013e612eb3565b606091505b506000815103612eef576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060008203612f91576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506130cd565b600082905060005b60008214612fc3578080612fac906142a0565b915050600a82612fbc91906144c9565b9150612f99565b60008167ffffffffffffffff811115612fdf57612fde613933565b5b6040519080825280601f01601f1916602001820160405280156130115781602001600182028036833780820191505090505b50905060008290505b600086146130c55760018161302f91906142e8565b90506000600a808861304191906144c9565b61304b919061452e565b8761305691906142e8565b60306130629190615202565b905060008160f81b9050808484815181106130805761307f614242565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a886130bc91906144c9565b9750505061301a565b819450505050505b919050565b6060600082519050600081036130fa5760405180602001604052806000815250915050613264565b6000600360028361310b91906144fa565b61311591906144c9565b6004613121919061452e565b9050600060208261313291906144fa565b67ffffffffffffffff81111561314b5761314a613933565b5b6040519080825280601f01601f19166020018201604052801561317d5781602001600182028036833780820191505090505b5090506000604051806060016040528060408152602001615275604091399050600181016020830160005b868110156132215760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b905080845260048401935050506131a8565b50600386066001811461323b576002811461324b57613256565b613d3d60f01b6002830352613256565b603d60f81b60018303525b508484525050819450505050505b919050565b6000600154905090565b61327e8160006132a2565b50565b600033905090565b60009392505050565b60006001821460e11b9050919050565b60006132ad836129b7565b905060008190506000806132c086612a83565b915091508415613329576132dc81846132d76129a6565b612aaa565b613328576132f1836132ec6129a6565b6127b2565b613327576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b613337836000886001612aee565b801561334257600082555b600160806001901b03600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506133ea836133a785600088612af4565b7c02000000000000000000000000000000000000000000000000000000007c01000000000000000000000000000000000000000000000000000000001717612b1c565b600460008881526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000851603613470576000600187019050600060046000838152602001908152602001600020540361346e57600054811461346d578460046000838152602001908152602001600020819055505b5b505b85600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46134da836000886001612b47565b600160008154809291906001019190505550505050505050565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001606081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6135738161353e565b811461357e57600080fd5b50565b6000813590506135908161356a565b92915050565b6000602082840312156135ac576135ab613534565b5b60006135ba84828501613581565b91505092915050565b60008115159050919050565b6135d8816135c3565b82525050565b60006020820190506135f360008301846135cf565b92915050565b6000819050919050565b61360c816135f9565b811461361757600080fd5b50565b60008135905061362981613603565b92915050565b60006020828403121561364557613644613534565b5b60006136538482850161361a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561369657808201518184015260208101905061367b565b60008484015250505050565b6000601f19601f8301169050919050565b60006136be8261365c565b6136c88185613667565b93506136d8818560208601613678565b6136e1816136a2565b840191505092915050565b6000602082019050818103600083015261370681846136b3565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137398261370e565b9050919050565b6137498161372e565b82525050565b60006020820190506137646000830184613740565b92915050565b6137738161372e565b811461377e57600080fd5b50565b6000813590506137908161376a565b92915050565b600080604083850312156137ad576137ac613534565b5b60006137bb85828601613781565b92505060206137cc8582860161361a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061381e8261365c565b6138288185613802565b9350613838818560208601613678565b613841816136a2565b840191505092915050565b60006138588383613813565b905092915050565b6000602082019050919050565b6000613878826137d6565b61388281856137e1565b935083602082028501613894856137f2565b8060005b858110156138d057848403895281516138b1858261384c565b94506138bc83613860565b925060208a01995050600181019050613898565b50829750879550505050505092915050565b600060208201905081810360008301526138fc818461386d565b905092915050565b61390d816135f9565b82525050565b60006020820190506139286000830184613904565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61396b826136a2565b810181811067ffffffffffffffff8211171561398a57613989613933565b5b80604052505050565b600061399d61352a565b90506139a98282613962565b919050565b600067ffffffffffffffff8211156139c9576139c8613933565b5b602082029050602081019050919050565b600080fd5b60006139f26139ed846139ae565b613993565b90508083825260208201905060208402830185811115613a1557613a146139da565b5b835b81811015613a3e5780613a2a888261361a565b845260208401935050602081019050613a17565b5050509392505050565b600082601f830112613a5d57613a5c61392e565b5b8135613a6d8482602086016139df565b91505092915050565b600060208284031215613a8c57613a8b613534565b5b600082013567ffffffffffffffff811115613aaa57613aa9613539565b5b613ab684828501613a48565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613af4816135f9565b82525050565b600060c083016000830151613b126000860182613aeb565b506020830151613b256020860182613aeb565b506040830151613b386040860182613aeb565b506060830151613b4b6060860182613aeb565b506080830151613b5e6080860182613aeb565b5060a083015184820360a0860152613b768282613813565b9150508091505092915050565b6000613b8f8383613afa565b905092915050565b6000602082019050919050565b6000613baf82613abf565b613bb98185613aca565b935083602082028501613bcb85613adb565b8060005b85811015613c075784840389528151613be88582613b83565b9450613bf383613b97565b925060208a01995050600181019050613bcf565b50829750879550505050505092915050565b60006020820190508181036000830152613c338184613ba4565b905092915050565b600080600060608486031215613c5457613c53613534565b5b6000613c6286828701613781565b9350506020613c7386828701613781565b9250506040613c848682870161361a565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000613cc68383613aeb565b60208301905092915050565b6000602082019050919050565b6000613cea82613c8e565b613cf48185613c99565b9350613cff83613caa565b8060005b83811015613d30578151613d178882613cba565b9750613d2283613cd2565b925050600181019050613d03565b5085935050505092915050565b60006020820190508181036000830152613d578184613cdf565b905092915050565b600060208284031215613d7557613d74613534565b5b6000613d8384828501613781565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110613dcc57613dcb613d8c565b5b50565b6000819050613ddd82613dbb565b919050565b6000613ded82613dcf565b9050919050565b613dfd81613de2565b82525050565b6000602082019050613e186000830184613df4565b92915050565b6000819050919050565b6000613e43613e3e613e398461370e565b613e1e565b61370e565b9050919050565b6000613e5582613e28565b9050919050565b6000613e6782613e4a565b9050919050565b613e7781613e5c565b82525050565b6000602082019050613e926000830184613e6e565b92915050565b613ea1816135c3565b8114613eac57600080fd5b50565b600081359050613ebe81613e98565b92915050565b60008060408385031215613edb57613eda613534565b5b6000613ee985828601613781565b9250506020613efa85828601613eaf565b9150509250929050565b600080fd5b600067ffffffffffffffff821115613f2457613f23613933565b5b613f2d826136a2565b9050602081019050919050565b82818337600083830152505050565b6000613f5c613f5784613f09565b613993565b905082815260208101848484011115613f7857613f77613f04565b5b613f83848285613f3a565b509392505050565b600082601f830112613fa057613f9f61392e565b5b8135613fb0848260208601613f49565b91505092915050565b60008060008060808587031215613fd357613fd2613534565b5b6000613fe187828801613781565b9450506020613ff287828801613781565b93505060406140038782880161361a565b925050606085013567ffffffffffffffff81111561402457614023613539565b5b61403087828801613f8b565b91505092959194509250565b600080fd5b60008083601f8401126140575761405661392e565b5b8235905067ffffffffffffffff8111156140745761407361403c565b5b6020830191508360208202830111156140905761408f6139da565b5b9250929050565b6000806000604084860312156140b0576140af613534565b5b600084013567ffffffffffffffff8111156140ce576140cd613539565b5b6140da86828701614041565b935093505060206140ed8682870161361a565b9150509250925092565b600060c08301600083015161410f6000860182613aeb565b5060208301516141226020860182613aeb565b5060408301516141356040860182613aeb565b5060608301516141486060860182613aeb565b50608083015161415b6080860182613aeb565b5060a083015184820360a08601526141738282613813565b9150508091505092915050565b6000602082019050818103600083015261419a81846140f7565b905092915050565b600080604083850312156141b9576141b8613534565b5b60006141c785828601613781565b92505060206141d885828601613781565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061422957607f821691505b60208210810361423c5761423b6141e2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142ab826135f9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036142dd576142dc614271565b5b600182019050919050565b60006142f3826135f9565b91506142fe836135f9565b925082820390508181111561431657614315614271565b5b92915050565b60008160011c9050919050565b6000808291508390505b60018511156143735780860481111561434f5761434e614271565b5b600185161561435e5780820291505b808102905061436c8561431c565b9450614333565b94509492505050565b60008261438c5760019050614448565b8161439a5760009050614448565b81600181146143b057600281146143ba576143e9565b6001915050614448565b60ff8411156143cc576143cb614271565b5b8360020a9150848211156143e3576143e2614271565b5b50614448565b5060208310610133831016604e8410600b841016171561441e5782820a90508381111561441957614418614271565b5b614448565b61442b8484846001614329565b9250905081840481111561444257614441614271565b5b81810290505b9392505050565b600061445a826135f9565b9150614465836135f9565b92506144927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461437c565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d4826135f9565b91506144df836135f9565b9250826144ef576144ee61449a565b5b828204905092915050565b6000614505826135f9565b9150614510836135f9565b925082820190508082111561452857614527614271565b5b92915050565b6000614539826135f9565b9150614544836135f9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561457d5761457c614271565b5b828202905092915050565b7f4d696e7420697320636c6f736564000000000000000000000000000000000000600082015250565b60006145be600e83613667565b91506145c982614588565b602082019050919050565b600060208201905081810360008301526145ed816145b1565b9050919050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b600061462a601083613667565b9150614635826145f4565b602082019050919050565b600060208201905081810360008301526146598161461d565b9050919050565b600081905092915050565b50565b600061467b600083614660565b91506146868261466b565b600082019050919050565b600061469c8261466e565b9150819050919050565b7f526566756e64206661696c656400000000000000000000000000000000000000600082015250565b60006146dc600d83613667565b91506146e7826146a6565b602082019050919050565b6000602082019050818103600083015261470b816146cf565b9050919050565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b6000614748601283613667565b915061475382614712565b602082019050919050565b600060208201905081810360008301526147778161473b565b9050919050565b600081905092915050565b7f426c61636b486f6c652023000000000000000000000000000000000000000000600082015250565b60006147bf600b8361477e565b91506147ca82614789565b600b82019050919050565b60006147e08261365c565b6147ea818561477e565b93506147fa818560208601613678565b80840191505092915050565b6000614811826147b2565b915061481d82846147d5565b915081905092915050565b600067ffffffffffffffff82111561484357614842613933565b5b61484c826136a2565b9050602081019050919050565b600061486c61486784614828565b613993565b90508281526020810184848401111561488857614887613f04565b5b614893848285613678565b509392505050565b600082601f8301126148b0576148af61392e565b5b81516148c0848260208601614859565b91505092915050565b6000602082840312156148df576148de613534565b5b600082015167ffffffffffffffff8111156148fd576148fc613539565b5b6149098482850161489b565b91505092915050565b7f5b00000000000000000000000000000000000000000000000000000000000000815250565b7f7b2274726169745f74797065223a20224c6576656c222c202276616c7565223a60008201527f2000000000000000000000000000000000000000000000000000000000000000602082015250565b600061499460218361477e565b915061499f82614938565b602182019050919050565b7f7d2c000000000000000000000000000000000000000000000000000000000000815250565b7f7b2274726169745f74797065223a20224e616d65222c202276616c7565223a2060008201527f2200000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a2c60218361477e565b9150614a37826149d0565b602182019050919050565b7f227d2c0000000000000000000000000000000000000000000000000000000000815250565b7f7b2274726169745f74797065223a20224d617373222c202276616c7565223a20815250565b7f7d5d000000000000000000000000000000000000000000000000000000000000815250565b6000614abf82614912565b600182019150614ace82614987565b9150614ada82866147d5565b9150614ae5826149aa565b600282019150614af482614a1f565b9150614b0082856147d5565b9150614b0b82614a42565b600382019150614b1a82614a68565b602082019150614b2a82846147d5565b9150614b3582614a8e565b600282019150819050949350505050565b7f7b226e616d65223a220000000000000000000000000000000000000000000000600082015250565b6000614b7c60098361477e565b9150614b8782614b46565b600982019050919050565b7f222c226465736372697074696f6e223a22000000000000000000000000000000600082015250565b6000614bc860118361477e565b9150614bd382614b92565b601182019050919050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b6000614c1460028361477e565b9150614c1f82614bde565b600282019050919050565b7f2261747472696275746573223a20000000000000000000000000000000000000600082015250565b6000614c60600e8361477e565b9150614c6b82614c2a565b600e82019050919050565b7f2c2022696d616765223a2022646174613a696d6167652f7376672b786d6c3b6260008201527f61736536342c0000000000000000000000000000000000000000000000000000602082015250565b6000614cd260268361477e565b9150614cdd82614c76565b602682019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000614d1e60028361477e565b9150614d2982614ce8565b600282019050919050565b6000614d3f82614b6f565b9150614d4b82876147d5565b9150614d5682614bbb565b9150614d6282866147d5565b9150614d6d82614c07565b9150614d7882614c53565b9150614d8482856147d5565b9150614d8f82614cc5565b9150614d9b82846147d5565b9150614da682614d11565b915081905095945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000614dea601d8361477e565b9150614df582614db4565b601d82019050919050565b6000614e0b82614ddd565b9150614e1782846147d5565b915081905092915050565b600081519050614e3181613603565b92915050565b600060208284031215614e4d57614e4c613534565b5b6000614e5b84828501614e22565b91505092915050565b7f4d657267696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614e9a601383613667565b9150614ea582614e64565b602082019050919050565b60006020820190508181036000830152614ec981614e8d565b9050919050565b7f4d757374206d65726765206174206c65617374203220746f6b656e7300000000600082015250565b6000614f06601c83613667565b9150614f1182614ed0565b602082019050919050565b60006020820190508181036000830152614f3581614ef9565b9050919050565b7f4d757374206f776e20616c6c20746f6b656e7320287461726765742900000000600082015250565b6000614f72601c83613667565b9150614f7d82614f3c565b602082019050919050565b60006020820190508181036000830152614fa181614f65565b9050919050565b7f4d757374206f776e20616c6c20746f6b656e7320286275726e29000000000000600082015250565b6000614fde601a83613667565b9150614fe982614fa8565b602082019050919050565b6000602082019050818103600083015261500d81614fd1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615070602683613667565b915061507b82615014565b604082019050919050565b6000602082019050818103600083015261509f81615063565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006150dc602083613667565b91506150e7826150a6565b602082019050919050565b6000602082019050818103600083015261510b816150cf565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061513982615112565b615143818561511d565b9350615153818560208601613678565b61515c816136a2565b840191505092915050565b600060808201905061517c6000830187613740565b6151896020830186613740565b6151966040830185613904565b81810360608301526151a8818461512e565b905095945050505050565b6000815190506151c28161356a565b92915050565b6000602082840312156151de576151dd613534565b5b60006151ec848285016151b3565b91505092915050565b600060ff82169050919050565b600061520d826151f5565b9150615218836151f5565b9250828201905060ff81111561523157615230614271565b5b9291505056fe46756c6c79206f6e2d636861696e2c2070726f6365647572616c6c792067656e6572617465642c20616e696d6174656420626c61636b20686f6c65732e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220fce6240cd098e15e26d0679837572138903940a1b2e39e1aa7cbd16f53d29e1464736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000aa87bee538000000000000000000000000000000000000000000000000000000e35fa931a0000000000000000000000000000a811607554419977bb372fa3a2ec9bbc81575fb4000000000000000000000000000000000000000000000000000000000000000a426c61636b486f6c657300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a424c41434b484f4c455300000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): BlackHoles
Arg [1] : _symbol (string): BLACKHOLES
Arg [2] : _price (uint256): 3000000000000000
Arg [3] : _timedSalePrice (uint256): 4000000000000000
Arg [4] : _renderer (address): 0xA811607554419977bb372fA3a2Ec9bBc81575FB4
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 000000000000000000000000000000000000000000000000000aa87bee538000
Arg [3] : 000000000000000000000000000000000000000000000000000e35fa931a0000
Arg [4] : 000000000000000000000000a811607554419977bb372fa3a2ec9bbc81575fb4
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [6] : 426c61636b486f6c657300000000000000000000000000000000000000000000
Arg [7] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [8] : 424c41434b484f4c455300000000000000000000000000000000000000000000
🤖 Code Reader
Generate instant answers for your smart contract questions using AI Models. Read more.
Loading...
Loading
Loading...
Loading
OVERVIEW
Black Holes is a fully on-chain NFT collection which features procedurally generated pixel art black holes. Each Black Hole has an associated mass which changes its appearance. Black Holes V1 can be migrated to Black Holes V2 which have improved visuals and more rewarding up...Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 30 Chains
Tokens
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.


