[ { "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": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "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": [ { "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": "string", "name": "", "type": "string" } ], "name": "baseByPrefix", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_creator", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "_baseurl", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "mintWithURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_to", "type": "address[]" }, { "internalType": "uint256[]", "name": "_tokenId", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" }, { "internalType": "string[]", "name": "_tokenURI", "type": "string[]" } ], "name": "mintWithURIBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "minters", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "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": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "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": "_newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_minter", "type": "address" }, { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setMinterStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_prefix", "type": "string" }, { "internalType": "string", "name": "_base", "type": "string" } ], "name": "setPrefixURI", "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": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
608060405234801561001057600080fd5b50612e4f806100206000396000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c8063880155b4116100c3578063bd8f688c1161007c578063bd8f688c146102ef578063cbafedeb14610302578063e985e9c514610315578063f00c298d14610351578063f242432a14610364578063f46eccc41461037757600080fd5b8063880155b41461027d5780638da5cb5b1461029057806395d89b41146102a1578063a22cb465146102a9578063b390c0ab146102bc578063bd85b039146102cf57600080fd5b80632eb2c2d6116101155780632eb2c2d6146101ed5780634e1273f4146102025780634f558e791461022257806355f804b3146102445780635f1e6f6d146102575780637f5e83771461026a57600080fd5b8062fdd58e1461015157806301ffc9a71461017757806302d05d3f1461019a57806306fdde03146101c55780630e89341c146101da575b600080fd5b61016461015f366004611ff3565b61039a565b6040519081526020015b60405180910390f35b61018a610185366004612033565b610435565b604051901515815260200161016e565b60c9546101ad906001600160a01b031681565b6040516001600160a01b03909116815260200161016e565b6101cd610485565b60405161016e91906120a0565b6101cd6101e83660046120b3565b610513565b6102006101fb366004612215565b6108e4565b005b6102156102103660046122be565b610930565b60405161016e91906123c3565b61018a6102303660046120b3565b600090815260cf6020526040902054151590565b6102006102523660046123d6565b610a59565b610200610265366004612412565b610a8f565b6101cd6102783660046123d6565b610c9a565b61020061028b3660046124f5565b610cbe565b60c9546001600160a01b03166101ad565b6101cd610d66565b6102006102b73660046125b8565b610d73565b6102006102ca3660046125f4565b610d82565b6101646102dd3660046120b3565b600090815260cf602052604090205490565b6102006102fd366004612616565b610d8d565b61020061031036600461266f565b610de7565b61018a610323366004612702565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b61020061035f3660046125b8565b610e58565b610200610372366004612735565b610ead565b61018a610385366004612799565b60ce6020526000908152604090205460ff1681565b60006001600160a01b03831661040a5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061046657506001600160e01b031982166303a24d0760e21b145b8061042f57506301ffc9a760e01b6001600160e01b031983161461042f565b60ca8054610492906127b4565b80601f01602080910402602001604051908101604052809291908181526020018280546104be906127b4565b801561050b5780601f106104e05761010080835404028352916020019161050b565b820191906000526020600020905b8154815290600101906020018083116104ee57829003601f168201915b505050505081565b6060600061052083610ef2565b9050600060cc8054610531906127b4565b80601f016020809104026020016040519081016040528092919081815260200182805461055d906127b4565b80156105aa5780601f1061057f576101008083540402835291602001916105aa565b820191906000526020600020905b81548152906001019060200180831161058d57829003601f168201915b505050505090506000805b8351811015610601578381815181106105d0576105d06127ee565b01602001516001600160f81b031916601d60f91b036105f157809150610601565b6105fa8161281a565b90506105b5565b508015610880576000816001600160401b03811115610622576106226120cc565b6040519080825280601f01601f19166020018201604052801561064c576020820181803683370190505b50905060005b828110156106b05784818151811061066c5761066c6127ee565b602001015160f81c60f81b828281518110610689576106896127ee565b60200101906001600160f81b031916908160001a9053506106a98161281a565b9050610652565b50600060cd826040516106c39190612833565b908152602001604051809103902080546106dc906127b4565b9050111561086b5760cd816040516106f49190612833565b9081526020016040518091039020805461070d906127b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610739906127b4565b80156107865780601f1061075b57610100808354040283529160200191610786565b820191906000526020600020905b81548152906001019060200180831161076957829003601f168201915b50505050509250600060038251865161079f919061284f565b6107a9919061284f565b6001600160401b038111156107c0576107c06120cc565b6040519080825280601f01601f1916602001820160405280156107ea576020820181803683370190505b50905060005b815181101561086357856108048583612862565b61080f906003612862565b8151811061081f5761081f6127ee565b602001015160f81c60f81b82828151811061083c5761083c6127ee565b60200101906001600160f81b031916908160001a90535061085c8161281a565b90506107f0565b50935061087e565b6040518060200160405280600081525092505b505b60008351116108b8578161089386610fd2565b6040516020016108a4929190612875565b6040516020818303038152906040526108db565b81836040516020016108cb929190612875565b6040516020818303038152906040525b95945050505050565b6001600160a01b03851633148061090057506109008533610323565b61091c5760405162461bcd60e51b8152600401610401906128a4565b6109298585858585611064565b5050505050565b606081518351146109955760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610401565b600083516001600160401b038111156109b0576109b06120cc565b6040519080825280602002602001820160405280156109d9578160200160208202803683370190505b50905060005b8451811015610a5157610a248582815181106109fd576109fd6127ee565b6020026020010151858381518110610a1757610a176127ee565b602002602001015161039a565b828281518110610a3657610a366127ee565b6020908102919091010152610a4a8161281a565b90506109df565b509392505050565b60c9546001600160a01b03163314610a835760405162461bcd60e51b8152600401610401906128f2565b610a8c81611252565b50565b600054610100900460ff1615808015610aaf5750600054600160ff909116105b80610ac95750303b158015610ac9575060005460ff166001145b610b2c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610401565b6000805460ff191660011790558015610b4f576000805461ff0019166101001790555b81610b5946610fd2565b610b623061125e565b604051602001610b749392919061291c565b60405160208183030381529060405260cc9081610b9191906129bc565b50610b9a611275565b60ca610ba685826129bc565b5060cb610bb384826129bc565b5060c980546001600160a01b0319166001600160a01b038716908117909155600090815260ce6020908152604091829020805460ff1916600117905581518083018352601d81527f68747470733a2f2f737761726d2e656e76656c6f702e69732f627a7a2f00000091810191909152905162313d3d60e91b815260cd9060030190815260200160405180910390209081610c4d91906129bc565b508015610929576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b805160208183018101805160cd8252928201919093012091528054610492906127b4565b60005b87811015610d5b57610d49898983818110610cde57610cde6127ee565b9050602002016020810190610cf39190612799565b888884818110610d0557610d056127ee565b90506020020135878785818110610d1e57610d1e6127ee565b90506020020135868686818110610d3757610d376127ee565b90506020028101906103109190612a7b565b80610d538161281a565b915050610cc1565b505050505050505050565b60cb8054610492906127b4565b610d7e3383836112a6565b5050565b610d7e338383611386565b60c9546001600160a01b03163314610db75760405162461bcd60e51b8152600401610401906128f2565b8060cd83604051610dc89190612833565b90815260200160405180910390209081610de291906129bc565b505050565b33600090815260ce602052604090205460ff16610e165760405162461bcd60e51b8152600401610401906128f2565b61092985858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061151f92505050565b60c9546001600160a01b03163314610e825760405162461bcd60e51b8152600401610401906128f2565b6001600160a01b0391909116600090815260ce60205260409020805460ff1916911515919091179055565b6001600160a01b038516331480610ec95750610ec98533610323565b610ee55760405162461bcd60e51b8152600401610401906128a4565b610929858585858561159f565b600081815260986020526040812080546060929190610f10906127b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3c906127b4565b8015610f895780601f10610f5e57610100808354040283529160200191610f89565b820191906000526020600020905b815481529060010190602001808311610f6c57829003601f168201915b505050505090506000815111610fa757610fa2836116d0565b610fcb565b609781604051602001610fbb929190612ac1565b6040516020818303038152906040525b9392505050565b60606000610fdf83611764565b60010190506000816001600160401b03811115610ffe57610ffe6120cc565b6040519080825280601f01601f191660200182016040528015611028576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461103257509392505050565b81518351146110c65760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610401565b6001600160a01b0384166110ec5760405162461bcd60e51b815260040161040190612b3f565b336110fb81878787878761183c565b60005b84518110156111e457600085828151811061111b5761111b6127ee565b602002602001015190506000858381518110611139576111396127ee565b60209081029190910181015160008481526065835260408082206001600160a01b038e16835290935291909120549091508181101561118a5760405162461bcd60e51b815260040161040190612b84565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906111c9908490612862565b92505081905550505050806111dd9061281a565b90506110fe565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611234929190612bce565b60405180910390a461124a8187878787876119b5565b505050505050565b6097610d7e82826129bc565b606061042f8261126d84611b10565b600101611b7a565b600054610100900460ff1661129c5760405162461bcd60e51b815260040161040190612bf3565b6112a4611d15565b565b816001600160a01b0316836001600160a01b0316036113195760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610401565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383166113e85760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610401565b3360006113f484611d58565b9050600061140184611d58565b90506114218387600085856040518060200160405280600081525061183c565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156114a05760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610401565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46040805160208101909152600090525b50505050505050565b600083815260cf6020526040902054156115745760405162461bcd60e51b8152602060048201526016602482015275151a1a5cc81a5908185b1c9958591e481b5a5b9d195960521b6044820152606401610401565b61158f84848460405180602001604052806000815250611da3565b6115998382611ebf565b50505050565b6001600160a01b0384166115c55760405162461bcd60e51b815260040161040190612b3f565b3360006115d185611d58565b905060006115de85611d58565b90506115ee83898985858961183c565b60008681526065602090815260408083206001600160a01b038c168452909152902054858110156116315760405162461bcd60e51b815260040161040190612b84565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611670908490612862565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610d5b848a8a8a8a8a611f1c565b6060606780546116df906127b4565b80601f016020809104026020016040519081016040528092919081815260200182805461170b906127b4565b80156117585780601f1061172d57610100808354040283529160200191611758565b820191906000526020600020905b81548152906001019060200180831161173b57829003601f168201915b50505050509050919050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106117a35772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106117cf576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106117ed57662386f26fc10000830492506010015b6305f5e1008310611805576305f5e100830492506008015b612710831061181957612710830492506004015b6064831061182b576064830492506002015b600a831061042f5760010192915050565b6001600160a01b0385166118c35760005b83518110156118c157828181518110611868576118686127ee565b602002602001015160cf6000868481518110611886576118866127ee565b6020026020010151815260200190815260200160002060008282546118ab9190612862565b909155506118ba90508161281a565b905061184d565b505b6001600160a01b03841661124a5760005b83518110156115165760008482815181106118f1576118f16127ee565b60200260200101519050600084838151811061190f5761190f6127ee565b60200260200101519050600060cf6000848152602001908152602001600020549050818110156119925760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b6064820152608401610401565b600092835260cf6020526040909220910390556119ae8161281a565b90506118d4565b6001600160a01b0384163b1561124a5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906119f99089908990889088908890600401612c3e565b6020604051808303816000875af1925050508015611a34575060408051601f3d908101601f19168201909252611a3191810190612c9c565b60015b611ae057611a40612cb9565b806308c379a003611a795750611a54612cd5565b80611a5f5750611a7b565b8060405162461bcd60e51b815260040161040191906120a0565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610401565b6001600160e01b0319811663bc197c8160e01b146115165760405162461bcd60e51b815260040161040190612d5e565b600080608083901c15611b285760809290921c916010015b604083901c15611b3d5760409290921c916008015b602083901c15611b525760209290921c916004015b601083901c15611b675760109290921c916002015b600883901c1561042f5760010192915050565b60606000611b89836002612da6565b611b94906002612862565b6001600160401b03811115611bab57611bab6120cc565b6040519080825280601f01601f191660200182016040528015611bd5576020820181803683370190505b509050600360fc1b81600081518110611bf057611bf06127ee565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611c1f57611c1f6127ee565b60200101906001600160f81b031916908160001a9053506000611c43846002612da6565b611c4e906001612862565b90505b6001811115611cc6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611c8257611c826127ee565b1a60f81b828281518110611c9857611c986127ee565b60200101906001600160f81b031916908160001a90535060049490941c93611cbf81612dbd565b9050611c51565b508315610fcb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610401565b600054610100900460ff16611d3c5760405162461bcd60e51b815260040161040190612bf3565b604080516020810190915260008152609790610a8c90826129bc565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611d9257611d926127ee565b602090810291909101015292915050565b6001600160a01b038416611e035760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610401565b336000611e0f85611d58565b90506000611e1c85611d58565b9050611e2d8360008985858961183c565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290611e5f908490612862565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461151683600089898989611f1c565b6000828152609860205260409020611ed782826129bc565b50817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b611f0384610513565b604051611f1091906120a0565b60405180910390a25050565b6001600160a01b0384163b1561124a5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611f609089908990889088908890600401612dd4565b6020604051808303816000875af1925050508015611f9b575060408051601f3d908101601f19168201909252611f9891810190612c9c565b60015b611fa757611a40612cb9565b6001600160e01b0319811663f23a6e6160e01b146115165760405162461bcd60e51b815260040161040190612d5e565b80356001600160a01b0381168114611fee57600080fd5b919050565b6000806040838503121561200657600080fd5b61200f83611fd7565b946020939093013593505050565b6001600160e01b031981168114610a8c57600080fd5b60006020828403121561204557600080fd5b8135610fcb8161201d565b60005b8381101561206b578181015183820152602001612053565b50506000910152565b6000815180845261208c816020860160208601612050565b601f01601f19169290920160200192915050565b602081526000610fcb6020830184612074565b6000602082840312156120c557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715612107576121076120cc565b6040525050565b60006001600160401b03821115612127576121276120cc565b5060051b60200190565b600082601f83011261214257600080fd5b8135602061214f8261210e565b60405161215c82826120e2565b83815260059390931b850182019282810191508684111561217c57600080fd5b8286015b848110156121975780358352918301918301612180565b509695505050505050565b600082601f8301126121b357600080fd5b81356001600160401b038111156121cc576121cc6120cc565b6040516121e3601f8301601f1916602001826120e2565b8181528460208386010111156121f857600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561222d57600080fd5b61223686611fd7565b945061224460208701611fd7565b935060408601356001600160401b038082111561226057600080fd5b61226c89838a01612131565b9450606088013591508082111561228257600080fd5b61228e89838a01612131565b935060808801359150808211156122a457600080fd5b506122b1888289016121a2565b9150509295509295909350565b600080604083850312156122d157600080fd5b82356001600160401b03808211156122e857600080fd5b818501915085601f8301126122fc57600080fd5b813560206123098261210e565b60405161231682826120e2565b83815260059390931b850182019282810191508984111561233657600080fd5b948201945b8386101561235b5761234c86611fd7565b8252948201949082019061233b565b9650508601359250508082111561237157600080fd5b5061237e85828601612131565b9150509250929050565b600081518084526020808501945080840160005b838110156123b85781518752958201959082019060010161239c565b509495945050505050565b602081526000610fcb6020830184612388565b6000602082840312156123e857600080fd5b81356001600160401b038111156123fe57600080fd5b61240a848285016121a2565b949350505050565b6000806000806080858703121561242857600080fd5b61243185611fd7565b935060208501356001600160401b038082111561244d57600080fd5b612459888389016121a2565b9450604087013591508082111561246f57600080fd5b61247b888389016121a2565b9350606087013591508082111561249157600080fd5b5061249e878288016121a2565b91505092959194509250565b60008083601f8401126124bc57600080fd5b5081356001600160401b038111156124d357600080fd5b6020830191508360208260051b85010111156124ee57600080fd5b9250929050565b6000806000806000806000806080898b03121561251157600080fd5b88356001600160401b038082111561252857600080fd5b6125348c838d016124aa565b909a50985060208b013591508082111561254d57600080fd5b6125598c838d016124aa565b909850965060408b013591508082111561257257600080fd5b61257e8c838d016124aa565b909650945060608b013591508082111561259757600080fd5b506125a48b828c016124aa565b999c989b5096995094979396929594505050565b600080604083850312156125cb57600080fd5b6125d483611fd7565b9150602083013580151581146125e957600080fd5b809150509250929050565b6000806040838503121561260757600080fd5b50508035926020909101359150565b6000806040838503121561262957600080fd5b82356001600160401b038082111561264057600080fd5b61264c868387016121a2565b9350602085013591508082111561266257600080fd5b5061237e858286016121a2565b60008060008060006080868803121561268757600080fd5b61269086611fd7565b9450602086013593506040860135925060608601356001600160401b03808211156126ba57600080fd5b818801915088601f8301126126ce57600080fd5b8135818111156126dd57600080fd5b8960208285010111156126ef57600080fd5b9699959850939650602001949392505050565b6000806040838503121561271557600080fd5b61271e83611fd7565b915061272c60208401611fd7565b90509250929050565b600080600080600060a0868803121561274d57600080fd5b61275686611fd7565b945061276460208701611fd7565b9350604086013592506060860135915060808601356001600160401b0381111561278d57600080fd5b6122b1888289016121a2565b6000602082840312156127ab57600080fd5b610fcb82611fd7565b600181811c908216806127c857607f821691505b6020821081036127e857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161282c5761282c612804565b5060010190565b60008251612845818460208701612050565b9190910192915050565b8181038181111561042f5761042f612804565b8082018082111561042f5761042f612804565b60008351612887818460208801612050565b83519083019061289b818360208801612050565b01949350505050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b60208082526010908201526f27b7363c903337b91031b932b0ba37b960811b604082015260600190565b6000845161292e818460208901612050565b845190830190612942818360208901612050565b602f60f81b91018181528451909190612962816001850160208901612050565b600192019182015260020195945050505050565b601f821115610de257600081815260208120601f850160051c8101602086101561299d5750805b601f850160051c820191505b8181101561124a578281556001016129a9565b81516001600160401b038111156129d5576129d56120cc565b6129e9816129e384546127b4565b84612976565b602080601f831160018114612a1e5760008415612a065750858301515b600019600386901b1c1916600185901b17855561124a565b600085815260208120601f198616915b82811015612a4d57888601518255948401946001909101908401612a2e565b5085821015612a6b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808335601e19843603018112612a9257600080fd5b8301803591506001600160401b03821115612aac57600080fd5b6020019150368190038213156124ee57600080fd5b6000808454612acf816127b4565b60018281168015612ae75760018114612afc57612b2b565b60ff1984168752821515830287019450612b2b565b8860005260208060002060005b85811015612b225781548a820152908401908201612b09565b50505082870194505b50505050835161289b818360208801612050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000612be16040830185612388565b82810360208401526108db8185612388565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090612c6a90830186612388565b8281036060840152612c7c8186612388565b90508281036080840152612c908185612074565b98975050505050505050565b600060208284031215612cae57600080fd5b8151610fcb8161201d565b600060033d1115612cd25760046000803e5060005160e01c5b90565b600060443d1015612ce35790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612d1257505050505090565b8285019150815181811115612d2a5750505050505090565b843d8701016020828501011115612d445750505050505090565b612d53602082860101876120e2565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b808202811582820484141761042f5761042f612804565b600081612dcc57612dcc612804565b506000190190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090612e0e90830184612074565b97965050505050505056fea26469706673582212200b8036463ea30b730e54c9841f2ab11d84393e2cbdc92edaea7a557d95ad6d9e64736f6c63430008150033