[ { "inputs": [], "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": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "MessageFailed", "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" }, { "inputs": [ { "internalType": "address[]", "name": "_addressToWhitelist", "type": "address[]" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "addUser", "outputs": [], "stateMutability": "nonpayable", "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": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "failedMessages", "outputs": [ { "internalType": "uint256", "name": "payloadLength", "type": "uint256" }, { "internalType": "bytes32", "name": "payloadHash", "type": "bytes32" } ], "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": "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": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxMintable_", "type": "uint256" }, { "internalType": "uint256", "name": "maxPerWallet_", "type": "uint256" } ], "name": "maxValues", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "mintByOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "onLzReceive", "outputs": [], "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": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "privateSale", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "publicSale", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "publicTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "retryMessage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "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": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "customBaseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newVal", "type": "uint256" } ], "name": "setGasForDestinationLzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "priceInMilli", "type": "uint256" }, { "internalType": "uint256", "name": "wlPriceInMilli", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "privateTime_", "type": "uint256" }, { "internalType": "uint256", "name": "publicTime_", "type": "uint256" } ], "name": "setPrivateAndPublicSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "bytes", "name": "_trustedRemote", "type": "bytes" } ], "name": "setTrustedRemote", "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": "user", "type": "address" } ], "name": "tokenIdsOfUser", "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": [ { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "traverseChains", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "trustedRemoteLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addy", "type": "address" } ], "name": "wlMintsAllowed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "wlTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
6000600f5561022b60135560e0604052600560a090815264173539b7b760d91b60c05260159062000031908262000298565b50620557306019553480156200004657600080fd5b5060135460405180604001604052806006815260200165141a5e10d85d60d21b815250604051806040016040528060048152602001631410d05560e21b815250816000908162000097919062000298565b506001620000a6828262000298565b505050620000c3620000bd6200019d60201b60201c565b620001a1565b6080908152604080519182019052604380825262003d176020830139601490620000ee908262000298565b506702c68af0bb140000601155670214e8348c4f00006012556101f4601655602860175561022b601855601f805460ff19166001179055600c80546001600160a01b03199081167393f54d755a063ce7bb9e6ac47eccc8e33411d70617909155601a80548216738654fe925701a6cb66c1cba2786ef4d3a68ad6fe179055601b805482167356101afa0e51cc3cc7e006539598a73ad5c581d3908117909155601c805490921617905562000364565b3390565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200021e57607f821691505b6020821081036200023f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029357600081815260208120601f850160051c810160208610156200026e5750805b601f850160051c820191505b818110156200028f578281556001016200027a565b5050505b505050565b81516001600160401b03811115620002b457620002b4620001f3565b620002cc81620002c5845462000209565b8462000245565b602080601f831160018114620003045760008415620002eb5750858301515b600019600386901b1c1916600185901b1785556200028f565b600085815260208120601f198616915b82811015620003355788860151825594840194600190910190840162000314565b5085821015620003545787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805161399762000380600039600061234001526139976000f3fe6080604052600436106102c15760003560e01c806370a082311161017f578063a22cb465116100e1578063e985e9c51161008a578063f4bb381811610064578063f4bb381814610857578063f7d9757714610877578063fa50004d1461089757600080fd5b8063e985e9c5146107ce578063eb8d72b714610817578063f2fde38b1461083757600080fd5b8063c87b56dd116100bb578063c87b56dd14610788578063cf89fa03146107a8578063d1deba1f146107bb57600080fd5b8063a22cb46514610733578063b88d4fde14610753578063ba1f879f1461077357600080fd5b80638ee749121161014357806398c893d11161011d57806398c893d1146106d35780639a5ba115146106f3578063a0712d681461072057600080fd5b80638ee7491214610633578063943fb8721461069e57806395d89b41146106be57600080fd5b806370a08231146105ab578063715018a6146105cb5780637533d788146105e05780638456cb59146106005780638da5cb5b1461061557600080fd5b80632a55205a1161022857806342842e0e116101ec57806355f804b3116101c657806355f804b3146105515780635c975abb146105715780636352211e1461058b57600080fd5b806342842e0e146104f157806342966c68146105115780634f6ccce71461053157600080fd5b80632a55205a146104465780632f745c591461048557806333bc1c5c146104a55780633542aee2146104bc5780633f4ba83a146104dc57600080fd5b8063095ea7b31161028a5780631c37a822116102645780631c37a822146103e65780631e7459541461040657806323b872dd1461042657600080fd5b8063095ea7b31461039b57806318160ddd146103bb5780631bdc608e146103d057600080fd5b80621d3567146102c657806301ffc9a7146102e8578063058d9bf91461031d57806306fdde0314610341578063081812fc14610363575b600080fd5b3480156102d257600080fd5b506102e66102e1366004612d7b565b6108cd565b005b3480156102f457600080fd5b50610308610303366004612e16565b610ad1565b60405190151581526020015b60405180910390f35b34801561032957600080fd5b50610333601d5481565b604051908152602001610314565b34801561034d57600080fd5b50610356610b02565b6040516103149190612e83565b34801561036f57600080fd5b5061038361037e366004612e96565b610b94565b6040516001600160a01b039091168152602001610314565b3480156103a757600080fd5b506102e66103b6366004612ec4565b610bbb565b3480156103c757600080fd5b50600854610333565b3480156103dc57600080fd5b50610333601e5481565b3480156103f257600080fd5b506102e6610401366004612d7b565b610cd0565b34801561041257600080fd5b506102e6610421366004612ef0565b610d3f565b34801561043257600080fd5b506102e6610441366004612f12565b610d52565b34801561045257600080fd5b50610466610461366004612ef0565b610dcb565b604080516001600160a01b039093168352602083019190915201610314565b34801561049157600080fd5b506103336104a0366004612ec4565b610e06565b3480156104b157600080fd5b50601e544211610308565b3480156104c857600080fd5b506102e66104d7366004612ec4565b610e9c565b3480156104e857600080fd5b506102e6610eca565b3480156104fd57600080fd5b506102e661050c366004612f12565b610ede565b34801561051d57600080fd5b506102e661052c366004612e96565b610ef9565b34801561053d57600080fd5b5061033361054c366004612e96565b610f71565b34801561055d57600080fd5b506102e661056c366004612f53565b611004565b34801561057d57600080fd5b50601f546103089060ff1681565b34801561059757600080fd5b506103836105a6366004612e96565b61101c565b3480156105b757600080fd5b506103336105c6366004612f9c565b611081565b3480156105d757600080fd5b506102e6611107565b3480156105ec57600080fd5b506103566105fb366004612fb9565b61111b565b34801561060c57600080fd5b506102e66111b5565b34801561062157600080fd5b50600b546001600160a01b0316610383565b34801561063f57600080fd5b5061068961064e366004612fd4565b600d60209081526000938452604080852084518086018401805192815290840195840195909520945292905282529020805460019091015482565b60408051928352602083019190915201610314565b3480156106aa57600080fd5b506102e66106b9366004612e96565b6111cc565b3480156106ca57600080fd5b506103566111d9565b3480156106df57600080fd5b506102e66106ee36600461302b565b6111e8565b3480156106ff57600080fd5b5061071361070e366004612f9c565b611253565b60405161031491906130a6565b6102e661072e366004612e96565b6112f5565b34801561073f57600080fd5b506102e661074e3660046130ea565b611647565b34801561075f57600080fd5b506102e661076e366004613128565b611652565b34801561077f57600080fd5b506103086116cb565b34801561079457600080fd5b506103566107a3366004612e96565b6116e7565b6102e66107b6366004613188565b61171b565b6102e66107c93660046131e6565b6119a6565b3480156107da57600080fd5b506103086107e9366004613272565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561082357600080fd5b506102e66108323660046132a0565b611b34565b34801561084357600080fd5b506102e6610852366004612f9c565b611b9e565b34801561086357600080fd5b506102e6610872366004612ef0565b611c14565b34801561088357600080fd5b506102e6610892366004612ef0565b611c27565b3480156108a357600080fd5b506103336108b2366004612f9c565b6001600160a01b031660009081526021602052604090205490565b600c546001600160a01b031633146108e457600080fd5b61ffff84166000908152600e602052604090208054610902906132f3565b90508351148015610941575061ffff84166000908152600e602052604090819020905161092f91906133a0565b60405180910390208380519060200120145b6109b85760405162461bcd60e51b815260206004820152603460248201527f4e6f6e626c6f636b696e6752656365697665723a20696e76616c696420736f7560448201527f7263652073656e64696e6720636f6e747261637400000000000000000000000060648201526084015b60405180910390fd5b604051630e1bd41160e11b81523090631c37a822906109e19087908790879087906004016133ac565b600060405180830381600087803b1580156109fb57600080fd5b505af1925050508015610a0c575060015b610acb576040518060400160405280825181526020018280519060200120815250600d60008661ffff1661ffff16815260200190815260200160002084604051610a5691906133f6565b90815260408051918290036020908101832067ffffffffffffffff8716600090815290825291909120835181559201516001909201919091557fe6f254030bcb01ffd20558175c13fcaed6d1520be7becee4c961b65f79243b0d90610ac29086908690869086906133ac565b60405180910390a15b50505050565b6000636ad56fd360e11b6001600160e01b0319831601610af357506001919050565b610afc82611c5b565b92915050565b606060008054610b11906132f3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3d906132f3565b8015610b8a5780601f10610b5f57610100808354040283529160200191610b8a565b820191906000526020600020905b815481529060010190602001808311610b6d57829003601f168201915b5050505050905090565b6000610b9f82611c80565b506000908152600460205260409020546001600160a01b031690565b6000610bc68261101c565b9050806001600160a01b0316836001600160a01b031603610c335760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016109af565b336001600160a01b0382161480610c4f5750610c4f81336107e9565b610cc15760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016109af565b610ccb8383611ce4565b505050565b333014610d335760405162461bcd60e51b815260206004820152602b60248201527f4e6f6e626c6f636b696e6752656365697665723a2063616c6c6572206d75737460448201526a10313290213934b233b29760a91b60648201526084016109af565b610acb84848484611d52565b610d47611d7f565b601d91909155601e55565b610d5d335b82611dd9565b610dc05760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526d1c881b9bdc88185c1c1c9bdd995960921b60648201526084016109af565b610ccb838383611e58565b601c5460165460009182916001600160a01b039091169061271090610df09086613428565b610dfa919061345d565b915091505b9250929050565b6000610e1183611081565b8210610e735760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016109af565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b610ea4611d7f565b60005b81811015610ccb57610eb883611fff565b80610ec281613471565b915050610ea7565b610ed2611d7f565b601f805460ff19169055565b610ccb83838360405180602001604052806000815250611652565b610f0233610d57565b610f655760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526d1c881b9bdc88185c1c1c9bdd995960921b60648201526084016109af565b610f6e81612021565b50565b6000610f7c60085490565b8210610fdf5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016109af565b60088281548110610ff257610ff261348a565b90600052602060002001549050919050565b61100c611d7f565b601461101882826134e6565b5050565b6000818152600260205260408120546001600160a01b031680610afc5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109af565b60006001600160a01b0382166110eb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016109af565b506001600160a01b031660009081526003602052604090205490565b61110f611d7f565b611119600061202a565b565b600e6020526000908152604090208054611134906132f3565b80601f0160208091040260200160405190810160405280929190818152602001828054611160906132f3565b80156111ad5780601f10611182576101008083540402835291602001916111ad565b820191906000526020600020905b81548152906001019060200180831161119057829003601f168201915b505050505081565b6111bd611d7f565b601f805460ff19166001179055565b6111d4611d7f565b601955565b606060018054610b11906132f3565b6111f0611d7f565b60005b82811015610acb5781602160008686858181106112125761121261348a565b90506020020160208101906112279190612f9c565b6001600160a01b031681526020810191909152604001600020558061124b81613471565b9150506111f3565b6060600061126083611081565b905060008167ffffffffffffffff81111561127d5761127d612cb7565b6040519080825280602002602001820160405280156112a6578160200160208202803683370190505b50905060005b828110156112ed576112be8582610e06565b8282815181106112d0576112d061348a565b6020908102919091010152806112e581613471565b9150506112ac565b509392505050565b6112fd6116cb565b156113da57336000908152602160205260409020548111156113615760405162461bcd60e51b815260206004820152600f60248201527f6e6f742077686974656c6973746564000000000000000000000000000000000060448201526064016109af565b8060125461136f9190613428565b3410156113b05760405162461bcd60e51b815260206004820152600f60248201526e09cdee840cadcdeeaced04082ac82b608b1b60448201526064016109af565b33600090815260216020526040812080548392906113cf9084906135a6565b909155506114a49050565b601e544211156114a45760185433600090815260208052604090205411156114315760405162461bcd60e51b815260206004820152600a6024820152690dad2dce8cac840dac2f60b31b60448201526064016109af565b8060115461143f9190613428565b3410156114805760405162461bcd60e51b815260206004820152600f60248201526e09cdee840cadcdeeaced04082ac82b608b1b60448201526064016109af565b3360009081526020805260408120805483929061149e9084906135b9565b90915550505b601354816114b160085490565b6114bb91906135b9565b106115085760405162461bcd60e51b815260206004820152601160248201527f6d696e74696e672068617320656e64656400000000000000000000000000000060448201526064016109af565b601f5460ff16156115495760405162461bcd60e51b815260206004820152600b60248201526a3737ba1030b1ba34bb329760a91b60448201526064016109af565b60175481111561159b5760405162461bcd60e51b815260206004820152601460248201527f6d6f7265207468616e206d61782070657220747800000000000000000000000060448201526064016109af565b601a546001600160a01b03166108fc6115b560023461345d565b6040518115909202916000818181858888f193505050501580156115dd573d6000803e3d6000fd5b50601b546001600160a01b03166108fc6115f860023461345d565b6040518115909202916000818181858888f19350505050158015611620573d6000803e3d6000fd5b5060005b818110156110185761163533611fff565b8061163f81613471565b915050611624565b61101833838361207c565b61165c3383611dd9565b6116bf5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526d1c881b9bdc88185c1c1c9bdd995960921b60648201526084016109af565b610acb8484848461214a565b601d54600090819042118015610afc5750601e54421092915050565b60606116f2826121c8565b60156040516020016117059291906135cc565b6040516020818303038152906040529050919050565b6117248161101c565b6001600160a01b0316336001600160a01b0316146117845760405162461bcd60e51b815260206004820152601660248201527f596f75206d757374206f776e2074686520746f6b656e0000000000000000000060448201526064016109af565b61ffff82166000908152600e6020526040812080546117a2906132f3565b9050116117f15760405162461bcd60e51b815260206004820152601960248201527f5468697320636861696e20697320756e617661696c61626c650000000000000060448201526064016109af565b6117fa81612021565b60408051336020820152808201839052815180820383018152606082018352601954600160f01b60808401526082808401919091528351808403909101815260a2830193849052600c5463040a7bb160e41b90945290926001926000916001600160a01b0316906340a7bb109061187d908990309089908790899060a6016135f3565b6040805180830381865afa158015611899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd9190613645565b509050803410156119215760405162461bcd60e51b815260206004820152602860248201527f6d73672e76616c7565206e6f7420656e6f75676820746f20636f766572206d65604482015267737361676546656560c01b60648201526084016109af565b600c5461ffff87166000908152600e6020526040808220905162c5803160e81b81526001600160a01b039093169263c580310092349261196c928c928b913391908b90600401613669565b6000604051808303818588803b15801561198557600080fd5b505af1158015611999573d6000803e3d6000fd5b5050505050505050505050565b61ffff85166000908152600d602052604080822090516119c79087906133f6565b908152604080516020928190038301902067ffffffffffffffff87166000908152925290206001810154909150611a4f5760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e6752656365697665723a206e6f2073746f726564206d60448201526565737361676560d01b60648201526084016109af565b805482148015611a79575080600101548383604051611a6f92919061374e565b6040518091039020145b611ac55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964207061796c6f616400000000000060448201526064016109af565b60008082556001820155604051630e1bd41160e11b81523090631c37a82290611afa908990899089908990899060040161375e565b600060405180830381600087803b158015611b1457600080fd5b505af1158015611b28573d6000803e3d6000fd5b50505050505050505050565b33738654fe925701a6cb66c1cba2786ef4d3a68ad6fe14611b805760405162461bcd60e51b81526020600482015260066024820152651b9bc81b1bdb60d21b60448201526064016109af565b61ffff83166000908152600e60205260409020610acb8284836137c0565b611ba6611d7f565b6001600160a01b038116611c0b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109af565b610f6e8161202a565b611c1c611d7f565b601391909155601855565b611c2f611d7f565b611c408266038d7ea4c68000613428565b601155611c548166038d7ea4c68000613428565b6012555050565b60006001600160e01b0319821663780e9d6360e01b1480610afc5750610afc826122c3565b6000818152600260205260409020546001600160a01b0316610f6e5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109af565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611d198261101c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008082806020019051810190611d699190613881565b91509150611d778282612313565b505050505050565b600b546001600160a01b031633146111195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109af565b600080611de58361101c565b9050806001600160a01b0316846001600160a01b03161480611e2c57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80611e505750836001600160a01b0316611e4584610b94565b6001600160a01b0316145b949350505050565b826001600160a01b0316611e6b8261101c565b6001600160a01b031614611ecf5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016109af565b6001600160a01b038216611f315760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016109af565b611f3c83838361232d565b611f47600082611ce4565b6001600160a01b0383166000908152600360205260408120805460019290611f709084906135a6565b90915550506001600160a01b0382166000908152600360205260408120805460019290611f9e9084906135b9565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000600161200b612338565b61201591906135b9565b90506110188282612313565b610f6e81612440565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036120dd5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016109af565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612155848484611e58565b61216184848484612480565b610acb5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016109af565b60606121d382611c80565b6000828152600a6020526040812080546121ec906132f3565b80601f0160208091040260200160405190810160405280929190818152602001828054612218906132f3565b80156122655780601f1061223a57610100808354040283529160200191612265565b820191906000526020600020905b81548152906001019060200180831161224857829003601f168201915b5050505050905060006122766125cc565b90508051600003612288575092915050565b8151156122ba5780826040516020016122a29291906138af565b60405160208183030381529060405292505050919050565b611e50846125db565b60006001600160e01b031982166380ac58cd60e01b14806122f457506001600160e01b03198216635b5e139f60e01b145b80610afc57506301ffc9a760e01b6001600160e01b0319831614610afc565b611018828260405180602001604052806000815250612642565b610ccb8383836126c0565b600080600f547f000000000000000000000000000000000000000000000000000000000000000061236991906135a6565b9050600080600083612379612778565b61238391906138de565b9050601060006123946001876135a6565b8152602001908152602001600020546000036123bc576123b56001856135a6565b92506123dd565b601060006123cb6001876135a6565b81526020019081526020016000205492505b600081815260106020526040812054900361240b576000818152601060205260409020839055905080612422565b600081815260106020526040902080549084905591505b600f805490600061243283613471565b909155509195945050505050565b612449816127b4565b6000818152600a602052604090208054612462906132f3565b159050610f6e576000818152600a60205260408120610f6e91612c52565b60006001600160a01b0384163b156125c157604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906124c49033908990889088906004016138f2565b6020604051808303816000875af19250505080156124ff575060408051601f3d908101601f191682019092526124fc9181019061392e565b60015b6125a7573d80801561252d576040519150601f19603f3d011682016040523d82523d6000602084013e612532565b606091505b50805160000361259f5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016109af565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611e50565b506001949350505050565b606060148054610b11906132f3565b60606125e682611c80565b60006125f06125cc565b90506000815111612610576040518060200160405280600081525061263b565b8061261a8461285b565b60405160200161262b9291906138af565b6040516020818303038152906040525b9392505050565b61264c8383612974565b6126596000848484612480565b610ccb5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016109af565b6001600160a01b03831661271b5761271681600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61273e565b816001600160a01b0316836001600160a01b03161461273e5761273e8382612ac2565b6001600160a01b03821661275557610ccb81612b5f565b826001600160a01b0316826001600160a01b031614610ccb57610ccb8282612c0e565b60004442604051602001612796929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c905090565b60006127bf8261101c565b90506127cd8160008461232d565b6127d8600083611ce4565b6001600160a01b03811660009081526003602052604081208054600192906128019084906135a6565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6060816000036128825750506040805180820190915260018152600360fc1b602082015290565b8160005b81156128ac578061289681613471565b91506128a59050600a8361345d565b9150612886565b60008167ffffffffffffffff8111156128c7576128c7612cb7565b6040519080825280601f01601f1916602001820160405280156128f1576020820181803683370190505b5090505b8415611e50576129066001836135a6565b9150612913600a866138de565b61291e9060306135b9565b60f81b8183815181106129335761293361348a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061296d600a8661345d565b94506128f5565b6001600160a01b0382166129ca5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016109af565b6000818152600260205260409020546001600160a01b031615612a2f5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109af565b612a3b6000838361232d565b6001600160a01b0382166000908152600360205260408120805460019290612a649084906135b9565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001612acf84611081565b612ad991906135a6565b600083815260076020526040902054909150808214612b2c576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090612b71906001906135a6565b60008381526009602052604081205460088054939450909284908110612b9957612b9961348a565b906000526020600020015490508060088381548110612bba57612bba61348a565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480612bf257612bf261394b565b6001900381819060005260206000200160009055905550505050565b6000612c1983611081565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b508054612c5e906132f3565b6000825580601f10612c6e575050565b601f016020900490600052602060002090810190610f6e91905b80821115612c9c5760008155600101612c88565b5090565b803561ffff81168114612cb257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612ce857612ce8612cb7565b604051601f8501601f19908116603f01168101908282118183101715612d1057612d10612cb7565b81604052809350858152868686011115612d2957600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112612d5457600080fd5b61263b83833560208501612ccd565b803567ffffffffffffffff81168114612cb257600080fd5b60008060008060808587031215612d9157600080fd5b612d9a85612ca0565b9350602085013567ffffffffffffffff80821115612db757600080fd5b612dc388838901612d43565b9450612dd160408801612d63565b93506060870135915080821115612de757600080fd5b50612df487828801612d43565b91505092959194509250565b6001600160e01b031981168114610f6e57600080fd5b600060208284031215612e2857600080fd5b813561263b81612e00565b60005b83811015612e4e578181015183820152602001612e36565b50506000910152565b60008151808452612e6f816020860160208601612e33565b601f01601f19169290920160200192915050565b60208152600061263b6020830184612e57565b600060208284031215612ea857600080fd5b5035919050565b6001600160a01b0381168114610f6e57600080fd5b60008060408385031215612ed757600080fd5b8235612ee281612eaf565b946020939093013593505050565b60008060408385031215612f0357600080fd5b50508035926020909101359150565b600080600060608486031215612f2757600080fd5b8335612f3281612eaf565b92506020840135612f4281612eaf565b929592945050506040919091013590565b600060208284031215612f6557600080fd5b813567ffffffffffffffff811115612f7c57600080fd5b8201601f81018413612f8d57600080fd5b611e5084823560208401612ccd565b600060208284031215612fae57600080fd5b813561263b81612eaf565b600060208284031215612fcb57600080fd5b61263b82612ca0565b600080600060608486031215612fe957600080fd5b612ff284612ca0565b9250602084013567ffffffffffffffff81111561300e57600080fd5b61301a86828701612d43565b925050604084013590509250925092565b60008060006040848603121561304057600080fd5b833567ffffffffffffffff8082111561305857600080fd5b818601915086601f83011261306c57600080fd5b81358181111561307b57600080fd5b8760208260051b850101111561309057600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b818110156130de578351835292840192918401916001016130c2565b50909695505050505050565b600080604083850312156130fd57600080fd5b823561310881612eaf565b91506020830135801515811461311d57600080fd5b809150509250929050565b6000806000806080858703121561313e57600080fd5b843561314981612eaf565b9350602085013561315981612eaf565b925060408501359150606085013567ffffffffffffffff81111561317c57600080fd5b612df487828801612d43565b6000806040838503121561319b57600080fd5b612ee283612ca0565b60008083601f8401126131b657600080fd5b50813567ffffffffffffffff8111156131ce57600080fd5b602083019150836020828501011115610dff57600080fd5b6000806000806000608086880312156131fe57600080fd5b61320786612ca0565b9450602086013567ffffffffffffffff8082111561322457600080fd5b61323089838a01612d43565b955061323e60408901612d63565b9450606088013591508082111561325457600080fd5b50613261888289016131a4565b969995985093965092949392505050565b6000806040838503121561328557600080fd5b823561329081612eaf565b9150602083013561311d81612eaf565b6000806000604084860312156132b557600080fd5b6132be84612ca0565b9250602084013567ffffffffffffffff8111156132da57600080fd5b6132e6868287016131a4565b9497909650939450505050565b600181811c9082168061330757607f821691505b60208210810361332757634e487b7160e01b600052602260045260246000fd5b50919050565b6000815461333a816132f3565b60018281168015613352576001811461336757613396565b60ff1984168752821515830287019450613396565b8560005260208060002060005b8581101561338d5781548a820152908401908201613374565b50505082870194505b5050505092915050565b600061263b828461332d565b61ffff851681526080602082015260006133c96080830186612e57565b67ffffffffffffffff8516604084015282810360608401526133eb8185612e57565b979650505050505050565b60008251613408818460208701612e33565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561344257613442613412565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261346c5761346c613447565b500490565b60006001820161348357613483613412565b5060010190565b634e487b7160e01b600052603260045260246000fd5b601f821115610ccb57600081815260208120601f850160051c810160208610156134c75750805b601f850160051c820191505b81811015611d77578281556001016134d3565b815167ffffffffffffffff81111561350057613500612cb7565b6135148161350e84546132f3565b846134a0565b602080601f83116001811461354957600084156135315750858301515b600019600386901b1c1916600185901b178555611d77565b600085815260208120601f198616915b8281101561357857888601518255948401946001909101908401613559565b50858210156135965787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610afc57610afc613412565b80820180821115610afc57610afc613412565b600083516135de818460208801612e33565b6135ea8184018561332d565b95945050505050565b61ffff861681526001600160a01b038516602082015260a06040820152600061361f60a0830186612e57565b841515606084015282810360808401526136398185612e57565b98975050505050505050565b6000806040838503121561365857600080fd5b505080516020909101519092909150565b61ffff871681526000602060c08184015260008854613687816132f3565b8060c087015260e06001808416600081146136a957600181146136c3576136f1565b60ff1985168984015283151560051b8901830195506136f1565b8d6000528660002060005b858110156136e95781548b82018601529083019088016136ce565b8a0184019650505b505050505083810360408501526137088189612e57565b91505061372060608401876001600160a01b03169052565b6001600160a01b038516608084015282810360a08401526137418185612e57565b9998505050505050505050565b8183823760009101908152919050565b61ffff8616815260806020820152600061377b6080830187612e57565b67ffffffffffffffff861660408401528281036060840152838152838560208301376000602085830101526020601f19601f8601168201019150509695505050505050565b67ffffffffffffffff8311156137d8576137d8612cb7565b6137ec836137e683546132f3565b836134a0565b6000601f84116001811461382057600085156138085750838201355b600019600387901b1c1916600186901b17835561387a565b600083815260209020601f19861690835b828110156138515786850135825560209485019460019092019101613831565b508682101561386e5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6000806040838503121561389457600080fd5b825161389f81612eaf565b6020939093015192949293505050565b600083516138c1818460208801612e33565b8351908301906138d5818360208801612e33565b01949350505050565b6000826138ed576138ed613447565b500690565b60006001600160a01b038087168352808616602084015250836040830152608060608301526139246080830184612e57565b9695505050505050565b60006020828403121561394057600080fd5b815161263b81612e00565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220ae102867cbdbe594bfa91246d19205859d90610b6c5ad8c58080f832f16efa0964736f6c63430008100033697066733a2f2f626166796265696172616d6134726975657335617034717565786c646d6c7070683474747376353371766161677034686a7a647a336e69363679652f