[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "id", "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ERC20Transfer", "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": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dev", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getAssSize", "outputs": [ { "internalType": "enum IGGY404.SizeCategory", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "howmanyass", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ownedNFTs", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "pairs", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "newBaseTokenURI", "type": "string" } ], "name": "setBaseTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair1", "type": "address" }, { "internalType": "address", "name": "pair2", "type": "address" }, { "internalType": "address", "name": "pair3", "type": "address" } ], "name": "setPairs", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "thisisforiggyzass", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenSize", "outputs": [ { "internalType": "enum IGGY404.SizeCategory", "name": "", "type": "uint8" } ], "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": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040526040518060400160405280600881526020017f49474759203430340000000000000000000000000000000000000000000000008152505f9081620000499190620003d2565b506040518060400160405280600781526020017f494747593430340000000000000000000000000000000000000000000000000081525060019081620000909190620003d2565b506402540be4006002556006600355620f42406004556127106005556040518060600160405280603581526020016200388f60359139600c9081620000d69190620003d2565b50348015620000e3575f80fd5b50600254600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004b6565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001ea57607f821691505b6020821081036200020057620001ff620001a5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000227565b62000270868362000227565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002ba620002b4620002ae8462000288565b62000291565b62000288565b9050919050565b5f819050919050565b620002d5836200029a565b620002ed620002e482620002c1565b84845462000233565b825550505050565b5f90565b62000303620002f5565b62000310818484620002ca565b505050565b5b8181101562000337576200032b5f82620002f9565b60018101905062000316565b5050565b601f8211156200038657620003508162000206565b6200035b8462000218565b810160208510156200036b578190505b620003836200037a8562000218565b83018262000315565b50505b505050565b5f82821c905092915050565b5f620003a85f19846008026200038b565b1980831691505092915050565b5f620003c2838362000397565b9150826002028217905092915050565b620003dd826200016e565b67ffffffffffffffff811115620003f957620003f862000178565b5b620004058254620001d2565b620004128282856200033b565b5f60209050601f83116001811462000448575f841562000433578287015190505b6200043f8582620003b5565b865550620004ae565b601f198416620004588662000206565b5f5b8281101562000481578489015182556001820191506020850194506020810190506200045a565b86831015620004a157848901516200049d601f89168262000397565b8355505b6001600288020188555050505b505050505050565b6133cb80620004c45f395ff3fe608060405234801561000f575f80fd5b5060043610610156575f3560e01c806388c92f9e116100c1578063b91ac7881161007a578063b91ac788146103fe578063be21b8c21461042e578063c87b56dd1461044c578063d547cfb71461047c578063dd62ed3e1461049a578063e985e9c5146104ca57610156565b806388c92f9e1461032a57806391cca3db1461035a57806393f690741461037857806395d89b4114610394578063a22cb465146103b2578063a9059cbb146103ce57610156565b806327d3a7f81161011357806327d3a7f81461025657806330176e1314610260578063313ce5671461027c578063380022d51461029a5780636352211e146102ca57806370a08231146102fa57610156565b806306fdde031461015a578063081812fc14610178578063095ea7b3146101a857806318160ddd146101d85780631a72b87d146101f657806323b872dd14610226575b5f80fd5b6101626104fa565b60405161016f9190612476565b60405180910390f35b610192600480360381019061018d91906124da565b610589565b60405161019f9190612544565b60405180910390f35b6101c260048036038101906101bd9190612587565b610660565b6040516101cf91906125df565b60405180910390f35b6101e06108d9565b6040516101ed9190612607565b60405180910390f35b610210600480360381019061020b9190612587565b6108e2565b60405161021d919061263c565b60405180910390f35b610240600480360381019061023b9190612655565b610924565b60405161024d91906125df565b60405180910390f35b61025e610be9565b005b61027a600480360381019061027591906127d1565b610beb565b005b610284610c8d565b6040516102919190612607565b60405180910390f35b6102b460048036038101906102af91906124da565b610c96565b6040516102c1919061288b565b60405180910390f35b6102e460048036038101906102df91906124da565b610cb3565b6040516102f19190612544565b60405180910390f35b610314600480360381019061030f91906128a4565b610ce3565b6040516103219190612607565b60405180910390f35b610344600480360381019061033f91906124da565b610d29565b604051610351919061288b565b60405180910390f35b610362610ded565b60405161036f9190612544565b60405180910390f35b610392600480360381019061038d91906128cf565b610e12565b005b61039c610fa1565b6040516103a99190612476565b60405180910390f35b6103cc60048036038101906103c79190612949565b611031565b005b6103e860048036038101906103e39190612587565b611129565b6040516103f591906125df565b60405180910390f35b610418600480360381019061041391906124da565b611203565b6040516104259190612544565b60405180910390f35b610436611237565b6040516104439190612607565b60405180910390f35b610466600480360381019061046191906124da565b61127e565b6040516104739190612476565b60405180910390f35b610484611350565b6040516104919190612476565b60405180910390f35b6104b460048036038101906104af9190612987565b6113dc565b6040516104c19190612607565b60405180910390f35b6104e460048036038101906104df9190612987565b61145e565b6040516104f191906125df565b60405180910390f35b60605f8054610508906129f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610534906129f2565b801561057f5780601f106105565761010080835404028352916020019161057f565b820191905f5260205f20905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b5f8073ffffffffffffffffffffffffffffffffffffffff16600f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90612a6c565b60405180910390fd5b60105f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f620f424082111561075f5781600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506106f4836001611031565b818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a75f6040516107529190612acc565b60405180910390a46108cf565b5f600f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156107d657506107d4813361145e565b155b15610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d90612b2f565b60405180910390fd5b8360105f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004548473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7866040516108c59190612b7d565b60405180910390a4505b6001905092915050565b5f600254905090565b6012602052815f5260405f2081815481106108fb575f80fd5b905f5260205f209060109182820401919006600202915091509054906101000a900461ffff1681565b5f6005548210610a045781600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156109e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e090612c06565b60405180910390fd5b6109f48433846114ec565b6109ff84848461163a565b610bde565b600f5f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610ae957508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ad75750610aa882610589565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610ae85750610ae7843361145e565b5b5b610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90612c6e565b60405180910390fd5b610b33848484611c3b565b600454600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b819190612cb9565b92505081905550600454600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610bd69190612cec565b925050819055505b600190509392505050565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190612d69565b60405180910390fd5b80600c9081610c899190612f1b565b5050565b5f600354905090565b6013602052805f5260405f205f915054906101000a900460ff1681565b600f602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff16600f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbf90613034565b60405180910390fd5b60135f8381526020019081526020015f205f9054906101000a900460ff169050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9890612d69565b60405180910390fd5b8260075f60038110610eb657610eb5613052565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007600160038110610f0a57610f09613052565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806007600260038110610f5e57610f5d613052565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b606060018054610fb0906129f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610fdc906129f2565b80156110275780601f10610ffe57610100808354040283529160200191611027565b820191905f5260205f20905b81548152906001019060200180831161100a57829003601f168201915b5050505050905090565b8060115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161111d91906125df565b60405180910390a35050565b5f60055482106111435761113e33848461163a565b6111f9565b61114e338484611c3b565b600454600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461119c9190612cb9565b92505081905550600454600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111f19190612cec565b925050819055505b6001905092915050565b60078160038110611212575f80fd5b015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60125f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050905090565b60605f73ffffffffffffffffffffffffffffffffffffffff16600f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361131e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611315906130c9565b60405180910390fd5b600c61132983612293565b60405160200161133a9291906131a1565b6040516020818303038152906040529050919050565b600c805461135d906129f2565b80601f0160208091040260200160405190810160405280929190818152602001828054611389906129f2565b80156113d45780601f106113ab576101008083540402835291602001916113d4565b820191905f5260205f20905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b5f600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b80600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e9061320e565b60405180910390fd5b80600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461162e9190612cb9565b92505081905550505050565b5f600554826116499190613259565b905080826116579190612cb9565b915060075f6003811061166d5761166c613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611727575060076001600381106116d7576116d6613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806117925750600760026003811061174257611741613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b600b5f6101000a81548160ff02191690831515021790555060075f600381106117be576117bd613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806118785750600760016003811061182857611827613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806118e35750600760026003811061189357611892613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b600b60016101000a81548160ff0219169083151502179055505f600454600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119489190613259565b14600b60026101000a81548160ff0219169083151502179055505f600454600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119ae9190613259565b14600b60036101000a81548160ff0219169083151502179055505f60045483600d5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a159190612cb9565b611a1f9190613259565b14600b60046101000a81548160ff0219169083151502179055505f60045483600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a869190612cec565b611a909190613259565b14600b60056101000a81548160ff02191690831515021790555081600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b21906132d3565b60405180910390fd5b81600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b769190612cb9565b9250508190555081600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bc99190612cec565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148784604051611c2d9190612607565b60405180910390a350505050565b5f60075f60038110611c5057611c4f613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611d0a57506007600160038110611cba57611cb9613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80611d7557506007600260038110611d2557611d24613052565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b9050600f5f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611e5e5750808015611e5d5750611ded82610589565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611e5c5750611e5b600f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361145e565b5b5b5b611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9490612c6e565b60405180910390fd5b60105f8381526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905582600f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b60125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508110156121ae578260125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611fb957611fb8613052565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff1661ffff160361219b5760125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054905061206e9190612cb9565b8154811061207f5761207e613052565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff1660125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082815481106120f0576120ef613052565b5b905f5260205f2090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548061216a576121696132f1565b5b600190038181905f5260205f2090601091828204019190066002026101000a81549061ffff021916905590556121ae565b80806121a69061331e565b915050611f21565b5060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f2090601091828204019190066002029091909190916101000a81548161ffff021916908361ffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b60605f82036122d9576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506123e7565b5f8290505f5b5f82146123085780806122f19061331e565b915050600a826123019190613365565b91506122df565b5f8167ffffffffffffffff811115612323576123226126ad565b5b6040519080825280601f01601f1916602001820160405280156123555781602001600182028036833780820191505090505b5090505b5f85146123e05760018261236d9190612cb9565b9150600a8561237c9190613259565b60306123889190612cec565b60f81b81838151811061239e5761239d613052565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856123d99190613365565b9450612359565b8093505050505b919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612423578082015181840152602081019050612408565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612448826123ec565b61245281856123f6565b9350612462818560208601612406565b61246b8161242e565b840191505092915050565b5f6020820190508181035f83015261248e818461243e565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6124b9816124a7565b81146124c3575f80fd5b50565b5f813590506124d4816124b0565b92915050565b5f602082840312156124ef576124ee61249f565b5b5f6124fc848285016124c6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61252e82612505565b9050919050565b61253e81612524565b82525050565b5f6020820190506125575f830184612535565b92915050565b61256681612524565b8114612570575f80fd5b50565b5f813590506125818161255d565b92915050565b5f806040838503121561259d5761259c61249f565b5b5f6125aa85828601612573565b92505060206125bb858286016124c6565b9150509250929050565b5f8115159050919050565b6125d9816125c5565b82525050565b5f6020820190506125f25f8301846125d0565b92915050565b612601816124a7565b82525050565b5f60208201905061261a5f8301846125f8565b92915050565b5f61ffff82169050919050565b61263681612620565b82525050565b5f60208201905061264f5f83018461262d565b92915050565b5f805f6060848603121561266c5761266b61249f565b5b5f61267986828701612573565b935050602061268a86828701612573565b925050604061269b868287016124c6565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126e38261242e565b810181811067ffffffffffffffff82111715612702576127016126ad565b5b80604052505050565b5f612714612496565b905061272082826126da565b919050565b5f67ffffffffffffffff82111561273f5761273e6126ad565b5b6127488261242e565b9050602081019050919050565b828183375f83830152505050565b5f61277561277084612725565b61270b565b905082815260208101848484011115612791576127906126a9565b5b61279c848285612755565b509392505050565b5f82601f8301126127b8576127b76126a5565b5b81356127c8848260208601612763565b91505092915050565b5f602082840312156127e6576127e561249f565b5b5f82013567ffffffffffffffff811115612803576128026124a3565b5b61280f848285016127a4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6008811061285657612855612818565b5b50565b5f81905061286682612845565b919050565b5f61287582612859565b9050919050565b6128858161286b565b82525050565b5f60208201905061289e5f83018461287c565b92915050565b5f602082840312156128b9576128b861249f565b5b5f6128c684828501612573565b91505092915050565b5f805f606084860312156128e6576128e561249f565b5b5f6128f386828701612573565b935050602061290486828701612573565b925050604061291586828701612573565b9150509250925092565b612928816125c5565b8114612932575f80fd5b50565b5f813590506129438161291f565b92915050565b5f806040838503121561295f5761295e61249f565b5b5f61296c85828601612573565b925050602061297d85828601612935565b9150509250929050565b5f806040838503121561299d5761299c61249f565b5b5f6129aa85828601612573565b92505060206129bb85828601612573565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a0957607f821691505b602082108103612a1c57612a1b6129c5565b5b50919050565b7f746f6b656e20646f6573206e6f742065786973740000000000000000000000005f82015250565b5f612a566014836123f6565b9150612a6182612a22565b602082019050919050565b5f6020820190508181035f830152612a8381612a4a565b9050919050565b5f819050919050565b5f819050919050565b5f612ab6612ab1612aac84612a8a565b612a93565b6124a7565b9050919050565b612ac681612a9c565b82525050565b5f602082019050612adf5f830184612abd565b92915050565b7f556e617574686f72697a656400000000000000000000000000000000000000005f82015250565b5f612b19600c836123f6565b9150612b2482612ae5565b602082019050919050565b5f6020820190508181035f830152612b4681612b0d565b9050919050565b5f612b67612b62612b5d84612620565b612a93565b6124a7565b9050919050565b612b7781612b4d565b82525050565b5f602082019050612b905f830184612b6e565b92915050565b7f7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bf06021836123f6565b9150612bfb82612b96565b604082019050919050565b5f6020820190508181035f830152612c1d81612be4565b9050919050565b7f7472616e73666572206e6f7420616c6c6f7765640000000000000000000000005f82015250565b5f612c586014836123f6565b9150612c6382612c24565b602082019050919050565b5f6020820190508181035f830152612c8581612c4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612cc3826124a7565b9150612cce836124a7565b9250828203905081811115612ce657612ce5612c8c565b5b92915050565b5f612cf6826124a7565b9150612d01836124a7565b9250828201905080821115612d1957612d18612c8c565b5b92915050565b7f4e6f7420746865206465760000000000000000000000000000000000000000005f82015250565b5f612d53600b836123f6565b9150612d5e82612d1f565b602082019050919050565b5f6020820190508181035f830152612d8081612d47565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612de37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612da8565b612ded8683612da8565b95508019841693508086168417925050509392505050565b5f612e1f612e1a612e15846124a7565b612a93565b6124a7565b9050919050565b5f819050919050565b612e3883612e05565b612e4c612e4482612e26565b848454612db4565b825550505050565b5f90565b612e60612e54565b612e6b818484612e2f565b505050565b5b81811015612e8e57612e835f82612e58565b600181019050612e71565b5050565b601f821115612ed357612ea481612d87565b612ead84612d99565b81016020851015612ebc578190505b612ed0612ec885612d99565b830182612e70565b50505b505050565b5f82821c905092915050565b5f612ef35f1984600802612ed8565b1980831691505092915050565b5f612f0b8383612ee4565b9150826002028217905092915050565b612f24826123ec565b67ffffffffffffffff811115612f3d57612f3c6126ad565b5b612f4782546129f2565b612f52828285612e92565b5f60209050601f831160018114612f83575f8415612f71578287015190505b612f7b8582612f00565b865550612fe2565b601f198416612f9186612d87565b5f5b82811015612fb857848901518255600182019150602085019450602081019050612f93565b86831015612fd55784890151612fd1601f891682612ee4565b8355505b6001600288020188555050505b505050505050565b7f546f6b656e20646f6573206e6f742065786973740000000000000000000000005f82015250565b5f61301e6014836123f6565b915061302982612fea565b602082019050919050565b5f6020820190508181035f83015261304b81613012565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e005f82015250565b5f6130b3601f836123f6565b91506130be8261307f565b602082019050919050565b5f6020820190508181035f8301526130e0816130a7565b9050919050565b5f81905092915050565b5f81546130fd816129f2565b61310781866130e7565b9450600182165f8114613121576001811461313657613168565b60ff1983168652811515820286019350613168565b61313f85612d87565b5f5b8381101561316057815481890152600182019150602081019050613141565b838801955050505b50505092915050565b5f61317b826123ec565b61318581856130e7565b9350613195818560208601612406565b80840191505092915050565b5f6131ac82856130f1565b91506131b88284613171565b91508190509392505050565b7f696e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f6131f86016836123f6565b9150613203826131c4565b602082019050919050565b5f6020820190508181035f830152613225816131ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613263826124a7565b915061326e836124a7565b92508261327e5761327d61322c565b5b828206905092915050565b7f7472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f6132bd601f836123f6565b91506132c882613289565b602082019050919050565b5f6020820190508181035f8301526132ea816132b1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f613328826124a7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361335a57613359612c8c565b5b600182019050919050565b5f61336f826124a7565b915061337a836124a7565b92508261338a5761338961322c565b5b82820490509291505056fea2646970667358221220e8d45a04032e3252af467d21b0362df2502c4b8ed8ec2e254014a2eb09bd37d364736f6c63430008140033697066733a2f2f516d576d796f4d6f637466623553346138597441566a50317547485a4b6b527944427a6e413672746f703273784a