[ { "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": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "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": "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": "address", "name": "artist_", "type": "address" } ], "name": "setArtist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "op_", "type": "address" }, { "internalType": "bool", "name": "b_", "type": "bool" } ], "name": "setB", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "customBaseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "royaltyAmount_", "type": "uint256" } ], "name": "setRoyaltyAmount", "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" } ]
60806040523480156200001157600080fd5b506040518060400160405280601481526020017f486f6c69646179205370656369616c20323032320000000000000000000000008152506040518060400160405280600781526020017f484f4c494441590000000000000000000000000000000000000000000000000081525081600090805190602001906200009692919062000612565b508060019080519060200190620000af92919062000612565b505050620000d2620000c66200019b60201b60201c565b620001a360201b60201c565b60405180606001604052806022815260200162003dea60229139600990805190602001906200010392919062000612565b506103e8600a8190555073e84967a35af55fea8991e51a14408abf948dce14600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000195600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200026960201b60201c565b620008b2565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002806008620002b160201b6200110d1760201c565b6000620002996008620002c760201b620011231760201c565b9050620002ad8282620002d560201b60201c565b5050565b6001816000016000828254019250508190555050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000348576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033f9062000732565b60405180910390fd5b6200035981620004cf60201b60201c565b156200039c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003939062000710565b60405180910390fd5b620003b0600083836200053b60201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000402919062000765565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4620004cb600083836200060860201b60201c565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200059357600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620005eb57600080fd5b620006038383836200060d60201b620011311760201c565b505050565b505050565b505050565b8280546200062090620007cc565b90600052602060002090601f01602090048101928262000644576000855562000690565b82601f106200065f57805160ff191683800117855562000690565b8280016001018555821562000690579182015b828111156200068f57825182559160200191906001019062000672565b5b5090506200069f9190620006a3565b5090565b5b80821115620006be576000816000905550600101620006a4565b5090565b6000620006d1601c8362000754565b9150620006de8262000860565b602082019050919050565b6000620006f860208362000754565b9150620007058262000889565b602082019050919050565b600060208201905081810360008301526200072b81620006c2565b9050919050565b600060208201905081810360008301526200074d81620006e9565b9050919050565b600082825260208201905092915050565b60006200077282620007c2565b91506200077f83620007c2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007b757620007b662000802565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620007e557607f821691505b60208210811415620007fc57620007fb62000831565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b61352880620008c26000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636a627842116100c3578063b88d4fde1161007c578063b88d4fde14610389578063c87b56dd146103a5578063d4c97533146103d5578063e985e9c5146103f1578063f2fde38b14610421578063feff84a81461043d5761014d565b80636a627842146102db57806370a08231146102f7578063715018a6146103275780638da5cb5b1461033157806395d89b411461034f578063a22cb4651461036d5761014d565b806323b872dd1161011557806323b872dd1461020a5780632a55205a1461022657806342842e0e146102575780634f07de091461027357806355f804b31461028f5780636352211e146102ab5761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d057806318160ddd146101ec575b600080fd5b61016c60048036038101906101679190612469565b610459565b6040516101799190612938565b60405180910390f35b61018a6104c2565b6040516101979190612953565b60405180910390f35b6101ba60048036038101906101b591906124fc565b610554565b6040516101c791906128a8565b60405180910390f35b6101ea60048036038101906101e5919061242d565b6105d9565b005b6101f46106f1565b6040516102019190612b95565b60405180910390f35b610224600480360381019061021f9190612327565b610702565b005b610240600480360381019061023b9190612525565b610762565b60405161024e92919061290f565b60405180910390f35b610271600480360381019061026c9190612327565b6107ae565b005b61028d600480360381019061028891906124fc565b6107ce565b005b6102a960048036038101906102a491906124bb565b610854565b005b6102c560048036038101906102c091906124fc565b6108ea565b6040516102d291906128a8565b60405180910390f35b6102f560048036038101906102f091906122c2565b61099c565b005b610311600480360381019061030c91906122c2565b610a24565b60405161031e9190612b95565b60405180910390f35b61032f610adc565b005b610339610b64565b60405161034691906128a8565b60405180910390f35b610357610b8e565b6040516103649190612953565b60405180910390f35b610387600480360381019061038291906123f1565b610c20565b005b6103a3600480360381019061039e9190612376565b610c36565b005b6103bf60048036038101906103ba91906124fc565b610c98565b6040516103cc9190612953565b60405180910390f35b6103ef60048036038101906103ea91906122c2565b610dea565b005b61040b600480360381019061040691906122eb565b610eaa565b6040516104189190612938565b60405180910390f35b61043b600480360381019061043691906122c2565b610f3e565b005b610457600480360381019061045291906123f1565b611036565b005b6000632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104b157600190506104bd565b6104ba82611136565b90505b919050565b6060600080546104d190612e45565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90612e45565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050905090565b600061055f82611218565b61059e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059590612af5565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105e4826108ea565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c90612b55565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610674611284565b73ffffffffffffffffffffffffffffffffffffffff1614806106a357506106a28161069d611284565b610eaa565b5b6106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990612a55565b60405180910390fd5b6106ec838361128c565b505050565b60006106fd6008611123565b905090565b61071361070d611284565b82611345565b610752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074990612b75565b60405180910390fd5b61075d838383611423565b505050565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600a54856107999190612d01565b6107a39190612cd0565b915091509250929050565b6107c983838360405180602001604052806000815250610c36565b505050565b6107d6611284565b73ffffffffffffffffffffffffffffffffffffffff166107f4610b64565b73ffffffffffffffffffffffffffffffffffffffff161461084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084190612b15565b60405180910390fd5b80600a8190555050565b61085c611284565b73ffffffffffffffffffffffffffffffffffffffff1661087a610b64565b73ffffffffffffffffffffffffffffffffffffffff16146108d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c790612b15565b60405180910390fd5b80600990805190602001906108e69291906120e6565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612a95565b60405180910390fd5b80915050919050565b6109a4611284565b73ffffffffffffffffffffffffffffffffffffffff166109c2610b64565b73ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90612b15565b60405180910390fd5b610a218161168a565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612a75565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ae4611284565b73ffffffffffffffffffffffffffffffffffffffff16610b02610b64565b73ffffffffffffffffffffffffffffffffffffffff1614610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4f90612b15565b60405180910390fd5b610b6260006116b0565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b9d90612e45565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc990612e45565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905090565b610c32610c2b611284565b8383611776565b5050565b610c47610c41611284565b83611345565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90612b75565b60405180910390fd5b610c92848484846118e3565b50505050565b6060610ca382611218565b610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd990612ad5565b60405180910390fd5b6000600660008481526020019081526020016000208054610d0290612e45565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2e90612e45565b8015610d7b5780601f10610d5057610100808354040283529160200191610d7b565b820191906000526020600020905b815481529060010190602001808311610d5e57829003601f168201915b505050505090506000610d8c61193f565b9050600081511415610da2578192505050610de5565b600082511115610dd7578082604051602001610dbf929190612884565b60405160208183030381529060405292505050610de5565b610de0846119d1565b925050505b919050565b610df2611284565b73ffffffffffffffffffffffffffffffffffffffff16610e10610b64565b73ffffffffffffffffffffffffffffffffffffffff1614610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d90612b15565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f46611284565b73ffffffffffffffffffffffffffffffffffffffff16610f64610b64565b73ffffffffffffffffffffffffffffffffffffffff1614610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb190612b15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102190612995565b60405180910390fd5b611033816116b0565b50565b61103e611284565b73ffffffffffffffffffffffffffffffffffffffff1661105c610b64565b73ffffffffffffffffffffffffffffffffffffffff16146110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a990612b15565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001816000016000828254019250508190555050565b600081600001549050919050565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061120157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611211575061121082611a78565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166112ff836108ea565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061135082611218565b61138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690612a35565b60405180910390fd5b600061139a836108ea565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061140957508373ffffffffffffffffffffffffffffffffffffffff166113f184610554565b73ffffffffffffffffffffffffffffffffffffffff16145b8061141a57506114198185610eaa565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611443826108ea565b73ffffffffffffffffffffffffffffffffffffffff1614611499576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611490906129b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906129f5565b60405180910390fd5b611514838383611ae2565b61151f60008261128c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156f9190612d5b565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115c69190612c7a565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611685838383611ba0565b505050565b611694600861110d565b60006116a06008611123565b90506116ac8282611ba5565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc90612a15565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118d69190612938565b60405180910390a3505050565b6118ee848484611423565b6118fa84848484611d7f565b611939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193090612975565b60405180910390fd5b50505050565b60606009805461194e90612e45565b80601f016020809104026020016040519081016040528092919081815260200182805461197a90612e45565b80156119c75780601f1061199c576101008083540402835291602001916119c7565b820191906000526020600020905b8154815290600101906020018083116119aa57829003601f168201915b5050505050905090565b60606119dc82611218565b611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1290612b35565b60405180910390fd5b6000611a2561193f565b90506000815111611a455760405180602001604052806000815250611a70565b80611a4f84611f16565b604051602001611a60929190612884565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b3957600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b9057600080fd5b611b9b838383611131565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0c90612ab5565b60405180910390fd5b611c1e81611218565b15611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c55906129d5565b60405180910390fd5b611c6a60008383611ae2565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cba9190612c7a565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611d7b60008383611ba0565b5050565b6000611da08473ffffffffffffffffffffffffffffffffffffffff166120c3565b15611f09578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611dc9611284565b8786866040518563ffffffff1660e01b8152600401611deb94939291906128c3565b602060405180830381600087803b158015611e0557600080fd5b505af1925050508015611e3657506040513d601f19601f82011682018060405250810190611e339190612492565b60015b611eb9573d8060008114611e66576040519150601f19603f3d011682016040523d82523d6000602084013e611e6b565b606091505b50600081511415611eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea890612975565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611f0e565b600190505b949350505050565b60606000821415611f5e576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506120be565b600082905060005b60008214611f90578080611f7990612ea8565b915050600a82611f899190612cd0565b9150611f66565b60008167ffffffffffffffff811115611fd2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156120045781602001600182028036833780820191505090505b5090505b600085146120b75760018261201d9190612d5b565b9150600a8561202c9190612ef1565b60306120389190612c7a565b60f81b818381518110612074577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856120b09190612cd0565b9450612008565b8093505050505b919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546120f290612e45565b90600052602060002090601f016020900481019282612114576000855561215b565b82601f1061212d57805160ff191683800117855561215b565b8280016001018555821561215b579182015b8281111561215a57825182559160200191906001019061213f565b5b509050612168919061216c565b5090565b5b8082111561218557600081600090555060010161216d565b5090565b600061219c61219784612bd5565b612bb0565b9050828152602081018484840111156121b457600080fd5b6121bf848285612e03565b509392505050565b60006121da6121d584612c06565b612bb0565b9050828152602081018484840111156121f257600080fd5b6121fd848285612e03565b509392505050565b60008135905061221481613496565b92915050565b600081359050612229816134ad565b92915050565b60008135905061223e816134c4565b92915050565b600081519050612253816134c4565b92915050565b600082601f83011261226a57600080fd5b813561227a848260208601612189565b91505092915050565b600082601f83011261229457600080fd5b81356122a48482602086016121c7565b91505092915050565b6000813590506122bc816134db565b92915050565b6000602082840312156122d457600080fd5b60006122e284828501612205565b91505092915050565b600080604083850312156122fe57600080fd5b600061230c85828601612205565b925050602061231d85828601612205565b9150509250929050565b60008060006060848603121561233c57600080fd5b600061234a86828701612205565b935050602061235b86828701612205565b925050604061236c868287016122ad565b9150509250925092565b6000806000806080858703121561238c57600080fd5b600061239a87828801612205565b94505060206123ab87828801612205565b93505060406123bc878288016122ad565b925050606085013567ffffffffffffffff8111156123d957600080fd5b6123e587828801612259565b91505092959194509250565b6000806040838503121561240457600080fd5b600061241285828601612205565b92505060206124238582860161221a565b9150509250929050565b6000806040838503121561244057600080fd5b600061244e85828601612205565b925050602061245f858286016122ad565b9150509250929050565b60006020828403121561247b57600080fd5b60006124898482850161222f565b91505092915050565b6000602082840312156124a457600080fd5b60006124b284828501612244565b91505092915050565b6000602082840312156124cd57600080fd5b600082013567ffffffffffffffff8111156124e757600080fd5b6124f384828501612283565b91505092915050565b60006020828403121561250e57600080fd5b600061251c848285016122ad565b91505092915050565b6000806040838503121561253857600080fd5b6000612546858286016122ad565b9250506020612557858286016122ad565b9150509250929050565b61256a81612d8f565b82525050565b61257981612da1565b82525050565b600061258a82612c37565b6125948185612c4d565b93506125a4818560208601612e12565b6125ad81612fde565b840191505092915050565b60006125c382612c42565b6125cd8185612c5e565b93506125dd818560208601612e12565b6125e681612fde565b840191505092915050565b60006125fc82612c42565b6126068185612c6f565b9350612616818560208601612e12565b80840191505092915050565b600061262f603283612c5e565b915061263a82612fef565b604082019050919050565b6000612652602683612c5e565b915061265d8261303e565b604082019050919050565b6000612675602583612c5e565b91506126808261308d565b604082019050919050565b6000612698601c83612c5e565b91506126a3826130dc565b602082019050919050565b60006126bb602483612c5e565b91506126c682613105565b604082019050919050565b60006126de601983612c5e565b91506126e982613154565b602082019050919050565b6000612701602c83612c5e565b915061270c8261317d565b604082019050919050565b6000612724603883612c5e565b915061272f826131cc565b604082019050919050565b6000612747602a83612c5e565b91506127528261321b565b604082019050919050565b600061276a602983612c5e565b91506127758261326a565b604082019050919050565b600061278d602083612c5e565b9150612798826132b9565b602082019050919050565b60006127b0603183612c5e565b91506127bb826132e2565b604082019050919050565b60006127d3602c83612c5e565b91506127de82613331565b604082019050919050565b60006127f6602083612c5e565b915061280182613380565b602082019050919050565b6000612819602f83612c5e565b9150612824826133a9565b604082019050919050565b600061283c602183612c5e565b9150612847826133f8565b604082019050919050565b600061285f603183612c5e565b915061286a82613447565b604082019050919050565b61287e81612df9565b82525050565b600061289082856125f1565b915061289c82846125f1565b91508190509392505050565b60006020820190506128bd6000830184612561565b92915050565b60006080820190506128d86000830187612561565b6128e56020830186612561565b6128f26040830185612875565b8181036060830152612904818461257f565b905095945050505050565b60006040820190506129246000830185612561565b6129316020830184612875565b9392505050565b600060208201905061294d6000830184612570565b92915050565b6000602082019050818103600083015261296d81846125b8565b905092915050565b6000602082019050818103600083015261298e81612622565b9050919050565b600060208201905081810360008301526129ae81612645565b9050919050565b600060208201905081810360008301526129ce81612668565b9050919050565b600060208201905081810360008301526129ee8161268b565b9050919050565b60006020820190508181036000830152612a0e816126ae565b9050919050565b60006020820190508181036000830152612a2e816126d1565b9050919050565b60006020820190508181036000830152612a4e816126f4565b9050919050565b60006020820190508181036000830152612a6e81612717565b9050919050565b60006020820190508181036000830152612a8e8161273a565b9050919050565b60006020820190508181036000830152612aae8161275d565b9050919050565b60006020820190508181036000830152612ace81612780565b9050919050565b60006020820190508181036000830152612aee816127a3565b9050919050565b60006020820190508181036000830152612b0e816127c6565b9050919050565b60006020820190508181036000830152612b2e816127e9565b9050919050565b60006020820190508181036000830152612b4e8161280c565b9050919050565b60006020820190508181036000830152612b6e8161282f565b9050919050565b60006020820190508181036000830152612b8e81612852565b9050919050565b6000602082019050612baa6000830184612875565b92915050565b6000612bba612bcb565b9050612bc68282612e77565b919050565b6000604051905090565b600067ffffffffffffffff821115612bf057612bef612faf565b5b612bf982612fde565b9050602081019050919050565b600067ffffffffffffffff821115612c2157612c20612faf565b5b612c2a82612fde565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612c8582612df9565b9150612c9083612df9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cc557612cc4612f22565b5b828201905092915050565b6000612cdb82612df9565b9150612ce683612df9565b925082612cf657612cf5612f51565b5b828204905092915050565b6000612d0c82612df9565b9150612d1783612df9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d5057612d4f612f22565b5b828202905092915050565b6000612d6682612df9565b9150612d7183612df9565b925082821015612d8457612d83612f22565b5b828203905092915050565b6000612d9a82612dd9565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612e30578082015181840152602081019050612e15565b83811115612e3f576000848401525b50505050565b60006002820490506001821680612e5d57607f821691505b60208210811415612e7157612e70612f80565b5b50919050565b612e8082612fde565b810181811067ffffffffffffffff82111715612e9f57612e9e612faf565b5b80604052505050565b6000612eb382612df9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ee657612ee5612f22565b5b600182019050919050565b6000612efc82612df9565b9150612f0783612df9565b925082612f1757612f16612f51565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61349f81612d8f565b81146134aa57600080fd5b50565b6134b681612da1565b81146134c157600080fd5b50565b6134cd81612dad565b81146134d857600080fd5b50565b6134e481612df9565b81146134ef57600080fd5b5056fea26469706673582212209761e22adb07e1f351fc5f81aa8f962cce361bfcbf68ed4d28539ccdbfc1c20864736f6c6343000801003368747470733a2f2f6e6674732e6270692e6e6574776f726b2f736e6f7766616c6c2f