[ { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "uint256[]", "name": "balances", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "fees", "type": "uint256[]" }, { "internalType": "uint256", "name": "swapAmount", "type": "uint256" }, { "internalType": "address", "name": "_referralRouter", "type": "address" }, { "internalType": "address", "name": "uniV2Router", "type": "address" } ], "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": "newLiquidityWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldLiquidityWallet", "type": "address" } ], "name": "LiquidityWalletUpdated", "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": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "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": 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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activeBlacklistMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activeBurn", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addresses", "type": "address[]" } ], "name": "addFreeNodes", "outputs": [], "stateMutability": "nonpayable", "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": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "account", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "blacklistMalicious", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "boostReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "nodeLevel", "type": "uint16" } ], "name": "cashoutAllNodeByLevel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "nodeName", "type": "string" }, { "internalType": "uint256", "name": "_n", "type": "uint256" } ], "name": "cashoutAllNodeByLevelAndStake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "cashoutFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "newVal", "type": "bool" } ], "name": "changeSwapLiquify", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "n", "type": "uint256" }, { "internalType": "string", "name": "ref", "type": "string" } ], "name": "createMultiNodeWithTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "ref", "type": "string" } ], "name": "createNodeWithTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dailyTaxIsActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadWallet", "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": "address[]", "name": "_addresses", "type": "address[]" } ], "name": "deleteFreeNodes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "distributionPool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "feeExempts", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "freeNodes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "futurFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "futurUsePool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "int256", "name": "start", "type": "int256" }, { "internalType": "int256", "name": "end", "type": "int256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "getBlackListedIndex", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBlacklistArray", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDailySellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getNodeNumberOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNodePrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalCreatedNodes", "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": "launchTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityPoolFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBuy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "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": "nodeRewardManager", "outputs": [ { "internalType": "contract NODERewardManagement", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openSell", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "referralRouter", "outputs": [ { "internalType": "contract IReferral", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardsFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "end", "type": "uint256" }, { "internalType": "bool", "name": "clearArray", "type": "bool" } ], "name": "runBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellDailyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_activeBurn", "type": "bool" } ], "name": "setActiveBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_maxWallet", "type": "uint256" } ], "name": "setAntiWhalesParams", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_activeBlacklistMode", "type": "bool" } ], "name": "setBlacklistMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_dailyTaxIsActive", "type": "bool" } ], "name": "setDailyTaxIsActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_isExempt", "type": "bool" } ], "name": "setFeeExempts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "nodeManagement", "type": "address" } ], "name": "setNodeManagement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_openSell", "type": "bool" } ], "name": "setOpenSell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_sellDailyTax", "type": "uint256" } ], "name": "setSellDailyTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_transferTax", "type": "uint256" } ], "name": "setTransferTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapTokensAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "transferTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IJoeRouter02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "value", "type": "uint256[]" } ], "name": "updateCashoutFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "updateFuturFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "wall", "type": "address" } ], "name": "updateFuturWall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "updateLiquiditFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "updateRewardsFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "wall", "type": "address" } ], "name": "updateRewardsWall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "updateRwSwapFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newVal", "type": "uint256" } ], "name": "updateSwapTokensAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateUniswapV2Router", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" } ], "name": "upgradeToHuitzilopochtli", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" } ], "name": "upgradeToMictlantecuhtli", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
600d80546301000000600160b81b03191664dead000000179055600360808181526101006040529060a0606080368337505081516200004692601792506020019062000c14565b50601a805461ffff19166101001790553480156200006357600080fd5b50604051620062f4380380620062f4833981016040819052620000869162000dac565b60408051808201825260038082526229bab760e91b602080840191825284518086019095528285526229aaa760e91b908501528251929392620000cb92919062000c64565b508051620000e190600490602084019062000c64565b5050506000620000f6620009bf60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350856000815181106200015a576200015a62000fdf565b6020026020010151600a60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550856001815181106200019e576200019e62000fdf565b6020908102919091010151600b80546001600160a01b0319166001600160a01b03928316179055600a541615801590620001e25750600b546001600160a01b031615155b620002425760405162461bcd60e51b815260206004820152602560248201527f465554555220262052455741524420414444524553532043414e4e4f54204245604482015264205a45524f60d81b60648201526084015b60405180910390fd5b6001600160a01b0381166200029a5760405162461bcd60e51b815260206004820152601560248201527f524f555445522043414e4e4f54204245205a45524f0000000000000000000000604482015260640162000239565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002db57600080fd5b505afa158015620002f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000316919062000d8e565b6001600160a01b031663c9c6539630846001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035f57600080fd5b505afa15801562000374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039a919062000d8e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620003e357600080fd5b505af1158015620003f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041e919062000d8e565b600780546001600160a01b038086166001600160a01b031992831617909255600980549284169290911691909117905590506200045d816001620009c3565b8560008151811062000473576200047362000fdf565b6020026020010151600014158015620004aa5750856001815181106200049d576200049d62000fdf565b6020026020010151600014155b8015620004d5575085600281518110620004c857620004c862000fdf565b6020026020010151600014155b801562000500575085600381518110620004f357620004f362000fdf565b6020026020010151600014155b6200054e5760405162461bcd60e51b815260206004820152601460248201527f434f4e5354523a204665657320657175616c2030000000000000000000000000604482015260640162000239565b8560008151811062000564576200056462000fdf565b60200260200101516010819055508560018151811062000588576200058862000fdf565b6020026020010151600e8190555085600281518110620005ac57620005ac62000fdf565b6020026020010151600f8190555085600381518110620005d057620005d062000fdf565b602002602001015160198190555085600481518110620005f457620005f462000fdf565b60200260200101516014819055506200063b60105462000627600f54600e5462000aae60201b620036ab1790919060201c565b62000aae60201b620036ab1790919060201c565b60115587511580159062000650575060008751115b620006c45760405162461bcd60e51b815260206004820152603860248201527f434f4e5354523a20616464726573736573206172726179206c656e677468206d60448201527f7573742062652067726561746572207468616e207a65726f0000000000000000606482015260840162000239565b8651885114620007285760405162461bcd60e51b815260206004820152602860248201527f434f4e5354523a2061646472657373657320617272617973206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840162000239565b6000805b8951811015620007e4576200078f8a82815181106200074f576200074f62000fdf565b60200260200101518a83815181106200076c576200076c62000fdf565b6020026020010151670de0b6b3a764000062000789919062000f4c565b62000b18565b888181518110620007a457620007a462000fdf565b6020026020010151670de0b6b3a7640000620007c1919062000f4c565b620007cd908362000f31565b915080620007db8162000fab565b9150506200072c565b5080620007f060025490565b146200083f5760405162461bcd60e51b815260206004820152601360248201527f434f4e5354523a20746f74616c537570706c7900000000000000000000000000604482015260640162000239565b60008611620008915760405162461bcd60e51b815260206004820152601d60248201527f434f4e5354523a205377617020616d6f756e7420696e636f7272656374000000604482015260640162000239565b620008a586670de0b6b3a764000062000f4c565b601b5542601555306000908152601c602081905260408083208054600160ff1991821681179092556001600160a01b038981168652838620805483168417905560095416855291842080549092168117909155916200090c6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805460ff19908116961515969096179055600a5482168152601c909352818320805485166001908117909155600b54821684529190922080549093161790915568a2a15d09519be00000601355683635c9adc5dea00000601255600d805462ffffff191662010101179055600880546001600160a01b0319169690911695909517909455506200100b9650505050505050565b3390565b6001600160a01b0382166000908152601f602052604090205460ff161515811515141562000a5a5760405162461bcd60e51b815260206004820152603d60248201527f544b4e3a204175746f6d61746564206d61726b6574206d616b6572207061697260448201527f20697320616c72656164792073657420746f20746861742076616c7565000000606482015260840162000239565b6001600160a01b0382166000818152601f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60008062000abd838562000f31565b90508381101562000b115760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000239565b9392505050565b6001600160a01b03821662000b705760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000239565b62000b8c8160025462000aae60201b620036ab1790919060201c565b6002556001600160a01b0382166000908152602081815260409091205462000bbf918390620036ab62000aae821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b82805482825590600052602060002090810192821562000c52579160200282015b8281111562000c5257825182559160200191906001019062000c35565b5062000c6092915062000ce0565b5090565b82805462000c729062000f6e565b90600052602060002090601f01602090048101928262000c96576000855562000c52565b82601f1062000cb157805160ff191683800117855562000c52565b8280016001018555821562000c52579182018281111562000c5257825182559160200191906001019062000c35565b5b8082111562000c60576000815560010162000ce1565b80516001600160a01b038116811462000d0f57600080fd5b919050565b600082601f83011262000d2657600080fd5b8151602062000d3f62000d398362000f0b565b62000ed8565b80838252828201915082860187848660051b890101111562000d6057600080fd5b60005b8581101562000d815781518452928401929084019060010162000d63565b5090979650505050505050565b60006020828403121562000da157600080fd5b62000b118262000cf7565b60008060008060008060c0878903121562000dc657600080fd5b86516001600160401b038082111562000dde57600080fd5b818901915089601f83011262000df357600080fd5b8151602062000e0662000d398362000f0b565b8083825282820191508286018e848660051b890101111562000e2757600080fd5b600096505b8487101562000e555762000e408162000cf7565b83526001969096019591830191830162000e2c565b50918c0151919a5090935050508082111562000e7057600080fd5b62000e7e8a838b0162000d14565b9650604089015191508082111562000e9557600080fd5b5062000ea489828a0162000d14565b9450506060870151925062000ebc6080880162000cf7565b915062000ecc60a0880162000cf7565b90509295509295509295565b604051601f8201601f191681016001600160401b038111828210171562000f035762000f0362000ff5565b604052919050565b60006001600160401b0382111562000f275762000f2762000ff5565b5060051b60200190565b6000821982111562000f475762000f4762000fc9565b500190565b600081600019048311821515161562000f695762000f6962000fc9565b500290565b600181811c9082168062000f8357607f821691505b6020821081141562000fa557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562000fc25762000fc262000fc9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6152d9806200101b6000396000f3fe6080604052600436106104615760003560e01c8063790ca4131161023f578063b4cddf3511610139578063e09b3c6f116100b6578063f74c99341161007a578063f74c993414610d8d578063f7f9437614610dad578063f8b45b0514610dc7578063fb0a749414610ddd578063ff850f3d14610dfd57600080fd5b8063e09b3c6f14610cf9578063e754a4c414610d0e578063f022545314610d2e578063f1eae64a14610d4e578063f2fde38b14610d6d57600080fd5b8063d8929342116100fd578063d892934214610c23578063da58fd9c14610c43578063dd62ed3e14610c63578063ddd5df3814610ca9578063ddf10b7f14610cc957600080fd5b8063b4cddf3514610b73578063b62496f514610b93578063c040feee14610bc3578063c5ca7d6d14610be3578063d0a7c71d14610c0357600080fd5b806395d89b41116101c7578063a46b75da1161018b578063a46b75da14610aee578063a5021a1714610b08578063a538ddf214610b1d578063a9059cbb14610b3d578063ab57476114610b5d57600080fd5b806395d89b4114610a6e57806397f604ff14610a835780639a7a23d614610a99578063a0a8fe6514610ab9578063a457c2d714610ace57600080fd5b806388c41d7c1161020e57806388c41d7c146109d05780638b525903146109f05780638bc9c7b014610a105780638da5cb5b14610a305780639349c47d14610a4e57600080fd5b8063790ca4131461095d5780638124f7ac146109735780638243a10b1461098957806385141a77146109a957600080fd5b80632bb14e1d1161035b57806354f12f1f116102d85780636770474b1161029c5780636770474b146108bc57806370a08231146108dc57806370db69d614610912578063715018a6146109285780637628b3d71461093d57600080fd5b806354f12f1f14610830578063583bd7a6146108465780635a63ad50146108665780635f1c31821461088657806365b8dbc01461089c57600080fd5b80634195fbf31161031f5780634195fbf31461079057806342bc9fca146107b057806347cdf8f9146107d05780634935d92a146107f057806349bd5a5e1461081057600080fd5b80632bb14e1d146106fe5780632e43b5f914610714578063313ce5671461073457806339509351146107505780633c03b9a41461077057600080fd5b806313114a9d116103e95780631b6e191b116103ad5780631b6e191b1461064e5780631cdd3be31461066e5780632064520c1461069e57806320802c7e146106be57806323b872dd146106de57600080fd5b806313114a9d146105b65780631416d98a146105cc5780631694505e146105ec57806318160ddd146106245780631888f0981461063957600080fd5b8063084a6bff11610430578063084a6bff14610504578063095ea7b31461052457806309a69f57146105545780630c08f300146105695780630e56a1041461058957600080fd5b80630282129a1461046d5780630286e7411461048f57806305124558146104c257806306fdde03146104e257600080fd5b3661046857005b600080fd5b34801561047957600080fd5b5061048d610488366004614cda565b610e1d565b005b34801561049b57600080fd5b506104af6104aa366004614a38565b610e5b565b6040519081526020015b60405180910390f35b3480156104ce57600080fd5b5061048d6104dd3660046148d1565b610ef1565b3480156104ee57600080fd5b506104f7610f82565b6040516104b99190614de2565b34801561051057600080fd5b5061048d61051f366004614ca8565b611014565b34801561053057600080fd5b5061054461053f3660046148a5565b611065565b60405190151581526020016104b9565b34801561056057600080fd5b506104af61107c565b34801561057557600080fd5b5061048d6105843660046147c3565b61121e565b34801561059557600080fd5b506104af6105a43660046147c3565b601d6020526000908152604090205481565b3480156105c257600080fd5b506104af60115481565b3480156105d857600080fd5b506104af6105e7366004614ca8565b61126a565b3480156105f857600080fd5b5060075461060c906001600160a01b031681565b6040516001600160a01b0390911681526020016104b9565b34801561063057600080fd5b506002546104af565b34801561064557600080fd5b506104af61128b565b34801561065a57600080fd5b5061048d610669366004614b57565b61130f565b34801561067a57600080fd5b506105446106893660046147c3565b601e6020526000908152604090205460ff1681565b3480156106aa57600080fd5b5061048d6106b9366004614ca8565b6113b6565b3480156106ca57600080fd5b5061048d6106d9366004614aae565b6113e5565b3480156106ea57600080fd5b506105446106f9366004614836565b611b44565b34801561070a57600080fd5b506104af600e5481565b34801561072057600080fd5b5061048d61072f366004614c84565b611bad565b34801561074057600080fd5b50604051601281526020016104b9565b34801561075c57600080fd5b5061054461076b3660046148a5565b611f69565b34801561077c57600080fd5b5061048d61078b3660046149fe565b611f9f565b34801561079c57600080fd5b5061048d6107ab366004614ca8565b611fe3565b3480156107bc57600080fd5b5061048d6107cb366004614ca8565b612052565b3480156107dc57600080fd5b5061048d6107eb366004614972565b612096565b3480156107fc57600080fd5b5061048d61080b3660046149fe565b6120d3565b34801561081c57600080fd5b5060095461060c906001600160a01b031681565b34801561083c57600080fd5b506104af600f5481565b34801561085257600080fd5b5061048d6108613660046149fe565b612110565b34801561087257600080fd5b5061048d6108813660046149fe565b612154565b34801561089257600080fd5b506104af601b5481565b3480156108a857600080fd5b5061048d6108b73660046147c3565b61219a565b3480156108c857600080fd5b5061048d6108d7366004614ca8565b612436565b3480156108e857600080fd5b506104af6108f73660046147c3565b6001600160a01b031660009081526020819052604090205490565b34801561091e57600080fd5b506104af60125481565b34801561093457600080fd5b5061048d612465565b34801561094957600080fd5b5060065461060c906001600160a01b031681565b34801561096957600080fd5b506104af60155481565b34801561097f57600080fd5b506104af60145481565b34801561099557600080fd5b5061048d6109a4366004614a71565b6124d9565b3480156109b557600080fd5b50600d5461060c90630100000090046001600160a01b031681565b3480156109dc57600080fd5b5061048d6109eb366004614ca8565b612883565b3480156109fc57600080fd5b5061048d610a0b366004614ca8565b6128c7565b348015610a1c57600080fd5b5061048d610a2b366004614ca8565b6128f6565b348015610a3c57600080fd5b506005546001600160a01b031661060c565b348015610a5a57600080fd5b5061048d610a693660046147c3565b612925565b348015610a7a57600080fd5b506104f7612971565b348015610a8f57600080fd5b506104af60165481565b348015610aa557600080fd5b5061048d610ab4366004614877565b612980565b348015610ac557600080fd5b506104af612a4b565b348015610ada57600080fd5b50610544610ae93660046148a5565b612a90565b348015610afa57600080fd5b506018546105449060ff1681565b348015610b1457600080fd5b506104af612adf565b348015610b2957600080fd5b50600a5461060c906001600160a01b031681565b348015610b4957600080fd5b50610544610b583660046148a5565b612b24565b348015610b6957600080fd5b506104af60105481565b348015610b7f57600080fd5b5061048d610b8e366004614b12565b612b31565b348015610b9f57600080fd5b50610544610bae3660046147c3565b601f6020526000908152604090205460ff1681565b348015610bcf57600080fd5b50600d546105449062010000900460ff1681565b348015610bef57600080fd5b50600b5461060c906001600160a01b031681565b348015610c0f57600080fd5b5061048d610c1e366004614a71565b612e72565b348015610c2f57600080fd5b5061048d610c3e366004614877565b6131e3565b348015610c4f57600080fd5b5061048d610c5e366004614cfc565b613238565b348015610c6f57600080fd5b506104af610c7e3660046147fd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610cb557600080fd5b5061048d610cc4366004614877565b613393565b348015610cd557600080fd5b50610544610ce43660046147c3565b601c6020526000908152604090205460ff1681565b348015610d0557600080fd5b506104af6133e8565b348015610d1a57600080fd5b5061048d610d293660046149fe565b61341c565b348015610d3a57600080fd5b5061048d610d493660046148d1565b613459565b348015610d5a57600080fd5b50600d5461054490610100900460ff1681565b348015610d7957600080fd5b5061048d610d883660046147c3565b6134f6565b348015610d9957600080fd5b506104af610da83660046147c3565b6135e1565b348015610db957600080fd5b50600d546105449060ff1681565b348015610dd357600080fd5b506104af60135481565b348015610de957600080fd5b5061048d610df83660046147c3565b61365f565b348015610e0957600080fd5b5060085461060c906001600160a01b031681565b6005546001600160a01b03163314610e505760405162461bcd60e51b8152600401610e4790614f2e565b60405180910390fd5b601291909155601355565b6005546000906001600160a01b03163314610e885760405162461bcd60e51b8152600401610e4790614f2e565b835b83811215610ee357826001600160a01b0316600c8281548110610eaf57610eaf6151bc565b6000918252602090912001546001600160a01b03161415610ed1579050610eea565b80610edb81615176565b915050610e8a565b5060001990505b9392505050565b6005546001600160a01b03163314610f1b5760405162461bcd60e51b8152600401610e4790614f2e565b60005b8151811015610f7e576000601d6000848481518110610f3f57610f3f6151bc565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508080610f7690615196565b915050610f1e565b5050565b606060038054610f919061513b565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbd9061513b565b801561100a5780601f10610fdf5761010080835404028352916020019161100a565b820191906000526020600020905b815481529060010190602001808311610fed57829003601f168201915b5050505050905090565b6005546001600160a01b0316331461103e5760405162461bcd60e51b8152600401610e4790614f2e565b600e819055601054600f5461105f91906110599084906136ab565b906136ab565b60115550565b600061107233848461370a565b5060015b92915050565b6000336110cb5760405162461bcd60e51b815260206004820152601460248201527f53454e4445522043414e2754204245205a45524f0000000000000000000000006044820152606401610e47565b6006546001600160a01b03166341ac82b0336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561111c57600080fd5b505afa158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111549190614a1b565b6111905760405162461bcd60e51b815260206004820152600d60248201526c2727902727a2229027aba722a960991b6044820152606401610e47565b6006546001600160a01b031663d5426589336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156111e157600080fd5b505afa1580156111f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112199190614cc1565b905090565b6005546001600160a01b031633146112485760405162461bcd60e51b8152600401610e4790614f2e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6017818154811061127a57600080fd5b600091825260209091200154905081565b6016546000901561129d575060165490565b620151806112b66015544261382f90919063ffffffff16565b116112c15750601990565b6202a3006112da6015544261382f90919063ffffffff16565b116112e55750601490565b6203f4806112fe6015544261382f90919063ffffffff16565b116113095750600f90565b50600a90565b60148211156113605760405162461bcd60e51b815260206004820152601560248201527f4e4f204d4f5245205448414e203230204e4f44455300000000000000000000006044820152606401610e47565b60005b828110156113b05761139e8461137883613871565b604051602001611389929190614d84565b604051602081830303815290604052836113e5565b806113a881615196565b915050611363565b50505050565b6005546001600160a01b031633146113e05760405162461bcd60e51b8152600401610e4790614f2e565b601655565b600382511180156113f7575060208251105b6114435760405162461bcd60e51b815260206004820181905260248201527f4e4f4445204352454154494f4e3a204e414d452053495a4520494e56414c49446044820152606401610e47565b60085460405163bf40fac160e01b815233916001600160a01b03169063bf40fac190611473908590600401614de2565b60206040518083038186803b15801561148b57600080fd5b505afa15801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c391906147e0565b6001600160a01b0316816001600160a01b0316141561152f5760405162461bcd60e51b815260206004820152602260248201527f524546204552524f523a20594f552043414e4e4f542052454620594f55525345604482015261262360f11b6064820152608401610e47565b6001600160a01b0381166115555760405162461bcd60e51b8152600401610e4790614ee0565b6001600160a01b0381166000908152601e602052604090205460ff161561158e5760405162461bcd60e51b8152600401610e4790614e9e565b600a546001600160a01b038281169116148015906115ba5750600b546001600160a01b03828116911614155b6115d65760405162461bcd60e51b8152600401610e4790614e41565b60065460408051631e3fd85760e31b815290516000926001600160a01b03169163f1fec2b8916004808301926020929190829003018186803b15801561161b57600080fd5b505afa15801561162f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116539190614cc1565b905080611675836001600160a01b031660009081526020819052604090205490565b10158061169957506001600160a01b0382166000908152601d602052604090205415155b6116b55760405162461bcd60e51b8152600401610e4790614df5565b30600090815260208190526040902054601b54811080159081906116e05750601a54610100900460ff165b80156116ef5750601a5460ff16155b801561170957506005546001600160a01b03858116911614155b801561172e57506001600160a01b0384166000908152601f602052604090205460ff16155b801561175057506001600160a01b0384166000908152601d6020526040902054155b1561185c57601a805460ff191660011790556010546000906117809060649061177a90869061399a565b90613a19565b600a54909150611799906001600160a01b031682613a5b565b60006117b5606461177a600e548761399a90919063ffffffff16565b905060006117d3606461177a6019548561399a90919063ffffffff16565b600b549091506117ec906001600160a01b031682613a5b565b600b5461180d9030906001600160a01b0316611808858561382f565b613ada565b6000611829606461177a600f548961399a90919063ffffffff16565b905061183481613c5d565b3060009081526020819052604090205461184d90613ce4565b5050601a805460ff1916905550505b6001600160a01b0384166000908152601d6020526040902054611aa95760085460405163bf40fac160e01b81526001600160a01b0390911690636f77926b90829063bf40fac1906118b1908a90600401614de2565b60206040518083038186803b1580156118c957600080fd5b505afa1580156118dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190191906147e0565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261197c9190810190614bc4565b6040015115611a995760085460405163bf40fac160e01b8152611a1b9186916001600160a01b039091169063bf40fac1906119bb908a90600401614de2565b60206040518083038186803b1580156119d357600080fd5b505afa1580156119e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0b91906147e0565b611808606461177a88600a61399a565b6008546040516315b36b9760e11b81526001600160a01b0390911690632b66d72e90611a4b908890600401614de2565b600060405180830381600087803b158015611a6557600080fd5b505af1158015611a79573d6000803e3d6000fd5b50505050611a96606461177a605a8661399a90919063ffffffff16565b92505b611aa4843085613ada565b611ad8565b6001600160a01b0384166000908152601d60205260408120805460019290611ad29084906150f8565b90915550505b6006546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90611b0a9087908a90600401614dc0565b600060405180830381600087803b158015611b2457600080fd5b505af1158015611b38573d6000803e3d6000fd5b50505050505050505050565b6000611b51848484613e4d565b611ba38433611b9e85604051806060016040528060288152602001615257602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190614393565b61370a565b5060019392505050565b3380611c0f5760405162461bcd60e51b815260206004820152602b60248201527f4d414e494120435348543a20206372656174696f6e2066726f6d20746865207a60448201526a65726f206164647265737360a81b6064820152608401610e47565b6001600160a01b0381166000908152601e602052604090205460ff1615611c785760405162461bcd60e51b815260206004820152601f60248201527f4d414e494120435348543a20426c61636b6c69737465642061646472657373006044820152606401610e47565b600a546001600160a01b03828116911614801590611ca45750600b546001600160a01b03828116911614155b611d115760405162461bcd60e51b815260206004820152603860248201527f4d414e494120435348543a20667574757220616e642072657761726473506f6f6044820152776c2063616e6e6f7420636173686f7574207265776172647360401b6064820152608401610e47565b60065460405163a490c41560e01b81526001600160a01b03838116600483015261ffff85166024830152600092169063a490c4159060440160206040518083038186803b158015611d6157600080fd5b505afa158015611d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d999190614cc1565b905060008111611e085760405162461bcd60e51b815260206004820152603460248201527f4d414e494120435348543a20596f7520646f6e2774206861766520656e6f75676044820152731a081c995dd85c99081d1bc818d85cda081bdd5d60621b6064820152608401610e47565b60038361ffff1610611e725760405162461bcd60e51b815260206004820152602d60248201527f434153484f5554204552524f523a206e6f64654c6576656c206d75737420626560448201526c206c6f776572207468616e203360981b6064820152608401610e47565b601a54610100900460ff1615611ee4576000611ebd606461177a60178761ffff1681548110611ea357611ea36151bc565b90600052602060002001548561399a90919063ffffffff16565b600a54909150611ed6906001600160a01b031682613a5b565b611ee081836150f8565b9150505b600b54611efb906001600160a01b03168383613ada565b6006546040516356455bcf60e11b81526001600160a01b03848116600483015261ffff861660248301529091169063ac8ab79e90604401600060405180830381600087803b158015611f4c57600080fd5b505af1158015611f60573d6000803e3d6000fd5b50505050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091611072918590611b9e90866136ab565b6005546001600160a01b03163314611fc95760405162461bcd60e51b8152600401610e4790614f2e565b600d80549115156101000261ff0019909216919091179055565b6005546001600160a01b0316331461200d5760405162461bcd60e51b8152600401610e4790614f2e565b478111156120185750475b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f7e573d6000803e3d6000fd5b6005546001600160a01b0316331461207c5760405162461bcd60e51b8152600401610e4790614f2e565b600f819055601054600e5461105f919061105990846136ab565b6005546001600160a01b031633146120c05760405162461bcd60e51b8152600401610e4790614f2e565b8051610f7e9060179060208401906146a8565b6005546001600160a01b031633146120fd5760405162461bcd60e51b8152600401610e4790614f2e565b600d805460ff1916911515919091179055565b6005546001600160a01b0316331461213a5760405162461bcd60e51b8152600401610e4790614f2e565b601a80549115156101000261ff0019909216919091179055565b6005546001600160a01b0316331461217e5760405162461bcd60e51b8152600401610e4790614f2e565b600d8054911515620100000262ff000019909216919091179055565b6005546001600160a01b031633146121c45760405162461bcd60e51b8152600401610e4790614f2e565b6007546001600160a01b03828116911614156122335760405162461bcd60e51b815260206004820152602860248201527f544b4e3a2054686520726f7574657220616c7265616479206861732074686174604482015267206164647265737360c01b6064820152608401610e47565b6007546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600780546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a0155916004808301926020929190829003018186803b1580156122c557600080fd5b505afa1580156122d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fd91906147e0565b6001600160a01b031663c9c6539630600760009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b15801561235a57600080fd5b505afa15801561236e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239291906147e0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156123da57600080fd5b505af11580156123ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241291906147e0565b600980546001600160a01b0319166001600160a01b03929092169190911790555050565b6005546001600160a01b031633146124605760405162461bcd60e51b8152600401610e4790614f2e565b601b55565b6005546001600160a01b0316331461248f5760405162461bcd60e51b8152600401610e4790614f2e565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b600381511180156124eb575060208151105b6125375760405162461bcd60e51b815260206004820181905260248201527f4e4f4445204352454154494f4e3a204e414d452053495a4520494e56414c49446044820152606401610e47565b33806125555760405162461bcd60e51b8152600401610e4790614ee0565b6001600160a01b0381166000908152601e602052604090205460ff161561258e5760405162461bcd60e51b8152600401610e4790614e9e565b600a546001600160a01b038281169116148015906125ba5750600b546001600160a01b03828116911614155b6125d65760405162461bcd60e51b8152600401610e4790614e41565b60065460408051631e3fd85760e31b815290516000926001600160a01b03169163f1fec2b8916004808301926020929190829003018186803b15801561261b57600080fd5b505afa15801561262f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126539190614cc1565b905080612675836001600160a01b031660009081526020819052604090205490565b10156126935760405162461bcd60e51b8152600401610e4790614df5565b30600090815260208190526040902054601b54811080159081906126be5750601a54610100900460ff165b80156126cd5750601a5460ff16155b80156126e757506005546001600160a01b03858116911614155b801561270c57506001600160a01b0384166000908152601f602052604090205460ff16155b1561280d57601a805460ff191660011790556010546000906127369060649061177a90869061399a565b600a5490915061274f906001600160a01b031682613a5b565b600061276b606461177a600e548761399a90919063ffffffff16565b90506000612789606461177a6019548561399a90919063ffffffff16565b600b549091506127a2906001600160a01b031682613a5b565b600b546127be9030906001600160a01b0316611808858561382f565b60006127da606461177a600f548961399a90919063ffffffff16565b90506127e581613c5d565b306000908152602081905260409020546127fe90613ce4565b5050601a805460ff1916905550505b612818843085613ada565b6006546040516367f9703560e01b81526001600160a01b03909116906367f970359061284a9087908990600401614dc0565b600060405180830381600087803b15801561286457600080fd5b505af1158015612878573d6000803e3d6000fd5b505050505050505050565b6005546001600160a01b031633146128ad5760405162461bcd60e51b8152600401610e4790614f2e565b6010819055600f54600e5461105f918391611059916136ab565b6005546001600160a01b031633146128f15760405162461bcd60e51b8152600401610e4790614f2e565b601455565b6005546001600160a01b031633146129205760405162461bcd60e51b8152600401610e4790614f2e565b601955565b6005546001600160a01b0316331461294f5760405162461bcd60e51b8152600401610e4790614f2e565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b606060048054610f919061513b565b6005546001600160a01b031633146129aa5760405162461bcd60e51b8152600401610e4790614f2e565b6009546001600160a01b0383811691161415612a415760405162461bcd60e51b815260206004820152604a60248201527f544b4e3a205468652050616e63616b655377617020706169722063616e6e6f7460448201527f2062652072656d6f7665642066726f6d206175746f6d617465644d61726b65746064820152694d616b6572506169727360b01b608482015260a401610e47565b610f7e82826143cd565b6006546040805163b8527aef60e01b815290516000926001600160a01b03169163b8527aef916004808301926020929190829003018186803b1580156111e157600080fd5b60006110723384611b9e8560405180606001604052806025815260200161527f602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190614393565b60065460408051631e3fd85760e31b815290516000926001600160a01b03169163f1fec2b8916004808301926020929190829003018186803b1580156111e157600080fd5b6000611072338484613e4d565b600081118015612b42575060058111155b612b835760405162461bcd60e51b815260206004820152601260248201527122a9291d102fb7103a37b7903434b3b432b960711b6044820152606401610e47565b3380612be55760405162461bcd60e51b815260206004820152602b60248201527f4d414e494120435348543a20206372656174696f6e2066726f6d20746865207a60448201526a65726f206164647265737360a81b6064820152608401610e47565b6001600160a01b0381166000908152601e602052604090205460ff1615612c4e5760405162461bcd60e51b815260206004820152601f60248201527f4d414e494120435348543a20426c61636b6c69737465642061646472657373006044820152606401610e47565b600a546001600160a01b03828116911614801590612c7a5750600b546001600160a01b03828116911614155b612ce75760405162461bcd60e51b815260206004820152603860248201527f4d414e494120435348543a20667574757220616e642072657761726473506f6f6044820152776c2063616e6e6f7420636173686f7574207265776172647360401b6064820152608401610e47565b60065460405163a490c41560e01b81526001600160a01b03838116600483015260006024830181905292169063a490c4159060440160206040518083038186803b158015612d3457600080fd5b505afa158015612d48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6c9190614cc1565b905060008111612ddb5760405162461bcd60e51b815260206004820152603460248201527f4d414e494120435348543a20596f7520646f6e2774206861766520656e6f75676044820152731a081c995dd85c99081d1bc818d85cda081bdd5d60621b6064820152608401610e47565b600b54612df2906001600160a01b03168383613ada565b6006546040516356455bcf60e11b81526001600160a01b038481166004830152600060248301529091169063ac8ab79e90604401600060405180830381600087803b158015612e4057600080fd5b505af1158015612e54573d6000803e3d6000fd5b505050506113b084846040518060200160405280600081525061130f565b60038151118015612e84575060208151105b612ed05760405162461bcd60e51b815260206004820181905260248201527f4e4f4445204352454154494f4e3a204e414d452053495a4520494e56414c49446044820152606401610e47565b3380612eee5760405162461bcd60e51b8152600401610e4790614ee0565b6001600160a01b0381166000908152601e602052604090205460ff1615612f275760405162461bcd60e51b8152600401610e4790614e9e565b600a546001600160a01b03828116911614801590612f535750600b546001600160a01b03828116911614155b612f6f5760405162461bcd60e51b8152600401610e4790614e41565b60065460408051631e3fd85760e31b815290516000926001600160a01b03169163f1fec2b8916004808301926020929190829003018186803b158015612fb457600080fd5b505afa158015612fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fec9190614cc1565b90508061300e836001600160a01b031660009081526020819052604090205490565b101561302c5760405162461bcd60e51b8152600401610e4790614df5565b30600090815260208190526040902054601b54811080159081906130575750601a54610100900460ff165b80156130665750601a5460ff16155b801561308057506005546001600160a01b03858116911614155b80156130a557506001600160a01b0384166000908152601f602052604090205460ff16155b156131a657601a805460ff191660011790556010546000906130cf9060649061177a90869061399a565b600a549091506130e8906001600160a01b031682613a5b565b6000613104606461177a600e548761399a90919063ffffffff16565b90506000613122606461177a6019548561399a90919063ffffffff16565b600b5490915061313b906001600160a01b031682613a5b565b600b546131579030906001600160a01b0316611808858561382f565b6000613173606461177a600f548961399a90919063ffffffff16565b905061317e81613c5d565b3060009081526020819052604090205461319790613ce4565b5050601a805460ff1916905550505b6131b1843085613ada565b600654604051631795b6a760e31b81526001600160a01b039091169063bcadb5389061284a9087908990600401614dc0565b6005546001600160a01b0316331461320d5760405162461bcd60e51b8152600401610e4790614f2e565b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146132625760405162461bcd60e51b8152600401610e4790614f2e565b600c5483106132be5760405162461bcd60e51b815260206004820152602260248201527f52554e20424c41434b4c495354204552523a20737461727420746f206869676860448201526132b960f11b6064820152608401610e47565b6000821180156132d05750600c548211155b61331c5760405162461bcd60e51b815260206004820181905260248201527f52554e20424c41434b4c495354204552523a20656e6420746f206869676865726044820152606401610e47565b825b8281101561336a57613358600c828154811061333c5761333c6151bc565b6000918252602090912001546001600160a01b031660016131e3565b8061336281615196565b91505061331e565b50801561338e5760408051600081526020810191829052516113b091600c916146f3565b505050565b6005546001600160a01b031633146133bd5760405162461bcd60e51b8152600401610e4790614f2e565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6005546000906001600160a01b031633146134155760405162461bcd60e51b8152600401610e4790614f2e565b50600c5490565b6005546001600160a01b031633146134465760405162461bcd60e51b8152600401610e4790614f2e565b6018805460ff1916911515919091179055565b6005546001600160a01b031633146134835760405162461bcd60e51b8152600401610e4790614f2e565b60005b8151811015610f7e576001601d60008484815181106134a7576134a76151bc565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546134de919061507a565b909155508190506134ee81615196565b915050613486565b6005546001600160a01b031633146135205760405162461bcd60e51b8152600401610e4790614f2e565b6001600160a01b0381166135855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e47565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60065460405163112469f960e21b81526001600160a01b0383811660048301526000921690634491a7e49060240160206040518083038186803b15801561362757600080fd5b505afa15801561363b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110769190614cc1565b6005546001600160a01b031633146136895760405162461bcd60e51b8152600401610e4790614f2e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000806136b8838561507a565b905083811015610eea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e47565b6001600160a01b03831661376c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e47565b6001600160a01b0382166137cd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e47565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610eea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614393565b6060816138955750506040805180820190915260018152600360fc1b602082015290565b8160005b81156138bf57806138a981615196565b91506138b89050600a836150b7565b9150613899565b60008167ffffffffffffffff8111156138da576138da6151d2565b6040519080825280601f01601f191660200182016040528015613904576020820181803683370190505b509050815b85156139915761391a6001826150f8565b90506000613929600a886150b7565b61393490600a6150d9565b61393e90886150f8565b613949906030615092565b905060008160f81b905080848481518110613966576139666151bc565b60200101906001600160f81b031916908160001a905350613988600a896150b7565b97505050613909565b50949350505050565b6000826139a957506000611076565b60006139b583856150d9565b9050826139c285836150b7565b14610eea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e47565b6000610eea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506144b6565b47613a6582613ce4565b6000613a71478361382f565b90506000846001600160a01b03168260405160006040518083038185875af1925050503d8060008114613ac0576040519150601f19603f3d011682016040523d82523d6000602084013e613ac5565b606091505b5050905080613ad357600080fd5b5050505050565b6001600160a01b038316613b3e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e47565b6001600160a01b038216613ba05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e47565b613bdd81604051806060016040528060268152602001615231602691396001600160a01b0386166000908152602081905260409020549190614393565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613c0c90826136ab565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101613822565b6000613c6a826002613a19565b90506000613c78838361382f565b905047613c8483613ce4565b6000613c90478361382f565b9050613c9c83826144e4565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613d1957613d196151bc565b6001600160a01b03928316602091820292909201810191909152600754604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b158015613d6d57600080fd5b505afa158015613d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613da591906147e0565b81600181518110613db857613db86151bc565b6001600160a01b039283166020918202929092010152600754613dde913091168461370a565b600754604051633b158ab160e11b81526001600160a01b039091169063762b156290613e17908590600090869030904290600401614f63565b600060405180830381600087803b158015613e3157600080fd5b505af1158015613e45573d6000803e3d6000fd5b505050505050565b6001600160a01b038316613eb15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e47565b6001600160a01b038216613f135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e47565b6001600160a01b0383166000908152601e602052604090205460ff16158015613f5557506001600160a01b0382166000908152601e602052604090205460ff16155b613f975760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610e47565b600d54610100900460ff16613fee5760405162461bcd60e51b815260206004820152601860248201527f45524332303a2053454c4c204e4f54204f50454e2059455400000000000000006044820152606401610e47565b6001600160a01b0383166000908152601c6020526040902054819060ff1661406e5760125482111561406e5760405162461bcd60e51b8152602060048201526024808201527f4552523a204d617842757920706572207472616e73616374696f6e20726561636044820152633432b21760e11b6064820152608401610e47565b6001600160a01b0383166000908152601c602052604090205460ff16614161576013546001600160a01b03841660009081526020819052604090205411156141035760405162461bcd60e51b815260206004820152602260248201527f4552523a204d617820746f6b656e207065722077616c6c657420726561636865604482015261321760f11b6064820152608401610e47565b6012548211156141615760405162461bcd60e51b8152602060048201526024808201527f4552523a204d617842757920706572207472616e73616374696f6e20726561636044820152633432b21760e11b6064820152608401610e47565b6009546001600160a01b03848116911614801561419757506001600160a01b0384166000908152601c602052604090205460ff16155b80156141ab5750600d5462010000900460ff165b156142305760006141ba61128b565b905060006141c98260646150f8565b90506141ec8630611808606461177a6141e582828a605061399a565b899061399a565b60185460ff161561421c5761421c86614217606461177a614210828289601461399a565b889061399a565b61459d565b61422b606461177a858461399a565b925050505b6001600160a01b0383166000908152601c602052604090205460ff1615801561427257506001600160a01b0384166000908152601c602052604090205460ff16155b156142a557614295606461177a601454606461428e91906150f8565b849061399a565b90506142a533614217848461382f565b600d5460ff1615614388576001600160a01b0383166000908152601c602052604090205460ff1661431c57600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384166000908152601c602052604090205460ff1661438857600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b0386161790555b6113b0848483613ada565b600081848411156143b75760405162461bcd60e51b8152600401610e479190614de2565b5060006143c484866150f8565b95945050505050565b6001600160a01b0382166000908152601f602052604090205460ff16151581151514156144625760405162461bcd60e51b815260206004820152603d60248201527f544b4e3a204175746f6d61746564206d61726b6574206d616b6572207061697260448201527f20697320616c72656164792073657420746f20746861742076616c75650000006064820152608401610e47565b6001600160a01b0382166000818152601f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600081836144d75760405162461bcd60e51b8152600401610e479190614de2565b5060006143c484866150b7565b6007546144fc9030906001600160a01b03168461370a565b600754604051637c8d9fb960e11b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f91b3f7290839060c4016060604051808303818588803b15801561456457600080fd5b505af1158015614578573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613ad39190614d2a565b6001600160a01b0382166145fd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610e47565b61463a8160405180606001604052806022815260200161520f602291396001600160a01b0385166000908152602081905260409020549190614393565b6001600160a01b038316600090815260208190526040902055600254614660908261382f565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280548282559060005260206000209081019282156146e3579160200282015b828111156146e35782518255916020019190600101906146c8565b506146ef929150614748565b5090565b8280548282559060005260206000209081019282156146e3579160200282015b828111156146e357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614713565b5b808211156146ef5760008155600101614749565b805161476881615200565b919050565b600082601f83011261477e57600080fd5b813561479161478c82615052565b614ffd565b8181528460208386010111156147a657600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156147d557600080fd5b8135610eea816151e8565b6000602082840312156147f257600080fd5b8151610eea816151e8565b6000806040838503121561481057600080fd5b823561481b816151e8565b9150602083013561482b816151e8565b809150509250929050565b60008060006060848603121561484b57600080fd5b8335614856816151e8565b92506020840135614866816151e8565b929592945050506040919091013590565b6000806040838503121561488a57600080fd5b8235614895816151e8565b9150602083013561482b81615200565b600080604083850312156148b857600080fd5b82356148c3816151e8565b946020939093013593505050565b600060208083850312156148e457600080fd5b823567ffffffffffffffff8111156148fb57600080fd5b8301601f8101851361490c57600080fd5b803561491a61478c8261502e565b80828252848201915084840188868560051b870101111561493a57600080fd5b600094505b83851015614966578035614952816151e8565b83526001949094019391850191850161493f565b50979650505050505050565b6000602080838503121561498557600080fd5b823567ffffffffffffffff81111561499c57600080fd5b8301601f810185136149ad57600080fd5b80356149bb61478c8261502e565b80828252848201915084840188868560051b87010111156149db57600080fd5b600094505b838510156149665780358352600194909401939185019185016149e0565b600060208284031215614a1057600080fd5b8135610eea81615200565b600060208284031215614a2d57600080fd5b8151610eea81615200565b600080600060608486031215614a4d57600080fd5b83359250602084013591506040840135614a66816151e8565b809150509250925092565b600060208284031215614a8357600080fd5b813567ffffffffffffffff811115614a9a57600080fd5b614aa68482850161476d565b949350505050565b60008060408385031215614ac157600080fd5b823567ffffffffffffffff80821115614ad957600080fd5b614ae58683870161476d565b93506020850135915080821115614afb57600080fd5b50614b088582860161476d565b9150509250929050565b60008060408385031215614b2557600080fd5b823567ffffffffffffffff811115614b3c57600080fd5b614b488582860161476d565b95602094909401359450505050565b600080600060608486031215614b6c57600080fd5b833567ffffffffffffffff80821115614b8457600080fd5b614b908783880161476d565b9450602086013593506040860135915080821115614bad57600080fd5b50614bba8682870161476d565b9150509250925092565b60006020808385031215614bd757600080fd5b825167ffffffffffffffff80821115614bef57600080fd5b9084019060608287031215614c0357600080fd5b614c0b614fd4565b825182811115614c1a57600080fd5b83019150601f82018713614c2d57600080fd5b8151614c3b61478c82615052565b8181528886838601011115614c4f57600080fd5b614c5e8287830188870161510f565b8252508284015184820152614c756040840161475d565b60408201529695505050505050565b600060208284031215614c9657600080fd5b813561ffff81168114610eea57600080fd5b600060208284031215614cba57600080fd5b5035919050565b600060208284031215614cd357600080fd5b5051919050565b60008060408385031215614ced57600080fd5b50508035926020909101359150565b600080600060608486031215614d1157600080fd5b83359250602084013591506040840135614a6681615200565b600080600060608486031215614d3f57600080fd5b8351925060208401519150604084015190509250925092565b60008151808452614d7081602086016020860161510f565b601f01601f19169290920160200192915050565b60008351614d9681846020880161510f565b602d60f81b9083019081528351614db481600184016020880161510f565b01600101949350505050565b6001600160a01b0383168152604060208201526000614aa66040830184614d58565b602081526000610eea6020830184614d58565b6020808252602c908201527f4e4f4445204352454154494f4e3a2042616c616e636520746f6f206c6f77206660408201526b37b91031b932b0ba34b7b71760a11b606082015260800190565b60208082526037908201527f4e4f4445204352454154494f4e3a20667574757220616e64207265776172647360408201527f506f6f6c2063616e6e6f7420637265617465206e6f6465000000000000000000606082015260800190565b60208082526022908201527f4e4f4445204352454154494f4e3a20426c61636b6c6973746564206164647265604082015261737360f01b606082015260800190565b6020808252602e908201527f4e4f4445204352454154494f4e3a20206372656174696f6e2066726f6d20746860408201526d65207a65726f206164647265737360901b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015614fb35784516001600160a01b031683529383019391830191600101614f8e565b50506001600160a01b03969096166060850152505050608001529392505050565b6040516060810167ffffffffffffffff81118282101715614ff757614ff76151d2565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615026576150266151d2565b604052919050565b600067ffffffffffffffff821115615048576150486151d2565b5060051b60200190565b600067ffffffffffffffff82111561506c5761506c6151d2565b50601f01601f191660200190565b6000821982111561508d5761508d6151a6565b500190565b600060ff821660ff84168060ff038211156150af576150af6151a6565b019392505050565b6000826150d457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156150f3576150f36151a6565b500290565b60008282101561510a5761510a6151a6565b500390565b60005b8381101561512a578181015183820152602001615112565b838111156113b05750506000910152565b600181811c9082168061514f57607f821691505b6020821081141561517057634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160ff1b0382141561518f5761518f6151a6565b5060010190565b600060001982141561518f5761518f5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146151fd57600080fd5b50565b80151581146151fd57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206b612ccc772987dc97fd8a54d60a0e7f878fe35c25fb875b46e3f64ac48ec95064736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000c80000000000000000000000003016218c5419f957c7a1f8d3645225bac7c7931b00000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d40000000000000000000000000000000000000000000000000000000000000003000000000000000000000000b1427cf342fc4682d1e5e2db38409f84a27f1d79000000000000000000000000faea07c4ed86d776bda315efa2b488b1ae80e31b000000000000000000000000d943ecf34035190b6491c299aeafac17c1701c7700000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004f588000000000000000000000000000000000000000000000000000000000002ab9800000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000032