[ { "inputs": [ { "internalType": "string", "name": "nftName", "type": "string" }, { "internalType": "string", "name": "nftSymbol", "type": "string" }, { "internalType": "string", "name": "baseTokenURI", "type": "string" }, { "internalType": "address", "name": "_royaltyRecipient", "type": "address" }, { "internalType": "bytes32", "name": "_merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "_startAt", "type": "uint256" }, { "internalType": "uint256", "name": "_WLstartAt", "type": "uint256" } ], "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": "Claim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [ { "internalType": "address", "name": "_whitelistedAddress", "type": "address" } ], "name": "EarlyMinterMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "KALAO", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_EARLY_CLAIM", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_MINTABLE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_PER_CLAIM", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MintIsOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NFT_EARLY_PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NFT_PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROYALTY_VALUE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WLstartAt", "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "n", "type": "uint256" } ], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "n", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_proof", "type": "bytes32[]" } ], "name": "earlyClaim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": [ { "internalType": "address", "name": "_whitelistedAddress", "type": "address" }, { "internalType": "bytes32[]", "name": "_proof", "type": "bytes32[]" } ], "name": "isEarlyMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "merkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "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": [ { "internalType": "uint256", "name": "n", "type": "uint256" }, { "internalType": "address", "name": "adr", "type": "address" } ], "name": "premint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "publicMintedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addressToWhitelist", "type": "address" } ], "name": "removeEarlyUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "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": "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": "_addr", "type": "address[]" } ], "name": "setAdmins", "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": "uri", "type": "string" } ], "name": "setBaseUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "uint256", "name": "allowedToMint", "type": "uint256" } ], "name": "setEarlyMinters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_root", "type": "bytes32" } ], "name": "setMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_royaltyRecipient", "type": "address" } ], "name": "setRoyaltyAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startAt", "type": "uint256" } ], "name": "setStartAt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_WLstartAt", "type": "uint256" } ], "name": "setWLstartAt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "toggleMint", "outputs": [], "stateMutability": "nonpayable", "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": "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": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a06040819052600060808190526200001b916012916200014f565b50600160138190556014805460ff1916909117905560006015553480156200004257600080fd5b506040516200379e3803806200379e8339810160408190526200006591620002a8565b8651879087906200007e9060009060208501906200014f565b508051620000949060019060208401906200014f565b505050620000b1620000ab620000f960201b60201c565b620000fd565b601680546001600160a01b0319166001600160a01b0386161790558451620000e19060129060208801906200014f565b50600e92909255600c55600d5550620003c892505050565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200015d9062000375565b90600052602060002090601f016020900481019282620001815760008555620001cc565b82601f106200019c57805160ff1916838001178555620001cc565b82800160010185558215620001cc579182015b82811115620001cc578251825591602001919060010190620001af565b50620001da929150620001de565b5090565b5b80821115620001da5760008155600101620001df565b600082601f83011262000206578081fd5b81516001600160401b0380821115620002235762000223620003b2565b604051601f8301601f19908116603f011681019082821181831017156200024e576200024e620003b2565b816040528381526020925086838588010111156200026a578485fd5b8491505b838210156200028d57858201830151818301840152908201906200026e565b838211156200029e57848385830101525b9695505050505050565b600080600080600080600060e0888a031215620002c3578283fd5b87516001600160401b0380821115620002da578485fd5b620002e88b838c01620001f5565b985060208a0151915080821115620002fe578485fd5b6200030c8b838c01620001f5565b975060408a015191508082111562000322578485fd5b50620003318a828b01620001f5565b60608a015190965090506001600160a01b038116811462000350578384fd5b809450506080880151925060a0880151915060c0880151905092959891949750929550565b6002810460018216806200038a57607f821691505b60208210811415620003ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6133c680620003d86000396000f3fe6080604052600436106102975760003560e01c80636d68b20b1161015a578063a60118e8116100c1578063e985e9c51161007a578063e985e9c514610736578063ead29d4e14610756578063f2c64ad214610776578063f2fde38b1461078b578063f3a133a9146107ab578063fc68e62d146107cb5761029e565b8063a60118e81461068c578063accc1d5e146106ac578063b88d4fde146106cc578063c7446565146106ec578063c87b56dd14610701578063d3dd5fe0146107215761029e565b80638da5cb5b116101135780638da5cb5b146105f857806393791b031461060d57806395d89b4114610622578063a0bcfc7f14610637578063a22cb46514610657578063a28cf772146106775761029e565b80636d68b20b1461055b578063705a13e21461057b57806370a0823114610590578063715018a6146105b05780637cb64759146105c557806386063f71146105e55761029e565b8063379607f5116101fe5780634f6ccce7116101b75780634f6ccce7146104d1578063538dba3e146104f15780635471f49f146105115780636352211e14610526578063676dd563146103655780636b907eba146105465761029e565b8063379607f51461043f5780633ccfd60b146104525780633f879faf1461046757806340b898061461047c57806342842e0e1461049c5780634f02c420146104bc5761029e565b806318160ddd1161025057806318160ddd146103875780631b4f7f351461039c57806323b872dd146103bc5780632a55205a146103dc5780632eb4a7ab1461040a5780632f745c591461041f5761029e565b806301ffc9a7146102a057806306d254da146102d657806306fdde03146102f6578063081812fc14610318578063095ea7b31461034557806312148a56146103655761029e565b3661029e57005b005b3480156102ac57600080fd5b506102c06102bb36600461285c565b6107eb565b6040516102cd9190612a40565b60405180910390f35b3480156102e257600080fd5b5061029e6102f1366004612606565b6107fe565b34801561030257600080fd5b5061030b610868565b6040516102cd9190612a54565b34801561032457600080fd5b50610338610333366004612844565b6108fa565b6040516102cd91906129d6565b34801561035157600080fd5b5061029e610360366004612791565b61093d565b34801561037157600080fd5b5061037a6109d5565b6040516102cd9190612a4b565b34801561039357600080fd5b5061037a6109e1565b3480156103a857600080fd5b506102c06103b7366004612706565b6109e7565b3480156103c857600080fd5b5061029e6103d7366004612652565b610a5d565b3480156103e857600080fd5b506103fc6103f736600461292d565b610a95565b6040516102cd929190612a27565b34801561041657600080fd5b5061037a610af3565b34801561042b57600080fd5b5061037a61043a366004612791565b610af9565b61029e61044d366004612844565b610b4b565b34801561045e57600080fd5b5061029e610d96565b34801561047357600080fd5b5061037a610e43565b34801561048857600080fd5b5061029e610497366004612606565b610e48565b3480156104a857600080fd5b5061029e6104b7366004612652565b610ea1565b3480156104c857600080fd5b5061037a610ebc565b3480156104dd57600080fd5b5061037a6104ec366004612844565b610ec2565b3480156104fd57600080fd5b5061029e61050c3660046128da565b610f1d565b34801561051d57600080fd5b5061037a611026565b34801561053257600080fd5b50610338610541366004612844565b61102b565b34801561055257600080fd5b506102c0611060565b34801561056757600080fd5b5061029e610576366004612844565b611069565b34801561058757600080fd5b506103386110ad565b34801561059c57600080fd5b5061037a6105ab366004612606565b6110c5565b3480156105bc57600080fd5b5061029e611109565b3480156105d157600080fd5b5061029e6105e0366004612844565b611154565b61029e6105f33660046128fc565b611198565b34801561060457600080fd5b5061033861151c565b34801561061957600080fd5b5061037a61152b565b34801561062e57600080fd5b5061030b611531565b34801561064357600080fd5b5061029e610652366004612894565b611540565b34801561066357600080fd5b5061029e610672366004612757565b611596565b34801561068357600080fd5b5061037a6115a8565b34801561069857600080fd5b5061037a6106a7366004612606565b6115ae565b3480156106b857600080fd5b5061029e6106c73660046127ba565b6115c9565b3480156106d857600080fd5b5061029e6106e736600461268d565b611688565b3480156106f857600080fd5b5061037a6116c7565b34801561070d57600080fd5b5061030b61071c366004612844565b6116cd565b34801561072d57600080fd5b5061029e611750565b34801561074257600080fd5b506102c0610751366004612620565b6117a3565b34801561076257600080fd5b5061037a610771366004612606565b6117d1565b34801561078257600080fd5b5061037a6117e3565b34801561079757600080fd5b5061029e6107a6366004612606565b6117e8565b3480156107b757600080fd5b5061029e6107c6366004612844565b611856565b3480156107d757600080fd5b5061029e6107e63660046127fa565b61189a565b60006107f68261194a565b90505b919050565b61080661196f565b6001600160a01b031661081761151c565b6001600160a01b0316146108465760405162461bcd60e51b815260040161083d9061302f565b60405180910390fd5b601680546001600160a01b0319166001600160a01b0392909216919091179055565b606060008054610877906132ce565b80601f01602080910402602001604051908101604052809291908181526020018280546108a3906132ce565b80156108f05780601f106108c5576101008083540402835291602001916108f0565b820191906000526020600020905b8154815290600101906020018083116108d357829003601f168201915b5050505050905090565b600061090582611973565b6109215760405162461bcd60e51b815260040161083d90612fe3565b506000908152600460205260409020546001600160a01b031690565b60006109488261102b565b9050806001600160a01b0316836001600160a01b0316141561097c5760405162461bcd60e51b815260040161083d90613139565b806001600160a01b031661098e61196f565b6001600160a01b031614806109aa57506109aa8161075161196f565b6109c65760405162461bcd60e51b815260040161083d90612e39565b6109d08383611990565b505050565b674563918244f4000081565b60085490565b600080846040516020016109fb919061297a565b604051602081830303815290604052805190602001209050610a5484848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600e5491508490506119fe565b95945050505050565b610a6e610a6861196f565b82611a14565b610a8a5760405162461bcd60e51b815260040161083d9061317a565b6109d0838383611a99565b6000828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b90910462ffffff16928201839052929161271090610adf908661326c565b610ae99190613258565b9150509250929050565b600e5481565b6000610b04836110c5565b8210610b225760405162461bcd60e51b815260040161083d90612b46565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60145460ff16610b6d5760405162461bcd60e51b815260040161083d90612ad5565b600c54421015610b8f5760405162461bcd60e51b815260040161083d90613217565b6034610b996109e1565b610ba39083613240565b1115610bc15760405162461bcd60e51b815260040161083d90612a67565b60008111610be15760405162461bcd60e51b815260040161083d90612dd2565b600a811115610c025760405162461bcd60e51b815260040161083d90612f29565b610c1481674563918244f4000061326c565b341015610c335760405162461bcd60e51b815260040161083d90612f6b565b6000610c4782674563918244f4000061326c565b90508060156000828254610c5b9190613240565b9091555060009050610c6d823461328b565b604051909150309083156108fc029084906000818181858888f19350505050158015610c9d573d6000803e3d6000fd5b5060005b83811015610d2e57610cbc610cb461196f565b601354611bcc565b601354601654610cd891906001600160a01b0316610258611be6565b600160136000828254610ceb9190613240565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a280610d2681613309565b915050610ca1565b508015610d7757610d3d61196f565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610d75573d6000803e3d6000fd5b505b6109d073eff2357c9e40103ac4d268b32de478e4fbbfc4f06001611596565b60116000610da261196f565b6001600160a01b0316815260208101919091526040016000205460ff161515600114610de05760405162461bcd60e51b815260040161083d90612e09565b60004711610e005760405162461bcd60e51b815260040161083d90612b19565b610e0861196f565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610e40573d6000803e3d6000fd5b50565b603481565b610e5061196f565b6001600160a01b0316610e6161151c565b6001600160a01b031614610e875760405162461bcd60e51b815260040161083d9061302f565b6001600160a01b03166000908152600f6020526040812055565b6109d083838360405180602001604052806000815250611688565b60135481565b6000610ecc6109e1565b8210610eea5760405162461bcd60e51b815260040161083d906131cb565b60088281548110610f0b57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610f2561196f565b6001600160a01b0316610f3661151c565b6001600160a01b031614610f5c5760405162461bcd60e51b815260040161083d9061302f565b60008211610f7c5760405162461bcd60e51b815260040161083d90612dd2565b600a821115610f9d5760405162461bcd60e51b815260040161083d90612f29565b60005b828110156109d057610fb482601354611bcc565b601354601654610fd091906001600160a01b0316610258611be6565b600160136000828254610fe39190613240565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a28061101e81613309565b915050610fa0565b600a81565b6000818152600260205260408120546001600160a01b0316806107f65760405162461bcd60e51b815260040161083d90612ee0565b60145460ff1681565b61107161196f565b6001600160a01b031661108261151c565b6001600160a01b0316146110a85760405162461bcd60e51b815260040161083d9061302f565b600d55565b73eff2357c9e40103ac4d268b32de478e4fbbfc4f081565b60006001600160a01b0382166110ed5760405162461bcd60e51b815260040161083d90612e96565b506001600160a01b031660009081526003602052604090205490565b61111161196f565b6001600160a01b031661112261151c565b6001600160a01b0316146111485760405162461bcd60e51b815260040161083d9061302f565b6111526000611c68565b565b61115c61196f565b6001600160a01b031661116d61151c565b6001600160a01b0316146111935760405162461bcd60e51b815260040161083d9061302f565b600e55565b60145460ff166111ba5760405162461bcd60e51b815260040161083d90612ad5565b600d544210156111dc5760405162461bcd60e51b815260040161083d90613217565b600c5442106111fd5760405162461bcd60e51b815260040161083d9061309b565b60346112076109e1565b6112119085613240565b111561122f5760405162461bcd60e51b815260040161083d90612a67565b600a8311156112505760405162461bcd60e51b815260040161083d90612f29565b336000908152600f6020526040902054600110156112805760405162461bcd60e51b815260040161083d90612ca5565b600033604051602001611293919061297a565b6040516020818303038152906040528051906020012090506112ec83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600e5491508490506119fe565b6113085760405162461bcd60e51b815260040161083d90612d57565b600084116113285760405162461bcd60e51b815260040161083d90612dd2565b336000908152600f60205260409020546001906113459086613240565b11156113635760405162461bcd60e51b815260040161083d90613064565b61137584674563918244f4000061326c565b3410156113945760405162461bcd60e51b815260040161083d90612f6b565b336000908152600f6020526040812080548692906113b3908490613240565b90915550600090506113cd85674563918244f4000061326c565b905080601560008282546113e19190613240565b90915550600090506113f3823461328b565b604051909150309083156108fc029084906000818181858888f19350505050158015611423573d6000803e3d6000fd5b5060005b868110156114ac5761143a610cb461196f565b60135460165461145691906001600160a01b0316610258611be6565b6001601360008282546114699190613240565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a2806114a481613309565b915050611427565b5080156114f5576114bb61196f565b6001600160a01b03166108fc829081150290604051600060405180830381858888f193505050501580156114f3573d6000803e3d6000fd5b505b61151473eff2357c9e40103ac4d268b32de478e4fbbfc4f06001611596565b505050505050565b600a546001600160a01b031690565b61025881565b606060018054610877906132ce565b61154861196f565b6001600160a01b031661155961151c565b6001600160a01b03161461157f5760405162461bcd60e51b815260040161083d9061302f565b8051611592906012906020840190612497565b5050565b6115926115a161196f565b8383611cba565b600d5481565b6001600160a01b03166000908152600f602052604090205490565b6115d161196f565b6001600160a01b03166115e261151c565b6001600160a01b0316146116085760405162461bcd60e51b815260040161083d9061302f565b60005b818110156109d05760016011600085858581811061163957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061164e9190612606565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061168081613309565b91505061160b565b61169961169361196f565b83611a14565b6116b55760405162461bcd60e51b815260040161083d9061317a565b6116c184848484611d5d565b50505050565b600c5481565b60606116d882611973565b6116f45760405162461bcd60e51b815260040161083d906130ea565b60006116fe611d90565b9050600081511161171e5760405180602001604052806000815250611749565b8061172884611d9f565b604051602001611739929190612997565b6040516020818303038152906040525b9392505050565b61175861196f565b6001600160a01b031661176961151c565b6001600160a01b03161461178f5760405162461bcd60e51b815260040161083d9061302f565b6014805460ff19811660ff90911615179055565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60106020526000908152604090205481565b600181565b6117f061196f565b6001600160a01b031661180161151c565b6001600160a01b0316146118275760405162461bcd60e51b815260040161083d9061302f565b6001600160a01b03811661184d5760405162461bcd60e51b815260040161083d90612be3565b610e4081611c68565b61185e61196f565b6001600160a01b031661186f61151c565b6001600160a01b0316146118955760405162461bcd60e51b815260040161083d9061302f565b600c55565b6118a261196f565b6001600160a01b03166118b361151c565b6001600160a01b0316146118d95760405162461bcd60e51b815260040161083d9061302f565b60005b828110156116c15781600f600086868581811061190957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061191e9190612606565b6001600160a01b031681526020810191909152604001600020558061194281613309565b9150506118dc565b60006001600160e01b0319821663152a902d60e11b14806107f657506107f682611eba565b3390565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906119c58261102b565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600082611a0b8584611edf565b14949350505050565b6000611a1f82611973565b611a3b5760405162461bcd60e51b815260040161083d90612d86565b6000611a468361102b565b9050806001600160a01b0316846001600160a01b03161480611a6d5750611a6d81856117a3565b80611a915750836001600160a01b0316611a86846108fa565b6001600160a01b0316145b949350505050565b826001600160a01b0316611aac8261102b565b6001600160a01b031614611ad25760405162461bcd60e51b815260040161083d90612c29565b6001600160a01b038216611af85760405162461bcd60e51b815260040161083d90612cdc565b611b03838383611f59565b611b0e600082611990565b6001600160a01b0383166000908152600360205260408120805460019290611b3790849061328b565b90915550506001600160a01b0382166000908152600360205260408120805460019290611b65908490613240565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a46109d08383836109d0565b611592828260405180602001604052806000815250611f64565b612710811115611c085760405162461bcd60e51b815260040161083d90612a9e565b6040805180820182526001600160a01b03938416815262ffffff92831660208083019182526000968752600b905291909420935184549151909216600160a01b0262ffffff60a01b19929093166001600160a01b03199091161716179055565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415611cec5760405162461bcd60e51b815260040161083d90612d20565b6001600160a01b0383811660008181526005602090815260408083209487168084529490915290819020805460ff1916851515179055517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190611d50908590612a40565b60405180910390a3505050565b611d68848484611a99565b611d7484848484611f97565b6116c15760405162461bcd60e51b815260040161083d90612b91565b606060128054610877906132ce565b606081611dc457506040805180820190915260018152600360fc1b60208201526107f9565b8160005b8115611dee5780611dd881613309565b9150611de79050600a83613258565b9150611dc8565b60008167ffffffffffffffff811115611e1757634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611e41576020820181803683370190505b5090505b8415611a9157611e5660018361328b565b9150611e63600a86613324565b611e6e906030613240565b60f81b818381518110611e9157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611eb3600a86613258565b9450611e45565b60006001600160e01b0319821663780e9d6360e01b14806107f657506107f6826120b2565b600081815b8451811015611f51576000858281518110611f0f57634e487b7160e01b600052603260045260246000fd5b60200260200101519050808311611f3157611f2a83826120f2565b9250611f3e565b611f3b81846120f2565b92505b5080611f4981613309565b915050611ee4565b509392505050565b6109d0838383612101565b611f6e838361218a565b611f7b6000848484611f97565b6109d05760405162461bcd60e51b815260040161083d90612b91565b6000611fab846001600160a01b0316612271565b156120a757836001600160a01b031663150b7a02611fc761196f565b8786866040518563ffffffff1660e01b8152600401611fe994939291906129ea565b602060405180830381600087803b15801561200357600080fd5b505af1925050508015612033575060408051601f3d908101601f1916820190925261203091810190612878565b60015b61208d573d808015612061576040519150601f19603f3d011682016040523d82523d6000602084013e612066565b606091505b5080516120855760405162461bcd60e51b815260040161083d90612b91565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611a91565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b14806120e357506001600160e01b03198216635b5e139f60e01b145b806107f657506107f682612280565b60009182526020526040902090565b61210c8383836109d0565b6001600160a01b0383166121285761212381612299565b61214b565b816001600160a01b0316836001600160a01b03161461214b5761214b83826122dd565b6001600160a01b038216612167576121628161237a565b6109d0565b826001600160a01b0316826001600160a01b0316146109d0576109d08282612453565b6001600160a01b0382166121b05760405162461bcd60e51b815260040161083d90612fae565b6121b981611973565b156121d65760405162461bcd60e51b815260040161083d90612c6e565b6121e260008383611f59565b6001600160a01b038216600090815260036020526040812080546001929061220b908490613240565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4611592600083836109d0565b6001600160a01b03163b151590565b6001600160e01b031981166301ffc9a760e01b14919050565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b600060016122ea846110c5565b6122f4919061328b565b600083815260076020526040902054909150808214612347576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b60085460009061238c9060019061328b565b600083815260096020526040812054600880549394509092849081106123c257634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080600883815481106123f157634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061243757634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061245e836110c5565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b8280546124a3906132ce565b90600052602060002090601f0160209004810192826124c5576000855561250b565b82601f106124de57805160ff191683800117855561250b565b8280016001018555821561250b579182015b8281111561250b5782518255916020019190600101906124f0565b5061251792915061251b565b5090565b5b80821115612517576000815560010161251c565b600067ffffffffffffffff8084111561254b5761254b613364565b604051601f8501601f19908116603f0116810190828211818310171561257357612573613364565b8160405280935085815286868601111561258c57600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b03811681146107f957600080fd5b60008083601f8401126125ce578081fd5b50813567ffffffffffffffff8111156125e5578182fd5b60208301915083602080830285010111156125ff57600080fd5b9250929050565b600060208284031215612617578081fd5b611749826125a6565b60008060408385031215612632578081fd5b61263b836125a6565b9150612649602084016125a6565b90509250929050565b600080600060608486031215612666578081fd5b61266f846125a6565b925061267d602085016125a6565b9150604084013590509250925092565b600080600080608085870312156126a2578081fd5b6126ab856125a6565b93506126b9602086016125a6565b925060408501359150606085013567ffffffffffffffff8111156126db578182fd5b8501601f810187136126eb578182fd5b6126fa87823560208401612530565b91505092959194509250565b60008060006040848603121561271a578283fd5b612723846125a6565b9250602084013567ffffffffffffffff81111561273e578283fd5b61274a868287016125bd565b9497909650939450505050565b60008060408385031215612769578182fd5b612772836125a6565b915060208301358015158114612786578182fd5b809150509250929050565b600080604083850312156127a3578182fd5b6127ac836125a6565b946020939093013593505050565b600080602083850312156127cc578182fd5b823567ffffffffffffffff8111156127e2578283fd5b6127ee858286016125bd565b90969095509350505050565b60008060006040848603121561280e578283fd5b833567ffffffffffffffff811115612824578384fd5b612830868287016125bd565b909790965060209590950135949350505050565b600060208284031215612855578081fd5b5035919050565b60006020828403121561286d578081fd5b81356117498161337a565b600060208284031215612889578081fd5b81516117498161337a565b6000602082840312156128a5578081fd5b813567ffffffffffffffff8111156128bb578182fd5b8201601f810184136128cb578182fd5b611a9184823560208401612530565b600080604083850312156128ec578182fd5b82359150612649602084016125a6565b600080600060408486031215612910578081fd5b83359250602084013567ffffffffffffffff81111561273e578182fd5b6000806040838503121561293f578182fd5b50508035926020909101359150565b600081518084526129668160208601602086016132a2565b601f01601f19169290920160200192915050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b600083516129a98184602088016132a2565b8351908301906129bd8183602088016132a2565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612a1d9083018461294e565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b600060208252611749602083018461294e565b60208082526018908201527f4e6f7420656e6f756768206c65667420746f206d696e742e0000000000000000604082015260600190565b6020808252601a908201527f45524332393831526f79616c746965733a20546f6f2068696768000000000000604082015260600190565b60208082526024908201527f49742773206e6f7420706f737369626c6520746f20636c61696d206a757374206040820152633cb2ba1760e11b606082015260800190565b6020808252601390820152724e6f7468696e6720746f20776974686472617760681b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b6020808252601d908201527f596f752063616e2774206561726c7920636c61696d20616e796d6f7265000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b60208082526015908201527424b73b30b634b21026b2b935b63290283937b7b31760591b604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252601f908201527f4e756d626572206e65656420746f20626520686967686572207468616e203000604082015260600190565b6020808252601690820152752cb7bab91030b932903737ba103a34329037bbb732b960511b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b60208082526022908201527f796f752063616e277420636c61696d2074686174206d756368206174206f756e604082015261636560f01b606082015260800190565b60208082526023908201527f45746865722076616c75652073656e742069732062656c6f772074686520707260408201526269636560e81b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f796f752063616e2774206561726c7920636c61696d2074686174206d75636800604082015260600190565b6020808252602f908201527f5075626c6963206d696e74206973206f70656e2c207468652077686974656c6960408201526e39ba1036b4b73a1034b99037bb32b960891b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252600f908201526e139bdd081cdd185c9d1959081e595d608a1b604082015260600190565b6000821982111561325357613253613338565b500190565b6000826132675761326761334e565b500490565b600081600019048311821515161561328657613286613338565b500290565b60008282101561329d5761329d613338565b500390565b60005b838110156132bd5781810151838201526020016132a5565b838111156116c15750506000910152565b6002810460018216806132e257607f821691505b6020821081141561330357634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561331d5761331d613338565b5060010190565b6000826133335761333361334e565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610e4057600080fdfea2646970667358221220de2a8d7516c77b6b5db3d8357357ff7df18c61a243fc2bb32b583455d09f158c64736f6c6343000801003300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000005f9948bd34239a3b9ae21a0bd93f8ab1b0628e99cadd5f5361d0da5b29e9e091308c1a6aa7787b55581ce81f92f4ea5b3b9b7032000000000000000000000000000000000000000000000000000000006328c338000000000000000000000000000000000000000000000000000000006328bc30000000000000000000000000000000000000000000000000000000000000000e506f736974697665205669626573000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000443435056000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d4e6f54364c443170483345413931446a7269576658453473435331646473714d5062695050544d676f7548692f00000000000000000000