[ { "inputs": [ { "internalType": "string", "name": "newBaseURI", "type": "string" } ], "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": "", "type": "address" } ], "name": "allowedMinters", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_to", "type": "address[]" }, { "internalType": "bytes2[]", "name": "_encodedTraits", "type": "bytes2[]" } ], "name": "batchMint", "outputs": [], "stateMutability": "nonpayable", "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": "_to", "type": "address" }, { "internalType": "bytes2", "name": "_encodedTraits", "type": "bytes2" } ], "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": "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": "_minter", "type": "address" }, { "internalType": "bool", "name": "_newState", "type": "bool" } ], "name": "setAllowedMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newURI", "type": "string" } ], "name": "setURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenTraits", "outputs": [ { "internalType": "bytes2", "name": "", "type": "bytes2" } ], "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" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bytes2", "name": "_newTraits", "type": "bytes2" } ], "name": "updateEncodedTraits", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405260006007553480156200001657600080fd5b50604051620042e3380380620042e383398181016040528101906200003c919062000370565b6040518060400160405280600881526020017f4d6f6f6e446f67650000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d444f47450000000000000000000000000000000000000000000000000000008152508160009080519060200190620000c092919062000242565b508060019080519060200190620000d992919062000242565b505050620000fc620000f06200017460201b60201c565b6200017c60201b60201c565b80600890805190602001906200011492919062000242565b506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000545565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002509062000456565b90600052602060002090601f016020900481019282620002745760008555620002c0565b82601f106200028f57805160ff1916838001178555620002c0565b82800160010185558215620002c0579182015b82811115620002bf578251825591602001919060010190620002a2565b5b509050620002cf9190620002d3565b5090565b5b80821115620002ee576000816000905550600101620002d4565b5090565b6000620003096200030384620003ea565b620003c1565b90508281526020810184848401111562000328576200032762000525565b5b6200033584828562000420565b509392505050565b600082601f83011262000355576200035462000520565b5b815162000367848260208601620002f2565b91505092915050565b6000602082840312156200038957620003886200052f565b5b600082015167ffffffffffffffff811115620003aa57620003a96200052a565b5b620003b8848285016200033d565b91505092915050565b6000620003cd620003e0565b9050620003db82826200048c565b919050565b6000604051905090565b600067ffffffffffffffff821115620004085762000407620004f1565b5b620004138262000534565b9050602081019050919050565b60005b838110156200044057808201518184015260208101905062000423565b8381111562000450576000848401525b50505050565b600060028204905060018216806200046f57607f821691505b60208210811415620004865762000485620004c2565b5b50919050565b620004978262000534565b810181811067ffffffffffffffff82111715620004b957620004b8620004f1565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b613d8e80620005556000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806351ec1ea4116100de57806395d89b4111610097578063c87b56dd11610071578063c87b56dd1461047d578063e05c57bf146104ad578063e985e9c5146104dd578063f2fde38b1461050d5761018e565b806395d89b4114610427578063a22cb46514610445578063b88d4fde146104615761018e565b806351ec1ea4146103675780636352211e146103835780636af9c205146103b357806370a08231146103cf578063715018a6146103ff5780638da5cb5b146104095761018e565b806318160ddd1161014b5780633de60e13116101255780633de60e13146102cf578063423afa66146102eb57806342842e0e1461031b5780634f6ccce7146103375761018e565b806318160ddd1461026557806323b872dd146102835780632f745c591461029f5761018e565b806301ffc9a71461019357806302fe5305146101c357806306fdde03146101df578063081812fc146101fd57806308c865101461022d578063095ea7b314610249575b600080fd5b6101ad60048036038101906101a89190612b00565b610529565b6040516101ba9190613013565b60405180910390f35b6101dd60048036038101906101d89190612b5a565b6105a3565b005b6101e7610639565b6040516101f49190613049565b60405180910390f35b61021760048036038101906102129190612ba3565b6106cb565b6040516102249190612fac565b60405180910390f35b61024760048036038101906102429190612a08565b610750565b005b610263600480360381019061025e9190612a48565b61083a565b005b61026d610952565b60405161027a91906132cb565b60405180910390f35b61029d600480360381019061029891906128f2565b61095f565b005b6102b960048036038101906102b49190612a48565b6109bf565b6040516102c691906132cb565b60405180910390f35b6102e960048036038101906102e49190612bd0565b610a64565b005b61030560048036038101906103009190612885565b610b11565b6040516103129190613013565b60405180910390f35b610335600480360381019061033091906128f2565b610b31565b005b610351600480360381019061034c9190612ba3565b610b51565b60405161035e91906132cb565b60405180910390f35b610381600480360381019061037c9190612a88565b610bc2565b005b61039d60048036038101906103989190612ba3565b610d00565b6040516103aa9190612fac565b60405180910390f35b6103cd60048036038101906103c891906129c8565b610db2565b005b6103e960048036038101906103e49190612885565b610e89565b6040516103f691906132cb565b60405180910390f35b610407610f41565b005b610411610fc9565b60405161041e9190612fac565b60405180910390f35b61042f610ff3565b60405161043c9190613049565b60405180910390f35b61045f600480360381019061045a91906129c8565b611085565b005b61047b60048036038101906104769190612945565b61109b565b005b61049760048036038101906104929190612ba3565b6110fd565b6040516104a49190613049565b60405180910390f35b6104c760048036038101906104c29190612ba3565b6111a4565b6040516104d4919061302e565b60405180910390f35b6104f760048036038101906104f291906128b2565b6111c4565b6040516105049190613013565b60405180910390f35b61052760048036038101906105229190612885565b611258565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061059c575061059b82611350565b5b9050919050565b6105ab611432565b73ffffffffffffffffffffffffffffffffffffffff166105c9610fc9565b73ffffffffffffffffffffffffffffffffffffffff161461061f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106169061322b565b60405180910390fd5b8060089080519060200190610635929190612548565b5050565b606060008054610648906135a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610674906135a5565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b60006106d68261143a565b610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9061320b565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da9061306b565b60405180910390fd5b6107ef826007546114a6565b80600a6000600754815260200190815260200160002060006101000a81548161ffff021916908360f01c02179055506007600081548092919061083190613608565b91905055505050565b600061084582610d00565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad9061326b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108d5611432565b73ffffffffffffffffffffffffffffffffffffffff1614806109045750610903816108fe611432565b6111c4565b5b610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093a906131ab565b60405180910390fd5b61094d8383611680565b505050565b6000600d80549050905090565b61097061096a611432565b82611739565b6109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a69061328b565b60405180910390fd5b6109ba838383611817565b505050565b60006109ca83610e89565b8210610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a029061308b565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610a6c611432565b73ffffffffffffffffffffffffffffffffffffffff16610a8a610fc9565b73ffffffffffffffffffffffffffffffffffffffff1614610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad79061322b565b60405180910390fd5b80600a600084815260200190815260200160002060006101000a81548161ffff021916908360f01c02179055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b610b4c8383836040518060200160405280600081525061109b565b505050565b6000610b5b610952565b8210610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b93906132ab565b60405180910390fd5b600d8281548110610bb057610baf61373e565b5b90600052602060002001549050919050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c9061306b565b60405180910390fd5b60005b8251811015610cfb57610c87838281518110610c7757610c7661373e565b5b60200260200101516007546114a6565b818181518110610c9a57610c9961373e565b5b6020026020010151600a6000600754815260200190815260200160002060006101000a81548161ffff021916908360f01c021790555060076000815480929190610ce390613608565b91905055508080610cf390613608565b915050610c58565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da0906131cb565b60405180910390fd5b80915050919050565b610dba611432565b73ffffffffffffffffffffffffffffffffffffffff16610dd8610fc9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e259061322b565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef19061318b565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f49611432565b73ffffffffffffffffffffffffffffffffffffffff16610f67610fc9565b73ffffffffffffffffffffffffffffffffffffffff1614610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb49061322b565b60405180910390fd5b610fc76000611a7e565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054611002906135a5565b80601f016020809104026020016040519081016040528092919081815260200182805461102e906135a5565b801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b5050505050905090565b611097611090611432565b8383611b44565b5050565b6110ac6110a6611432565b83611739565b6110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e29061328b565b60405180910390fd5b6110f784848484611cb1565b50505050565b60606111088261143a565b611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e9061324b565b60405180910390fd5b6000611151611d0d565b90506000815111611171576040518060200160405280600081525061119c565b8061117b84611d9f565b60405160200161118c929190612f88565b6040516020818303038152906040525b915050919050565b600a6020528060005260406000206000915054906101000a900460f01b81565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611260611432565b73ffffffffffffffffffffffffffffffffffffffff1661127e610fc9565b73ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061322b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b906130cb565b60405180910390fd5b61134d81611a7e565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061141b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061142b575061142a82611f00565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d906131eb565b60405180910390fd5b61151f8161143a565b1561155f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115569061310b565b60405180910390fd5b61156b60008383611f6a565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115bb9190613408565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461167c6000838361207e565b5050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166116f383610d00565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006117448261143a565b611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a9061316b565b60405180910390fd5b600061178e83610d00565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806117d057506117cf81856111c4565b5b8061180e57508373ffffffffffffffffffffffffffffffffffffffff166117f6846106cb565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661183782610d00565b73ffffffffffffffffffffffffffffffffffffffff161461188d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611884906130eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f49061312b565b60405180910390fd5b611908838383611f6a565b611913600082611680565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611963919061348f565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119ba9190613408565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a7983838361207e565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611baa9061314b565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ca49190613013565b60405180910390a3505050565b611cbc848484611817565b611cc884848484612083565b611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe906130ab565b60405180910390fd5b50505050565b606060088054611d1c906135a5565b80601f0160208091040260200160405190810160405280929190818152602001828054611d48906135a5565b8015611d955780601f10611d6a57610100808354040283529160200191611d95565b820191906000526020600020905b815481529060010190602001808311611d7857829003601f168201915b5050505050905090565b60606000821415611de7576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611efb565b600082905060005b60008214611e19578080611e0290613608565b915050600a82611e12919061345e565b9150611def565b60008167ffffffffffffffff811115611e3557611e3461376d565b5b6040519080825280601f01601f191660200182016040528015611e675781602001600182028036833780820191505090505b5090505b60008514611ef457600182611e80919061348f565b9150600a85611e8f9190613651565b6030611e9b9190613408565b60f81b818381518110611eb157611eb061373e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611eed919061345e565b9450611e6b565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611f7583838361221a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fb857611fb38161221f565b611ff7565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ff657611ff58382612268565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561203a57612035816123d5565b612079565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120785761207782826124a6565b5b5b505050565b505050565b60006120a48473ffffffffffffffffffffffffffffffffffffffff16612525565b1561220d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120cd611432565b8786866040518563ffffffff1660e01b81526004016120ef9493929190612fc7565b602060405180830381600087803b15801561210957600080fd5b505af192505050801561213a57506040513d601f19601f820116820180604052508101906121379190612b2d565b60015b6121bd573d806000811461216a576040519150601f19603f3d011682016040523d82523d6000602084013e61216f565b606091505b506000815114156121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac906130ab565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612212565b600190505b949350505050565b505050565b600d80549050600e600083815260200190815260200160002081905550600d81908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161227584610e89565b61227f919061348f565b90506000600c6000848152602001908152602001600020549050818114612364576000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208190555081600c600083815260200190815260200160002081905550505b600c600084815260200190815260200160002060009055600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600d805490506123e9919061348f565b90506000600e60008481526020019081526020016000205490506000600d83815481106124195761241861373e565b5b9060005260206000200154905080600d838154811061243b5761243a61373e565b5b906000526020600020018190555081600e600083815260200190815260200160002081905550600e600085815260200190815260200160002060009055600d80548061248a5761248961370f565b5b6001900381819060005260206000200160009055905550505050565b60006124b183610e89565b905081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000208190555080600c600084815260200190815260200160002081905550505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612554906135a5565b90600052602060002090601f01602090048101928261257657600085556125bd565b82601f1061258f57805160ff19168380011785556125bd565b828001600101855582156125bd579182015b828111156125bc5782518255916020019190600101906125a1565b5b5090506125ca91906125ce565b5090565b5b808211156125e75760008160009055506001016125cf565b5090565b60006125fe6125f98461330b565b6132e6565b90508083825260208201905082856020860282011115612621576126206137a1565b5b60005b858110156126515781612637888261274f565b845260208401935060208301925050600181019050612624565b5050509392505050565b600061266e61266984613337565b6132e6565b90508083825260208201905082856020860282011115612691576126906137a1565b5b60005b858110156126c157816126a788826127d5565b845260208401935060208301925050600181019050612694565b5050509392505050565b60006126de6126d984613363565b6132e6565b9050828152602081018484840111156126fa576126f96137a6565b5b612705848285613563565b509392505050565b600061272061271b84613394565b6132e6565b90508281526020810184848401111561273c5761273b6137a6565b5b612747848285613563565b509392505050565b60008135905061275e81613ce5565b92915050565b600082601f8301126127795761277861379c565b5b81356127898482602086016125eb565b91505092915050565b600082601f8301126127a7576127a661379c565b5b81356127b784826020860161265b565b91505092915050565b6000813590506127cf81613cfc565b92915050565b6000813590506127e481613d13565b92915050565b6000813590506127f981613d2a565b92915050565b60008151905061280e81613d2a565b92915050565b600082601f8301126128295761282861379c565b5b81356128398482602086016126cb565b91505092915050565b600082601f8301126128575761285661379c565b5b813561286784826020860161270d565b91505092915050565b60008135905061287f81613d41565b92915050565b60006020828403121561289b5761289a6137b0565b5b60006128a98482850161274f565b91505092915050565b600080604083850312156128c9576128c86137b0565b5b60006128d78582860161274f565b92505060206128e88582860161274f565b9150509250929050565b60008060006060848603121561290b5761290a6137b0565b5b60006129198682870161274f565b935050602061292a8682870161274f565b925050604061293b86828701612870565b9150509250925092565b6000806000806080858703121561295f5761295e6137b0565b5b600061296d8782880161274f565b945050602061297e8782880161274f565b935050604061298f87828801612870565b925050606085013567ffffffffffffffff8111156129b0576129af6137ab565b5b6129bc87828801612814565b91505092959194509250565b600080604083850312156129df576129de6137b0565b5b60006129ed8582860161274f565b92505060206129fe858286016127c0565b9150509250929050565b60008060408385031215612a1f57612a1e6137b0565b5b6000612a2d8582860161274f565b9250506020612a3e858286016127d5565b9150509250929050565b60008060408385031215612a5f57612a5e6137b0565b5b6000612a6d8582860161274f565b9250506020612a7e85828601612870565b9150509250929050565b60008060408385031215612a9f57612a9e6137b0565b5b600083013567ffffffffffffffff811115612abd57612abc6137ab565b5b612ac985828601612764565b925050602083013567ffffffffffffffff811115612aea57612ae96137ab565b5b612af685828601612792565b9150509250929050565b600060208284031215612b1657612b156137b0565b5b6000612b24848285016127ea565b91505092915050565b600060208284031215612b4357612b426137b0565b5b6000612b51848285016127ff565b91505092915050565b600060208284031215612b7057612b6f6137b0565b5b600082013567ffffffffffffffff811115612b8e57612b8d6137ab565b5b612b9a84828501612842565b91505092915050565b600060208284031215612bb957612bb86137b0565b5b6000612bc784828501612870565b91505092915050565b60008060408385031215612be757612be66137b0565b5b6000612bf585828601612870565b9250506020612c06858286016127d5565b9150509250929050565b612c19816134c3565b82525050565b612c28816134d5565b82525050565b612c37816134e1565b82525050565b6000612c48826133c5565b612c5281856133db565b9350612c62818560208601613572565b612c6b816137b5565b840191505092915050565b6000612c81826133d0565b612c8b81856133ec565b9350612c9b818560208601613572565b612ca4816137b5565b840191505092915050565b6000612cba826133d0565b612cc481856133fd565b9350612cd4818560208601613572565b80840191505092915050565b6000612ced601d836133ec565b9150612cf8826137c6565b602082019050919050565b6000612d10602b836133ec565b9150612d1b826137ef565b604082019050919050565b6000612d336032836133ec565b9150612d3e8261383e565b604082019050919050565b6000612d566026836133ec565b9150612d618261388d565b604082019050919050565b6000612d796025836133ec565b9150612d84826138dc565b604082019050919050565b6000612d9c601c836133ec565b9150612da78261392b565b602082019050919050565b6000612dbf6024836133ec565b9150612dca82613954565b604082019050919050565b6000612de26019836133ec565b9150612ded826139a3565b602082019050919050565b6000612e05602c836133ec565b9150612e10826139cc565b604082019050919050565b6000612e286029836133ec565b9150612e3382613a1b565b604082019050919050565b6000612e4b6038836133ec565b9150612e5682613a6a565b604082019050919050565b6000612e6e6029836133ec565b9150612e7982613ab9565b604082019050919050565b6000612e916020836133ec565b9150612e9c82613b08565b602082019050919050565b6000612eb4602c836133ec565b9150612ebf82613b31565b604082019050919050565b6000612ed76020836133ec565b9150612ee282613b80565b602082019050919050565b6000612efa602f836133ec565b9150612f0582613ba9565b604082019050919050565b6000612f1d6021836133ec565b9150612f2882613bf8565b604082019050919050565b6000612f406031836133ec565b9150612f4b82613c47565b604082019050919050565b6000612f63602c836133ec565b9150612f6e82613c96565b604082019050919050565b612f8281613559565b82525050565b6000612f948285612caf565b9150612fa08284612caf565b91508190509392505050565b6000602082019050612fc16000830184612c10565b92915050565b6000608082019050612fdc6000830187612c10565b612fe96020830186612c10565b612ff66040830185612f79565b81810360608301526130088184612c3d565b905095945050505050565b60006020820190506130286000830184612c1f565b92915050565b60006020820190506130436000830184612c2e565b92915050565b600060208201905081810360008301526130638184612c76565b905092915050565b6000602082019050818103600083015261308481612ce0565b9050919050565b600060208201905081810360008301526130a481612d03565b9050919050565b600060208201905081810360008301526130c481612d26565b9050919050565b600060208201905081810360008301526130e481612d49565b9050919050565b6000602082019050818103600083015261310481612d6c565b9050919050565b6000602082019050818103600083015261312481612d8f565b9050919050565b6000602082019050818103600083015261314481612db2565b9050919050565b6000602082019050818103600083015261316481612dd5565b9050919050565b6000602082019050818103600083015261318481612df8565b9050919050565b600060208201905081810360008301526131a481612e1b565b9050919050565b600060208201905081810360008301526131c481612e3e565b9050919050565b600060208201905081810360008301526131e481612e61565b9050919050565b6000602082019050818103600083015261320481612e84565b9050919050565b6000602082019050818103600083015261322481612ea7565b9050919050565b6000602082019050818103600083015261324481612eca565b9050919050565b6000602082019050818103600083015261326481612eed565b9050919050565b6000602082019050818103600083015261328481612f10565b9050919050565b600060208201905081810360008301526132a481612f33565b9050919050565b600060208201905081810360008301526132c481612f56565b9050919050565b60006020820190506132e06000830184612f79565b92915050565b60006132f0613301565b90506132fc82826135d7565b919050565b6000604051905090565b600067ffffffffffffffff8211156133265761332561376d565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156133525761335161376d565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561337e5761337d61376d565b5b613387826137b5565b9050602081019050919050565b600067ffffffffffffffff8211156133af576133ae61376d565b5b6133b8826137b5565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061341382613559565b915061341e83613559565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561345357613452613682565b5b828201905092915050565b600061346982613559565b915061347483613559565b925082613484576134836136b1565b5b828204905092915050565b600061349a82613559565b91506134a583613559565b9250828210156134b8576134b7613682565b5b828203905092915050565b60006134ce82613539565b9050919050565b60008115159050919050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613590578082015181840152602081019050613575565b8381111561359f576000848401525b50505050565b600060028204905060018216806135bd57607f821691505b602082108114156135d1576135d06136e0565b5b50919050565b6135e0826137b5565b810181811067ffffffffffffffff821117156135ff576135fe61376d565b5b80604052505050565b600061361382613559565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561364657613645613682565b5b600182019050919050565b600061365c82613559565b915061366783613559565b925082613677576136766136b1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f596f7520617265206e6f7420616e20616c6c6f776564206d696e746572000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b613cee816134c3565b8114613cf957600080fd5b50565b613d05816134d5565b8114613d1057600080fd5b50565b613d1c816134e1565b8114613d2757600080fd5b50565b613d338161350d565b8114613d3e57600080fd5b50565b613d4a81613559565b8114613d5557600080fd5b5056fea26469706673582212203d62d2c94b98dac32b843933b931935202595e079b165626ac3c27f6fb7ebe6e64736f6c634300080700330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f6170692e646f676572756e2e696f2f646f6765617661782f