[ { "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": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "SwapAndLiquifyEnabledUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapETHForTokens", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapTokensForETH", "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": "_buyLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_buyMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_buyTeamFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_liquidityShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_marketingShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellTeamFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_teamShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_totalDistributionShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_totalTaxIfBuying", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_totalTaxIfSelling", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_walletMax", "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": "newRouterAddress", "type": "address" } ], "name": "changeRouterVersion", "outputs": [ { "internalType": "address", "name": "newPairAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "checkWalletLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": [ { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "enableDisableWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTime", "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMarketPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isTxLimitExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isWalletLimitExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingWalletAddress", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minimumTokensBeforeSwapAmount", "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": [ { "internalType": "uint256", "name": "newLiquidityTax", "type": "uint256" }, { "internalType": "uint256", "name": "newMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "newTeamTax", "type": "uint256" } ], "name": "setBuyTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLiquidityShare", "type": "uint256" }, { "internalType": "uint256", "name": "newMarketingShare", "type": "uint256" }, { "internalType": "uint256", "name": "newTeamShare", "type": "uint256" } ], "name": "setDistributionSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "setIsExcludedFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsWalletLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "setMarketPairStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "setMarketingWalletAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxTxAmount", "type": "uint256" } ], "name": "setMaxTxAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setNumTokensBeforeSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLiquidityTax", "type": "uint256" }, { "internalType": "uint256", "name": "newMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "newTeamTax", "type": "uint256" } ], "name": "setSelTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "setSwapAndLiquifyByLimitOnly", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setSwapAndLiquifyEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "setTeamWalletAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyByLimitOnly", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "teamWalletAddress", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "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": [], "name": "uniswapPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a06040526040518060400160405280600781526020017f41694c6179657200000000000000000000000000000000000000000000000000815250600290816200004a919062000d9e565b506040518060400160405280600381526020017f414c5900000000000000000000000000000000000000000000000000000000008152506003908162000091919062000d9e565b50600960045f6101000a81548160ff021916908360ff16021790555073a7846c3e81b6a81e93135fb12b92e3429da49c02600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a7846c3e81b6a81e93135fb12b92e3429da49c0260055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f600c556005600d556005600e555f600f55600560105560056011555f6012556032601355600b601455600a601555600a601655604260175560045f9054906101000a900460ff16600a620001e191906200100b565b630bebc200620001f291906200105b565b60185560045f9054906101000a900460ff16600a6200021291906200100b565b621e84806200022291906200105b565b60195560045f9054906101000a900460ff16600a6200024291906200100b565b623d09006200025291906200105b565b601a5560045f9054906101000a900460ff16600a6200027291906200100b565b60646200028091906200105b565b601b556001601d60156101000a81548160ff0219169083151502179055505f601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff021916908315150217905550348015620002df575f80fd5b505f620002f162000aaa60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200041591906200110a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200047b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004a191906200110a565b6040518363ffffffff1660e01b8152600401620004c09291906200114b565b6020604051808303815f875af1158015620004dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200050391906200110a565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f6200063762000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200070a600e54620006fb600d54600c5462000ad860201b90919060201c565b62000ad860201b90919060201c565b6015819055506200073f60115462000730601054600f5462000ad860201b90919060201c565b62000ad860201b90919060201c565b601681905550620007746014546200076560135460125462000ad860201b90919060201c565b62000ad860201b90919060201c565b601781905550600160095f6200078f62000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f620008be62000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060185460065f620009ee62000aaa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000a3b62000aaa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000a9b919062001187565b60405180910390a3506200125a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80828462000ae89190620011a2565b90508381101562000b30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b27906200123a565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000bb657607f821691505b60208210810362000bcc5762000bcb62000b71565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bf3565b62000c3c868362000bf3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000c8662000c8062000c7a8462000c54565b62000c5d565b62000c54565b9050919050565b5f819050919050565b62000ca18362000c66565b62000cb962000cb08262000c8d565b84845462000bff565b825550505050565b5f90565b62000ccf62000cc1565b62000cdc81848462000c96565b505050565b5b8181101562000d035762000cf75f8262000cc5565b60018101905062000ce2565b5050565b601f82111562000d525762000d1c8162000bd2565b62000d278462000be4565b8101602085101562000d37578190505b62000d4f62000d468562000be4565b83018262000ce1565b50505b505050565b5f82821c905092915050565b5f62000d745f198460080262000d57565b1980831691505092915050565b5f62000d8e838362000d63565b9150826002028217905092915050565b62000da98262000b3a565b67ffffffffffffffff81111562000dc55762000dc462000b44565b5b62000dd1825462000b9e565b62000dde82828562000d07565b5f60209050601f83116001811462000e14575f841562000dff578287015190505b62000e0b858262000d81565b86555062000e7a565b601f19841662000e248662000bd2565b5f5b8281101562000e4d5784890151825560018201915060208501945060208101905062000e26565b8683101562000e6d578489015162000e69601f89168262000d63565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000f0c5780860481111562000ee45762000ee362000e82565b5b600185161562000ef45780820291505b808102905062000f048562000eaf565b945062000ec4565b94509492505050565b5f8262000f26576001905062000ff8565b8162000f35575f905062000ff8565b816001811462000f4e576002811462000f595762000f8f565b600191505062000ff8565b60ff84111562000f6e5762000f6d62000e82565b5b8360020a91508482111562000f885762000f8762000e82565b5b5062000ff8565b5060208310610133831016604e8410600b841016171562000fc95782820a90508381111562000fc35762000fc262000e82565b5b62000ff8565b62000fd8848484600162000ebb565b9250905081840481111562000ff25762000ff162000e82565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620010178262000c54565b9150620010248362000fff565b9250620010537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f15565b905092915050565b5f620010678262000c54565b9150620010748362000c54565b9250828202620010848162000c54565b915082820484148315176200109e576200109d62000e82565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620010d482620010a9565b9050919050565b620010e681620010c8565b8114620010f1575f80fd5b50565b5f815190506200110481620010db565b92915050565b5f60208284031215620011225762001121620010a5565b5b5f6200113184828501620010f4565b91505092915050565b6200114581620010c8565b82525050565b5f604082019050620011605f8301856200113a565b6200116f60208301846200113a565b9392505050565b620011818162000c54565b82525050565b5f6020820190506200119c5f83018462001176565b92915050565b5f620011ae8262000c54565b9150620011bb8362000c54565b9250828201905080821115620011d657620011d562000e82565b5b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f62001222601b83620011dc565b91506200122f82620011ec565b602082019050919050565b5f6020820190508181035f830152620012538162001214565b9050919050565b6080516148c56200127a5f395f81816112fd015261132801526148c55ff3fe608060405260043610610384575f3560e01c806388790a68116101d0578063c816841b11610101578063dd62ed3e1161009f578063f1d5f5171161006e578063f1d5f51714610d29578063f2fde38b14610d51578063f84ba65d14610d79578063f872858a14610da15761038b565b8063dd62ed3e14610c73578063ec28438a14610caf578063ef422a1814610cd7578063f0cd1dac14610cff5761038b565b8063cab03471116100db578063cab0347114610bcb578063d158272d14610bf5578063da00097d14610c1f578063dc44b6a014610c495761038b565b8063c816841b14610b3b578063c860795214610b65578063c867d60b14610b8f5761038b565b8063a5d69d1f1161016e578063c2d4640e11610148578063c2d4640e14610a97578063c469b6dd14610abf578063c49b9a8014610ae9578063c5d2418914610b115761038b565b8063a5d69d1f14610a09578063a83f53a714610a31578063a9059cbb14610a5b5761038b565b806395d89b41116101aa57806395d89b411461094f578063a073d37f14610979578063a08e671f146109a3578063a457c2d7146109cd5761038b565b806388790a68146108bf5780638b42507f146108e95780638da5cb5b146109255761038b565b806339509351116102b557806357a5802f116102535780637d1db4a5116102225780637d1db4a514610819578063807c2d9c1461084357806382eefb431461086d578063844d591c146108975761038b565b806357a5802f1461074d5780635881f3ef1461077757806361a23c69146107b357806370a08231146107dd5761038b565b80634a74bb021161028f5780634a74bb02146106955780634cb80fd5146106bf5780635342acb4146106e7578063557ed1ba146107235761038b565b806339509351146105f55780633b97084a146106315780633ecad271146106595761038b565b80632198cf6c1161032257806327c8f835116102fc57806327c8f8351461054f5780632b112e49146105795780632c4b2334146105a3578063313ce567146105cb5761038b565b80632198cf6c146104c357806323b872dd146104eb5780632563ae83146105275761038b565b80631245e3471161035e5780631245e3471461041d5780631694505e1461044757806318160ddd146104715780631870517a1461049b5761038b565b806306fdde031461038f578063095ea7b3146103b95780630d5e5c87146103f55761038b565b3661038b57005b5f80fd5b34801561039a575f80fd5b506103a3610dcb565b6040516103b09190613aef565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da9190613ba0565b610e5b565b6040516103ec9190613bf8565b60405180910390f35b348015610400575f80fd5b5061041b60048036038101906104169190613c11565b610e78565b005b348015610428575f80fd5b50610431610f57565b60405161043e9190613c81565b60405180910390f35b348015610452575f80fd5b5061045b610f7c565b6040516104689190613cf5565b60405180910390f35b34801561047c575f80fd5b50610485610fa1565b6040516104929190613d1d565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc9190613c11565b610faa565b005b3480156104ce575f80fd5b506104e960048036038101906104e49190613d60565b611089565b005b3480156104f6575f80fd5b50610511600480360381019061050c9190613d9e565b611175565b60405161051e9190613bf8565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190613dee565b61124a565b005b34801561055a575f80fd5b506105636112fb565b6040516105709190613e28565b60405180910390f35b348015610584575f80fd5b5061058d61131f565b60405161059a9190613d1d565b60405180910390f35b3480156105ae575f80fd5b506105c960048036038101906105c49190613e41565b611362565b005b3480156105d6575f80fd5b506105df611439565b6040516105ec9190613e87565b60405180910390f35b348015610600575f80fd5b5061061b60048036038101906106169190613ba0565b61144e565b6040516106289190613bf8565b60405180910390f35b34801561063c575f80fd5b5061065760048036038101906106529190613ea0565b6114fc565b005b348015610664575f80fd5b5061067f600480360381019061067a9190613e41565b61159a565b60405161068c9190613bf8565b60405180910390f35b3480156106a0575f80fd5b506106a96115b7565b6040516106b69190613bf8565b60405180910390f35b3480156106ca575f80fd5b506106e560048036038101906106e09190613e41565b6115ca565b005b3480156106f2575f80fd5b5061070d60048036038101906107089190613e41565b6116a2565b60405161071a9190613bf8565b60405180910390f35b34801561072e575f80fd5b506107376116bf565b6040516107449190613d1d565b60405180910390f35b348015610758575f80fd5b506107616116c6565b60405161076e9190613d1d565b60405180910390f35b348015610782575f80fd5b5061079d60048036038101906107989190613e41565b6116cc565b6040516107aa9190613e28565b60405180910390f35b3480156107be575f80fd5b506107c7611bb4565b6040516107d49190613d1d565b60405180910390f35b3480156107e8575f80fd5b5061080360048036038101906107fe9190613e41565b611bba565b6040516108109190613d1d565b60405180910390f35b348015610824575f80fd5b5061082d611c00565b60405161083a9190613d1d565b60405180910390f35b34801561084e575f80fd5b50610857611c06565b6040516108649190613d1d565b60405180910390f35b348015610878575f80fd5b50610881611c0c565b60405161088e9190613d1d565b60405180910390f35b3480156108a2575f80fd5b506108bd60048036038101906108b89190613d60565b611c12565b005b3480156108ca575f80fd5b506108d3611cfe565b6040516108e09190613d1d565b60405180910390f35b3480156108f4575f80fd5b5061090f600480360381019061090a9190613e41565b611d04565b60405161091c9190613bf8565b60405180910390f35b348015610930575f80fd5b50610939611d21565b6040516109469190613e28565b60405180910390f35b34801561095a575f80fd5b50610963611d48565b6040516109709190613aef565b60405180910390f35b348015610984575f80fd5b5061098d611dd8565b60405161099a9190613d1d565b60405180910390f35b3480156109ae575f80fd5b506109b7611de1565b6040516109c49190613d1d565b60405180910390f35b3480156109d8575f80fd5b506109f360048036038101906109ee9190613ba0565b611de7565b604051610a009190613bf8565b60405180910390f35b348015610a14575f80fd5b50610a2f6004803603810190610a2a9190613dee565b611eaf565b005b348015610a3c575f80fd5b50610a45611f60565b604051610a529190613d1d565b60405180910390f35b348015610a66575f80fd5b50610a816004803603810190610a7c9190613ba0565b611f66565b604051610a8e9190613bf8565b60405180910390f35b348015610aa2575f80fd5b50610abd6004803603810190610ab89190613c11565b611f84565b005b348015610aca575f80fd5b50610ad3612063565b604051610ae09190613d1d565b60405180910390f35b348015610af4575f80fd5b50610b0f6004803603810190610b0a9190613dee565b612069565b005b348015610b1c575f80fd5b50610b25612151565b604051610b329190613d1d565b60405180910390f35b348015610b46575f80fd5b50610b4f612157565b604051610b5c9190613e28565b60405180910390f35b348015610b70575f80fd5b50610b7961217c565b604051610b869190613d1d565b60405180910390f35b348015610b9a575f80fd5b50610bb56004803603810190610bb09190613e41565b612182565b604051610bc29190613bf8565b60405180910390f35b348015610bd6575f80fd5b50610bdf61219f565b604051610bec9190613d1d565b60405180910390f35b348015610c00575f80fd5b50610c096121a5565b604051610c169190613c81565b60405180910390f35b348015610c2a575f80fd5b50610c336121cb565b604051610c409190613bf8565b60405180910390f35b348015610c54575f80fd5b50610c5d6121de565b604051610c6a9190613d1d565b60405180910390f35b348015610c7e575f80fd5b50610c996004803603810190610c949190613ecb565b6121e4565b604051610ca69190613d1d565b60405180910390f35b348015610cba575f80fd5b50610cd56004803603810190610cd09190613ea0565b612266565b005b348015610ce2575f80fd5b50610cfd6004803603810190610cf89190613d60565b612304565b005b348015610d0a575f80fd5b50610d136123f0565b604051610d209190613d1d565b60405180910390f35b348015610d34575f80fd5b50610d4f6004803603810190610d4a9190613ea0565b6123f6565b005b348015610d5c575f80fd5b50610d776004803603810190610d729190613e41565b612494565b005b348015610d84575f80fd5b50610d9f6004803603810190610d9a9190613d60565b612651565b005b348015610dac575f80fd5b50610db561273d565b604051610dc29190613bf8565b60405180910390f35b606060028054610dda90613f36565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0690613f36565b8015610e515780601f10610e2857610100808354040283529160200191610e51565b820191905f5260205f20905b815481529060010190602001808311610e3457829003601f168201915b5050505050905090565b5f610e6e610e67612750565b8484612757565b6001905092915050565b610e80612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390613fb0565b60405180910390fd5b82600f819055508160108190555080601181905550610f4c601154610f3e601054600f5461291a90919063ffffffff16565b61291a90919063ffffffff16565b601681905550505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601854905090565b610fb2612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590613fb0565b60405180910390fd5b82600c8190555081600d8190555080600e8190555061107e600e54611070600d54600c5461291a90919063ffffffff16565b61291a90919063ffffffff16565b601581905550505050565b611091612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490613fb0565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611181848484612977565b5061123f8461118e612750565b61123a856040518060600160405280602881526020016148436028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6111f1612750565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f3a9092919063ffffffff16565b612757565b600190509392505050565b611252612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590613fb0565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f61135d61134c7f0000000000000000000000000000000000000000000000000000000000000000611bba565b601854612f9c90919063ffffffff16565b905090565b61136a612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90613fb0565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f9054906101000a900460ff16905090565b5f6114f261145a612750565b846114ed8560075f61146a612750565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291a90919063ffffffff16565b612757565b6001905092915050565b611504612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158790613fb0565b60405180910390fd5b80601b8190555050565b600b602052805f5260405f205f915054906101000a900460ff1681565b601d60159054906101000a900460ff1681565b6115d2612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590613fb0565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f42905090565b60125481565b5f6116d5612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175890613fb0565b60405180910390fd5b5f8290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d29190613fe2565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611837573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061185b9190613fe2565b6040518363ffffffff1660e01b815260040161187892919061400d565b602060405180830381865afa158015611893573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118b79190613fe2565b91505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a42578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611935573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119599190613fe2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119e29190613fe2565b6040518363ffffffff1660e01b81526004016119ff92919061400d565b6020604051808303815f875af1158015611a1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3f9190613fe2565b91505b81601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050919050565b60135481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60195481565b601a5481565b60165481565b611c1a612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90613fb0565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600f5481565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054611d5790613f36565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8390613f36565b8015611dce5780601f10611da557610100808354040283529160200191611dce565b820191905f5260205f20905b815481529060010190602001808311611db157829003601f168201915b5050505050905090565b5f601b54905090565b60175481565b5f611ea5611df3612750565b84611ea08560405180606001604052806025815260200161486b6025913960075f611e1c612750565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f3a9092919063ffffffff16565b612757565b6001905092915050565b611eb7612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3a90613fb0565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b60145481565b5f611f79611f72612750565b8484612977565b506001905092915050565b611f8c612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200f90613fb0565b60405180910390fd5b82601281905550816013819055508060148190555061205860145461204a60135460125461291a90919063ffffffff16565b61291a90919063ffffffff16565b601781905550505050565b600e5481565b612071612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f490613fb0565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516121469190613bf8565b60405180910390a150565b600d5481565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6009602052805f5260405f205f915054906101000a900460ff1681565b60115481565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60169054906101000a900460ff1681565b600c5481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61226e612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f190613fb0565b60405180910390fd5b8060198190555050565b61230c612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f90613fb0565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60155481565b6123fe612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248190613fb0565b60405180910390fd5b80601a8190555050565b61249c612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251f90613fb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d906140a4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612659612750565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126dc90613fb0565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b601d60179054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bc90614132565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282a906141c0565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161290d9190613d1d565b60405180910390a3505050565b5f808284612928919061420b565b90508381101561296d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296490614288565b60405180910390fd5b8091505092915050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036129e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129dd90614316565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4b906143a4565b60405180910390fd5b601d60149054906101000a900460ff1615612a7b57612a74848484612fe5565b9050612f33565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612b195750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b6457601954821115612b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5a90614432565b60405180910390fd5b5b5f612b6e30611bba565b90505f601b548210159050808015612b935750601d60149054906101000a900460ff16155b8015612be65750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612bfe5750601d60159054906101000a900460ff165b15612c2857601d60169054906101000a900460ff1615612c1e57601b5491505b612c27826131af565b5b612caf846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f3a9092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d8c575060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612da057612d9b878787613393565b612da2565b845b9050601d60179054906101000a900460ff168015612e07575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e3557601a54612e2a82612e1c89611bba565b61291a90919063ffffffff16565b1115612e34575f80fd5b5b612e858160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291a90919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f239190613d1d565b60405180910390a3600193505050505b9392505050565b5f838311158290612f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f789190613aef565b60405180910390fd5b505f8385612f8f9190614450565b9050809150509392505050565b5f612fdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f3a565b905092915050565b5f61306d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f3a9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506130fe8260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291a90919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161319c9190613d1d565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff0219169083151502179055505f61320760026131f96017546131eb601254876135ad90919063ffffffff16565b61362490919063ffffffff16565b61362490919063ffffffff16565b90505f61321d8284612f9c90919063ffffffff16565b90506132288161366d565b5f4790505f613257613246600260125461362490919063ffffffff16565b601754612f9c90919063ffffffff16565b90505f613294600261328684613278601254886135ad90919063ffffffff16565b61362490919063ffffffff16565b61362490919063ffffffff16565b90505f6132be836132b0601454876135ad90919063ffffffff16565b61362490919063ffffffff16565b90505f6132e6826132d88588612f9c90919063ffffffff16565b612f9c90919063ffffffff16565b90505f81111561331d5761331c600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826138dc565b5b5f8211156133515761335060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836138dc565b5b5f8311801561335f57505f87115b1561336f5761336e8784613924565b5b505050505050505f601d60146101000a81548160ff02191690831515021790555050565b5f805f9050600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156134165761340f6064613401601554866135ad90919063ffffffff16565b61362490919063ffffffff16565b9050613491565b600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156134905761348d606461347f601654866135ad90919063ffffffff16565b61362490919063ffffffff16565b90505b5b5f811115613590576134e98160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291a90919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135879190613d1d565b60405180910390a35b6135a38184612f9c90919063ffffffff16565b9150509392505050565b5f8083036135bd575f905061361e565b5f82846135ca9190614483565b90508284826135d991906144f1565b14613619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161361090614591565b60405180910390fd5b809150505b92915050565b5f61366583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a04565b905092915050565b5f600267ffffffffffffffff811115613689576136886145af565b5b6040519080825280602002602001820160405280156136b75781602001602082028036833780820191505090505b50905030815f815181106136ce576136cd6145dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137969190613fe2565b816001815181106137aa576137a96145dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061381030601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612757565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016138729594939291906146f9565b5f604051808303815f87803b158015613889575f80fd5b505af115801561389b573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516138d0929190614751565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561391f573d5f803e3d5ffd5b505050565b61395030601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612757565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061399a611d21565b426040518863ffffffff1660e01b81526004016139bc9695949392919061477f565b60606040518083038185885af11580156139d8573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906139fd91906147f2565b5050505050565b5f8083118290613a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a419190613aef565b60405180910390fd5b505f8385613a5891906144f1565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613a9c578082015181840152602081019050613a81565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613ac182613a65565b613acb8185613a6f565b9350613adb818560208601613a7f565b613ae481613aa7565b840191505092915050565b5f6020820190508181035f830152613b078184613ab7565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613b3c82613b13565b9050919050565b613b4c81613b32565b8114613b56575f80fd5b50565b5f81359050613b6781613b43565b92915050565b5f819050919050565b613b7f81613b6d565b8114613b89575f80fd5b50565b5f81359050613b9a81613b76565b92915050565b5f8060408385031215613bb657613bb5613b0f565b5b5f613bc385828601613b59565b9250506020613bd485828601613b8c565b9150509250929050565b5f8115159050919050565b613bf281613bde565b82525050565b5f602082019050613c0b5f830184613be9565b92915050565b5f805f60608486031215613c2857613c27613b0f565b5b5f613c3586828701613b8c565b9350506020613c4686828701613b8c565b9250506040613c5786828701613b8c565b9150509250925092565b5f613c6b82613b13565b9050919050565b613c7b81613c61565b82525050565b5f602082019050613c945f830184613c72565b92915050565b5f819050919050565b5f613cbd613cb8613cb384613b13565b613c9a565b613b13565b9050919050565b5f613cce82613ca3565b9050919050565b5f613cdf82613cc4565b9050919050565b613cef81613cd5565b82525050565b5f602082019050613d085f830184613ce6565b92915050565b613d1781613b6d565b82525050565b5f602082019050613d305f830184613d0e565b92915050565b613d3f81613bde565b8114613d49575f80fd5b50565b5f81359050613d5a81613d36565b92915050565b5f8060408385031215613d7657613d75613b0f565b5b5f613d8385828601613b59565b9250506020613d9485828601613d4c565b9150509250929050565b5f805f60608486031215613db557613db4613b0f565b5b5f613dc286828701613b59565b9350506020613dd386828701613b59565b9250506040613de486828701613b8c565b9150509250925092565b5f60208284031215613e0357613e02613b0f565b5b5f613e1084828501613d4c565b91505092915050565b613e2281613b32565b82525050565b5f602082019050613e3b5f830184613e19565b92915050565b5f60208284031215613e5657613e55613b0f565b5b5f613e6384828501613b59565b91505092915050565b5f60ff82169050919050565b613e8181613e6c565b82525050565b5f602082019050613e9a5f830184613e78565b92915050565b5f60208284031215613eb557613eb4613b0f565b5b5f613ec284828501613b8c565b91505092915050565b5f8060408385031215613ee157613ee0613b0f565b5b5f613eee85828601613b59565b9250506020613eff85828601613b59565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613f4d57607f821691505b602082108103613f6057613f5f613f09565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613f9a602083613a6f565b9150613fa582613f66565b602082019050919050565b5f6020820190508181035f830152613fc781613f8e565b9050919050565b5f81519050613fdc81613b43565b92915050565b5f60208284031215613ff757613ff6613b0f565b5b5f61400484828501613fce565b91505092915050565b5f6040820190506140205f830185613e19565b61402d6020830184613e19565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61408e602683613a6f565b915061409982614034565b604082019050919050565b5f6020820190508181035f8301526140bb81614082565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61411c602483613a6f565b9150614127826140c2565b604082019050919050565b5f6020820190508181035f83015261414981614110565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6141aa602283613a6f565b91506141b582614150565b604082019050919050565b5f6020820190508181035f8301526141d78161419e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61421582613b6d565b915061422083613b6d565b9250828201905080821115614238576142376141de565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614272601b83613a6f565b915061427d8261423e565b602082019050919050565b5f6020820190508181035f83015261429f81614266565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614300602583613a6f565b915061430b826142a6565b604082019050919050565b5f6020820190508181035f83015261432d816142f4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61438e602383613a6f565b915061439982614334565b604082019050919050565b5f6020820190508181035f8301526143bb81614382565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f61441c602883613a6f565b9150614427826143c2565b604082019050919050565b5f6020820190508181035f83015261444981614410565b9050919050565b5f61445a82613b6d565b915061446583613b6d565b925082820390508181111561447d5761447c6141de565b5b92915050565b5f61448d82613b6d565b915061449883613b6d565b92508282026144a681613b6d565b915082820484148315176144bd576144bc6141de565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6144fb82613b6d565b915061450683613b6d565b925082614516576145156144c4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61457b602183613a6f565b915061458682614521565b604082019050919050565b5f6020820190508181035f8301526145a88161456f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61462c61462761462284614609565b613c9a565b613b6d565b9050919050565b61463c81614612565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61467481613b32565b82525050565b5f614685838361466b565b60208301905092915050565b5f602082019050919050565b5f6146a782614642565b6146b1818561464c565b93506146bc8361465c565b805f5b838110156146ec5781516146d3888261467a565b97506146de83614691565b9250506001810190506146bf565b5085935050505092915050565b5f60a08201905061470c5f830188613d0e565b6147196020830187614633565b818103604083015261472b818661469d565b905061473a6060830185613e19565b6147476080830184613d0e565b9695505050505050565b5f6040820190506147645f830185613d0e565b8181036020830152614776818461469d565b90509392505050565b5f60c0820190506147925f830189613e19565b61479f6020830188613d0e565b6147ac6040830187614633565b6147b96060830186614633565b6147c66080830185613e19565b6147d360a0830184613d0e565b979650505050505050565b5f815190506147ec81613b76565b92915050565b5f805f6060848603121561480957614808613b0f565b5b5f614816868287016147de565b9350506020614827868287016147de565b9250506040614838868287016147de565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122078290eec73e53bb1b21f40be0493824eb958fa296fa0d0a2a6552a180d612c4864736f6c63430008160033