[ { "inputs": [ { "internalType": "address", "name": "_layerZeroEndpoint", "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": "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": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_TXN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PROVENANCE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "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": [], "name": "destGasAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "donate", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" } ], "name": "estimateFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "forceResumeReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numOfTokens", "type": "uint256" } ], "name": "freeMint", "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": [], "name": "lastTokId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "layerZeroEndpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpoint", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "metadataBaseURL", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintedSupply", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "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": "uint16", "name": "", "type": "uint16" } ], "name": "remotes", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "num", "type": "uint256" } ], "name": "reserve", "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": [], "name": "saleEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "baseURL", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" }, { "internalType": "bytes", "name": "_config", "type": "bytes" } ], "name": "setConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setDestGasAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_last", "type": "uint256" } ], "name": "setLastTokenId", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_layerZeroEndpoint", "type": "address" } ], "name": "setLayerZeroEndpoint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxTxn", "type": "uint256" } ], "name": "setMaxTxn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_provenance", "type": "string" } ], "name": "setProvenance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "version", "type": "uint16" } ], "name": "setReceiveVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "setRemote", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "version", "type": "uint16" } ], "name": "setSendVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "toggleSaleStatus", "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": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" } ], "name": "transferToChain", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052620493e0600d55600e805461ffff19169055610d0860115560026012553480156200002e57600080fd5b50604051620036b7380380620036b7833981016040819052620000519162000201565b60408051808201825260098152684f6d6e694d6665727360b81b6020808301918252835180850190945260068452654f4d4645525360d01b908401528151919291620000a0916000916200015b565b508051620000b69060019060208401906200015b565b505050620000d3620000cd6200010560201b60201c565b62000109565b600e805462ff000019169055600b80546001600160a01b0319166001600160a01b039290921691909117905562000270565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001699062000233565b90600052602060002090601f0160209004810192826200018d5760008555620001d8565b82601f10620001a857805160ff1916838001178555620001d8565b82800160010185558215620001d8579182015b82811115620001d8578251825591602001919060010190620001bb565b50620001e6929150620001ea565b5090565b5b80821115620001e65760008155600101620001eb565b6000602082840312156200021457600080fd5b81516001600160a01b03811681146200022c57600080fd5b9392505050565b600181811c908216806200024857607f821691505b602082108114156200026a57634e487b7160e01b600052602260045260246000fd5b50919050565b61343780620002806000396000f3fe6080604052600436106102ad5760003560e01c80636373a6b111610175578063a22cb465116100dc578063e81f35fd11610095578063f2fde38b1161006f578063f2fde38b14610832578063fc588c0414610852578063fdd578ba14610872578063ffe630b51461088857600080fd5b8063e81f35fd146107c9578063e985e9c5146107e9578063ed88c68e146102d257600080fd5b8063a22cb46514610705578063b88d4fde14610725578063c1bd8cf914610745578063c87b56dd14610773578063cbed8b9c14610793578063db7e0c7e146107b357600080fd5b8063819b25ba1161012e578063819b25ba1461065c57806389eb03d21461067c5780638da5cb5b1461069257806395b9783c146106b057806395d89b41146106d05780639d1f6113146106e557600080fd5b80636373a6b1146105bf57806370a08231146105d4578063715018a6146105f457806371b9b64614610609578063780c8187146106295780637c928fe91461064957600080fd5b806323b872dd1161021957806342d65a8d116101d257806342d65a8d146104f75780634946d603146105175780634f6ccce71461052a57806355f804b31461054a578063584c9ac61461056a5780636352211e1461059f57600080fd5b806323b872dd1461044c5780632f745c591461046c57806332cb6b0c1461048c5780633ccfd60b146104a257806342842e0e146104b757806342966c68146104d757600080fd5b8063081812fc1161026b578063081812fc14610398578063095ea7b3146103b857806310da2eb9146103d857806310ddb137146103ed57806318160ddd1461040d57806320cdd0a11461042c57600080fd5b80621d3567146102b257806301ffc9a7146102d4578063049c5c491461030957806306fdde031461031e57806307968db11461034057806307e0db1714610378575b600080fd5b3480156102be57600080fd5b506102d26102cd366004612a70565b6108a8565b005b3480156102e057600080fd5b506102f46102ef366004612b16565b6109df565b60405190151581526020015b60405180910390f35b34801561031557600080fd5b506102d26109f0565b34801561032a57600080fd5b50610333610a39565b6040516103009190612b8b565b34801561034c57600080fd5b50600b54610360906001600160a01b031681565b6040516001600160a01b039091168152602001610300565b34801561038457600080fd5b506102d2610393366004612b9e565b610acb565b3480156103a457600080fd5b506103606103b3366004612bbb565b610b5a565b3480156103c457600080fd5b506102d26103d3366004612be9565b610bef565b3480156103e457600080fd5b50610333610d05565b3480156103f957600080fd5b506102d2610408366004612b9e565b610d93565b34801561041957600080fd5b506008545b604051908152602001610300565b34801561043857600080fd5b506102d2610447366004612c5e565b610df1565b34801561045857600080fd5b506102d2610467366004612cb3565b610e3f565b34801561047857600080fd5b5061041e610487366004612be9565b610e71565b34801561049857600080fd5b5061041e61022b81565b3480156104ae57600080fd5b506102d2610f07565b3480156104c357600080fd5b506102d26104d2366004612cb3565b610f62565b3480156104e357600080fd5b506102d26104f2366004612bbb565b610f7d565b34801561050357600080fd5b506102d2610512366004612c5e565b610ff7565b6102d2610525366004612cf4565b61108c565b34801561053657600080fd5b5061041e610545366004612bbb565b6113aa565b34801561055657600080fd5b506102d2610565366004612d36565b61143d565b34801561057657600080fd5b5061058a610585366004612cf4565b61147e565b60408051928352602083019190915201610300565b3480156105ab57600080fd5b506103606105ba366004612bbb565b61157d565b3480156105cb57600080fd5b506103336115f4565b3480156105e057600080fd5b5061041e6105ef366004612d7f565b611601565b34801561060057600080fd5b506102d2611688565b34801561061557600080fd5b50600e546102f49062010000900460ff1681565b34801561063557600080fd5b506102d2610644366004612bbb565b6116be565b6102d2610657366004612bbb565b6116ed565b34801561066857600080fd5b506102d2610677366004612bbb565b611897565b34801561068857600080fd5b5061041e60115481565b34801561069e57600080fd5b50600a546001600160a01b0316610360565b3480156106bc57600080fd5b506102d26106cb366004612d7f565b611978565b3480156106dc57600080fd5b506103336119c4565b3480156106f157600080fd5b50610333610700366004612b9e565b6119d3565b34801561071157600080fd5b506102d2610720366004612d9c565b6119ec565b34801561073157600080fd5b506102d2610740366004612dda565b6119f7565b34801561075157600080fd5b50600e546107609061ffff1681565b60405161ffff9091168152602001610300565b34801561077f57600080fd5b5061033361078e366004612bbb565b611a29565b34801561079f57600080fd5b506102d26107ae366004612e3a565b611b04565b3480156107bf57600080fd5b5061041e600d5481565b3480156107d557600080fd5b506102d26107e4366004612bbb565b611bff565b3480156107f557600080fd5b506102f4610804366004612ead565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561083e57600080fd5b506102d261084d366004612d7f565b611c2e565b34801561085e57600080fd5b506102d261086d366004612bbb565b611cc6565b34801561087e57600080fd5b5061041e60125481565b34801561089457600080fd5b506102d26108a3366004612d36565b611cf5565b600b546001600160a01b031633146108bf57600080fd5b61ffff84166000908152600c6020526040902080546108dd90612edb565b9050835114801561091c575061ffff84166000908152600c602052604090819020905161090a9190612f16565b60405180910390208380519060200120145b6109b25760405162461bcd60e51b815260206004820152605660248201527f496e76616c69642072656d6f74652073656e64657220616464726573732e206f60448201527f776e65722073686f756c642063616c6c2073657452656d6f7465282920746f20606482015275195b98589b19481c995b5bdd194818dbdb9d1c9858dd60521b608482015260a4015b60405180910390fd5b600080828060200190518101906109c99190612f88565b915091506109d78282611d32565b505050505050565b60006109ea82611d4c565b92915050565b600a546001600160a01b03163314610a1a5760405162461bcd60e51b81526004016109a990612fb6565b600e805462ff0000198116620100009182900460ff1615909102179055565b606060008054610a4890612edb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7490612edb565b8015610ac15780601f10610a9657610100808354040283529160200191610ac1565b820191906000526020600020905b815481529060010190602001808311610aa457829003601f168201915b5050505050905090565b600a546001600160a01b03163314610af55760405162461bcd60e51b81526004016109a990612fb6565b600b546040516307e0db1760e01b815261ffff831660048201526001600160a01b03909116906307e0db17906024015b600060405180830381600087803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b5050505050565b6000818152600260205260408120546001600160a01b0316610bd35760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016109a9565b506000908152600460205260409020546001600160a01b031690565b6000610bfa8261157d565b9050806001600160a01b0316836001600160a01b03161415610c685760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016109a9565b336001600160a01b0382161480610c845750610c848133610804565b610cf65760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016109a9565b610d008383611d71565b505050565b600f8054610d1290612edb565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e90612edb565b8015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b505050505081565b600a546001600160a01b03163314610dbd5760405162461bcd60e51b81526004016109a990612fb6565b600b546040516310ddb13760e01b815261ffff831660048201526001600160a01b03909116906310ddb13790602401610b25565b600a546001600160a01b03163314610e1b5760405162461bcd60e51b81526004016109a990612fb6565b61ffff83166000908152600c60205260409020610e399083836128a7565b50505050565b610e4a335b82611ddf565b610e665760405162461bcd60e51b81526004016109a990612feb565b610d00838383611ed6565b6000610e7c83611601565b8210610ede5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016109a9565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b03163314610f315760405162461bcd60e51b81526004016109a990612fb6565b6040514790339081906108fc8415029084906000818181858888f19350505050158015610d00573d6000803e3d6000fd5b610d00838383604051806020016040528060008152506119f7565b610f8633610e44565b610feb5760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201526f1b995c881b9bdc88185c1c1c9bdd995960821b60648201526084016109a9565b610ff48161207d565b50565b600a546001600160a01b031633146110215760405162461bcd60e51b81526004016109a990612fb6565b600b546040516342d65a8d60e01b81526001600160a01b03909116906342d65a8d9061105590869086908690600401613065565b600060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b50505050505050565b336110968461157d565b6001600160a01b0316146110e25760405162461bcd60e51b815260206004820152601360248201527229b2b73232b91034b9903737ba1037bbb732b960691b60448201526064016109a9565b61ffff81166000908152600c60205260408120805461110090612edb565b9050116111475760405162461bcd60e51b815260206004820152601560248201527414995b5bdd19481b9bdd0818dbdb999a59dd5c9959605a1b60448201526064016109a9565b6111508361207d565b604080516001600160a01b03848116602080840191909152828401879052835180840385018152606084018552600d54600160f01b60808601526082808601919091528551808603909101815260a29094018552600b5461ffff87166000908152600c909352948220805491956001959416916340a7bb1091889161125e91906111d990612edb565b80601f016020809104026020016040519081016040528092919081815260200182805461120590612edb565b80156112525780601f1061122757610100808354040283529160200191611252565b820191906000526020600020905b81548152906001019060200180831161123557829003601f168201915b50505050506014015190565b876000876040518663ffffffff1660e01b815260040161128295949392919061308c565b6040805180830381865afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c291906130e0565b509050803410156113245760405162461bcd60e51b815260206004820152602660248201527f496e73756666696369656e7420616d6f756e7420746f20636f7665722067617360448201526520636f73747360d01b60648201526084016109a9565b600b5461ffff86166000908152600c6020526040808220905162c5803160e81b81526001600160a01b039093169263c580310092349261136f928b928b913391908b90600401613104565b6000604051808303818588803b15801561138857600080fd5b505af115801561139c573d6000803e3d6000fd5b505050505050505050505050565b60006113b560085490565b82106114185760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016109a9565b6008828154811061142b5761142b6131e4565b90600052602060002001549050919050565b600a546001600160a01b031633146114675760405162461bcd60e51b81526004016109a990612fb6565b805161147a90600f90602084019061292b565b5050565b604080516001600160a01b03848116602080840191909152828401879052835180840385018152606084018552600d54600160f01b60808601526082808601919091528551808603909101815260a29094018552600b5461ffff87166000908152600c90935294822080549295869592946001949116916340a7bb1091899161150a916111d990612edb565b866000866040518663ffffffff1660e01b815260040161152e95949392919061308c565b6040805180830381865afa15801561154a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156e91906130e0565b94509450505050935093915050565b6000818152600260205260408120546001600160a01b0316806109ea5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016109a9565b60108054610d1290612edb565b60006001600160a01b03821661166c5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016109a9565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b031633146116b25760405162461bcd60e51b81526004016109a990612fb6565b6116bc6000612124565b565b600a546001600160a01b031633146116e85760405162461bcd60e51b81526004016109a990612fb6565b600d55565b600e5462010000900460ff1661173c5760405162461bcd60e51b815260206004820152601460248201527329b0b6329036bab9ba1031329030b1ba34bb329760611b60448201526064016109a9565b600e5461022b9061175290839061ffff16613210565b11156117945760405162461bcd60e51b8152602060048201526011602482015270457863656564206d617820737570706c7960781b60448201526064016109a9565b6012548111156117de5760405162461bcd60e51b815260206004820152601560248201527421b0b73a1036b4b73a1036b7b932903a3430b7101960591b60448201526064016109a9565b6000811161182e5760405162461bcd60e51b815260206004820152601a60248201527f4d757374206d696e74206174206c65617374203120746f6b656e00000000000060448201526064016109a9565b60005b8181101561147a57600e805461ffff1690600061184d83613228565b91906101000a81548161ffff021916908361ffff160217905550506118853360116000815461187b9061324a565b9182905550611d32565b8061188f8161324a565b915050611831565b600a546001600160a01b031633146118c15760405162461bcd60e51b81526004016109a990612fb6565b600e5461022b906118d790839061ffff16613210565b11156119195760405162461bcd60e51b8152602060048201526011602482015270457863656564206d617820737570706c7960781b60448201526064016109a9565b60005b8181101561147a57600e805461ffff1690600061193883613228565b91906101000a81548161ffff021916908361ffff160217905550506119663360116000815461187b9061324a565b806119708161324a565b91505061191c565b600a546001600160a01b031633146119a25760405162461bcd60e51b81526004016109a990612fb6565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b606060018054610a4890612edb565b600c6020526000908152604090208054610d1290612edb565b61147a338383612176565b611a013383611ddf565b611a1d5760405162461bcd60e51b81526004016109a990612feb565b610e3984848484612245565b6000818152600260205260409020546060906001600160a01b0316611aa85760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016109a9565b6000611ab2612278565b90506000815111611ad25760405180602001604052806000815250611afd565b80611adc84612287565b604051602001611aed929190613265565b6040516020818303038152906040525b9392505050565b600a546001600160a01b03163314611b2e5760405162461bcd60e51b81526004016109a990612fb6565b600b546040516304b2b47b60e11b81523060048201526001600160a01b039091169063cbed8b9c90829063096568f690602401602060405180830381865afa158015611b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba29190613294565b868686866040518663ffffffff1660e01b8152600401611bc69594939291906132b1565b600060405180830381600087803b158015611be057600080fd5b505af1158015611bf4573d6000803e3d6000fd5b505050505050505050565b600a546001600160a01b03163314611c295760405162461bcd60e51b81526004016109a990612fb6565b601155565b600a546001600160a01b03163314611c585760405162461bcd60e51b81526004016109a990612fb6565b6001600160a01b038116611cbd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a9565b610ff481612124565b600a546001600160a01b03163314611cf05760405162461bcd60e51b81526004016109a990612fb6565b601255565b600a546001600160a01b03163314611d1f5760405162461bcd60e51b81526004016109a990612fb6565b805161147a90601090602084019061292b565b61147a828260405180602001604052806000815250612385565b60006001600160e01b0319821663780e9d6360e01b14806109ea57506109ea826123b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611da68261157d565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316611e585760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016109a9565b6000611e638361157d565b9050806001600160a01b0316846001600160a01b03161480611e9e5750836001600160a01b0316611e9384610b5a565b6001600160a01b0316145b80611ece57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611ee98261157d565b6001600160a01b031614611f4d5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016109a9565b6001600160a01b038216611faf5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016109a9565b611fba838383612408565b611fc5600082611d71565b6001600160a01b0383166000908152600360205260408120805460019290611fee9084906132ea565b90915550506001600160a01b038216600090815260036020526040812080546001929061201c908490613210565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006120888261157d565b905061209681600084612408565b6120a1600083611d71565b6001600160a01b03811660009081526003602052604081208054600192906120ca9084906132ea565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031614156121d85760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016109a9565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612250848484611ed6565b61225c84848484612413565b610e395760405162461bcd60e51b81526004016109a990613301565b6060600f8054610a4890612edb565b6060816122ab5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156122d557806122bf8161324a565b91506122ce9050600a83613369565b91506122af565b60008167ffffffffffffffff8111156122f0576122f06129c4565b6040519080825280601f01601f19166020018201604052801561231a576020820181803683370190505b5090505b8415611ece5761232f6001836132ea565b915061233c600a8661337d565b612347906030613210565b60f81b81838151811061235c5761235c6131e4565b60200101906001600160f81b031916908160001a90535061237e600a86613369565b945061231e565b61238f8383612511565b61239c6000848484612413565b610d005760405162461bcd60e51b81526004016109a990613301565b60006001600160e01b031982166380ac58cd60e01b14806123e957506001600160e01b03198216635b5e139f60e01b145b806109ea57506301ffc9a760e01b6001600160e01b03198316146109ea565b610d0083838361265f565b60006001600160a01b0384163b1561250657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612457903390899088908890600401613391565b6020604051808303816000875af1925050508015612492575060408051601f3d908101601f1916820190925261248f918101906133ce565b60015b6124ec573d8080156124c0576040519150601f19603f3d011682016040523d82523d6000602084013e6124c5565b606091505b5080516124e45760405162461bcd60e51b81526004016109a990613301565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611ece565b506001949350505050565b6001600160a01b0382166125675760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016109a9565b6000818152600260205260409020546001600160a01b0316156125cc5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109a9565b6125d860008383612408565b6001600160a01b0382166000908152600360205260408120805460019290612601908490613210565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0383166126ba576126b581600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6126dd565b816001600160a01b0316836001600160a01b0316146126dd576126dd8382612717565b6001600160a01b0382166126f457610d00816127b4565b826001600160a01b0316826001600160a01b031614610d0057610d008282612863565b6000600161272484611601565b61272e91906132ea565b600083815260076020526040902054909150808214612781576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906127c6906001906132ea565b600083815260096020526040812054600880549394509092849081106127ee576127ee6131e4565b90600052602060002001549050806008838154811061280f5761280f6131e4565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480612847576128476133eb565b6001900381819060005260206000200160009055905550505050565b600061286e83611601565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b8280546128b390612edb565b90600052602060002090601f0160209004810192826128d5576000855561291b565b82601f106128ee5782800160ff1982351617855561291b565b8280016001018555821561291b579182015b8281111561291b578235825591602001919060010190612900565b5061292792915061299f565b5090565b82805461293790612edb565b90600052602060002090601f016020900481019282612959576000855561291b565b82601f1061297257805160ff191683800117855561291b565b8280016001018555821561291b579182015b8281111561291b578251825591602001919060010190612984565b5b8082111561292757600081556001016129a0565b61ffff81168114610ff457600080fd5b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156129f5576129f56129c4565b604051601f8501601f19908116603f01168101908282118183101715612a1d57612a1d6129c4565b81604052809350858152868686011115612a3657600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112612a6157600080fd5b611afd838335602085016129da565b60008060008060808587031215612a8657600080fd5b8435612a91816129b4565b9350602085013567ffffffffffffffff80821115612aae57600080fd5b612aba88838901612a50565b9450604087013591508082168214612ad157600080fd5b90925060608601359080821115612ae757600080fd5b50612af487828801612a50565b91505092959194509250565b6001600160e01b031981168114610ff457600080fd5b600060208284031215612b2857600080fd5b8135611afd81612b00565b60005b83811015612b4e578181015183820152602001612b36565b83811115610e395750506000910152565b60008151808452612b77816020860160208601612b33565b601f01601f19169290920160200192915050565b602081526000611afd6020830184612b5f565b600060208284031215612bb057600080fd5b8135611afd816129b4565b600060208284031215612bcd57600080fd5b5035919050565b6001600160a01b0381168114610ff457600080fd5b60008060408385031215612bfc57600080fd5b8235612c0781612bd4565b946020939093013593505050565b60008083601f840112612c2757600080fd5b50813567ffffffffffffffff811115612c3f57600080fd5b602083019150836020828501011115612c5757600080fd5b9250929050565b600080600060408486031215612c7357600080fd5b8335612c7e816129b4565b9250602084013567ffffffffffffffff811115612c9a57600080fd5b612ca686828701612c15565b9497909650939450505050565b600080600060608486031215612cc857600080fd5b8335612cd381612bd4565b92506020840135612ce381612bd4565b929592945050506040919091013590565b600080600060608486031215612d0957600080fd5b833592506020840135612d1b81612bd4565b91506040840135612d2b816129b4565b809150509250925092565b600060208284031215612d4857600080fd5b813567ffffffffffffffff811115612d5f57600080fd5b8201601f81018413612d7057600080fd5b611ece848235602084016129da565b600060208284031215612d9157600080fd5b8135611afd81612bd4565b60008060408385031215612daf57600080fd5b8235612dba81612bd4565b915060208301358015158114612dcf57600080fd5b809150509250929050565b60008060008060808587031215612df057600080fd5b8435612dfb81612bd4565b93506020850135612e0b81612bd4565b925060408501359150606085013567ffffffffffffffff811115612e2e57600080fd5b612af487828801612a50565b600080600080600060808688031215612e5257600080fd5b8535612e5d816129b4565b94506020860135612e6d816129b4565b935060408601359250606086013567ffffffffffffffff811115612e9057600080fd5b612e9c88828901612c15565b969995985093965092949392505050565b60008060408385031215612ec057600080fd5b8235612ecb81612bd4565b91506020830135612dcf81612bd4565b600181811c90821680612eef57607f821691505b60208210811415612f1057634e487b7160e01b600052602260045260246000fd5b50919050565b6000808354612f2481612edb565b60018281168015612f3c5760018114612f4d57612f7c565b60ff19841687528287019450612f7c565b8760005260208060002060005b85811015612f735781548a820152908401908201612f5a565b50505082870194505b50929695505050505050565b60008060408385031215612f9b57600080fd5b8251612fa681612bd4565b6020939093015192949293505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff8416815260406020820152600061308360408301848661303c565b95945050505050565b61ffff861681526001600160a01b038516602082015260a0604082018190526000906130ba90830186612b5f565b841515606084015282810360808401526130d48185612b5f565b98975050505050505050565b600080604083850312156130f357600080fd5b505080516020909101519092909150565b61ffff871681526000602060c0818401526000885461312281612edb565b8060c087015260e0600180841660008114613144576001811461315957613187565b60ff1985168984015261010089019550613187565b8d6000528660002060005b8581101561317f5781548b8201860152908301908801613164565b8a0184019650505b5050505050838103604085015261319e8189612b5f565b9150506131b660608401876001600160a01b03169052565b6001600160a01b038516608084015282810360a08401526131d78185612b5f565b9998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115613223576132236131fa565b500190565b600061ffff80831681811415613240576132406131fa565b6001019392505050565b600060001982141561325e5761325e6131fa565b5060010190565b60008351613277818460208801612b33565b83519083019061328b818360208801612b33565b01949350505050565b6000602082840312156132a657600080fd5b8151611afd816129b4565b600061ffff8088168352808716602084015250846040830152608060608301526132df60808301848661303c565b979650505050505050565b6000828210156132fc576132fc6131fa565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261337857613378613353565b500490565b60008261338c5761338c613353565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906133c490830184612b5f565b9695505050505050565b6000602082840312156133e057600080fd5b8151611afd81612b00565b634e487b7160e01b600052603160045260246000fdfea26469706673582212204f909a40e8c4e74c4094c22f640bbbf387c396c6c4aa2ca5545e1eaa019cce3e64736f6c634300080a00330000000000000000000000003c2269811836af69497e5f486a85d7316753cf62