[ { "inputs": [ { "internalType": "string", "name": "baseTokenUri", "type": "string" }, { "internalType": "address", "name": "_metadataContract", "type": "address" }, { "internalType": "address", "name": "_meerkatCoreContract", "type": "address" }, { "internalType": "address", "name": "_wrapperAddress", "type": "address" }, { "internalType": "address", "name": "_babyMeerkatV1Address", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "id", "type": "uint256" } ], "name": "BurnBabyMeerkat", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "CreateBabyMeerkat", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "MAX_ELEMENTS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "babyMeerkatV1", "outputs": [ { "internalType": "contract IBabyMeerkatV1", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "babyMeerkats", "outputs": [ { "internalType": "string", "name": "background", "type": "string" }, { "internalType": "string", "name": "body", "type": "string" }, { "internalType": "string", "name": "hat", "type": "string" }, { "internalType": "string", "name": "neck", "type": "string" }, { "internalType": "string", "name": "eye", "type": "string" }, { "internalType": "string", "name": "mouth", "type": "string" }, { "internalType": "string", "name": "rarity", "type": "string" }, { "internalType": "uint256", "name": "score", "type": "uint256" }, { "internalType": "uint256", "name": "parent1", "type": "uint256" }, { "internalType": "uint256", "name": "parent2", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "babyMeerkatsMetadata", "outputs": [ { "internalType": "contract IBabyMeerkatsMetaData", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_burner", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "devAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getBabyMeerkatData", "outputs": [ { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getBabyMeerkatScore", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "inCaseTokensGetStuck", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "meerkatCore", "outputs": [ { "internalType": "contract IMeerkatCore", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "meerkatDAOAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "meerkatsMated", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "migrateAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "parent1", "type": "uint256" }, { "internalType": "uint256", "name": "parent2", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "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": [ { "internalType": "bool", "name": "val", "type": "bool" } ], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "nonpayable", "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": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_lastTokenId", "type": "uint256" } ], "name": "setLastTokenIdToMigrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setMeerkatCoreContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setMeerkatDAOAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setWrapperAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "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": "totalBurn", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalMint", "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": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "wrapperAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6080604052610320600f55601080546001600160a01b031916730ae252c992bed2d5c137fdf0565dd2a08c6d842517905561038461014f553480156200004457600080fd5b50604051620051c0380380620051c0833981016040819052620000679162000323565b604080518082018252600c81526b426162794d6565726b61747360a01b60208083019182528351808501909452600584526442414d524b60d81b908401528151919291620000b8916000916200024a565b508051620000ce9060019060208401906200024a565b505050620000eb620000e56200017360201b60201c565b62000177565b600a805460ff60a01b191690556001600b556200010885620001c9565b6200011f600c6200024160201b62002e731760201c565b601380546001600160a01b039586166001600160a01b031991821617909155601480549486169482169490941790935560158054918516918416919091179055601180549190931691161790555062000489565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b03163314620002285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b80516200023d9060129060208401906200024a565b5050565b80546001019055565b82805462000258906200044c565b90600052602060002090601f0160209004810192826200027c5760008555620002c7565b82601f106200029757805160ff1916838001178555620002c7565b82800160010185558215620002c7579182015b82811115620002c7578251825591602001919060010190620002aa565b50620002d5929150620002d9565b5090565b5b80821115620002d55760008155600101620002da565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200031e57600080fd5b919050565b600080600080600060a086880312156200033c57600080fd5b85516001600160401b03808211156200035457600080fd5b818801915088601f8301126200036957600080fd5b8151818111156200037e576200037e620002f0565b604051601f8201601f19908116603f01168101908382118183101715620003a957620003a9620002f0565b81604052828152602093508b84848701011115620003c657600080fd5b600091505b82821015620003ea5784820184015181830185015290830190620003cb565b82821115620003fc5760008484830101525b98506200040e91505088820162000306565b95505050620004206040870162000306565b9250620004306060870162000306565b9150620004406080870162000306565b90509295509295909350565b600181811c908216806200046157607f821691505b602082108114156200048357634e487b7160e01b600052602260045260246000fd5b50919050565b614d2780620004996000396000f3fe6080604052600436106102ae5760003560e01c806359a7715a1161017557806395d89b41116100dc578063c352d28811610095578063d547cfb71161006f578063d547cfb71461087c578063def68a9c14610891578063e985e9c5146108b1578063f2fde38b146108fa57600080fd5b8063c352d2881461081c578063c54a2e7b1461083c578063c87b56dd1461085c57600080fd5b806395d89b41146107675780639dc29fac1461077c578063a22cb4651461079c578063b8749a73146107bc578063b88d4fde146107dc578063b90983d2146107fc57600080fd5b80637df8b8021161012e5780637df8b802146106c157806383c3b1cf146106e1578063851f345214610701578063853828b6146107215780638d173a68146107295780638da5cb5b1461074957600080fd5b806359a7715a146106025780635c975abb146106175780636352211e146106365780636dbd95541461065657806370a082311461068c578063715018a6146106ac57600080fd5b80633502a71611610219578063438b6300116101d2578063438b63001461052f578063454b06081461055c5780634a77f8701461057c5780634f6ccce71461059157806355f804b3146105b157806358ca1759146105d157600080fd5b80633502a7161461047c57806335323718146104925780633ad10ef6146104b25780633c9f861d146104da57806342842e0e146104ef57806342966c681461050f57600080fd5b80630dccda301161026b5780630dccda30146103a4578063150b7a02146103c4578063156e29f6146103fd57806318160ddd1461041d57806323b872dd1461043c5780632f745c591461045c57600080fd5b806301ffc9a7146102b357806302329a29146102e857806306fdde031461030a578063081812fc1461032c578063095ea7b3146103645780630a986f2414610384575b600080fd5b3480156102bf57600080fd5b506102d36102ce3660046140f8565b61091a565b60405190151581526020015b60405180910390f35b3480156102f457600080fd5b50610308610303366004614123565b61092b565b005b34801561031657600080fd5b5061031f61097c565b6040516102df9190614198565b34801561033857600080fd5b5061034c6103473660046141ab565b610a0e565b6040516001600160a01b0390911681526020016102df565b34801561037057600080fd5b5061030861037f3660046141d9565b610aa3565b34801561039057600080fd5b5060135461034c906001600160a01b031681565b3480156103b057600080fd5b506103086103bf366004614205565b610bb9565b3480156103d057600080fd5b506103e46103df3660046142f9565b610c05565b6040516001600160e01b031990911681526020016102df565b34801561040957600080fd5b50610308610418366004614379565b610c16565b34801561042957600080fd5b506008545b6040519081526020016102df565b34801561044857600080fd5b506103086104573660046143ae565b6110ab565b34801561046857600080fd5b5061042e6104773660046141d9565b6110dc565b34801561048857600080fd5b5061042e61271081565b34801561049e57600080fd5b506103086104ad3660046141ab565b611172565b3480156104be57600080fd5b5061034c7307b5caaba0daf0c355959eb47a2ecff4517d263281565b3480156104e657600080fd5b5061042e6111a2565b3480156104fb57600080fd5b5061030861050a3660046143ae565b6111b2565b34801561051b57600080fd5b5061030861052a3660046141ab565b6111cd565b34801561053b57600080fd5b5061054f61054a366004614205565b611786565b6040516102df91906143ef565b34801561056857600080fd5b506103086105773660046141ab565b611828565b34801561058857600080fd5b50610308611cbd565b34801561059d57600080fd5b5061042e6105ac3660046141ab565b611dd8565b3480156105bd57600080fd5b506103086105cc366004614433565b611e6b565b3480156105dd57600080fd5b5061042e6105ec3660046141ab565b6000908152610150602052604090206007015490565b34801561060e57600080fd5b5061042e611ea8565b34801561062357600080fd5b50600a54600160a01b900460ff166102d3565b34801561064257600080fd5b5061034c6106513660046141ab565b611eb2565b34801561066257600080fd5b506106766106713660046141ab565b611f29565b6040516102df9a9998979695949392919061447c565b34801561069857600080fd5b5061042e6106a7366004614205565b611fe3565b3480156106b857600080fd5b5061030861206a565b3480156106cd57600080fd5b5060115461034c906001600160a01b031681565b3480156106ed57600080fd5b5060145461034c906001600160a01b031681565b34801561070d57600080fd5b506102d361071c3660046141ab565b6120a0565b6103086120cb565b34801561073557600080fd5b5060155461034c906001600160a01b031681565b34801561075557600080fd5b50600a546001600160a01b031661034c565b34801561077357600080fd5b5061031f61211e565b34801561078857600080fd5b506103086107973660046141d9565b61212d565b3480156107a857600080fd5b506103086107b736600461452d565b6126e7565b3480156107c857600080fd5b506106766107d73660046141ab565b6126f2565b3480156107e857600080fd5b506103086107f73660046142f9565b612af7565b34801561080857600080fd5b50610308610817366004614205565b612b2f565b34801561082857600080fd5b5060105461034c906001600160a01b031681565b34801561084857600080fd5b50610308610857366004614205565b612b7b565b34801561086857600080fd5b5061031f6108773660046141ab565b612bc7565b34801561088857600080fd5b5061031f612ca2565b34801561089d57600080fd5b506103086108ac366004614205565b612d30565b3480156108bd57600080fd5b506102d36108cc366004614566565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561090657600080fd5b50610308610915366004614205565b612ddb565b600061092582612e7c565b92915050565b600a546001600160a01b0316331461095e5760405162461bcd60e51b815260040161095590614594565b60405180910390fd5b6001811515141561097457610971612ea1565b50565b610971612f23565b60606000805461098b906145c9565b80601f01602080910402602001604051908101604052809291908181526020018280546109b7906145c9565b8015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610a875760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610955565b506000908152600460205260409020546001600160a01b031690565b6000610aae82611eb2565b9050806001600160a01b0316836001600160a01b03161415610b1c5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610955565b336001600160a01b0382161480610b385750610b3881336108cc565b610baa5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610955565b610bb48383612fa7565b505050565b600a546001600160a01b03163314610be35760405162461bcd60e51b815260040161095590614594565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b630a85bd0160e11b5b949350505050565b612710610c21613015565b1115610c3f5760405162461bcd60e51b815260040161095590614604565b600a546001600160a01b03163314610c7b57600a54600160a01b900460ff1615610c7b5760405162461bcd60e51b815260040161095590614634565b6000610c85613015565b6011549091506001600160a01b03163314610cb25760405162461bcd60e51b81526004016109559061465e565b612710610cc08260016146a4565b1115610cfa5760405162461bcd60e51b815260206004820152600960248201526813585e081b1a5b5a5d60ba1b6044820152606401610955565b81831415610d415760405162461bcd60e51b8152602060048201526014602482015273506172656e747320617265207468652073616d6560601b6044820152606401610955565b6014546040516331a9108f60e11b8152600481018590526001600160a01b03868116921690636352211e90602401602060405180830381865afa158015610d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db091906146bc565b6001600160a01b0316148015610e3b57506014546040516331a9108f60e11b8152600481018490526001600160a01b03868116921690636352211e90602401602060405180830381865afa158015610e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3091906146bc565b6001600160a01b0316145b610e965760405162461bcd60e51b815260206004820152602660248201527f4f776e6572206f6620746865206d6565726b6174206973206e6f74207468652060448201526539b2b73232b960d11b6064820152608401610955565b6016836127118110610eaa57610eaa6146d9565b602081049091015460ff601f9092166101000a900416158015610ef457506016826127118110610edc57610edc6146d9565b602081049091015460ff601f9092166101000a900416155b610f405760405162461bcd60e51b815260206004820152601e60248201527f4d6565726b61742068617320616c7265616479206265656e206d6174656400006044820152606401610955565b60016016846127118110610f5657610f566146d9565b602091828204019190066101000a81548160ff02191690831515021790555060016016836127118110610f8b57610f8b6146d9565b602081049091018054921515601f9092166101000a91820260ff90920219909216179055601354604051637917f8ad60e11b81526000916001600160a01b03169063f22ff15a90610fe490859060040190815260200190565b600060405180830381865afa158015611001573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611029919081019061474a565b905060006040518061014001604052808360000151815260200183604001518152602001836080015181526020018360c001518152602001836101000151815260200183610140015181526020018361018001518152602001836101a0015181526020018681526020018581525090506110a3868261302c565b505050505050565b6110b5338261316f565b6110d15760405162461bcd60e51b81526004016109559061490d565b610bb4838383613262565b60006110e783611fe3565b82106111495760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610955565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b0316331461119c5760405162461bcd60e51b815260040161095590614594565b61014f55565b60006111ad600d5490565b905090565b610bb483838360405180602001604052806000815250612af7565b6011546001600160a01b031633146111f75760405162461bcd60e51b81526004016109559061465e565b611201338261316f565b61120a57600080fd5b6112138161340d565b611221600d80546001019055565b600081815261015060205260408082208151610140810190925280548290829061124a906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054611276906145c9565b80156112c35780601f10611298576101008083540402835291602001916112c3565b820191906000526020600020905b8154815290600101906020018083116112a657829003601f168201915b505050505081526020016001820180546112dc906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054611308906145c9565b80156113555780601f1061132a57610100808354040283529160200191611355565b820191906000526020600020905b81548152906001019060200180831161133857829003601f168201915b5050505050815260200160028201805461136e906145c9565b80601f016020809104026020016040519081016040528092919081815260200182805461139a906145c9565b80156113e75780601f106113bc576101008083540402835291602001916113e7565b820191906000526020600020905b8154815290600101906020018083116113ca57829003601f168201915b50505050508152602001600382018054611400906145c9565b80601f016020809104026020016040519081016040528092919081815260200182805461142c906145c9565b80156114795780601f1061144e57610100808354040283529160200191611479565b820191906000526020600020905b81548152906001019060200180831161145c57829003601f168201915b50505050508152602001600482018054611492906145c9565b80601f01602080910402602001604051908101604052809291908181526020018280546114be906145c9565b801561150b5780601f106114e05761010080835404028352916020019161150b565b820191906000526020600020905b8154815290600101906020018083116114ee57829003601f168201915b50505050508152602001600582018054611524906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054611550906145c9565b801561159d5780601f106115725761010080835404028352916020019161159d565b820191906000526020600020905b81548152906001019060200180831161158057829003601f168201915b505050505081526020016006820180546115b6906145c9565b80601f01602080910402602001604051908101604052809291908181526020018280546115e2906145c9565b801561162f5780601f106116045761010080835404028352916020019161162f565b820191906000526020600020905b81548152906001019060200180831161161257829003601f168201915b5050505050815260200160078201548152602001600882015481526020016009820154815250509050600060168261010001516127118110611673576116736146d9565b602091828204019190066101000a81548160ff0219169083151502179055506000601682610120015161271181106116ad576116ad6146d9565b60208082049092018054931515601f9092166101000a91820260ff9092021990931617909155600083815261015090915260408120906116ed828261400f565b6116fb60018301600061400f565b61170960028301600061400f565b61171760038301600061400f565b61172560048301600061400f565b61173360058301600061400f565b61174160068301600061400f565b5060006007820181905560088201819055600990910181905560405183917fe5f959a3a2e301bc24e41b2ad2203868defc04202a305edb0d646d75d927c34891a25050565b6060600061179383611fe3565b905060008167ffffffffffffffff8111156117b0576117b0614222565b6040519080825280602002602001820160405280156117d9578160200160208202803683370190505b50905060005b82811015611820576117f185826110dc565b828281518110611803576118036146d9565b6020908102919091010152806118188161495e565b9150506117df565b509392505050565b6002600b54141561187b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610955565b6002600b5561271061188b613015565b11156118a95760405162461bcd60e51b815260040161095590614604565b600a546001600160a01b031633146118e557600a54600160a01b900460ff16156118e55760405162461bcd60e51b815260040161095590614634565b8061014f5410156118f557600080fd5b6015546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e90602401602060405180830381865afa15801561193e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196291906146bc565b6001600160a01b0316146119b85760405162461bcd60e51b815260206004820152601760248201527f646f65736e2774206f776e20746865206d6565726b61740000000000000000006044820152606401610955565b600080600080600080600080600080601560009054906101000a90046001600160a01b03166001600160a01b0316636dbd95548c6040518263ffffffff1660e01b8152600401611a0a91815260200190565b600060405180830381865afa158015611a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a4f9190810190614979565b99509950995099509950995099509950995099506016826127118110611a7757611a776146d9565b602081049091015460ff601f9092166101000a900416158015611ac157506016816127118110611aa957611aa96146d9565b602081049091015460ff601f9092166101000a900416155b611b0d5760405162461bcd60e51b815260206004820152601e60248201527f4d6565726b61742068617320616c7265616479206265656e206d6174656400006044820152606401610955565b60006040518061014001604052808c81526020018b81526020018a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838152509050600160168261010001516127118110611b7257611b726146d9565b602091828204019190066101000a81548160ff021916908315150217905550600160168261012001516127118110611bac57611bac6146d9565b602081049091018054921515601f9092166101000a91820260ff90920219909216179055601554604051632142170760e11b8152336004820152306024820152604481018e90526001600160a01b03909116906342842e0e90606401600060405180830381600087803b158015611c2257600080fd5b505af1158015611c36573d6000803e3d6000fd5b5050601554604051630852cd8d60e31b81526001600160a01b0390911692506342966c689150611c6e908f9060040190815260200190565b600060405180830381600087803b158015611c8857600080fd5b505af1158015611c9c573d6000803e3d6000fd5b50505050611caa338261302c565b50506001600b5550505050505050505050565b612710611cc8613015565b1115611ce65760405162461bcd60e51b815260040161095590614604565b600a546001600160a01b03163314611d2257600a54600160a01b900460ff1615611d225760405162461bcd60e51b815260040161095590614634565b60155460405162438b6360e81b81523360048201526000916001600160a01b03169063438b630090602401600060405180830381865afa158015611d6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d929190810190614ab3565b905060005b8151811015611dd457611dc2828281518110611db557611db56146d9565b6020026020010151611828565b80611dcc8161495e565b915050611d97565b5050565b6000611de360085490565b8210611e465760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610955565b60088281548110611e5957611e596146d9565b90600052602060002001549050919050565b600a546001600160a01b03163314611e955760405162461bcd60e51b815260040161095590614594565b8051611dd4906012906020840190614049565b60006111ad613015565b6000818152600260205260408120546001600160a01b0316806109255760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610955565b60608060608060608060606000806000737b99198e2cb78548a60ceacaa6f5fa4e72d3191b6336982a456101508d6040518363ffffffff1660e01b8152600401611f7d929190918252602082015260400190565b600060405180830381865af4158015611f9a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611fc29190810190614979565b99509950995099509950995099509950995099509193959799509193959799565b60006001600160a01b03821661204e5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610955565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b031633146120945760405162461bcd60e51b815260040161095590614594565b61209e60006134b4565b565b60168161271181106120b157600080fd5b60209182820401919006915054906101000a900460ff1681565b600a546001600160a01b031633146120f55760405162461bcd60e51b815260040161095590614594565b478061210057600080fd5b6109717307b5caaba0daf0c355959eb47a2ecff4517d263247613506565b60606001805461098b906145c9565b6011546001600160a01b031633146121575760405162461bcd60e51b81526004016109559061465e565b612161828261316f565b61216a57600080fd5b6121738161340d565b612181600d80546001019055565b60008181526101506020526040808220815161014081019092528054829082906121aa906145c9565b80601f01602080910402602001604051908101604052809291908181526020018280546121d6906145c9565b80156122235780601f106121f857610100808354040283529160200191612223565b820191906000526020600020905b81548152906001019060200180831161220657829003601f168201915b5050505050815260200160018201805461223c906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054612268906145c9565b80156122b55780601f1061228a576101008083540402835291602001916122b5565b820191906000526020600020905b81548152906001019060200180831161229857829003601f168201915b505050505081526020016002820180546122ce906145c9565b80601f01602080910402602001604051908101604052809291908181526020018280546122fa906145c9565b80156123475780601f1061231c57610100808354040283529160200191612347565b820191906000526020600020905b81548152906001019060200180831161232a57829003601f168201915b50505050508152602001600382018054612360906145c9565b80601f016020809104026020016040519081016040528092919081815260200182805461238c906145c9565b80156123d95780601f106123ae576101008083540402835291602001916123d9565b820191906000526020600020905b8154815290600101906020018083116123bc57829003601f168201915b505050505081526020016004820180546123f2906145c9565b80601f016020809104026020016040519081016040528092919081815260200182805461241e906145c9565b801561246b5780601f106124405761010080835404028352916020019161246b565b820191906000526020600020905b81548152906001019060200180831161244e57829003601f168201915b50505050508152602001600582018054612484906145c9565b80601f01602080910402602001604051908101604052809291908181526020018280546124b0906145c9565b80156124fd5780601f106124d2576101008083540402835291602001916124fd565b820191906000526020600020905b8154815290600101906020018083116124e057829003601f168201915b50505050508152602001600682018054612516906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054612542906145c9565b801561258f5780601f106125645761010080835404028352916020019161258f565b820191906000526020600020905b81548152906001019060200180831161257257829003601f168201915b50505050508152602001600782015481526020016008820154815260200160098201548152505090506000601682610100015161271181106125d3576125d36146d9565b602091828204019190066101000a81548160ff02191690831515021790555060006016826101200151612711811061260d5761260d6146d9565b60208082049092018054931515601f9092166101000a91820260ff90920219909316179091556000838152610150909152604081209061264d828261400f565b61265b60018301600061400f565b61266960028301600061400f565b61267760038301600061400f565b61268560048301600061400f565b61269360058301600061400f565b6126a160068301600061400f565b5060006007820181905560088201819055600990910181905560405183917fe5f959a3a2e301bc24e41b2ad2203868defc04202a305edb0d646d75d927c34891a2505050565b611dd433838361359c565b6101506020526000908152604090208054819061270e906145c9565b80601f016020809104026020016040519081016040528092919081815260200182805461273a906145c9565b80156127875780601f1061275c57610100808354040283529160200191612787565b820191906000526020600020905b81548152906001019060200180831161276a57829003601f168201915b50505050509080600101805461279c906145c9565b80601f01602080910402602001604051908101604052809291908181526020018280546127c8906145c9565b80156128155780601f106127ea57610100808354040283529160200191612815565b820191906000526020600020905b8154815290600101906020018083116127f857829003601f168201915b50505050509080600201805461282a906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054612856906145c9565b80156128a35780601f10612878576101008083540402835291602001916128a3565b820191906000526020600020905b81548152906001019060200180831161288657829003601f168201915b5050505050908060030180546128b8906145c9565b80601f01602080910402602001604051908101604052809291908181526020018280546128e4906145c9565b80156129315780601f1061290657610100808354040283529160200191612931565b820191906000526020600020905b81548152906001019060200180831161291457829003601f168201915b505050505090806004018054612946906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054612972906145c9565b80156129bf5780601f10612994576101008083540402835291602001916129bf565b820191906000526020600020905b8154815290600101906020018083116129a257829003601f168201915b5050505050908060050180546129d4906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054612a00906145c9565b8015612a4d5780601f10612a2257610100808354040283529160200191612a4d565b820191906000526020600020905b815481529060010190602001808311612a3057829003601f168201915b505050505090806006018054612a62906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054612a8e906145c9565b8015612adb5780601f10612ab057610100808354040283529160200191612adb565b820191906000526020600020905b815481529060010190602001808311612abe57829003601f168201915b505050505090806007015490806008015490806009015490508a565b612b01338361316f565b612b1d5760405162461bcd60e51b81526004016109559061490d565b612b298484848461366b565b50505050565b600a546001600160a01b03163314612b595760405162461bcd60e51b815260040161095590614594565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314612ba55760405162461bcd60e51b815260040161095590614594565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600260205260409020546060906001600160a01b0316612c465760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610955565b6000612c5061369e565b90506000815111612c705760405180602001604052806000815250612c9b565b80612c7a846136ad565b604051602001612c8b929190614b59565b6040516020818303038152906040525b9392505050565b60128054612caf906145c9565b80601f0160208091040260200160405190810160405280929190818152602001828054612cdb906145c9565b8015612d285780601f10612cfd57610100808354040283529160200191612d28565b820191906000526020600020905b815481529060010190602001808311612d0b57829003601f168201915b505050505081565b600a546001600160a01b03163314612d5a5760405162461bcd60e51b815260040161095590614594565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc59190614b88565b9050611dd46001600160a01b03831633836137ab565b600a546001600160a01b03163314612e055760405162461bcd60e51b815260040161095590614594565b6001600160a01b038116612e6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610955565b610971816134b4565b80546001019055565b60006001600160e01b0319821663780e9d6360e01b14806109255750610925826137fd565b600a54600160a01b900460ff1615612ecb5760405162461bcd60e51b815260040161095590614634565b600a805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612f063390565b6040516001600160a01b03909116815260200160405180910390a1565b600a54600160a01b900460ff16612f735760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610955565b600a805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612f06565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612fdc82611eb2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006111ad613023600d5490565b600c549061384d565b6000613037600c5490565b9050613047600c80546001019055565b60008181526101506020908152604090912083518051859361306d928492910190614049565b5060208281015180516130869260018501920190614049565b50604082015180516130a2916002840191602090910190614049565b50606082015180516130be916003840191602090910190614049565b50608082015180516130da916004840191602090910190614049565b5060a082015180516130f6916005840191602090910190614049565b5060c08201518051613112916006840191602090910190614049565b5060e0820151600782015561010082015160088201556101209091015160099091015561313f8382613859565b60405181907f810265203d2dff98b972580c060b5f5cf92627fd913832a6aa93eb32c0a884f990600090a2505050565b6000818152600260205260408120546001600160a01b03166131e85760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610955565b60006131f383611eb2565b9050806001600160a01b0316846001600160a01b0316148061322e5750836001600160a01b031661322384610a0e565b6001600160a01b0316145b80610c0e57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff16610c0e565b826001600160a01b031661327582611eb2565b6001600160a01b0316146132dd5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610955565b6001600160a01b03821661333f5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610955565b61334a838383613873565b613355600082612fa7565b6001600160a01b038316600090815260036020526040812080546001929061337e908490614ba1565b90915550506001600160a01b03821660009081526003602052604081208054600192906133ac9084906146a4565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061341882611eb2565b905061342681600084613873565b613431600083612fa7565b6001600160a01b038116600090815260036020526040812080546001929061345a908490614ba1565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613553576040519150601f19603f3d011682016040523d82523d6000602084013e613558565b606091505b5050905080610bb45760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606401610955565b816001600160a01b0316836001600160a01b031614156135fe5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610955565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613676848484613262565b6136828484848461387e565b612b295760405162461bcd60e51b815260040161095590614bb8565b60606012805461098b906145c9565b6060816136d15750506040805180820190915260018152600360fc1b602082015290565b8160005b81156136fb57806136e58161495e565b91506136f49050600a83614c20565b91506136d5565b60008167ffffffffffffffff81111561371657613716614222565b6040519080825280601f01601f191660200182016040528015613740576020820181803683370190505b5090505b8415610c0e57613755600183614ba1565b9150613762600a86614c34565b61376d9060306146a4565b60f81b818381518110613782576137826146d9565b60200101906001600160f81b031916908160001a9053506137a4600a86614c20565b9450613744565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610bb4908490613979565b60006001600160e01b031982166380ac58cd60e01b148061382e57506001600160e01b03198216635b5e139f60e01b145b8061092557506301ffc9a760e01b6001600160e01b0319831614610925565b6000612c9b8284614ba1565b611dd4828260405180602001604052806000815250613a4b565b610bb4838383613a7e565b60006001600160a01b0384163b1561397157604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906138c2903390899088908890600401614c48565b6020604051808303816000875af19250505080156138fd575060408051601f3d908101601f191682019092526138fa91810190614c85565b60015b613957573d80801561392b576040519150601f19603f3d011682016040523d82523d6000602084013e613930565b606091505b50805161394f5760405162461bcd60e51b815260040161095590614bb8565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610c0e565b506001610c0e565b60006139ce826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613b099092919063ffffffff16565b805190915015610bb457808060200190518101906139ec9190614ca2565b610bb45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610955565b613a558383613b18565b613a62600084848461387e565b610bb45760405162461bcd60e51b815260040161095590614bb8565b613a89838383613c66565b600a546001600160a01b03163314610bb457600a54600160a01b900460ff1615610bb45760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201526a1a1a5b19481c185d5cd95960aa1b6064820152608401610955565b6060610c0e8484600085613d1e565b6001600160a01b038216613b6e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610955565b6000818152600260205260409020546001600160a01b031615613bd35760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610955565b613bdf60008383613873565b6001600160a01b0382166000908152600360205260408120805460019290613c089084906146a4565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b038316613cc157613cbc81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b613ce4565b816001600160a01b0316836001600160a01b031614613ce457613ce48382613e46565b6001600160a01b038216613cfb57610bb481613ee3565b826001600160a01b0316826001600160a01b031614610bb457610bb48282613f92565b606082471015613d7f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610955565b843b613dcd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610955565b600080866001600160a01b03168587604051613de99190614cbf565b60006040518083038185875af1925050503d8060008114613e26576040519150601f19603f3d011682016040523d82523d6000602084013e613e2b565b606091505b5091509150613e3b828286613fd6565b979650505050505050565b60006001613e5384611fe3565b613e5d9190614ba1565b600083815260076020526040902054909150808214613eb0576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090613ef590600190614ba1565b60008381526009602052604081205460088054939450909284908110613f1d57613f1d6146d9565b906000526020600020015490508060088381548110613f3e57613f3e6146d9565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480613f7657613f76614cdb565b6001900381819060005260206000200160009055905550505050565b6000613f9d83611fe3565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60608315613fe5575081612c9b565b825115613ff55782518084602001fd5b8160405162461bcd60e51b81526004016109559190614198565b50805461401b906145c9565b6000825580601f1061402b575050565b601f01602090049060005260206000209081019061097191906140cd565b828054614055906145c9565b90600052602060002090601f01602090048101928261407757600085556140bd565b82601f1061409057805160ff19168380011785556140bd565b828001600101855582156140bd579182015b828111156140bd5782518255916020019190600101906140a2565b506140c99291506140cd565b5090565b5b808211156140c957600081556001016140ce565b6001600160e01b03198116811461097157600080fd5b60006020828403121561410a57600080fd5b8135612c9b816140e2565b801515811461097157600080fd5b60006020828403121561413557600080fd5b8135612c9b81614115565b60005b8381101561415b578181015183820152602001614143565b83811115612b295750506000910152565b60008151808452614184816020860160208601614140565b601f01601f19169290920160200192915050565b602081526000612c9b602083018461416c565b6000602082840312156141bd57600080fd5b5035919050565b6001600160a01b038116811461097157600080fd5b600080604083850312156141ec57600080fd5b82356141f7816141c4565b946020939093013593505050565b60006020828403121561421757600080fd5b8135612c9b816141c4565b634e487b7160e01b600052604160045260246000fd5b6040516101c0810167ffffffffffffffff8111828210171561425c5761425c614222565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561428b5761428b614222565b604052919050565b600067ffffffffffffffff8211156142ad576142ad614222565b50601f01601f191660200190565b60006142ce6142c984614293565b614262565b90508281528383830111156142e257600080fd5b828260208301376000602084830101529392505050565b6000806000806080858703121561430f57600080fd5b843561431a816141c4565b9350602085013561432a816141c4565b925060408501359150606085013567ffffffffffffffff81111561434d57600080fd5b8501601f8101871361435e57600080fd5b61436d878235602084016142bb565b91505092959194509250565b60008060006060848603121561438e57600080fd5b8335614399816141c4565b95602085013595506040909401359392505050565b6000806000606084860312156143c357600080fd5b83356143ce816141c4565b925060208401356143de816141c4565b929592945050506040919091013590565b6020808252825182820181905260009190848201906040850190845b818110156144275783518352928401929184019160010161440b565b50909695505050505050565b60006020828403121561444557600080fd5b813567ffffffffffffffff81111561445c57600080fd5b8201601f8101841361446d57600080fd5b610c0e848235602084016142bb565b60006101408083526144908184018e61416c565b905082810360208401526144a4818d61416c565b905082810360408401526144b8818c61416c565b905082810360608401526144cc818b61416c565b905082810360808401526144e0818a61416c565b905082810360a08401526144f4818961416c565b905082810360c0840152614508818861416c565b60e0840196909652505061010081019290925261012090910152979650505050505050565b6000806040838503121561454057600080fd5b823561454b816141c4565b9150602083013561455b81614115565b809150509250929050565b6000806040838503121561457957600080fd5b8235614584816141c4565b9150602083013561455b816141c4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806145dd57607f821691505b602082108114156145fe57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526016908201527513585e1a5b5d5b481b9d5b58995c881c995858da195960521b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601690820152751b9bdd0818481ddc985c1c195c8818dbdb9d1c9858dd60521b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156146b7576146b761468e565b500190565b6000602082840312156146ce57600080fd5b8151612c9b816141c4565b634e487b7160e01b600052603260045260246000fd5b600082601f83011261470057600080fd5b815161470e6142c982614293565b81815284602083860101111561472357600080fd5b610c0e826020830160208701614140565b805160ff8116811461474557600080fd5b919050565b60006020828403121561475c57600080fd5b815167ffffffffffffffff8082111561477457600080fd5b908301906101c0828603121561478957600080fd5b614791614238565b8251828111156147a057600080fd5b6147ac878286016146ef565b8252506147bb60208401614734565b60208201526040830151828111156147d257600080fd5b6147de878286016146ef565b6040830152506147f060608401614734565b606082015260808301518281111561480757600080fd5b614813878286016146ef565b60808301525061482560a08401614734565b60a082015260c08301518281111561483c57600080fd5b614848878286016146ef565b60c08301525061485a60e08401614734565b60e0820152610100808401518381111561487357600080fd5b61487f888287016146ef565b828401525050610120614893818501614734565b9082015261014083810151838111156148ab57600080fd5b6148b7888287016146ef565b8284015250506101606148cb818501614734565b9082015261018083810151838111156148e357600080fd5b6148ef888287016146ef565b91830191909152506101a09283015192810192909252509392505050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60006000198214156149725761497261468e565b5060010190565b6000806000806000806000806000806101408b8d03121561499957600080fd5b8a5167ffffffffffffffff808211156149b157600080fd5b6149bd8e838f016146ef565b9b5060208d01519150808211156149d357600080fd5b6149df8e838f016146ef565b9a5060408d01519150808211156149f557600080fd5b614a018e838f016146ef565b995060608d0151915080821115614a1757600080fd5b614a238e838f016146ef565b985060808d0151915080821115614a3957600080fd5b614a458e838f016146ef565b975060a08d0151915080821115614a5b57600080fd5b614a678e838f016146ef565b965060c08d0151915080821115614a7d57600080fd5b50614a8a8d828e016146ef565b94505060e08b015192506101008b015191506101208b015190509295989b9194979a5092959850565b60006020808385031215614ac657600080fd5b825167ffffffffffffffff80821115614ade57600080fd5b818501915085601f830112614af257600080fd5b815181811115614b0457614b04614222565b8060051b9150614b15848301614262565b8181529183018401918481019088841115614b2f57600080fd5b938501935b83851015614b4d57845182529385019390850190614b34565b98975050505050505050565b60008351614b6b818460208801614140565b835190830190614b7f818360208801614140565b01949350505050565b600060208284031215614b9a57600080fd5b5051919050565b600082821015614bb357614bb361468e565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082614c2f57614c2f614c0a565b500490565b600082614c4357614c43614c0a565b500690565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614c7b9083018461416c565b9695505050505050565b600060208284031215614c9757600080fd5b8151612c9b816140e2565b600060208284031215614cb457600080fd5b8151612c9b81614115565b60008251614cd1818460208701614140565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220777ff850b283f227eb1d32c7bf5a02756d67cd178397e72eb8a83c389587f75a64736f6c634300080c003300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000004b43b7f52b90828aa194a53aecf00319bf3f117e00000000000000000000000023c1e57cf4fb4c87d0a0aaa6b0843fc4e7c414080000000000000000000000002c23b9d24520d2f107c30f5a02daf65b8e77ff1200000000000000000000000031437cc0b1c1052fdaa5a9adf41c83f3dc8f00870000000000000000000000000000000000000000000000000000000000000000