[ { "inputs": [ { "internalType": "address payable", "name": "_feeAddress", "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": false, "internalType": "bool", "name": "paused", "type": "bool" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "countStart", "type": "uint256" }, { "internalType": "uint256", "name": "countEnd", "type": "uint256" } ], "name": "addNumbers", "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": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_paused", "type": "bool" } ], "name": "changePause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_h", "type": "uint256" }, { "internalType": "uint256", "name": "_n", "type": "uint256" }, { "internalType": "uint256", "name": "_o1", "type": "uint256" }, { "internalType": "uint256", "name": "_o2", "type": "uint256" }, { "internalType": "uint256", "name": "_o3", "type": "uint256" } ], "name": "crateHNO3", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[6]", "name": "_c", "type": "uint256[6]" }, { "internalType": "uint256[12]", "name": "_h", "type": "uint256[12]" }, { "internalType": "uint256[6]", "name": "_o", "type": "uint256[6]" } ], "name": "createC6H12O6", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_c", "type": "uint256" }, { "internalType": "uint256", "name": "_o1", "type": "uint256" }, { "internalType": "uint256", "name": "_o2", "type": "uint256" } ], "name": "createCO2", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_ca", "type": "uint256" }, { "internalType": "uint256", "name": "_c", "type": "uint256" }, { "internalType": "uint256", "name": "_o1", "type": "uint256" }, { "internalType": "uint256", "name": "_o2", "type": "uint256" }, { "internalType": "uint256", "name": "_o3", "type": "uint256" } ], "name": "createCaCO3", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_h1", "type": "uint256" }, { "internalType": "uint256", "name": "_h2", "type": "uint256" }, { "internalType": "uint256", "name": "_o", "type": "uint256" } ], "name": "createH2O", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_h1", "type": "uint256" }, { "internalType": "uint256", "name": "_h2", "type": "uint256" }, { "internalType": "uint256", "name": "_s", "type": "uint256" }, { "internalType": "uint256", "name": "_o1", "type": "uint256" }, { "internalType": "uint256", "name": "_o2", "type": "uint256" }, { "internalType": "uint256", "name": "_o3", "type": "uint256" }, { "internalType": "uint256", "name": "_o4", "type": "uint256" } ], "name": "createH2SO4", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_h", "type": "uint256" }, { "internalType": "uint256", "name": "_ar", "type": "uint256" }, { "internalType": "uint256", "name": "_f", "type": "uint256" } ], "name": "createHArF", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_h", "type": "uint256" }, { "internalType": "uint256", "name": "_cl", "type": "uint256" } ], "name": "createHCl", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_h", "type": "uint256" }, { "internalType": "uint256", "name": "_f", "type": "uint256" } ], "name": "createHF", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_k", "type": "uint256" }, { "internalType": "uint256", "name": "_o", "type": "uint256" }, { "internalType": "uint256", "name": "_h", "type": "uint256" } ], "name": "createKOH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_na", "type": "uint256" }, { "internalType": "uint256", "name": "_cl", "type": "uint256" } ], "name": "createNaCl", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_na", "type": "uint256" }, { "internalType": "uint256", "name": "_o", "type": "uint256" }, { "internalType": "uint256", "name": "_h", "type": "uint256" } ], "name": "createNaOH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_s", "type": "uint256" }, { "internalType": "uint256", "name": "_o1", "type": "uint256" }, { "internalType": "uint256", "name": "_o2", "type": "uint256" } ], "name": "createSO2", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeAddress", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRemainingNFTs", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRemainingNFTsLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getUserInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "getUserNft", "outputs": [ { "internalType": "address", "name": "owner", "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": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "remaining", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "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": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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" } ]
60806040526714d1120d7b160000600b553480156200001d57600080fd5b5060405162003e3438038062003e3483398101604081905262000040916200021e565b604080518082018252601781527f4172676f6e2041746f6d696320436f6c6c656374696f6e00000000000000000060208083019182528351808501909452600384526241414360e81b908401528151919291620000a09160009162000178565b508051620000b690600190602084019062000178565b505050620000d3620000cd6200012260201b60201c565b62000126565b60016008556001600160a01b038116620000ec57600080fd5b600f80546001600160a01b0390921661010002610100600160a81b031960ff19909316600117929092169190911790556200028b565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805462000186906200024e565b90600052602060002090601f016020900481019282620001aa5760008555620001f5565b82601f10620001c557805160ff1916838001178555620001f5565b82800160010185558215620001f5579182015b82811115620001f5578251825591602001919060010190620001d8565b506200020392915062000207565b5090565b5b8082111562000203576000815560010162000208565b60006020828403121562000230578081fd5b81516001600160a01b038116811462000247578182fd5b9392505050565b6002810460018216806200026357607f821691505b602082108114156200028557634e487b7160e01b600052602260045260246000fd5b50919050565b613b99806200029b6000396000f3fe60806040526004361061025c5760003560e01c80636386c1c7116101445780639f7c812c116100b6578063c87b56dd1161007a578063c87b56dd146106e2578063d3a22d8914610702578063e75cccba14610722578063e985e9c514610742578063ef9fc50b14610762578063f2fde38b146107825761025c565b80639f7c812c1461064d578063a035b1fe1461066d578063a22cb46514610682578063b88d4fde146106a2578063bc0a8695146106c25761025c565b8063837c18eb11610108578063837c18eb146105ae57806383cbb8ac146105ce57806385246043146105e35780638da5cb5b146106035780638df5cb661461061857806395d89b41146106385761025c565b80636386c1c7146105165780636c0360eb146105445780636c666e891461055957806370a0823114610579578063715018a6146105995761025c565b8063238c6721116101dd57806355f804b3116101a157806355f804b314610461578063562e9cab146104815780635c975abb146104a15780635d4fead3146104b657806361d65334146104d65780636352211e146104f65761025c565b8063238c6721146103ca57806323b872dd146103ec57806340774d951461040c578063412753581461042c57806342842e0e146104415761025c565b80630ee3a71a116102245780630ee3a71a146103355780631249c58b14610355578063150b7a021461035d5780631ed9099b1461038a578063226fd26a146103aa5761025c565b806301ffc9a7146102615780630361bf141461029757806306fdde03146102c4578063081812fc146102e6578063095ea7b314610313575b600080fd5b34801561026d57600080fd5b5061028161027c366004612edd565b6107a2565b60405161028e9190613464565b60405180910390f35b3480156102a357600080fd5b506102b76102b2366004612f5b565b6107ea565b60405161028e9190613a1d565b3480156102d057600080fd5b506102d961080b565b60405161028e9190613484565b3480156102f257600080fd5b50610306610301366004612f5b565b61089d565b60405161028e91906133dc565b34801561031f57600080fd5b5061033361032e366004612df2565b6108e9565b005b34801561034157600080fd5b50610333610350366004612fbf565b610981565b610333610b0d565b34801561036957600080fd5b5061037d610378366004612d50565b610d83565b60405161028e919061346f565b34801561039657600080fd5b506103336103a5366004612f94565b610d94565b3480156103b657600080fd5b506103336103c5366004612f73565b610eba565b3480156103d657600080fd5b506103df610fb4565b60405161028e9190613451565b3480156103f857600080fd5b50610333610407366004612d15565b61100b565b34801561041857600080fd5b50610333610427366004612f73565b611043565b34801561043857600080fd5b5061030661113b565b34801561044d57600080fd5b5061033361045c366004612d15565b61114f565b34801561046d57600080fd5b5061033361047c366004612f15565b61116a565b34801561048d57600080fd5b5061033361049c366004612f94565b6111c0565b3480156104ad57600080fd5b506102816112cc565b3480156104c257600080fd5b506103336104d1366004612ec3565b6112d5565b3480156104e257600080fd5b506103336104f1366004612f94565b61135d565b34801561050257600080fd5b50610306610511366004612f5b565b611476565b34801561052257600080fd5b50610536610531366004612cc9565b6114ab565b60405161028e92919061342d565b34801561055057600080fd5b506102d961152f565b34801561056557600080fd5b50610333610574366004612fbf565b6115bd565b34801561058557600080fd5b506102b7610594366004612cc9565b61171a565b3480156105a557600080fd5b5061033361175e565b3480156105ba57600080fd5b506103066105c9366004612cc9565b6117a9565b3480156105da57600080fd5b506102b76117c4565b3480156105ef57600080fd5b506103336105fe366004612f94565b6117ca565b34801561060f57600080fd5b506103066118e2565b34801561062457600080fd5b50610333610633366004612f94565b6118f1565b34801561064457600080fd5b506102d9611a07565b34801561065957600080fd5b50610333610668366004612ff9565b611a16565b34801561067957600080fd5b506102b7611bc7565b34801561068e57600080fd5b5061033361069d366004612dc9565b611bcd565b3480156106ae57600080fd5b506103336106bd366004612d50565b611c9b565b3480156106ce57600080fd5b506103336106dd366004612e1b565b611cda565b3480156106ee57600080fd5b506102d96106fd366004612f5b565b611f37565b34801561070e57600080fd5b5061033361071d366004612f73565b612050565b34801561072e57600080fd5b5061033361073d366004612f94565b612147565b34801561074e57600080fd5b5061028161075d366004612ce3565b61225f565b34801561076e57600080fd5b5061033361077d366004612f73565b61228d565b34801561078e57600080fd5b5061033361079d366004612cc9565b61231c565b60006001600160e01b031982166380ac58cd60e01b14806107d357506001600160e01b03198216635b5e139f60e01b145b806107e257506107e28261238d565b90505b919050565b600c81815481106107fa57600080fd5b600091825260209091200154905081565b60606000805461081a90613aa1565b80601f016020809104026020016040519081016040528092919081815260200182805461084690613aa1565b80156108935780601f1061086857610100808354040283529160200191610893565b820191906000526020600020905b81548152906001019060200180831161087657829003601f168201915b5050505050905090565b60006108a8826123a6565b6108cd5760405162461bcd60e51b81526004016108c49061383b565b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006108f482611476565b9050806001600160a01b0316836001600160a01b031614156109285760405162461bcd60e51b81526004016108c490613954565b806001600160a01b031661093a6123c3565b6001600160a01b0316148061095657506109568161075d6123c3565b6109725760405162461bcd60e51b81526004016108c490613677565b61097c83836123c7565b505050565b600260085414156109a45760405162461bcd60e51b81526004016108c4906139e6565b60026008556102d1851180156109bc57506102ef8511155b6109c557600080fd5b6096841180156109d6575060b48411155b6109df57600080fd5b60f0831180156109f1575061010e8311155b6109fa57600080fd5b60f082118015610a0c575061010e8211155b610a1557600080fd5b60f081118015610a27575061010e8111155b610a3057600080fd5b610a3a600a612435565b610a446009612435565b60006040518060a0016040528087815260200186815260200185815260200184815260200183815250905060005b6005811015610abc57610aaa3330848460058110610aa057634e487b7160e01b600052603260045260246000fd5b602002015161114f565b80610ab481613adc565b915050610a72565b506000610ac9600961243e565b9050610ad53382612442565b610aff81600d604051602001610aeb91906132bc565b604051602081830303815290604052612521565b505060016008555050505050565b60026008541415610b305760405162461bcd60e51b81526004016108c4906139e6565b6002600855600f5460ff1615610b585760405162461bcd60e51b81526004016108c49061362d565b600c54610b775760405162461bcd60e51b81526004016108c49061364e565b600b54341015610b8657600080fd5b336000908152600e6020526040812090610bcf610ba1612565565b600c5460408051808201909152600f81526e29b0b332a6b0ba341d1032b93937b960891b60208201526125a1565b90506000600c8281548110610bf457634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050610c0b3382612442565b610c2b81600d610c1a846125e9565b604051602001610aeb9291906131d3565b8254336001600160a01b03199182168117855560018086018054808301825560008281526020808220909201879055938452600e90526040909220865481546001600160a01b0390911694169390931783558154869392610c8e92840191612ae6565b5050600c8054909150610ca390600190613a5e565b81548110610cc157634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600c8381548110610ced57634e487b7160e01b600052603260045260246000fd5b600091825260209091200155600c805480610d1857634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055610d386009612435565b600f546040516001600160a01b0361010090920491909116903480156108fc02916000818181858888f19350505050158015610d78573d6000803e3d6000fd5b505060016008555050565b630a85bd0160e11b5b949350505050565b60026008541415610db75760405162461bcd60e51b81526004016108c4906139e6565b600260085561023a83118015610dcf57506102808311155b610dd857600080fd5b60f082118015610dea575061010e8211155b610df357600080fd5b60f081118015610e05575061010e8111155b610e0e57600080fd5b610e18600a612435565b610e226009612435565b604080516060810182528481526020810184905290810182905260005b6003811015610e7f57610e6d3330848460038110610aa057634e487b7160e01b600052603260045260246000fd5b80610e7781613adc565b915050610e3f565b506000610e8c600961243e565b9050610e983382612442565b610eae81600d604051602001610aeb9190613250565b50506001600855505050565b60026008541415610edd5760405162461bcd60e51b81526004016108c4906139e6565b600260085561014a82118015610ef557506101688211155b610efe57600080fd5b61028081118015610f11575061029e8111155b610f1a57600080fd5b610f24600a612435565b610f2e6009612435565b604080518082019091528281526020810182905260005b6002811015610f8557610f733330848460028110610aa057634e487b7160e01b600052603260045260246000fd5b80610f7d81613adc565b915050610f45565b506000610f92600961243e565b9050610f9e3382612442565b610d7881600d604051602001610aeb9190613304565b6060600c80548060200260200160405190810160405280929190818152602001828054801561089357602002820191906000526020600020905b815481526020019060010190808311610fee575050505050905090565b61101c6110166123c3565b82612704565b6110385760405162461bcd60e51b81526004016108c490613995565b61097c838383612781565b600260085414156110665760405162461bcd60e51b81526004016108c4906139e6565b60026008556102808111801561107e575061029e8111155b61108757600080fd5b6000821180156110985750601e8211155b6110a157600080fd5b6110ab600a612435565b6110b56009612435565b604080518082019091528281526020810182905260005b600281101561110c576110fa3330848460028110610aa057634e487b7160e01b600052603260045260246000fd5b8061110481613adc565b9150506110cc565b506000611119600961243e565b90506111253382612442565b610d7881600d604051602001610aeb9190613274565b600f5461010090046001600160a01b031681565b61097c83838360405180602001604052806000815250611c9b565b6111726123c3565b6001600160a01b03166111836118e2565b6001600160a01b0316146111a95760405162461bcd60e51b81526004016108c490613887565b80516111bc90600d906020840190612b36565b5050565b600260085414156111e35760405162461bcd60e51b81526004016108c4906139e6565b600260085561029f82146111f657600080fd5b6000831180156112075750601e8311155b61121057600080fd5b61010e81118015611223575061012c8111155b61122c57600080fd5b611236600a612435565b6112406009612435565b604080516060810182528481526020810184905290810182905260005b600381101561129d5761128b3330848460038110610aa057634e487b7160e01b600052603260045260246000fd5b8061129581613adc565b91505061125d565b5060006112aa600961243e565b90506112b63382612442565b610eae81600d604051602001610aeb919061322c565b600f5460ff1681565b6112dd6123c3565b6001600160a01b03166112ee6118e2565b6001600160a01b0316146113145760405162461bcd60e51b81526004016108c490613887565b600f805460ff19168215151790556040517f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd290611352908390613464565b60405180910390a150565b600260085414156113805760405162461bcd60e51b81526004016108c4906139e6565b600260085561014a8311801561139857506101688311155b6113a157600080fd5b60f0821180156113b3575061010e8211155b6113bc57600080fd5b6000811180156113cd5750601e8111155b6113d657600080fd5b6113e0600a612435565b6113ea6009612435565b604080516060810182528481526020810184905290810182905260005b6003811015611447576114353330848460038110610aa057634e487b7160e01b600052603260045260246000fd5b8061143f81613adc565b915050611407565b506000611454600961243e565b90506114603382612442565b610eae81600d604051602001610aeb9190613208565b6000818152600260205260408120546001600160a01b0316806107e25760405162461bcd60e51b81526004016108c49061371e565b6001600160a01b038082166000908152600e602090815260408083208054600182018054845181870281018701909552808552959660609693959216939092909183919083018282801561151e57602002820191906000526020600020905b81548152602001906001019080831161150a575b505050505090509250925050915091565b600d805461153c90613aa1565b80601f016020809104026020016040519081016040528092919081815260200182805461156890613aa1565b80156115b55780601f1061158a576101008083540402835291602001916115b5565b820191906000526020600020905b81548152906001019060200180831161159857829003601f168201915b505050505081565b600260085414156115e05760405162461bcd60e51b81526004016108c4906139e6565b600260085584158015906115f55750601e8511155b6115fe57600080fd5b60b48411801561160f575060d28411155b61161857600080fd5b60f08311801561162a575061010e8311155b61163357600080fd5b60f082118015611645575061010e8211155b61164e57600080fd5b60f081118015611660575061010e8111155b61166957600080fd5b611673600a612435565b61167d6009612435565b60006040518060a0016040528087815260200186815260200185815260200184815260200183815250905060005b60058110156116eb576116d93330848460058110610aa057634e487b7160e01b600052603260045260246000fd5b806116e381613adc565b9150506116ab565b5060006116f8600961243e565b90506117043382612442565b610aff81600d604051602001610aeb9190613370565b60006001600160a01b0382166117425760405162461bcd60e51b81526004016108c4906136d4565b506001600160a01b031660009081526003602052604090205490565b6117666123c3565b6001600160a01b03166117776118e2565b6001600160a01b03161461179d5760405162461bcd60e51b81526004016108c490613887565b6117a760006128ae565b565b600e602052600090815260409020546001600160a01b031681565b600c5490565b600260085414156117ed5760405162461bcd60e51b81526004016108c4906139e6565b600260085580158015906118025750601e8111155b61180b57600080fd5b60f08211801561181d575061010e8211155b61182657600080fd5b61029f8311801561183957506102d18311155b61184257600080fd5b61184c600a612435565b6118566009612435565b604080516060810182528481526020810184905290810182905260005b60038110156118b3576118a13330848460038110610aa057634e487b7160e01b600052603260045260246000fd5b806118ab81613adc565b915050611873565b5060006118c0600961243e565b90506118cc3382612442565b610eae81600d604051602001610aeb9190613298565b6007546001600160a01b031690565b600260085414156119145760405162461bcd60e51b81526004016108c4906139e6565b600260085582158015906119295750601e8311155b61193257600080fd5b6000821180156119435750601e8211155b61194c57600080fd5b60f08111801561195e575061010e8111155b61196757600080fd5b611971600a612435565b61197b6009612435565b604080516060810182528481526020810184905290810182905260005b60038110156119d8576119c63330848460038110610aa057634e487b7160e01b600052603260045260246000fd5b806119d081613adc565b915050611998565b5060006119e5600961243e565b90506119f13382612442565b610eae81600d604051602001610aeb91906133b8565b60606001805461081a90613aa1565b60026008541415611a395760405162461bcd60e51b81526004016108c4906139e6565b600260085561023a85118015611a5157506102808511155b611a5a57600080fd5b60f084118015611a6c575061010e8411155b611a7557600080fd5b60f083118015611a87575061010e8311155b611a9057600080fd5b60f082118015611aa2575061010e8211155b611aab57600080fd5b60f081118015611abd575061010e8111155b611ac657600080fd5b600087118015611ad75750601e8711155b611ae057600080fd5b600086118015611af15750601e8611155b611afa57600080fd5b611b04600a612435565b611b0e6009612435565b60006040518060e0016040528089815260200188815260200187815260200186815260200185815260200184815260200183815250905060005b6007811015611b8857611b763330848460078110610aa057634e487b7160e01b600052603260045260246000fd5b80611b8081613adc565b915050611b48565b506000611b95600961243e565b9050611ba13382612442565b611bb781600d604051602001610aeb9190613328565b5050600160085550505050505050565b600b5481565b611bd56123c3565b6001600160a01b0316826001600160a01b03161415611c065760405162461bcd60e51b81526004016108c4906135aa565b8060056000611c136123c3565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155611c576123c3565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c8f9190613464565b60405180910390a35050565b611cac611ca66123c3565b83612704565b611cc85760405162461bcd60e51b81526004016108c490613995565b611cd484848484612900565b50505050565b60026008541415611cfd5760405162461bcd60e51b81526004016108c4906139e6565b6002600855611d0c600a612435565b611d166009612435565b60005b6006811015611dbb576096848260068110611d4457634e487b7160e01b600052603260045260246000fd5b6020020151118015611d7b575060b4848260068110611d7357634e487b7160e01b600052603260045260246000fd5b602002015111155b611d8457600080fd5b611da93330868460068110610aa057634e487b7160e01b600052603260045260246000fd5b80611db381613adc565b915050611d19565b5060005b600c811015611e615760008382600c8110611dea57634e487b7160e01b600052603260045260246000fd5b6020020151118015611e215750601e8382600c8110611e1957634e487b7160e01b600052603260045260246000fd5b602002015111155b611e2a57600080fd5b611e4f33308584600c8110610aa057634e487b7160e01b600052603260045260246000fd5b80611e5981613adc565b915050611dbf565b5060005b6006811015611f085760f0828260068110611e9057634e487b7160e01b600052603260045260246000fd5b6020020151118015611ec8575061010e828260068110611ec057634e487b7160e01b600052603260045260246000fd5b602002015111155b611ed157600080fd5b611ef63330848460068110610aa057634e487b7160e01b600052603260045260246000fd5b80611f0081613adc565b915050611e65565b506000611f15600961243e565b9050611f213382612442565b610d7881600d604051602001610aeb91906132e0565b6060611f42826123a6565b611f5e5760405162461bcd60e51b81526004016108c4906137ea565b60008281526006602052604081208054611f7790613aa1565b80601f0160208091040260200160405190810160405280929190818152602001828054611fa390613aa1565b8015611ff05780601f10611fc557610100808354040283529160200191611ff0565b820191906000526020600020905b815481529060010190602001808311611fd357829003601f168201915b505050505090506000612001612933565b9050805160001415612015575090506107e5565b81511561204757808260405160200161202f9291906131a4565b604051602081830303815290604052925050506107e5565b610d8c84612945565b600260085414156120735760405162461bcd60e51b81526004016108c4906139e6565b600260085581158015906120885750601e8211155b61209157600080fd5b61010e811180156120a4575061012c8111155b6120ad57600080fd5b6120b7600a612435565b6120c16009612435565b604080518082019091528281526020810182905260005b6002811015612118576121063330848460028110610aa057634e487b7160e01b600052603260045260246000fd5b8061211081613adc565b9150506120d8565b506000612125600961243e565b90506121313382612442565b610d7881600d604051602001610aeb919061334c565b6002600854141561216a5760405162461bcd60e51b81526004016108c4906139e6565b600260085560f082118015612181575061010e8211155b61218a57600080fd5b60f08111801561219c575061010e8111155b6121a557600080fd5b6096831180156121b6575060b48311155b6121bf57600080fd5b6121c9600a612435565b6121d36009612435565b604080516060810182528381526020810183905290810184905260005b60038110156122305761221e3330848460038110610aa057634e487b7160e01b600052603260045260246000fd5b8061222881613adc565b9150506121f0565b50600061223d600961243e565b90506122493382612442565b610eae81600d604051602001610aeb9190613394565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6122956123c3565b6001600160a01b03166122a66118e2565b6001600160a01b0316146122cc5760405162461bcd60e51b81526004016108c490613887565b815b81811161097c57600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7018190558061231481613adc565b9150506122ce565b6123246123c3565b6001600160a01b03166123356118e2565b6001600160a01b03161461235b5760405162461bcd60e51b81526004016108c490613887565b6001600160a01b0381166123815760405162461bcd60e51b81526004016108c4906134e9565b61238a816128ae565b50565b6001600160e01b031981166301ffc9a760e01b14919050565b6000908152600260205260409020546001600160a01b0316151590565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906123fc82611476565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b80546001019055565b5490565b6001600160a01b0382166124685760405162461bcd60e51b81526004016108c4906137b5565b612471816123a6565b1561248e5760405162461bcd60e51b81526004016108c49061352f565b61249a6000838361097c565b6001600160a01b03821660009081526003602052604081208054600192906124c3908490613a32565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b61252a826123a6565b6125465760405162461bcd60e51b81526004016108c490613767565b6000828152600660209081526040909120825161097c92840190612b36565b600c8054604051600092612583923392429243929091602001613142565b6040516020818303038152906040528051906020012060001c905090565b600081836125c25760405162461bcd60e51b81526004016108c49190613484565b508284816125e057634e487b7160e01b600052601260045260246000fd5b06949350505050565b60608161260e57506040805180820190915260018152600360fc1b60208201526107e5565b8160005b8115612638578061262281613adc565b91506126319050600a83613a4a565b9150612612565b60008167ffffffffffffffff81111561266157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561268b576020820181803683370190505b5090505b8415610d8c576126a0600183613a5e565b91506126ad600a86613af7565b6126b8906030613a32565b60f81b8183815181106126db57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506126fd600a86613a4a565b945061268f565b600061270f826123a6565b61272b5760405162461bcd60e51b81526004016108c4906135e1565b600061273683611476565b9050806001600160a01b0316846001600160a01b031614806127715750836001600160a01b03166127668461089d565b6001600160a01b0316145b80610d8c5750610d8c818561225f565b826001600160a01b031661279482611476565b6001600160a01b0316146127ba5760405162461bcd60e51b81526004016108c4906138bc565b6001600160a01b0382166127e05760405162461bcd60e51b81526004016108c490613566565b6127eb83838361097c565b6127f66000826123c7565b6001600160a01b038316600090815260036020526040812080546001929061281f908490613a5e565b90915550506001600160a01b038216600090815260036020526040812080546001929061284d908490613a32565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61290b848484612781565b612917848484846129c8565b611cd45760405162461bcd60e51b81526004016108c490613497565b60408051602081019091526000815290565b6060612950826123a6565b61296c5760405162461bcd60e51b81526004016108c490613905565b6000612976612933565b9050600081511161299657604051806020016040528060008152506129c1565b806129a0846125e9565b6040516020016129b19291906131a4565b6040516020818303038152906040525b9392505050565b60006129dc846001600160a01b0316612ae0565b15612ad857836001600160a01b031663150b7a026129f86123c3565b8786866040518563ffffffff1660e01b8152600401612a1a94939291906133f0565b602060405180830381600087803b158015612a3457600080fd5b505af1925050508015612a64575060408051601f3d908101601f19168201909252612a6191810190612ef9565b60015b612abe573d808015612a92576040519150601f19603f3d011682016040523d82523d6000602084013e612a97565b606091505b508051612ab65760405162461bcd60e51b81526004016108c490613497565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610d8c565b506001610d8c565b3b151590565b828054828255906000526020600020908101928215612b265760005260206000209182015b82811115612b26578254825591600101919060010190612b0b565b50612b32929150612baa565b5090565b828054612b4290613aa1565b90600052602060002090601f016020900481019282612b645760008555612b26565b82601f10612b7d57805160ff1916838001178555612b26565b82800160010185558215612b26579182015b82811115612b26578251825591602001919060010190612b8f565b5b80821115612b325760008155600101612bab565b600067ffffffffffffffff80841115612bda57612bda613b37565b604051601f8501601f191681016020018281118282101715612bfe57612bfe613b37565b604052848152915081838501861015612c1657600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b03811681146107e557600080fd5b600082601f830112612c56578081fd5b60405160c0810181811067ffffffffffffffff82111715612c7957612c79613b37565b604052808360c08101861015612c8d578384fd5b835b6006811015612cae578135835260209283019290910190600101612c8f565b509195945050505050565b803580151581146107e557600080fd5b600060208284031215612cda578081fd5b6129c182612c2f565b60008060408385031215612cf5578081fd5b612cfe83612c2f565b9150612d0c60208401612c2f565b90509250929050565b600080600060608486031215612d29578081fd5b612d3284612c2f565b9250612d4060208501612c2f565b9150604084013590509250925092565b60008060008060808587031215612d65578081fd5b612d6e85612c2f565b9350612d7c60208601612c2f565b925060408501359150606085013567ffffffffffffffff811115612d9e578182fd5b8501601f81018713612dae578182fd5b612dbd87823560208401612bbf565b91505092959194509250565b60008060408385031215612ddb578182fd5b612de483612c2f565b9150612d0c60208401612cb9565b60008060408385031215612e04578182fd5b612e0d83612c2f565b946020939093013593505050565b60008060006103008486031215612e30578283fd5b612e3a8585612c46565b92508460df850112612e4a578182fd5b604051610180810181811067ffffffffffffffff82111715612e6e57612e6e613b37565b6040528060c08601610240870188811115612e87578586fd5b855b600c811015612ea8578235845260209384019390920191600101612e89565b50839550612eb68982612c46565b9450505050509250925092565b600060208284031215612ed4578081fd5b6129c182612cb9565b600060208284031215612eee578081fd5b81356129c181613b4d565b600060208284031215612f0a578081fd5b81516129c181613b4d565b600060208284031215612f26578081fd5b813567ffffffffffffffff811115612f3c578182fd5b8201601f81018413612f4c578182fd5b610d8c84823560208401612bbf565b600060208284031215612f6c578081fd5b5035919050565b60008060408385031215612f85578182fd5b50508035926020909101359150565b600080600060608486031215612fa8578081fd5b505081359360208301359350604090920135919050565b600080600080600060a08688031215612fd6578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600080600080600080600060e0888a031215613013578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b6000815180845260208085019450808401835b8381101561307357815187529582019590820190600101613057565b509495945050505050565b60008151808452613096816020860160208601613a75565b601f01601f19169290920160200192915050565b8054600090600281046001808316806130c457607f831692505b60208084108214156130e457634e487b7160e01b86526022600452602486fd5b8180156130f8576001811461310957613136565b60ff19861689528489019650613136565b61311288613a26565b60005b8681101561312e5781548b820152908501908301613115565b505084890196505b50505050505092915050565b60006bffffffffffffffffffffffff198760601b1682528560148301528460348301526054820184548583526020808420845b8381101561319157815485529382019360019182019101613175565b5050948252509092019695505050505050565b600083516131b6818460208801613a75565b8351908301906131ca818360208801613a75565b01949350505050565b60006131df82856130aa565b83516131ef818360208801613a75565b64173539b7b760d91b9101908152600501949350505050565b600061321482846130aa565b67189919973539b7b760c11b81526008019392505050565b600061323882846130aa565b67189998973539b7b760c11b81526008019392505050565b600061325c82846130aa565b6718991c173539b7b760c11b81526008019392505050565b600061328082846130aa565b6718991a973539b7b760c11b81526008019392505050565b60006132a482846130aa565b6718991b973539b7b760c11b81526008019392505050565b60006132c882846130aa565b67189919173539b7b760c11b81526008019392505050565b60006132ec82846130aa565b67189998173539b7b760c11b81526008019392505050565b600061331082846130aa565b6718991a173539b7b760c11b81526008019392505050565b600061333482846130aa565b67189918973539b7b760c11b81526008019392505050565b600061335882846130aa565b6718991c973539b7b760c11b81526008019392505050565b600061337c82846130aa565b6718991b173539b7b760c11b81526008019392505050565b60006133a082846130aa565b67189918173539b7b760c11b81526008019392505050565b60006133c482846130aa565b6718989c973539b7b760c11b81526008019392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906134239083018461307e565b9695505050505050565b6001600160a01b0383168152604060208201819052600090610d8c90830184613044565b6000602082526129c16020830184613044565b901515815260200190565b6001600160e01b031991909116815260200190565b6000602082526129c1602083018461307e565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252600790820152665061757365642160c81b604082015260600190565b6020808252600f908201526e1d1a195c99481a5cc81b9bc81b999d608a1b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252602e908201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60408201526d32bc34b9ba32b73a103a37b5b2b760911b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526031908201527f45524337323155524953746f726167653a2055524920717565727920666f72206040820152703737b732bc34b9ba32b73a103a37b5b2b760791b606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b90815260200190565b60009081526020902090565b60008219821115613a4557613a45613b0b565b500190565b600082613a5957613a59613b21565b500490565b600082821015613a7057613a70613b0b565b500390565b60005b83811015613a90578181015183820152602001613a78565b83811115611cd45750506000910152565b600281046001821680613ab557607f821691505b60208210811415613ad657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613af057613af0613b0b565b5060010190565b600082613b0657613b06613b21565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461238a57600080fdfea264697066735822122043f33bd05f173a040936bd1f0a25b13c2d27cc7759d14ccd103835f2b7370af764736f6c63430008000033000000000000000000000000fa198959854514d80eadec68533f289f93ab9cc6