[ { "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": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "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": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "GEN_MIN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "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": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_isBlacklisting", "type": "bool" } ], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "blacklists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "breed_total_count", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "counts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "gen", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gen_max", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "get_account_breeds", "outputs": [ { "internalType": "uint256", "name": "page_count", "type": "uint256" }, { "internalType": "string[]", "name": "accounts", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "get_account_items", "outputs": [ { "internalType": "uint256", "name": "page_count", "type": "uint256" }, { "internalType": "string[]", "name": "accounts", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "get_account_svgs", "outputs": [ { "internalType": "uint256", "name": "page_count", "type": "uint256" }, { "internalType": "string[]", "name": "accounts", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "get_holders_list", "outputs": [ { "internalType": "uint256", "name": "page_count", "type": "uint256" }, { "internalType": "address[]", "name": "accounts", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "get_svg_acc_index", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "holders_count", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "levelUpTheAutism", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "limited", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxHoldingAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "max_breed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minHoldingAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_accessoryTint", "type": "uint256" } ], "name": "setAccessoryTint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_accessoryType", "type": "uint256" } ], "name": "setAccessoryType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxHoldingAmount", "type": "uint256" } ], "name": "setAutismManual", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_baseLayer", "type": "uint256" } ], "name": "setBaseLayer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_baseLayerShade", "type": "uint256" } ], "name": "setBaseLayerShade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_capShade", "type": "uint256" } ], "name": "setCapShade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_capStyle", "type": "uint256" } ], "name": "setCapStyle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_colorBlendMode", "type": "uint256" } ], "name": "setColorBlendMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_garmentStyle", "type": "uint256" } ], "name": "setGarmentStyle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_garmentStyleTint", "type": "uint256" } ], "name": "setGarmentStyleTint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_gobletColor", "type": "uint256" } ], "name": "setGobletColor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_gobletStyle", "type": "uint256" } ], "name": "setGobletStyle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_hatShade", "type": "uint256" } ], "name": "setHatShade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_hatStyle", "type": "uint256" } ], "name": "setHatStyle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maskStyle", "type": "uint256" } ], "name": "setMaskStyle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maskTint", "type": "uint256" } ], "name": "setMaskTint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_noseShape", "type": "uint256" } ], "name": "setNoseShape", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_noseTone", "type": "uint256" } ], "name": "setNoseTone", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_orbBrightness", "type": "uint256" } ], "name": "setOrbBrightness", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_orbGlow", "type": "uint256" } ], "name": "setOrbGlow", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_orbGlowHue", "type": "uint256" } ], "name": "setOrbGlowHue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_primaryColor", "type": "uint256" } ], "name": "setPrimaryColor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_secondaryColor", "type": "uint256" } ], "name": "setSecondaryColor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tertiaryColor", "type": "uint256" } ], "name": "setTertiaryColor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_texturePattern", "type": "uint256" } ], "name": "setTexturePattern", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tunicColor", "type": "uint256" } ], "name": "setTunicColor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tunicStyle", "type": "uint256" } ], "name": "setTunicStyle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_uniswapV2Pair", "type": "address" } ], "name": "start", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "transfer_breed_from_to_by_index", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6080604052600160065f6101000a81548160ff021916908315150217905550683635c9adc5dea00000600755671774160bc66900006008555f6009556103e8600f553480156200004d575f80fd5b506040518060400160405280600881526020017f415520544920534d0000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f4100000000000000000000000000000000000000000000000000000000000000815250620000da620000ce6200011a60201b60201c565b6200012160201b60201c565b8160049081620000eb919062000931565b508060059081620000fd919062000931565b5050506200011433600754620001e260201b60201c565b62000c70565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000253576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024a9062000a73565b60405180910390fd5b620002665f83836200035360201b60201c565b8060035f82825462000279919062000ac0565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620002ce919062000ac0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000334919062000b0b565b60405180910390a36200034f5f83836200065b60201b60201c565b5050565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015620003f25750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b62000434576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200042b9062000b74565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200055557620004996200066060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200050d5750620004de6200066060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200054f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005469062000be2565b60405180910390fd5b62000656565b60065f9054906101000a900460ff168015620005bd5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15620006555760085481620005d8846200068760201b60201c565b620005e4919062000ac0565b111580156200061257506009548162000603846200068760201b60201c565b6200060f919062000ac0565b10155b62000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062000c50565b60405180910390fd5b5b5b505050565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200074957607f821691505b6020821081036200075f576200075e62000704565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000786565b620007cf868362000786565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000819620008136200080d84620007e7565b620007f0565b620007e7565b9050919050565b5f819050919050565b6200083483620007f9565b6200084c620008438262000820565b84845462000792565b825550505050565b5f90565b6200086262000854565b6200086f81848462000829565b505050565b5b8181101562000896576200088a5f8262000858565b60018101905062000875565b5050565b601f821115620008e557620008af8162000765565b620008ba8462000777565b81016020851015620008ca578190505b620008e2620008d98562000777565b83018262000874565b50505b505050565b5f82821c905092915050565b5f620009075f1984600802620008ea565b1980831691505092915050565b5f620009218383620008f6565b9150826002028217905092915050565b6200093c82620006cd565b67ffffffffffffffff811115620009585762000957620006d7565b5b62000964825462000731565b620009718282856200089a565b5f60209050601f831160018114620009a7575f841562000992578287015190505b6200099e858262000914565b86555062000a0d565b601f198416620009b78662000765565b5f5b82811015620009e057848901518255600182019150602085019450602081019050620009b9565b8683101562000a005784890151620009fc601f891682620008f6565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000a5b601f8362000a15565b915062000a688262000a25565b602082019050919050565b5f6020820190508181035f83015262000a8c8162000a4d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000acc82620007e7565b915062000ad983620007e7565b925082820190508082111562000af45762000af362000a93565b5b92915050565b62000b0581620007e7565b82525050565b5f60208201905062000b205f83018462000afa565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f62000b5c600b8362000a15565b915062000b698262000b26565b602082019050919050565b5f6020820190508181035f83015262000b8d8162000b4e565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f62000bca60168362000a15565b915062000bd78262000b94565b602082019050919050565b5f6020820190508181035f83015262000bfb8162000bbc565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f62000c3860068362000a15565b915062000c458262000c02565b602082019050919050565b5f6020820190508181035f83015262000c698162000c2a565b9050919050565b61419d8062000c7e5f395ff3fe608060405234801561000f575f80fd5b50600436106103ce575f3560e01c806379fe82d5116101fd578063b42dfa0d11610118578063dd62ed3e116100ab578063e959f6e81161007a578063e959f6e814610b66578063f2fde38b14610b82578063f8d46c5514610b9e578063fa3b79d114610bba576103ce565b8063dd62ed3e14610ae0578063dde415fa14610b10578063e008244a14610b2e578063e50f0ce614610b4a576103ce565b8063b6761796116100e7578063b676179614610a5b578063d186827e14610a77578063d5a4260614610a93578063dd0b281e14610ac4576103ce565b8063b42dfa0d146109d5578063b432a3ea146109f3578063b4377a3e14610a0f578063b4f243a414610a2b576103ce565b806395d89b4111610190578063a0a792331161015f578063a0a792331461093b578063a457c2d714610957578063a9059cbb14610987578063af504def146109b7576103ce565b806395d89b41146108b45780639659141a146108d257806398bafaa3146108ee5780639c9e56711461091f576103ce565b8063884b17ae116101cc578063884b17ae1461083e57806389f9a1d31461085a5780638da5cb5b146108785780638fdada4a14610896576103ce565b806379fe82d5146107cc5780637f8f253b146107e8578063842a75af14610804578063860a32ec14610820576103ce565b806339509351116102ed57806359e0202e1161028057806374df4b2b1161024f57806374df4b2b14610759578063750e8d1014610775578063751039fc146107a65780637769856d146107b0576103ce565b806359e0202e146106e75780636e30ff5a1461070357806370a082311461071f578063715018a61461074f576103ce565b806349bd5a5e116102bc57806349bd5a5e146106755780634f35e3c61461069357806354aa8aa1146106af57806356b59e6f146106cb576103ce565b806339509351146105f15780633b52cbfb14610621578063404e51291461063d57806342966c6814610659576103ce565b80631ab99e1211610365578063313ce56711610334578063313ce5671461057c5780633571b3801461059a5780633860a393146105a457806338750555146105d5576103ce565b80631ab99e12146104f45780631d6ebbc51461051257806323b872dd1461052e5780632d12d34b1461055e576103ce565b8063095ea7b3116103a1578063095ea7b31461045a578063169852b11461048a57806316c02129146104a657806318160ddd146104d6576103ce565b8063018a3741146103d257806301da99d7146103f05780630568e65e1461040c57806306fdde031461043c575b5f80fd5b6103da610bd6565b6040516103e79190613202565b60405180910390f35b61040a60048036038101906104059190613249565b610bdc565b005b610426600480360381019061042191906132ce565b610c62565b6040516104339190613202565b60405180910390f35b610444610c77565b6040516104519190613383565b60405180910390f35b610474600480360381019061046f91906133a3565b610d07565b60405161048191906133fb565b60405180910390f35b6104a4600480360381019061049f9190613249565b610d24565b005b6104c060048036038101906104bb91906132ce565b610daa565b6040516104cd91906133fb565b60405180910390f35b6104de610dc7565b6040516104eb9190613202565b60405180910390f35b6104fc610dd0565b6040516105099190613202565b60405180910390f35b61052c60048036038101906105279190613249565b610dd6565b005b61054860048036038101906105439190613414565b610e5c565b60405161055591906133fb565b60405180910390f35b610566610f4e565b6040516105739190613202565b60405180910390f35b610584610f53565b604051610591919061347f565b60405180910390f35b6105a2610f5b565b005b6105be60048036038101906105b99190613498565b610fee565b6040516105cc92919061358d565b60405180910390f35b6105ef60048036038101906105ea9190613249565b611170565b005b61060b600480360381019061060691906133a3565b6111f6565b60405161061891906133fb565b60405180910390f35b61063b60048036038101906106369190613249565b61129d565b005b610657600480360381019061065291906135e5565b611323565b005b610673600480360381019061066e9190613249565b6113f7565b005b61067d611404565b60405161068a9190613632565b60405180910390f35b6106ad60048036038101906106a89190613249565b611429565b005b6106c960048036038101906106c49190613249565b6114af565b005b6106e560048036038101906106e09190613249565b611535565b005b61070160048036038101906106fc9190613249565b6115bb565b005b61071d60048036038101906107189190613249565b611641565b005b610739600480360381019061073491906132ce565b6116c7565b6040516107469190613202565b60405180910390f35b61075761170d565b005b610773600480360381019061076e9190613249565b611794565b005b61078f600480360381019061078a919061364b565b61181a565b60405161079d92919061379e565b60405180910390f35b6107ae6118a7565b005b6107ca60048036038101906107c59190613249565b61193e565b005b6107e660048036038101906107e19190613249565b6119c4565b005b61080260048036038101906107fd9190613249565b611a4a565b005b61081e60048036038101906108199190613249565b611ad0565b005b610828611b56565b60405161083591906133fb565b60405180910390f35b61085860048036038101906108539190613249565b611b68565b005b610862611bee565b60405161086f9190613202565b60405180910390f35b610880611bf4565b60405161088d9190613632565b60405180910390f35b61089e611c1b565b6040516108ab9190613202565b60405180910390f35b6108bc611c21565b6040516108c99190613383565b60405180910390f35b6108ec60048036038101906108e79190613249565b611cb1565b005b6109086004803603810190610903919061364b565b611d37565b60405161091692919061379e565b60405180910390f35b61093960048036038101906109349190613249565b611dc4565b005b61095560048036038101906109509190613249565b611e4a565b005b610971600480360381019061096c91906133a3565b611ed0565b60405161097e91906133fb565b60405180910390f35b6109a1600480360381019061099c91906133a3565b611fb6565b6040516109ae91906133fb565b60405180910390f35b6109bf611fd3565b6040516109cc9190613202565b60405180910390f35b6109dd611fd9565b6040516109ea9190613202565b60405180910390f35b610a0d6004803603810190610a089190613249565b611fdf565b005b610a296004803603810190610a2491906137cc565b612065565b005b610a456004803603810190610a4091906133a3565b6120f3565b604051610a529190613383565b60405180910390f35b610a756004803603810190610a709190613249565b6120fb565b005b610a916004803603810190610a8c9190613249565b612181565b005b610aad6004803603810190610aa8919061364b565b612207565b604051610abb92919061379e565b60405180910390f35b610ade6004803603810190610ad991906132ce565b61234d565b005b610afa6004803603810190610af5919061380a565b61240c565b604051610b079190613202565b60405180910390f35b610b1861248e565b604051610b259190613202565b60405180910390f35b610b486004803603810190610b439190613249565b612494565b005b610b646004803603810190610b5f9190613249565b61251a565b005b610b806004803603810190610b7b9190613249565b6125a0565b005b610b9c6004803603810190610b9791906132ce565b612626565b005b610bb86004803603810190610bb39190613249565b61271c565b005b610bd46004803603810190610bcf9190613249565b6127a2565b005b600e5481565b610be4612828565b73ffffffffffffffffffffffffffffffffffffffff16610c02611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f90613892565b60405180910390fd5b8060138190555050565b6010602052805f5260405f205f915090505481565b606060048054610c86906138dd565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb2906138dd565b8015610cfd5780601f10610cd457610100808354040283529160200191610cfd565b820191905f5260205f20905b815481529060010190602001808311610ce057829003601f168201915b5050505050905090565b5f610d1a610d13612828565b848461282f565b6001905092915050565b610d2c612828565b73ffffffffffffffffffffffffffffffffffffffff16610d4a611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9790613892565b60405180910390fd5b8060298190555050565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60095481565b610dde612828565b73ffffffffffffffffffffffffffffffffffffffff16610dfc611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990613892565b60405180910390fd5b8060268190555050565b5f610e688484846129f2565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610eaf612828565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f259061397d565b60405180910390fd5b610f4285610f3a612828565b85840361282f565b60019150509392505050565b600181565b5f6012905090565b610f63612828565b73ffffffffffffffffffffffffffffffffffffffff16610f81611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce90613892565b60405180910390fd5b6002600854610fe691906139c8565b600881905550565b5f6060600e54841061104d575f8067ffffffffffffffff81111561101557611014613a09565b5b6040519080825280602002602001820160405280156110435781602001602082028036833780820191505090505b5091509150611169565b5f838561105a9190613a36565b9050600e5481111561106c57600e5490505b84816110789190613a69565b92508267ffffffffffffffff81111561109457611093613a09565b5b6040519080825280602002602001820160405280156110c25781602001602082028036833780820191505090505b5091505f8590505b8381101561116657600c5f82886110e19190613a36565b81526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683828151811061112157611120613a9c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508060010190506110ca565b50505b9250929050565b611178612828565b73ffffffffffffffffffffffffffffffffffffffff16611196611bf4565b73ffffffffffffffffffffffffffffffffffffffff16146111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390613892565b60405180910390fd5b8060248190555050565b5f611293611202612828565b848460025f61120f612828565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461128e9190613a36565b61282f565b6001905092915050565b6112a5612828565b73ffffffffffffffffffffffffffffffffffffffff166112c3611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090613892565b60405180910390fd5b80601e8190555050565b61132b612828565b73ffffffffffffffffffffffffffffffffffffffff16611349611bf4565b73ffffffffffffffffffffffffffffffffffffffff161461139f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139690613892565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6114013382612c6a565b50565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611431612828565b73ffffffffffffffffffffffffffffffffffffffff1661144f611bf4565b73ffffffffffffffffffffffffffffffffffffffff16146114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90613892565b60405180910390fd5b8060188190555050565b6114b7612828565b73ffffffffffffffffffffffffffffffffffffffff166114d5611bf4565b73ffffffffffffffffffffffffffffffffffffffff161461152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290613892565b60405180910390fd5b80601f8190555050565b61153d612828565b73ffffffffffffffffffffffffffffffffffffffff1661155b611bf4565b73ffffffffffffffffffffffffffffffffffffffff16146115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890613892565b60405180910390fd5b8060148190555050565b6115c3612828565b73ffffffffffffffffffffffffffffffffffffffff166115e1611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e90613892565b60405180910390fd5b8060088190555050565b611649612828565b73ffffffffffffffffffffffffffffffffffffffff16611667611bf4565b73ffffffffffffffffffffffffffffffffffffffff16146116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b490613892565b60405180910390fd5b8060218190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611715612828565b73ffffffffffffffffffffffffffffffffffffffff16611733611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090613892565b60405180910390fd5b6117925f612e38565b565b61179c612828565b73ffffffffffffffffffffffffffffffffffffffff166117ba611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790613892565b60405180910390fd5b8060238190555050565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f848661186b9190613a36565b905081811115611879578190505b85816118859190613a69565b93505f5b8481101561189c57806001019050611889565b505050935093915050565b6118af612828565b73ffffffffffffffffffffffffffffffffffffffff166118cd611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613892565b60405180910390fd5b5f60065f6101000a81548160ff021916908315150217905550565b611946612828565b73ffffffffffffffffffffffffffffffffffffffff16611964611bf4565b73ffffffffffffffffffffffffffffffffffffffff16146119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190613892565b60405180910390fd5b8060198190555050565b6119cc612828565b73ffffffffffffffffffffffffffffffffffffffff166119ea611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613892565b60405180910390fd5b80601b8190555050565b611a52612828565b73ffffffffffffffffffffffffffffffffffffffff16611a70611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90613892565b60405180910390fd5b80602c8190555050565b611ad8612828565b73ffffffffffffffffffffffffffffffffffffffff16611af6611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4390613892565b60405180910390fd5b8060158190555050565b60065f9054906101000a900460ff1681565b611b70612828565b73ffffffffffffffffffffffffffffffffffffffff16611b8e611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb90613892565b60405180910390fd5b80601c8190555050565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103e881565b606060058054611c30906138dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5c906138dd565b8015611ca75780601f10611c7e57610100808354040283529160200191611ca7565b820191905f5260205f20905b815481529060010190602001808311611c8a57829003601f168201915b5050505050905090565b611cb9612828565b73ffffffffffffffffffffffffffffffffffffffff16611cd7611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613892565b60405180910390fd5b80602a8190555050565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8486611d889190613a36565b905081811115611d96578190505b8581611da29190613a69565b93505f5b84811015611db957806001019050611da6565b505050935093915050565b611dcc612828565b73ffffffffffffffffffffffffffffffffffffffff16611dea611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3790613892565b60405180910390fd5b8060208190555050565b611e52612828565b73ffffffffffffffffffffffffffffffffffffffff16611e70611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd90613892565b60405180910390fd5b8060168190555050565b5f8060025f611edd612828565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e90613b39565b60405180910390fd5b611fab611fa2612828565b8585840361282f565b600191505092915050565b5f611fc9611fc2612828565b84846129f2565b6001905092915050565b60115481565b600f5481565b611fe7612828565b73ffffffffffffffffffffffffffffffffffffffff16612005611bf4565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613892565b60405180910390fd5b8060258190555050565b60105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482106120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120db90613ba1565b60405180910390fd5b6120ef338383612ef9565b5050565b606092915050565b612103612828565b73ffffffffffffffffffffffffffffffffffffffff16612121611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e90613892565b60405180910390fd5b80602b8190555050565b612189612828565b73ffffffffffffffffffffffffffffffffffffffff166121a7611bf4565b73ffffffffffffffffffffffffffffffffffffffff16146121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f490613892565b60405180910390fd5b80601d8190555050565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508085106122ab575f8067ffffffffffffffff81111561226d5761226c613a09565b5b6040519080825280602002602001820160405280156122a057816020015b606081526020019060019003908161228b5790505b509250925050612345565b5f84866122b89190613a36565b9050818111156122d45781905080866122d19190613a69565b93505b8367ffffffffffffffff8111156122ee576122ed613a09565b5b60405190808252806020026020018201604052801561232157816020015b606081526020019060019003908161230c5790505b5092505f805f90508791505b828210156123405781600101915061232d565b505050505b935093915050565b612355612828565b73ffffffffffffffffffffffffffffffffffffffff16612373611bf4565b73ffffffffffffffffffffffffffffffffffffffff16146123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090613892565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6103e881565b61249c612828565b73ffffffffffffffffffffffffffffffffffffffff166124ba611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614612510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250790613892565b60405180910390fd5b80601a8190555050565b612522612828565b73ffffffffffffffffffffffffffffffffffffffff16612540611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d90613892565b60405180910390fd5b8060278190555050565b6125a8612828565b73ffffffffffffffffffffffffffffffffffffffff166125c6611bf4565b73ffffffffffffffffffffffffffffffffffffffff161461261c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261390613892565b60405180910390fd5b8060288190555050565b61262e612828565b73ffffffffffffffffffffffffffffffffffffffff1661264c611bf4565b73ffffffffffffffffffffffffffffffffffffffff16146126a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269990613892565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270790613c2f565b60405180910390fd5b61271981612e38565b50565b612724612828565b73ffffffffffffffffffffffffffffffffffffffff16612742611bf4565b73ffffffffffffffffffffffffffffffffffffffff1614612798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278f90613892565b60405180910390fd5b8060178190555050565b6127aa612828565b73ffffffffffffffffffffffffffffffffffffffff166127c8611bf4565b73ffffffffffffffffffffffffffffffffffffffff161461281e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281590613892565b60405180910390fd5b8060228190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361289d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289490613cbd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361290b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290290613d4b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129e59190613202565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5790613dd9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac590613e67565b60405180910390fd5b612ad9838383612f11565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5490613ef5565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612bed9190613a36565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c519190613202565b60405180910390a3612c648484846131e5565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccf90613f83565b60405180910390fd5b612ce3825f83612f11565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5e90614011565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254612dbc9190613a69565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e209190613202565b60405180910390a3612e33835f846131e5565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60405180602001604052805f815250905050505050565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612faf5750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fe590614079565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036130f95761304a611bf4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806130b55750613086611bf4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6130f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130eb906140e1565b60405180910390fd5b6131e0565b60065f9054906101000a900460ff1680156131605750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156131df5760085481613172846116c7565b61317c9190613a36565b1115801561319f575060095481613192846116c7565b61319c9190613a36565b10155b6131de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d590614149565b60405180910390fd5b5b5b505050565b505050565b5f819050919050565b6131fc816131ea565b82525050565b5f6020820190506132155f8301846131f3565b92915050565b5f80fd5b613228816131ea565b8114613232575f80fd5b50565b5f813590506132438161321f565b92915050565b5f6020828403121561325e5761325d61321b565b5b5f61326b84828501613235565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61329d82613274565b9050919050565b6132ad81613293565b81146132b7575f80fd5b50565b5f813590506132c8816132a4565b92915050565b5f602082840312156132e3576132e261321b565b5b5f6132f0848285016132ba565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613330578082015181840152602081019050613315565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613355826132f9565b61335f8185613303565b935061336f818560208601613313565b6133788161333b565b840191505092915050565b5f6020820190508181035f83015261339b818461334b565b905092915050565b5f80604083850312156133b9576133b861321b565b5b5f6133c6858286016132ba565b92505060206133d785828601613235565b9150509250929050565b5f8115159050919050565b6133f5816133e1565b82525050565b5f60208201905061340e5f8301846133ec565b92915050565b5f805f6060848603121561342b5761342a61321b565b5b5f613438868287016132ba565b9350506020613449868287016132ba565b925050604061345a86828701613235565b9150509250925092565b5f60ff82169050919050565b61347981613464565b82525050565b5f6020820190506134925f830184613470565b92915050565b5f80604083850312156134ae576134ad61321b565b5b5f6134bb85828601613235565b92505060206134cc85828601613235565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61350881613293565b82525050565b5f61351983836134ff565b60208301905092915050565b5f602082019050919050565b5f61353b826134d6565b61354581856134e0565b9350613550836134f0565b805f5b83811015613580578151613567888261350e565b975061357283613525565b925050600181019050613553565b5085935050505092915050565b5f6040820190506135a05f8301856131f3565b81810360208301526135b28184613531565b90509392505050565b6135c4816133e1565b81146135ce575f80fd5b50565b5f813590506135df816135bb565b92915050565b5f80604083850312156135fb576135fa61321b565b5b5f613608858286016132ba565b9250506020613619858286016135d1565b9150509250929050565b61362c81613293565b82525050565b5f6020820190506136455f830184613623565b92915050565b5f805f606084860312156136625761366161321b565b5b5f61366f868287016132ba565b935050602061368086828701613235565b925050604061369186828701613235565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6136de826132f9565b6136e881856136c4565b93506136f8818560208601613313565b6137018161333b565b840191505092915050565b5f61371783836136d4565b905092915050565b5f602082019050919050565b5f6137358261369b565b61373f81856136a5565b935083602082028501613751856136b5565b805f5b8581101561378c578484038952815161376d858261370c565b94506137788361371f565b925060208a01995050600181019050613754565b50829750879550505050505092915050565b5f6040820190506137b15f8301856131f3565b81810360208301526137c3818461372b565b90509392505050565b5f80604083850312156137e2576137e161321b565b5b5f6137ef85828601613235565b9250506020613800858286016132ba565b9150509250929050565b5f80604083850312156138205761381f61321b565b5b5f61382d858286016132ba565b925050602061383e858286016132ba565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61387c602083613303565b915061388782613848565b602082019050919050565b5f6020820190508181035f8301526138a981613870565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806138f457607f821691505b602082108103613907576139066138b0565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613967602883613303565b91506139728261390d565b604082019050919050565b5f6020820190508181035f8301526139948161395b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139d2826131ea565b91506139dd836131ea565b92508282026139eb816131ea565b91508282048414831517613a0257613a0161399b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f613a40826131ea565b9150613a4b836131ea565b9250828201905080821115613a6357613a6261399b565b5b92915050565b5f613a73826131ea565b9150613a7e836131ea565b9250828203905081811115613a9657613a9561399b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613b23602583613303565b9150613b2e82613ac9565b604082019050919050565b5f6020820190508181035f830152613b5081613b17565b9050919050565b7f696e636f727265637420696e64657800000000000000000000000000000000005f82015250565b5f613b8b600f83613303565b9150613b9682613b57565b602082019050919050565b5f6020820190508181035f830152613bb881613b7f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613c19602683613303565b9150613c2482613bbf565b604082019050919050565b5f6020820190508181035f830152613c4681613c0d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613ca7602483613303565b9150613cb282613c4d565b604082019050919050565b5f6020820190508181035f830152613cd481613c9b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d35602283613303565b9150613d4082613cdb565b604082019050919050565b5f6020820190508181035f830152613d6281613d29565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613dc3602583613303565b9150613dce82613d69565b604082019050919050565b5f6020820190508181035f830152613df081613db7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613e51602383613303565b9150613e5c82613df7565b604082019050919050565b5f6020820190508181035f830152613e7e81613e45565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613edf602683613303565b9150613eea82613e85565b604082019050919050565b5f6020820190508181035f830152613f0c81613ed3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f6d602183613303565b9150613f7882613f13565b604082019050919050565b5f6020820190508181035f830152613f9a81613f61565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ffb602283613303565b915061400682613fa1565b604082019050919050565b5f6020820190508181035f83015261402881613fef565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f614063600b83613303565b915061406e8261402f565b602082019050919050565b5f6020820190508181035f83015261409081614057565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6140cb601683613303565b91506140d682614097565b602082019050919050565b5f6020820190508181035f8301526140f8816140bf565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f614133600683613303565b915061413e826140ff565b602082019050919050565b5f6020820190508181035f83015261416081614127565b905091905056fea2646970667358221220e294a1eeb7e7442da5027c65bc2e7d0569f6f0e6db5b67fbfe51cab3418fba5c64736f6c63430008170033