[ { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "address", "name": "base", "type": "address" }, { "internalType": "uint256", "name": "deadlineIn", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "EXA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "GIGA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "KILO", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MEGA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PETA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TERA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "YOTTA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ZETTA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "name": "ageOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256[]", "name": "nftIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "level", "type": "uint256" } ], "name": "denominationOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "anno", "type": "uint256" }, { "internalType": "uint256", "name": "level", "type": "uint256" } ], "name": "idBy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "anno", "type": "uint256" }, { "internalType": "uint256[]", "name": "levels", "type": "uint256[]" } ], "name": "idsBy", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "name": "levelOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "nftIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "migrateBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "nftIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "mintBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "nftIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "seal", "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": "newuri", "type": "string" } ], "name": "setURI", "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": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "name": "totalAgeOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "year", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "name": "yearOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" } ]
60806040526007805460ff191660011790553480156200001e57600080fd5b506040516200311b3803806200311b8339810160408190526200004191620001e5565b8282828282828181846200005581620000a1565b506200006133620000ba565b6200006d8142620002df565b60065550600580546001600160a01b0319166001600160a01b03929092169190911790555062000343975050505050505050565b8051620000b69060029060208401906200010c565b5050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200011a9062000306565b90600052602060002090601f0160209004810192826200013e576000855562000189565b82601f106200015957805160ff191683800117855562000189565b8280016001018555821562000189579182015b82811115620001895782518255916020019190600101906200016c565b50620001979291506200019b565b5090565b5b808211156200019757600081556001016200019c565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620001e057600080fd5b919050565b600080600060608486031215620001fb57600080fd5b83516001600160401b03808211156200021357600080fd5b818601915086601f8301126200022857600080fd5b8151818111156200023d576200023d620001b2565b604051601f8201601f19908116603f01168101908382118183101715620002685762000268620001b2565b816040528281526020935089848487010111156200028557600080fd5b600091505b82821015620002a957848201840151818301850152908301906200028a565b82821115620002bb5760008484830101525b9650620002cd915050868201620001c8565b93505050604084015190509250925092565b600082198211156200030157634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200031b57607f821691505b602082108114156200033d57634e487b7160e01b600052602260045260246000fd5b50919050565b612dc880620003536000396000f3fe608060405234801561001057600080fd5b50600436106102315760003560e01c80636d5e303211610130578063c7b8b19d116100b8578063e985e9c51161007c578063e985e9c514610493578063f242432a146104cf578063f2fde38b146104e2578063f3269716146104f5578063f5298aca146104fd57600080fd5b8063c7b8b19d14610455578063cb431e7614610468578063d5e5e06214610470578063d81d0a1514610478578063df435be81461048b57600080fd5b80639d8e2177116100ff5780639d8e2177146103ff578063a22cb46514610407578063a62c77991461041a578063bd85b0391461042d578063c446d5501461044d57600080fd5b80636d5e3032146103c1578063715018a6146103d457806389c3cbae146103dc5780638da5cb5b146103e457600080fd5b8063361ce97e116101be57806355095bd21161018257806355095bd2146103785780635925e2111461038b5780636252e4e7146103935780636b20c454146103a65780636c749c26146103b957600080fd5b8063361ce97e146103135780633e54bacb1461031b5780633fb27b851461032e5780634e1273f4146103365780634f558e791461035657600080fd5b8063156e29f611610205578063156e29f6146102b45780631c617230146102c757806329cd827d146102da5780632eb2c2d6146102ed5780632ffa2d761461030057600080fd5b8062fdd58e1461023657806301ffc9a71461025c57806302fe53051461027f5780630e89341c14610294575b600080fd5b61024961024436600461207c565b610510565b6040519081526020015b60405180910390f35b61026f61026a3660046120bc565b6105aa565b6040519015158152602001610253565b61029261028d366004612178565b6105fa565b005b6102a76102a23660046121c8565b610630565b604051610253919061222e565b6102926102c2366004612241565b6106c4565b6102496102d53660046121c8565b610719565b6102496102e83660046121c8565b610780565b6102926102fb366004612328565b6107d5565b61029261030e3660046123d1565b6107ff565b610249600381565b610292610329366004612434565b610963565b610292610a94565b610349610344366004612456565b610aca565b6040516102539190612544565b61026f6103643660046121c8565b600090815260036020526040902054151590565b6102496103863660046121c8565b610bf3565b610249601581565b6102496103a1366004612434565b610c24565b6102926103b4366004612557565b610cac565b610249601281565b6102496103cf3660046121c8565b610cec565b610292610d44565b610249600c81565b6004546040516001600160a01b039091168152602001610253565b610249600081565b6102926104153660046125ca565b610d7a565b61024961042836600461207c565b610d89565b61024961043b3660046121c8565b60009081526003602052604090205490565b610249600981565b610349610463366004612606565b610e12565b610249600681565b610249601881565b610292610486366004612557565b610eb9565b610249600f81565b61026f6104a1366004612642565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6102926104dd366004612675565b610f09565b6102926104f03660046126d9565b610f2c565b610249610fc4565b61029261050b366004612241565b611015565b60006001600160a01b0383166105815760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806105db57506001600160e01b031982166303a24d0760e21b145b806105a457506301ffc9a760e01b6001600160e01b03198316146105a4565b6004546001600160a01b031633146106245760405162461bcd60e51b8152600401610578906126f4565b61062d81611055565b50565b60606002805461063f90612729565b80601f016020809104026020016040519081016040528092919081815260200182805461066b90612729565b80156106b85780601f1061068d576101008083540402835291602001916106b8565b820191906000526020600020905b81548152906001019060200180831161069b57829003601f168201915b50505050509050919050565b6004546001600160a01b031633146106ee5760405162461bcd60e51b8152600401610578906126f4565b6106f9838383611068565b610714838383604051806020016040528060008152506110fd565b505050565b6000818152600a6020908152604080832054600b909252822054808211156107765760008481526003602052604081205490610755838561277a565b9050806107624284612791565b61076c919061277a565b9695505050505050565b5060009392505050565b600061078d6003836127c6565b156107aa5760405162461bcd60e51b8152600401610578906127da565b606482106107ca5760405162461bcd60e51b815260040161057890612805565b6105a482600a612910565b6107e08584846111d3565b6107eb848484611245565b6107f885858585856112b1565b5050505050565b60075460ff166108445760405162461bcd60e51b815260206004820152601060248201526f1b5a59dc985d1a5bdb881cd9585b195960821b6044820152606401610578565b600654429081111561088a5760405162461bcd60e51b815260206004820152600f60248201526e191958591b1a5b99481c185cdcd959608a1b6044820152606401610578565b600554604051631ac8311560e21b81526001600160a01b0390911690636b20c454906108be9033908790879060040161291c565b600060405180830381600087803b1580156108d857600080fd5b505af11580156108ec573d6000803e3d6000fd5b5050505060005b825181101561094757600083828151811061091057610910612952565b6020026020010151116109355760405162461bcd60e51b815260040161057890612968565b8061093f81612995565b9150506108f3565b5061071433848460405180602001604052806000815250611341565b60075460ff166109a85760405162461bcd60e51b815260206004820152601060248201526f1b5a59dc985d1a5bdb881cd9585b195960821b6044820152606401610578565b60065442908111156109ee5760405162461bcd60e51b815260206004820152600f60248201526e191958591b1a5b99481c185cdcd959608a1b6044820152606401610578565b600554604051637a94c56560e11b815233600482015260248101859052604481018490526001600160a01b039091169063f5298aca90606401600060405180830381600087803b158015610a4157600080fd5b505af1158015610a55573d6000803e3d6000fd5b5050505060008211610a795760405162461bcd60e51b815260040161057890612968565b610714338484604051806020016040528060008152506110fd565b6004546001600160a01b03163314610abe5760405162461bcd60e51b8152600401610578906126f4565b6007805460ff19169055565b60608151835114610b2f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610578565b600083516001600160401b03811115610b4a57610b4a6120d9565b604051908082528060200260200182016040528015610b73578160200160208202803683370190505b50905060005b8451811015610beb57610bbe858281518110610b9757610b97612952565b6020026020010151858381518110610bb157610bb1612952565b6020026020010151610510565b828281518110610bd057610bd0612952565b6020908102919091010152610be481612995565b9050610b79565b509392505050565b600080610c016064846129b0565b90506107b281116105a45760405162461bcd60e51b8152600401610578906129c4565b6000610c316003836127c6565b15610c4e5760405162461bcd60e51b8152600401610578906127da565b60648210610c6e5760405162461bcd60e51b815260040161057890612805565b6107b28311610c8f5760405162461bcd60e51b8152600401610578906129c4565b81610c9b846064612791565b610ca591906129ea565b9392505050565b6004546001600160a01b03163314610cd65760405162461bcd60e51b8152600401610578906126f4565b610ce18383836111d3565b61071483838361149b565b600080610cfa6064846127c6565b9050610d076003826127c6565b15610d245760405162461bcd60e51b8152600401610578906127da565b606481106105a45760405162461bcd60e51b815260040161057890612805565b6004546001600160a01b03163314610d6e5760405162461bcd60e51b8152600401610578906126f4565b610d786000611629565b565b610d8533838361167b565b5050565b6001600160a01b03821660008181526008602090815260408083208584528252808320549383526009825280832085845290915281205490919080821115610e07576000610dd78686610510565b90506000610de5838561277a565b905080610df24284612791565b610dfc919061277a565b9450505050506105a4565b506000949350505050565b6060600082516001600160401b03811115610e2f57610e2f6120d9565b604051908082528060200260200182016040528015610e58578160200160208202803683370190505b50905060005b8351811015610beb57610e8a85858381518110610e7d57610e7d612952565b6020026020010151610c24565b828281518110610e9c57610e9c612952565b602090810291909101015280610eb181612995565b915050610e5e565b6004546001600160a01b03163314610ee35760405162461bcd60e51b8152600401610578906126f4565b610eee838383611245565b61071483838360405180602001604052806000815250611341565b610f1485848461175c565b610f1f848484611068565b6107f885858585856117e7565b6004546001600160a01b03163314610f565760405162461bcd60e51b8152600401610578906126f4565b6001600160a01b038116610fbb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610578565b61062d81611629565b60008063bc191380610fd7426064612791565b610fe191906129b0565b610fed906107b26129ea565b90506107b281116110105760405162461bcd60e51b8152600401610578906129c4565b919050565b6004546001600160a01b0316331461103f5760405162461bcd60e51b8152600401610578906126f4565b61104a83838361175c565b61071483838361186e565b8051610d85906002906020840190611fcc565b600081116110885760405162461bcd60e51b815260040161057890612968565b6110924282612791565b6001600160a01b0384166000908152600860209081526040808320868452909152812080549091906110c59084906129ea565b909155506110d590504282612791565b6000838152600a6020526040812080549091906110f39084906129ea565b9091555050505050565b6001600160a01b0384166111235760405162461bcd60e51b815260040161057890612a02565b33611143816000876111348861196f565b61113d8861196f565b876119ba565b6000848152602081815260408083206001600160a01b0389168452909152812080548592906111739084906129ea565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46107f8816000878787876119d0565b80518251146111e4576111e4612a43565b60005b825181101561123f5761122d8484838151811061120657611206612952565b602002602001015184848151811061122057611220612952565b602002602001015161175c565b8061123781612995565b9150506111e7565b50505050565b805182511461125657611256612a43565b60005b825181101561123f5761129f8484838151811061127857611278612952565b602002602001015184848151811061129257611292612952565b6020026020010151611068565b806112a981612995565b915050611259565b6001600160a01b0385163314806112cd57506112cd85336104a1565b6113345760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610578565b6107f88585858585611b44565b6001600160a01b0384166113675760405162461bcd60e51b815260040161057890612a02565b81518351146113885760405162461bcd60e51b815260040161057890612a59565b33611398816000878787876119ba565b60005b8451811015611433578381815181106113b6576113b6612952565b60200260200101516000808784815181106113d3576113d3612952565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461141b91906129ea565b9091555081905061142b81612995565b91505061139b565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611484929190612aa1565b60405180910390a46107f881600087878787611ce2565b6001600160a01b0383166114c15760405162461bcd60e51b815260040161057890612acf565b80518251146114e25760405162461bcd60e51b815260040161057890612a59565b6000339050611505818560008686604051806020016040528060008152506119ba565b60005b83518110156115ca57600084828151811061152557611525612952565b60200260200101519050600084838151811061154357611543612952565b602090810291909101810151600084815280835260408082206001600160a01b038c1683529093529190912054909150818110156115935760405162461bcd60e51b815260040161057890612b12565b6000928352602083815260408085206001600160a01b038b16865290915290922091039055806115c281612995565b915050611508565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161161b929190612aa1565b60405180910390a450505050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031614156116ef5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610578565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000811161177c5760405162461bcd60e51b815260040161057890612968565b6117864282612791565b6001600160a01b0384166000908152600960209081526040808320868452909152812080549091906117b99084906129ea565b909155506117c990504282612791565b6000838152600b6020526040812080549091906110f39084906129ea565b6001600160a01b038516331480611803575061180385336104a1565b6118615760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610578565b6107f88585858585611dac565b6001600160a01b0383166118945760405162461bcd60e51b815260040161057890612acf565b336118c3818560006118a58761196f565b6118ae8761196f565b604051806020016040528060008152506119ba565b6000838152602081815260408083206001600160a01b0388168452909152902054828110156119045760405162461bcd60e51b815260040161057890612b12565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106119a9576119a9612952565b602090810291909101015292915050565b6119c8868686868686611ec0565b505050505050565b6001600160a01b0384163b156119c85760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611a149089908990889088908890600401612b56565b602060405180830381600087803b158015611a2e57600080fd5b505af1925050508015611a5e575060408051601f3d908101601f19168201909252611a5b91810190612b9b565b60015b611b0b57611a6a612bb8565b806308c379a01415611aa45750611a7f612bd4565b80611a8a5750611aa6565b8060405162461bcd60e51b8152600401610578919061222e565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610578565b6001600160e01b0319811663f23a6e6160e01b14611b3b5760405162461bcd60e51b815260040161057890612c5d565b50505050505050565b8151835114611b655760405162461bcd60e51b815260040161057890612a59565b6001600160a01b038416611b8b5760405162461bcd60e51b815260040161057890612ca5565b33611b9a8187878787876119ba565b60005b8451811015611c80576000858281518110611bba57611bba612952565b602002602001015190506000858381518110611bd857611bd8612952565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015611c285760405162461bcd60e51b815260040161057890612cea565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611c659084906129ea565b9250508190555050505080611c7990612995565b9050611b9d565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611cd0929190612aa1565b60405180910390a46119c88187878787875b6001600160a01b0384163b156119c85760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611d269089908990889088908890600401612d34565b602060405180830381600087803b158015611d4057600080fd5b505af1925050508015611d70575060408051601f3d908101601f19168201909252611d6d91810190612b9b565b60015b611d7c57611a6a612bb8565b6001600160e01b0319811663bc197c8160e01b14611b3b5760405162461bcd60e51b815260040161057890612c5d565b6001600160a01b038416611dd25760405162461bcd60e51b815260040161057890612ca5565b33611de28187876111348861196f565b6000848152602081815260408083206001600160a01b038a16845290915290205483811015611e235760405162461bcd60e51b815260040161057890612cea565b6000858152602081815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290611e609084906129ea565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611b3b8288888888886119d0565b6001600160a01b038516611f475760005b8351811015611f4557828181518110611eec57611eec612952565b602002602001015160036000868481518110611f0a57611f0a612952565b602002602001015181526020019081526020016000206000828254611f2f91906129ea565b90915550611f3e905081612995565b9050611ed1565b505b6001600160a01b0384166119c85760005b8351811015611b3b57828181518110611f7357611f73612952565b602002602001015160036000868481518110611f9157611f91612952565b602002602001015181526020019081526020016000206000828254611fb6919061277a565b90915550611fc5905081612995565b9050611f58565b828054611fd890612729565b90600052602060002090601f016020900481019282611ffa5760008555612040565b82601f1061201357805160ff1916838001178555612040565b82800160010185558215612040579182015b82811115612040578251825591602001919060010190612025565b5061204c929150612050565b5090565b5b8082111561204c5760008155600101612051565b80356001600160a01b038116811461101057600080fd5b6000806040838503121561208f57600080fd5b61209883612065565b946020939093013593505050565b6001600160e01b03198116811461062d57600080fd5b6000602082840312156120ce57600080fd5b8135610ca5816120a6565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715612114576121146120d9565b6040525050565b60006001600160401b03831115612134576121346120d9565b60405161214b601f8501601f1916602001826120ef565b80915083815284848401111561216057600080fd5b83836020830137600060208583010152509392505050565b60006020828403121561218a57600080fd5b81356001600160401b038111156121a057600080fd5b8201601f810184136121b157600080fd5b6121c08482356020840161211b565b949350505050565b6000602082840312156121da57600080fd5b5035919050565b6000815180845260005b81811015612207576020818501810151868301820152016121eb565b81811115612219576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610ca560208301846121e1565b60008060006060848603121561225657600080fd5b61225f84612065565b95602085013595506040909401359392505050565b60006001600160401b0382111561228d5761228d6120d9565b5060051b60200190565b600082601f8301126122a857600080fd5b813560206122b582612274565b6040516122c282826120ef565b83815260059390931b85018201928281019150868411156122e257600080fd5b8286015b848110156122fd57803583529183019183016122e6565b509695505050505050565b600082601f83011261231957600080fd5b610ca58383356020850161211b565b600080600080600060a0868803121561234057600080fd5b61234986612065565b945061235760208701612065565b935060408601356001600160401b038082111561237357600080fd5b61237f89838a01612297565b9450606088013591508082111561239557600080fd5b6123a189838a01612297565b935060808801359150808211156123b757600080fd5b506123c488828901612308565b9150509295509295909350565b600080604083850312156123e457600080fd5b82356001600160401b03808211156123fb57600080fd5b61240786838701612297565b9350602085013591508082111561241d57600080fd5b5061242a85828601612297565b9150509250929050565b6000806040838503121561244757600080fd5b50508035926020909101359150565b6000806040838503121561246957600080fd5b82356001600160401b038082111561248057600080fd5b818501915085601f83011261249457600080fd5b813560206124a182612274565b6040516124ae82826120ef565b83815260059390931b85018201928281019150898411156124ce57600080fd5b948201945b838610156124f3576124e486612065565b825294820194908201906124d3565b9650508601359250508082111561241d57600080fd5b600081518084526020808501945080840160005b838110156125395781518752958201959082019060010161251d565b509495945050505050565b602081526000610ca56020830184612509565b60008060006060848603121561256c57600080fd5b61257584612065565b925060208401356001600160401b038082111561259157600080fd5b61259d87838801612297565b935060408601359150808211156125b357600080fd5b506125c086828701612297565b9150509250925092565b600080604083850312156125dd57600080fd5b6125e683612065565b9150602083013580151581146125fb57600080fd5b809150509250929050565b6000806040838503121561261957600080fd5b8235915060208301356001600160401b0381111561263657600080fd5b61242a85828601612297565b6000806040838503121561265557600080fd5b61265e83612065565b915061266c60208401612065565b90509250929050565b600080600080600060a0868803121561268d57600080fd5b61269686612065565b94506126a460208701612065565b9350604086013592506060860135915060808601356001600160401b038111156126cd57600080fd5b6123c488828901612308565b6000602082840312156126eb57600080fd5b610ca582612065565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061273d57607f821691505b6020821081141561275e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561278c5761278c612764565b500390565b60008160001904831182151516156127ab576127ab612764565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826127d5576127d56127b0565b500690565b6020808252601190820152701b9bdb8b5d195c9b985c9e481b195d995b607a1b604082015260600190565b6020808252600d908201526c1a5b9d985b1a59081b195d995b609a1b604082015260600190565b600181815b8085111561286757816000190482111561284d5761284d612764565b8085161561285a57918102915b93841c9390800290612831565b509250929050565b60008261287e575060016105a4565b8161288b575060006105a4565b81600181146128a157600281146128ab576128c7565b60019150506105a4565b60ff8411156128bc576128bc612764565b50506001821b6105a4565b5060208310610133831016604e8410600b84101617156128ea575081810a6105a4565b6128f4838361282c565b806000190482111561290857612908612764565b029392505050565b6000610ca5838361286f565b6001600160a01b038416815260606020820181905260009061294090830185612509565b828103604084015261076c8185612509565b634e487b7160e01b600052603260045260246000fd5b6020808252601390820152721b9bdb8b5c1bdcda5d1a5d9948185b5bdd5b9d606a1b604082015260600190565b60006000198214156129a9576129a9612764565b5060010190565b6000826129bf576129bf6127b0565b500490565b6020808252600c908201526b34b73b30b634b2103cb2b0b960a11b604082015260600190565b600082198211156129fd576129fd612764565b500190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b604081526000612ab46040830185612509565b8281036020840152612ac68185612509565b95945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090612b90908301846121e1565b979650505050505050565b600060208284031215612bad57600080fd5b8151610ca5816120a6565b600060033d1115612bd15760046000803e5060005160e01c5b90565b600060443d1015612be25790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612c1157505050505090565b8285019150815181811115612c295750505050505090565b843d8701016020828501011115612c435750505050505090565b612c52602082860101876120ef565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090612d6090830186612509565b8281036060840152612d728186612509565b90508281036080840152612d8681856121e1565b9897505050505050505056fea2646970667358221220b89bd0e19c961845e42f24413a85546f325b500ec70a2a17197a6553e3a4f52864736f6c63430008090033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007861f80000000000000000000000000000000000000000000000000000000000000002e68747470733a2f2f7777772e78706f7765726d696e652e636f6d2f707074732f74686f722f7b69647d2e6a736f6e000000000000000000000000000000000000