[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "string[]", "name": "uri", "type": "string[]" } ], "name": "safeMint", "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": "uint96", "name": "_royalties", "type": "uint96" } ], "name": "setRoyaltiesAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" } ], "name": "setRoyaltyPayoutAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "Id", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "setTokenUri", "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": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526000600b557351b477a0cb91681f1bc43313ffd89444ac2d4f06600c806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006a57600080fd5b506040518060400160405280600b81526020017f416e6165737468657369610000000000000000000000000000000000000000008152506040518060400160405280600581526020017f414c5048410000000000000000000000000000000000000000000000000000008152508160009080519060200190620000ef92919062000459565b5080600190805190602001906200010892919062000459565b5050506200012b6200011f620001c760201b60201c565b620001cf60201b60201c565b6103e8600c60006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555062000175600a6200029560201b620011b71760201c565b620001c1600c8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a90046bffffffffffffffffffffffff16620002ab60201b60201c565b62000689565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001816000016000828254019250508190555050565b620002bb6200044f60201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156200031c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003139062000557565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200038f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003869062000579565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000612710905090565b8280546200046790620005ac565b90600052602060002090601f0160209004810192826200048b5760008555620004d7565b82601f10620004a657805160ff1916838001178555620004d7565b82800160010185558215620004d7579182015b82811115620004d6578251825591602001919060010190620004b9565b5b509050620004e69190620004ea565b5090565b5b8082111562000505576000816000905550600101620004eb565b5090565b600062000518602a836200059b565b9150620005258262000611565b604082019050919050565b60006200053f6019836200059b565b91506200054c8262000660565b602082019050919050565b60006020820190508181036000830152620005728162000509565b9050919050565b60006020820190508181036000830152620005948162000530565b9050919050565b600082825260208201905092915050565b60006002820490506001821680620005c557607f821691505b60208210811415620005dc57620005db620005e2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b613c9b80620006996000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636352211e116100c3578063a22cb4651161007c578063a22cb46514610389578063b88d4fde146103a5578063c87b56dd146103c1578063cef6d368146103f1578063e985e9c514610422578063f2fde38b146104525761014d565b80636352211e146102c75780636f98e3d8146102f757806370a0823114610313578063715018a6146103435780638da5cb5b1461034d57806395d89b411461036b5761014d565b806318160ddd1161011557806318160ddd1461020857806323b872dd146102265780632a55205a1461024257806342842e0e1461027357806345aeefde1461028f57806357f7789e146102ab5761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d0578063159eb89c146101ec575b600080fd5b61016c6004803603810190610167919061291a565b61046e565b6040516101799190612eaa565b60405180910390f35b61018a610480565b6040516101979190612ec5565b60405180910390f35b6101ba60048036038101906101b59190612974565b610512565b6040516101c79190612e1a565b60405180910390f35b6101ea60048036038101906101e591906128da565b610597565b005b61020660048036038101906102019190612a3d565b6106af565b005b6102106107a3565b60405161021d9190613167565b60405180910390f35b610240600480360381019061023b9190612768565b6107b4565b005b61025c600480360381019061025791906129fd565b610814565b60405161026a929190612e81565b60405180910390f35b61028d60048036038101906102889190612768565b6109ff565b005b6102a960048036038101906102a491906126fb565b610a1f565b005b6102c560048036038101906102c091906129a1565b610b22565b005b6102e160048036038101906102dc9190612974565b610bac565b6040516102ee9190612e1a565b60405180910390f35b610311600480360381019061030c919061283e565b610c5e565b005b61032d600480360381019061032891906126fb565b610d50565b60405161033a9190613167565b60405180910390f35b61034b610e08565b005b610355610e90565b6040516103629190612e1a565b60405180910390f35b610373610eba565b6040516103809190612ec5565b60405180910390f35b6103a3600480360381019061039e919061289a565b610f4c565b005b6103bf60048036038101906103ba91906127bb565b610f62565b005b6103db60048036038101906103d69190612974565b610fc4565b6040516103e89190612ec5565b60405180910390f35b61040b60048036038101906104069190612974565b610fd6565b604051610419929190612e81565b60405180910390f35b61043c60048036038101906104379190612728565b61102b565b6040516104499190612eaa565b60405180910390f35b61046c600480360381019061046791906126fb565b6110bf565b005b6000610479826111cd565b9050919050565b60606000805461048f90613468565b80601f01602080910402602001604051908101604052809291908181526020018280546104bb90613468565b80156105085780601f106104dd57610100808354040283529160200191610508565b820191906000526020600020905b8154815290600101906020018083116104eb57829003601f168201915b5050505050905090565b600061051d82611247565b61055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390613087565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105a282610bac565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060a906130e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106326112b3565b73ffffffffffffffffffffffffffffffffffffffff16148061066157506106608161065b6112b3565b61102b565b5b6106a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069790612fc7565b60405180910390fd5b6106aa83836112bb565b505050565b6106b76112b3565b73ffffffffffffffffffffffffffffffffffffffff166106d5610e90565b73ffffffffffffffffffffffffffffffffffffffff161461072b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610722906130a7565b60405180910390fd5b80600c60006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506107a0600c8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a90046bffffffffffffffffffffffff16611374565b50565b60006107af600a61150a565b905090565b6107c56107bf6112b3565b82611518565b610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613107565b60405180910390fd5b61080f8383836115f6565b505050565b6000806000600960008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614156109aa5760086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b60006109b461185d565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff16866109e091906132ff565b6109ea91906132ce565b90508160000151819350935050509250929050565b610a1a83838360405180602001604052806000815250610f62565b505050565b610a276112b3565b73ffffffffffffffffffffffffffffffffffffffff16610a45610e90565b73ffffffffffffffffffffffffffffffffffffffff1614610a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a92906130a7565b60405180910390fd5b80600c806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b1f600c8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a90046bffffffffffffffffffffffff16611374565b50565b610b2a6112b3565b73ffffffffffffffffffffffffffffffffffffffff16610b48610e90565b73ffffffffffffffffffffffffffffffffffffffff1614610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b95906130a7565b60405180910390fd5b610ba88282611867565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90613007565b60405180910390fd5b80915050919050565b610c666112b3565b73ffffffffffffffffffffffffffffffffffffffff16610c84610e90565b73ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd1906130a7565b60405180910390fd5b60005b81518160ff161015610d4b57610cf3600a61150a565b600b81905550610d03600a6111b7565b610d0f83600b546118db565b610d38600b54838360ff1681518110610d2b57610d2a6135fc565b5b6020026020010151611867565b8080610d4390613514565b915050610cdd565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890612fe7565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e106112b3565b73ffffffffffffffffffffffffffffffffffffffff16610e2e610e90565b73ffffffffffffffffffffffffffffffffffffffff1614610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b906130a7565b60405180910390fd5b610e8e60006118f9565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610ec990613468565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef590613468565b8015610f425780601f10610f1757610100808354040283529160200191610f42565b820191906000526020600020905b815481529060010190602001808311610f2557829003601f168201915b5050505050905090565b610f5e610f576112b3565b83836119bf565b5050565b610f73610f6d6112b3565b83611518565b610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa990613107565b60405180910390fd5b610fbe84848484611b2c565b50505050565b6060610fcf82611b88565b9050919050565b600080610fe1610e90565b612710600c60009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff168561101891906132ff565b61102291906132ce565b91509150915091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6110c76112b3565b73ffffffffffffffffffffffffffffffffffffffff166110e5610e90565b73ffffffffffffffffffffffffffffffffffffffff161461113b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611132906130a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a290612f07565b60405180910390fd5b6111b4816118f9565b50565b6001816000016000828254019250508190555050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611240575061123f82611cda565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661132e83610bac565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61137c61185d565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d190613127565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144190613147565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600081600001549050919050565b600061152382611247565b611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155990612fa7565b60405180910390fd5b600061156d83610bac565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115dc57508373ffffffffffffffffffffffffffffffffffffffff166115c484610512565b73ffffffffffffffffffffffffffffffffffffffff16145b806115ed57506115ec818561102b565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661161682610bac565b73ffffffffffffffffffffffffffffffffffffffff161461166c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166390612f27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612f67565b60405180910390fd5b6116e7838383611dbc565b6116f26000826112bb565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117429190613359565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117999190613278565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611858838383611dc1565b505050565b6000612710905090565b61187082611247565b6118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613027565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906118d692919061243e565b505050565b6118f5828260405180602001604052806000815250611dc6565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2590612f87565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611b1f9190612eaa565b60405180910390a3505050565b611b378484846115f6565b611b4384848484611e21565b611b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7990612ee7565b60405180910390fd5b50505050565b6060611b9382611247565b611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc990613067565b60405180910390fd5b6000600660008481526020019081526020016000208054611bf290613468565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e90613468565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b505050505090506000611c7c611fb8565b9050600081511415611c92578192505050611cd5565b600082511115611cc7578082604051602001611caf929190612df6565b60405160208183030381529060405292505050611cd5565b611cd084611fcf565b925050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611da557507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611db55750611db482612076565b5b9050919050565b505050565b505050565b611dd083836120e0565b611ddd6000848484611e21565b611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390612ee7565b60405180910390fd5b505050565b6000611e428473ffffffffffffffffffffffffffffffffffffffff166122ba565b15611fab578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611e6b6112b3565b8786866040518563ffffffff1660e01b8152600401611e8d9493929190612e35565b602060405180830381600087803b158015611ea757600080fd5b505af1925050508015611ed857506040513d601f19601f82011682018060405250810190611ed59190612947565b60015b611f5b573d8060008114611f08576040519150601f19603f3d011682016040523d82523d6000602084013e611f0d565b606091505b50600081511415611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90612ee7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611fb0565b600190505b949350505050565b606060405180602001604052806000815250905090565b6060611fda82611247565b612019576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612010906130c7565b60405180910390fd5b6000612023611fb8565b90506000815111612043576040518060200160405280600081525061206e565b8061204d846122dd565b60405160200161205e929190612df6565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214790613047565b60405180910390fd5b61215981611247565b15612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090612f47565b60405180910390fd5b6121a560008383611dbc565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121f59190613278565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46122b660008383611dc1565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60606000821415612325576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612439565b600082905060005b60008214612357578080612340906134cb565b915050600a8261235091906132ce565b915061232d565b60008167ffffffffffffffff8111156123735761237261362b565b5b6040519080825280601f01601f1916602001820160405280156123a55781602001600182028036833780820191505090505b5090505b60008514612432576001826123be9190613359565b9150600a856123cd919061353e565b60306123d99190613278565b60f81b8183815181106123ef576123ee6135fc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561242b91906132ce565b94506123a9565b8093505050505b919050565b82805461244a90613468565b90600052602060002090601f01602090048101928261246c57600085556124b3565b82601f1061248557805160ff19168380011785556124b3565b828001600101855582156124b3579182015b828111156124b2578251825591602001919060010190612497565b5b5090506124c091906124c4565b5090565b5b808211156124dd5760008160009055506001016124c5565b5090565b60006124f46124ef846131a7565b613182565b905080838252602082019050828560208602820111156125175761251661365f565b5b60005b8581101561256557813567ffffffffffffffff81111561253d5761253c61365a565b5b80860161254a89826126a3565b8552602085019450602084019350505060018101905061251a565b5050509392505050565b600061258261257d846131d3565b613182565b90508281526020810184848401111561259e5761259d613664565b5b6125a9848285613426565b509392505050565b60006125c46125bf84613204565b613182565b9050828152602081018484840111156125e0576125df613664565b5b6125eb848285613426565b509392505050565b60008135905061260281613bf2565b92915050565b600082601f83011261261d5761261c61365a565b5b813561262d8482602086016124e1565b91505092915050565b60008135905061264581613c09565b92915050565b60008135905061265a81613c20565b92915050565b60008151905061266f81613c20565b92915050565b600082601f83011261268a5761268961365a565b5b813561269a84826020860161256f565b91505092915050565b600082601f8301126126b8576126b761365a565b5b81356126c88482602086016125b1565b91505092915050565b6000813590506126e081613c37565b92915050565b6000813590506126f581613c4e565b92915050565b6000602082840312156127115761271061366e565b5b600061271f848285016125f3565b91505092915050565b6000806040838503121561273f5761273e61366e565b5b600061274d858286016125f3565b925050602061275e858286016125f3565b9150509250929050565b6000806000606084860312156127815761278061366e565b5b600061278f868287016125f3565b93505060206127a0868287016125f3565b92505060406127b1868287016126d1565b9150509250925092565b600080600080608085870312156127d5576127d461366e565b5b60006127e3878288016125f3565b94505060206127f4878288016125f3565b9350506040612805878288016126d1565b925050606085013567ffffffffffffffff81111561282657612825613669565b5b61283287828801612675565b91505092959194509250565b600080604083850312156128555761285461366e565b5b6000612863858286016125f3565b925050602083013567ffffffffffffffff81111561288457612883613669565b5b61289085828601612608565b9150509250929050565b600080604083850312156128b1576128b061366e565b5b60006128bf858286016125f3565b92505060206128d085828601612636565b9150509250929050565b600080604083850312156128f1576128f061366e565b5b60006128ff858286016125f3565b9250506020612910858286016126d1565b9150509250929050565b6000602082840312156129305761292f61366e565b5b600061293e8482850161264b565b91505092915050565b60006020828403121561295d5761295c61366e565b5b600061296b84828501612660565b91505092915050565b60006020828403121561298a5761298961366e565b5b6000612998848285016126d1565b91505092915050565b600080604083850312156129b8576129b761366e565b5b60006129c6858286016126d1565b925050602083013567ffffffffffffffff8111156129e7576129e6613669565b5b6129f3858286016126a3565b9150509250929050565b60008060408385031215612a1457612a1361366e565b5b6000612a22858286016126d1565b9250506020612a33858286016126d1565b9150509250929050565b600060208284031215612a5357612a5261366e565b5b6000612a61848285016126e6565b91505092915050565b612a738161338d565b82525050565b612a828161339f565b82525050565b6000612a9382613235565b612a9d818561324b565b9350612aad818560208601613435565b612ab681613673565b840191505092915050565b6000612acc82613240565b612ad6818561325c565b9350612ae6818560208601613435565b612aef81613673565b840191505092915050565b6000612b0582613240565b612b0f818561326d565b9350612b1f818560208601613435565b80840191505092915050565b6000612b3860328361325c565b9150612b4382613684565b604082019050919050565b6000612b5b60268361325c565b9150612b66826136d3565b604082019050919050565b6000612b7e60258361325c565b9150612b8982613722565b604082019050919050565b6000612ba1601c8361325c565b9150612bac82613771565b602082019050919050565b6000612bc460248361325c565b9150612bcf8261379a565b604082019050919050565b6000612be760198361325c565b9150612bf2826137e9565b602082019050919050565b6000612c0a602c8361325c565b9150612c1582613812565b604082019050919050565b6000612c2d60388361325c565b9150612c3882613861565b604082019050919050565b6000612c50602a8361325c565b9150612c5b826138b0565b604082019050919050565b6000612c7360298361325c565b9150612c7e826138ff565b604082019050919050565b6000612c96602e8361325c565b9150612ca18261394e565b604082019050919050565b6000612cb960208361325c565b9150612cc48261399d565b602082019050919050565b6000612cdc60318361325c565b9150612ce7826139c6565b604082019050919050565b6000612cff602c8361325c565b9150612d0a82613a15565b604082019050919050565b6000612d2260208361325c565b9150612d2d82613a64565b602082019050919050565b6000612d45602f8361325c565b9150612d5082613a8d565b604082019050919050565b6000612d6860218361325c565b9150612d7382613adc565b604082019050919050565b6000612d8b60318361325c565b9150612d9682613b2b565b604082019050919050565b6000612dae602a8361325c565b9150612db982613b7a565b604082019050919050565b6000612dd160198361325c565b9150612ddc82613bc9565b602082019050919050565b612df0816133f7565b82525050565b6000612e028285612afa565b9150612e0e8284612afa565b91508190509392505050565b6000602082019050612e2f6000830184612a6a565b92915050565b6000608082019050612e4a6000830187612a6a565b612e576020830186612a6a565b612e646040830185612de7565b8181036060830152612e768184612a88565b905095945050505050565b6000604082019050612e966000830185612a6a565b612ea36020830184612de7565b9392505050565b6000602082019050612ebf6000830184612a79565b92915050565b60006020820190508181036000830152612edf8184612ac1565b905092915050565b60006020820190508181036000830152612f0081612b2b565b9050919050565b60006020820190508181036000830152612f2081612b4e565b9050919050565b60006020820190508181036000830152612f4081612b71565b9050919050565b60006020820190508181036000830152612f6081612b94565b9050919050565b60006020820190508181036000830152612f8081612bb7565b9050919050565b60006020820190508181036000830152612fa081612bda565b9050919050565b60006020820190508181036000830152612fc081612bfd565b9050919050565b60006020820190508181036000830152612fe081612c20565b9050919050565b6000602082019050818103600083015261300081612c43565b9050919050565b6000602082019050818103600083015261302081612c66565b9050919050565b6000602082019050818103600083015261304081612c89565b9050919050565b6000602082019050818103600083015261306081612cac565b9050919050565b6000602082019050818103600083015261308081612ccf565b9050919050565b600060208201905081810360008301526130a081612cf2565b9050919050565b600060208201905081810360008301526130c081612d15565b9050919050565b600060208201905081810360008301526130e081612d38565b9050919050565b6000602082019050818103600083015261310081612d5b565b9050919050565b6000602082019050818103600083015261312081612d7e565b9050919050565b6000602082019050818103600083015261314081612da1565b9050919050565b6000602082019050818103600083015261316081612dc4565b9050919050565b600060208201905061317c6000830184612de7565b92915050565b600061318c61319d565b9050613198828261349a565b919050565b6000604051905090565b600067ffffffffffffffff8211156131c2576131c161362b565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156131ee576131ed61362b565b5b6131f782613673565b9050602081019050919050565b600067ffffffffffffffff82111561321f5761321e61362b565b5b61322882613673565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613283826133f7565b915061328e836133f7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132c3576132c261356f565b5b828201905092915050565b60006132d9826133f7565b91506132e4836133f7565b9250826132f4576132f361359e565b5b828204905092915050565b600061330a826133f7565b9150613315836133f7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561334e5761334d61356f565b5b828202905092915050565b6000613364826133f7565b915061336f836133f7565b9250828210156133825761338161356f565b5b828203905092915050565b6000613398826133d7565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015613453578082015181840152602081019050613438565b83811115613462576000848401525b50505050565b6000600282049050600182168061348057607f821691505b60208210811415613494576134936135cd565b5b50919050565b6134a382613673565b810181811067ffffffffffffffff821117156134c2576134c161362b565b5b80604052505050565b60006134d6826133f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135095761350861356f565b5b600182019050919050565b600061351f82613401565b915060ff8214156135335761353261356f565b5b600182019050919050565b6000613549826133f7565b9150613554836133f7565b9250826135645761356361359e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b613bfb8161338d565b8114613c0657600080fd5b50565b613c128161339f565b8114613c1d57600080fd5b50565b613c29816133ab565b8114613c3457600080fd5b50565b613c40816133f7565b8114613c4b57600080fd5b50565b613c578161340e565b8114613c6257600080fd5b5056fea26469706673582212205c01b92dc03d13221b77d55d3b204ce46265d5a181b05e54c95b6f91b18af57764736f6c63430008070033