[ { "inputs": [ { "internalType": "address", "name": "_devWalletAddress", "type": "address" }, { "internalType": "address", "name": "_marketingWalletAddress", "type": "address" }, { "internalType": "address", "name": "_myBagsTokenAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountTokens", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountEth", "type": "uint256" } ], "name": "AddLiquidity", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_ethAmount", "type": "uint256" } ], "name": "AddRewardPool", "type": "event" }, { "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": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountTokens", "type": "uint256" } ], "name": "BuyFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "devEth", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "remarketingEth", "type": "uint256" } ], "name": "DistributeFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "ethAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokenAmount", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "DividendClaimed", "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": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountTokens", "type": "uint256" } ], "name": "SellFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SendDividends", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "sentEth", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "receivedTokens", "type": "uint256" } ], "name": "SwapEthForTokens", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "sentTokens", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "receivedEth", "type": "uint256" } ], "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": [ { "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": [], "name": "availableContractTokenBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseSellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "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": "_account", "type": "address" } ], "name": "dividendTokenBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dividendTracker", "outputs": [ { "internalType": "contract GODLDividendTracker", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getAccount", "outputs": [ { "internalType": "uint256", "name": "withdrawableDividends", "type": "uint256" }, { "internalType": "uint256", "name": "withdrawnDividends", "type": "uint256" }, { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_limit", "type": "uint256" }, { "internalType": "uint256", "name": "_pageNumber", "type": "uint256" } ], "name": "getHistory", "outputs": [ { "components": [ { "internalType": "uint256", "name": "ethAmount", "type": "uint256" }, { "internalType": "uint256", "name": "tokenAmount", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "internalType": "struct GODL.ClaimedEth[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getHistoryCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNumberOfDividendTokenHolders", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_ad", "type": "address" } ], "name": "getTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalDividendsDistributed", "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": "initialBuyTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "initialSellTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isBot", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludeFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExludeFromWalletLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "lastTransfer", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualSend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "manualSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxIndexMinutesRange", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minContractTokensToSwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minRewardTokensToSwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minutesIntervalPerSell", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "name": "minutesRangeTaxes", "outputs": [ { "internalType": "uint256", "name": "from", "type": "uint256" }, { "internalType": "uint256", "name": "to", "type": "uint256" }, { "internalType": "uint256", "name": "tax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_launchTime", "type": "uint256" }, { "internalType": "uint256", "name": "_minutesForPrivateSale", "type": "uint256" } ], "name": "openTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingEthReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingTokensForReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reinvest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellPercentageOfHolding", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_bots", "type": "address[]" } ], "name": "setBots", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_isExludeFromFee", "type": "bool" } ], "name": "setExcludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_isExludeFromDividends", "type": "bool" } ], "name": "setExludeFromDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_isExludeFromWalletLimit", "type": "bool" } ], "name": "setExludeFromWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_maxIndex", "type": "uint8" } ], "name": "setMaxIndexMinutesRange", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_numToken", "type": "uint256" } ], "name": "setMinContractTokensToSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_numToken", "type": "uint256" } ], "name": "setMinRewardTokensToSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minimumMyBagsToken", "type": "uint256" } ], "name": "setMinimumMyBagsToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_index", "type": "uint8" }, { "internalType": "uint256", "name": "_from", "type": "uint256" }, { "internalType": "uint256", "name": "_to", "type": "uint256" }, { "internalType": "uint256", "name": "_tax", "type": "uint256" } ], "name": "setMinutesRangeTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_sellPercentageOfHolding", "type": "uint256" }, { "internalType": "uint256", "name": "_minutesIntervalPerSell", "type": "uint256" } ], "name": "setPercentageOfHolding", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_isWapAll", "type": "bool" } ], "name": "setSwapAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_baseBuyTax", "type": "uint256" }, { "internalType": "uint256", "name": "_baseSellTax", "type": "uint256" }, { "internalType": "uint256", "name": "_autoLP", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" } ], "name": "setTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_devWallet", "type": "address" }, { "internalType": "address", "name": "_marketingWallet", "type": "address" } ], "name": "setWalletAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_percentage", "type": "uint256" } ], "name": "setWalletLimitPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAll", "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": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "withdrawableDividendOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600780546001600160a81b0319167360ae616a2155ee3d9a68541ba4544862310933d41790556000600855670de0b6b3a7640000600b556032601155600a6013556005601490815560155562069780601655601b601881905560286019556021601a556b06765c793fa10079d00000009055601c805460ff1916905569021e19e0c9bab24000006022819055602555348015620000a057600080fd5b5060405162005a9938038062005a99833981016040819052620000c391620007ae565b60408051808201825260048082526311d3d11360e21b6020808401828152855180870190965292855284015281519192916200010291600391620006dd565b50805162000118906004906020840190620006dd565b5050600580546001600160a01b031916339081179091556040519091506000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3601f8054610100600160a81b0319166101006001600160a01b038681169190910291909117909155602080546001600160a01b0319908116858416178255600a80549091168484161790556005805483166000908152600f83526040808220805460ff19908116600190811790925530808552838520805483168417905594548716845260129095528183208054861682179055928252808220805485168417905560075490941681528390208054909216179055516200021e906200076c565b604051809103906000f0801580156200023b573d6000803e3d6000fd5b50602180546001600160a01b0319166001600160a01b0392909216918217905560405163031e79db60e41b8152600481018290526331e79db090602401600060405180830381600087803b1580156200029357600080fd5b505af1158015620002a8573d6000803e3d6000fd5b505060215460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b158015620002f257600080fd5b505af115801562000307573d6000803e3d6000fd5b50506021546001600160a01b031691506331e79db09050620003316005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200037357600080fd5b505af115801562000388573d6000803e3d6000fd5b505060215460075460405163031e79db60e41b81526001600160a01b039182166004820152911692506331e79db09150602401600060405180830381600087803b158015620003d657600080fd5b505af1158015620003eb573d6000803e3d6000fd5b5050601e602081905260007f873299c6a6c39b8b92f01922bb622df4a3236ea2876aac2da76f6c092cf7e98f819055620697807f873299c6a6c39b8b92f01922bb622df4a3236ea2876aac2da76f6c092cf7e9908190557f873299c6a6c39b8b92f01922bb622df4a3236ea2876aac2da76f6c092cf7e991929092557f8a1ea6ccfdf9f988bdc16303c81231f9b192785454b34880c28e5c30362354c591909155620d2f007f8a1ea6ccfdf9f988bdc16303c81231f9b192785454b34880c28e5c30362354c681905560197f8a1ea6ccfdf9f988bdc16303c81231f9b192785454b34880c28e5c30362354c7557f4bbb14a9b8bdd7baf7e45936eef68b1d3b69ec665e4d3d9f22d086627a2b0880556213c6807f4bbb14a9b8bdd7baf7e45936eef68b1d3b69ec665e4d3d9f22d086627a2b088181905560147f4bbb14a9b8bdd7baf7e45936eef68b1d3b69ec665e4d3d9f22d086627a2b0882556004918290527f2eca6469c5988648711d819e241e59ec9e94a879e5d491ce337260f9e754141255621a5e007f2eca6469c5988648711d819e241e59ec9e94a879e5d491ce337260f9e754141355600f7f2eca6469c5988648711d819e241e59ec9e94a879e5d491ce337260f9e754141455601f805460ff191690911790555050600554620005ec906001600160a01b03166c0c9f2c9cd04674edea40000000620005f5565b5050506200085c565b6001600160a01b038216620006505760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620006649190620007f8565b90915550506001600160a01b0382166000908152602081905260408120805483929062000693908490620007f8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620006eb906200081f565b90600052602060002090601f0160209004810192826200070f57600085556200075a565b82601f106200072a57805160ff19168380011785556200075a565b828001600101855582156200075a579182015b828111156200075a5782518255916020019190600101906200073d565b50620007689291506200077a565b5090565b6119ae80620040eb83390190565b5b808211156200076857600081556001016200077b565b80516001600160a01b0381168114620007a957600080fd5b919050565b600080600060608486031215620007c457600080fd5b620007cf8462000791565b9250620007df6020850162000791565b9150620007ef6040850162000791565b90509250925092565b600082198211156200081a57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200083457607f821691505b602082108114156200085657634e487b7160e01b600052602260045260246000fd5b50919050565b61387f806200086c6000396000f3fe6080604052600436106103855760003560e01c80638aaa9389116101d1578063b579b29411610102578063e3402c67116100a0578063ec29f4e91161006f578063ec29f4e914610ab4578063f429389014610ae1578063fbcbc0f114610af6578063fdb5a03e14610b1657600080fd5b8063e3402c6714610a31578063e4441f0a14610a47578063e5fc10ed14610a74578063e7a919f914610a9457600080fd5b8063d2971059116100dc578063d297105914610995578063d539be5f146109ab578063dd62ed3e146109cb578063de30aad114610a1157600080fd5b8063b579b2941461094a578063b652ef3b14610960578063ba762ddd1461098057600080fd5b8063a457c2d71161016f578063af9549e011610149578063af9549e0146108ba578063b1fdb11b146108da578063b485430b14610910578063b515566a1461092a57600080fd5b8063a457c2d71461085a578063a8b9d2401461087a578063a9059cbb1461089a57600080fd5b806390677833116101ab57806390677833146107a157806395d89b41146107ce578063963bafa0146107e3578063a2923a0f1461083a57600080fd5b80638aaa9389146107335780638da5cb5b146107535780638e5916b21461077157600080fd5b80634297a7ca116102b657806366cc702611610254578063715018a611610223578063715018a6146106d25780637c4b492e146106e75780638954fb4a146106fd57806389a5c6911461071d57600080fd5b806366cc7026146106525780636843cd84146106725780636973cd091461069257806370a08231146106b257600080fd5b80635b6612ad116102905780635b6612ad146105da5780635b683e66146106075780635fcefa421461061d57806364b0f6531461063d57600080fd5b80634297a7ca146105805780634e71d92d146105b057806351bc3c85146105c557600080fd5b806323b872dd11610323578063313ce567116102fd578063313ce567146104f457806339509351146105165780633bbac579146105365780633e9ffbea1461056657600080fd5b806323b872dd146104875780632c1f5216146104a757806330bb4cff146104df57600080fd5b806312dfbd331161035f57806312dfbd3314610410578063168380131461043257806318160ddd146104525780631c08bc5d1461046757600080fd5b806306fdde03146103915780630866e0e9146103bc578063095ea7b3146103e057600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610b2b565b6040516103b3919061320a565b60405180910390f35b3480156103c857600080fd5b506103d260155481565b6040519081526020016103b3565b3480156103ec57600080fd5b506104006103fb366004613277565b610bbd565b60405190151581526020016103b3565b34801561041c57600080fd5b5061043061042b3660046132a3565b610bd7565b005b34801561043e57600080fd5b5061043061044d3660046132bc565b610c0f565b34801561045e57600080fd5b506002546103d2565b34801561047357600080fd5b506104306104823660046132a3565b610c50565b34801561049357600080fd5b506104006104a23660046132de565b610c7f565b3480156104b357600080fd5b506021546104c7906001600160a01b031681565b6040516001600160a01b0390911681526020016103b3565b3480156104eb57600080fd5b506103d2610ca3565b34801561050057600080fd5b5060125b60405160ff90911681526020016103b3565b34801561052257600080fd5b50610400610531366004613277565b610d16565b34801561054257600080fd5b5061040061055136600461331f565b60106020526000908152604090205460ff1681565b34801561057257600080fd5b50601c546104009060ff1681565b34801561058c57600080fd5b5061040061059b36600461331f565b60126020526000908152604090205460ff1681565b3480156105bc57600080fd5b50610430610d55565b3480156105d157600080fd5b50610430610d62565b3480156105e657600080fd5b506103d26105f536600461331f565b60236020526000908152604090205481565b34801561061357600080fd5b506103d260145481565b34801561062957600080fd5b5061043061063836600461333c565b610db2565b34801561064957600080fd5b506103d2610e10565b34801561065e57600080fd5b5061043061066d3660046132a3565b610e5a565b34801561067e57600080fd5b506103d261068d36600461331f565b610e89565b34801561069e57600080fd5b506104306106ad366004613377565b610ef9565b3480156106be57600080fd5b506103d26106cd36600461331f565b610f5b565b3480156106de57600080fd5b50610430610f76565b3480156106f357600080fd5b506103d260245481565b34801561070957600080fd5b506104306107183660046133be565b610fea565b34801561072957600080fd5b506103d2601b5481565b34801561073f57600080fd5b5061043061074e3660046132a3565b6110ca565b34801561075f57600080fd5b506005546001600160a01b03166104c7565b34801561077d57600080fd5b5061040061078c36600461331f565b600f6020526000908152604090205460ff1681565b3480156107ad57600080fd5b506103d26107bc36600461331f565b601d6020526000908152604090205481565b3480156107da57600080fd5b506103a66110f9565b3480156107ef57600080fd5b5061081f6107fe366004613402565b601e6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016103b3565b34801561084657600080fd5b5061043061085536600461341d565b611108565b34801561086657600080fd5b50610400610875366004613277565b611183565b34801561088657600080fd5b506103d261089536600461331f565b611215565b3480156108a657600080fd5b506104006108b5366004613277565b611248565b3480156108c657600080fd5b506104306108d53660046133be565b611256565b3480156108e657600080fd5b506103d26108f536600461331f565b6001600160a01b031660009081526029602052604090205490565b34801561091c57600080fd5b50601f546105049060ff1681565b34801561093657600080fd5b50610430610945366004613456565b6112ab565b34801561095657600080fd5b506103d260165481565b34801561096c57600080fd5b506103d261097b36600461331f565b6113d6565b34801561098c57600080fd5b506103d26114a4565b3480156109a157600080fd5b506103d260265481565b3480156109b757600080fd5b506104306109c6366004613402565b6114b5565b3480156109d757600080fd5b506103d26109e6366004613377565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a1d57600080fd5b50610430610a2c3660046134cb565b6114f5565b348015610a3d57600080fd5b506103d260255481565b348015610a5357600080fd5b506103d2610a6236600461331f565b60176020526000908152604090205481565b348015610a8057600080fd5b50610430610a8f3660046133be565b611532565b348015610aa057600080fd5b50610430610aaf3660046132bc565b611587565b348015610ac057600080fd5b50610ad4610acf3660046134e8565b61191d565b6040516103b3919061351d565b348015610aed57600080fd5b50610430611b4b565b348015610b0257600080fd5b5061081f610b1136600461331f565b611c18565b348015610b2257600080fd5b50610430611ca9565b606060038054610b3a90613576565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6690613576565b8015610bb35780601f10610b8857610100808354040283529160200191610bb3565b820191906000526020600020905b815481529060010190602001808311610b9657829003601f168201915b5050505050905090565b600033610bcb818585611cb4565b60019150505b92915050565b6005546001600160a01b03163314610c0a5760405162461bcd60e51b8152600401610c01906135b1565b60405180910390fd5b601b55565b6005546001600160a01b03163314610c395760405162461bcd60e51b8152600401610c01906135b1565b6015829055610c4981603c611dd8565b6016555050565b6005546001600160a01b03163314610c7a5760405162461bcd60e51b8152600401610c01906135b1565b602555565b600033610c8d858285611deb565b610c98858585611e77565b506001949350505050565b602154604080516342d359d760e11b815290516000926001600160a01b0316916385a6b3ae9160048083019260209291908290030181865afa158015610ced573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1191906135e6565b905090565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610bcb9082908690610d50908790613615565b611cb4565b610d603360006123a6565b565b6005546001600160a01b03163314610d8c5760405162461bcd60e51b8152600401610c01906135b1565b6000610da3602454610d9d30610f5b565b9061263e565b9050610dae8161264a565b5050565b6005546001600160a01b03163314610ddc5760405162461bcd60e51b8152600401610c01906135b1565b600a8511158015610df05750600560145411155b610df957600080fd5b601394909455601492909255601855601955601a55565b602154604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde9160048083019260209291908290030181865afa158015610ced573d6000803e3d6000fd5b6005546001600160a01b03163314610e845760405162461bcd60e51b8152600401610c01906135b1565b600b55565b6021546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a08231906024015b602060405180830381865afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd191906135e6565b6005546001600160a01b03163314610f235760405162461bcd60e51b8152600401610c01906135b1565b601f8054610100600160a81b0319166101006001600160a01b0394851602179055602080546001600160a01b03191691909216179055565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610fa05760405162461bcd60e51b8152600401610c01906135b1565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110145760405162461bcd60e51b8152600401610c01906135b1565b801561107e5760215460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db0906024015b600060405180830381600087803b15801561106257600080fd5b505af1158015611076573d6000803e3d6000fd5b505050505050565b6021546001600160a01b03166318c18adb8361109981610f5b565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401611048565b6005546001600160a01b031633146110f45760405162461bcd60e51b8152600401610c01906135b1565b601155565b606060048054610b3a90613576565b6005546001600160a01b031633146111325760405162461bcd60e51b8152600401610c01906135b1565b61113d83603c611dd8565b60ff85166000908152601e602052604090205561115b82603c611dd8565b60ff9094166000908152601e6020526040902060018101949094556002909301929092555050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156112085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c01565b610c988286868403611cb4565b6021546040516302a2e74960e61b81526001600160a01b038381166004830152600092169063a8b9d24090602401610eb8565b600033610bcb818585611e77565b6005546001600160a01b031633146112805760405162461bcd60e51b8152600401610c01906135b1565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146112d55760405162461bcd60e51b8152600401610c01906135b1565b60005b818110156113d1576009546001600160a01b03168383838181106112fe576112fe61362d565b9050602002016020810190611313919061331f565b6001600160a01b03161415801561136457506007546001600160a01b03168383838181106113435761134361362d565b9050602002016020810190611358919061331f565b6001600160a01b031614155b156113bf576001601060008585858181106113815761138161362d565b9050602002016020810190611396919061331f565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b806113c981613643565b9150506112d8565b505050565b60145460009060015b601f5460ff9081169082161161149d5760ff81166000908152601e60209081526040808320546001600160a01b0388168452601d90925290912054429161142591613615565b1115801561146a575060ff81166000908152601e60209081526040808320600101546001600160a01b0388168452601d90925290912054429161146791613615565b10155b1561148b5760ff166000908152601e60205260409020600201549392505050565b806114958161365e565b9150506113df565b5092915050565b6000610d11602454610d9d30610f5b565b6005546001600160a01b031633146114df5760405162461bcd60e51b8152600401610c01906135b1565b601f805460ff191660ff92909216919091179055565b6005546001600160a01b0316331461151f5760405162461bcd60e51b8152600401610c01906135b1565b601c805460ff1916911515919091179055565b6005546001600160a01b0316331461155c5760405162461bcd60e51b8152600401610c01906135b1565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146115b15760405162461bcd60e51b8152600401610c01906135b1565b600754600160a01b900460ff161561160b5760405162461bcd60e51b815260206004820152601d60248201527f474f444c3a2054726164696e6720697320616c7265616479206f70656e0000006044820152606401610c01565b42821161165a5760405162461bcd60e51b815260206004820152601760248201527f474f444c3a20496e76616c69642074696d657374616d700000000000000000006044820152606401610c01565b600760009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d1919061367e565b6001600160a01b031663c9c6539630600760009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611733573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611757919061367e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156117a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c8919061367e565b600980546001600160a01b0319166001600160a01b0392831690811782556000908152600e602052604090819020805460ff191660011790556021549154905163031e79db60e41b815290831660048201529116906331e79db090602401600060405180830381600087803b15801561184057600080fd5b505af1158015611854573d6000803e3d6000fd5b5050505061186a61186430610f5b565b476127ff565b60095460075460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af11580156118c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e4919061369b565b506007805460ff60a01b1916600160a01b179055600c82905561191261190b82603c611dd8565b839061290e565b600d55505043600855565b606060008311801561192f5750600082115b61197b5760405162461bcd60e51b815260206004820152601760248201527f474f444c3a20496e76616c696420617267756d656e74730000000000000000006044820152606401610c01565b6001600160a01b0384166000908152602960205260408120549061199f85856136b8565b905060006119ad86836136d7565b90508281106119f35760405162461bcd60e51b8152602060048201526012602482015271474f444c3a204f7574206f662072616e676560701b6044820152606401610c01565b8583831115611a0c57839250611a098784613704565b90505b60008167ffffffffffffffff811115611a2757611a27613718565b604051908082528060200260200182016040528015611a7c57816020015b611a6960405180606001604052806000815260200160008152602001600081525090565b815260200190600190039081611a455790505b5090506000835b85811015611b3c576001600160a01b038b166000908152602960205260408120805483908110611ab557611ab561362d565b90600052602060002001549050602860008281526020019081526020016000206040518060600160405290816000820154815260200160018201548152602001600282015481525050848481518110611b1057611b1061362d565b6020908102919091010152611b26600184613615565b9250508080611b3490613643565b915050611a83565b50909998505050505050505050565b6005546001600160a01b03163314611b755760405162461bcd60e51b8152600401610c01906135b1565b6000611b8c6026544761263e90919063ffffffff16565b90506000611bbd611ba9601854606461263e90919063ffffffff16565b601954611bb7908590611dd8565b9061291a565b90506000611be8611bda601854606461263e90919063ffffffff16565b601a54611bb7908690611dd8565b90506000611bfa82610d9d868661263e565b9050611c06838261290e565b9250611c128383612926565b50505050565b60215460405163fbcbc0f160e01b81526001600160a01b038381166004830152600092839283929091169063fbcbc0f1906024016040805180830381865afa158015611c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8c919061372e565b90935091508282611c9c86610f5b565b9250925092509193909250565b610d603360016123a6565b6001600160a01b038316611d165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c01565b6001600160a01b038216611d775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c01565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000611de482846136b8565b9392505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114611c125781811015611e6a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610c01565b611c128484848403611cb4565b6001600160a01b03831660009081526010602052604090205460ff16158015611eb957506001600160a01b03821660009081526010602052604090205460ff16155b611ec257600080fd5b601154600754829190600160a01b900460ff168015611f1b57506001600160a01b0385166000908152600e602052604090205460ff1680611f1b57506001600160a01b0384166000908152600e602052604090205460ff165b8015611f4057506001600160a01b0385166000908152600f602052604090205460ff16155b8015611f6557506001600160a01b0384166000908152600f602052604090205460ff16155b156120b95742600c541115611fce5760405162461bcd60e51b815260206004820152602960248201527f474f444c3a205072697661746520616e64207075626c69632073616c65206973604482015268103737ba1037b832b760b91b6064820152608401610c01565b42600c5411158015611fe1575042600d54115b156120ab57600a6011819055600b5490546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa158015612039573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205d91906135e6565b10156120ab5760405162461bcd60e51b815260206004820152601d60248201527f474f444c3a204e6f7420656e6f75676820244d7942616773546f6b656e0000006044820152606401610c01565b6120b68585856129e4565b91505b6001600160a01b0384166000908152601d60205260409020546120f2576001600160a01b0384166000908152601d602052604090204290555b6001600160a01b0384166000908152600e602052604090205460ff1615801561213457506001600160a01b03841660009081526012602052604090205460ff16155b156121c757600061214e8361214887610f5b565b9061290e565b905061216b612710611bb760115461216560025490565b90611dd8565b8111156121c55760405162461bcd60e51b815260206004820152602260248201527f474f444c3a2057616c6c65742062616c616e6365206c696d6974207265616368604482015261195960f21b6064820152608401610c01565b505b6121d2858584612c3e565b6011819055602154604051631b4a89ab60e11b81526001600160a01b03878116600483015290911690633695135690602401602060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612245919061369b565b6122bd576021546001600160a01b031663e30443bc8661226481610f5b565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156122aa57600080fd5b505af19250505080156122bb575060015b505b602154604051631b4a89ab60e11b81526001600160a01b03868116600483015290911690633695135690602401602060405180830381865afa158015612307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232b919061369b565b61239f576021546001600160a01b031663e30443bc8561234a81610f5b565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561239057600080fd5b505af192505050801561107657505b5050505050565b6021546040516302a2e74960e61b81526001600160a01b038481166004830152600092169063a8b9d24090602401602060405180830381865afa1580156123f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241591906135e6565b90506000811161247a5760405162461bcd60e51b815260206004820152602a60248201527f474f444c3a20436c61696d657220686173206e6f20776974686472617761626c6044820152691948191a5d9a59195b9960b21b6064820152608401610c01565b60008083612500576021546040516352b5f81d60e01b81526001600160a01b03878116600483018190526024830152909116906352b5f81d906044016020604051808303816000875af11580156124d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f991906135e6565b915061258b565b6021546040516352b5f81d60e01b81526001600160a01b038781166004830152306024830152909116906352b5f81d906044016020604051808303816000875af1158015612552573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257691906135e6565b9150811561258b576125888286612e0c565b90505b811561239f5761259f602780546001019055565b60006125aa60275490565b60008181526028602090815260408083208781556001808201889055426002909201919091556001600160a01b038b1680855260298452828520805492830181558552938390200184905580518781529182018690528101919091529091507f67dd3d116bf53e0ddda53bb148a5fdc129854e1c507c0eeda9190049a9bbc84f9060600160405180910390a1505050505050565b6000611de482846136d7565b60408051600280825260608201835260009247928492909160208301908036833701905050905030816000815181106126855761268561362d565b6001600160a01b03928316602091820292909201810191909152600754604080516339d94ae160e11b8152905191909316926373b295c29260048083019391928290030181865afa1580156126de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612702919061367e565b816001815181106127155761271561362d565b6001600160a01b03928316602091820292909201015260075461273b9130911686611cb4565b600754604051633b158ab160e11b81526001600160a01b039091169063762b156290612774908790600090869030904290600401613796565b600060405180830381600087803b15801561278e57600080fd5b505af11580156127a2573d6000803e3d6000fd5b5050505060006127bb834761263e90919063ffffffff16565b60408051878152602081018390529192507f4a6c12eb4e479a4ea28c8acad8efde466ef9bf69cf473501dd76865234496273910160405180910390a1949350505050565b6007546128179030906001600160a01b031684611cb4565b6007546001600160a01b031663f91b3f728230856000806128406005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156128a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128cd91906137d2565b505060408051848152602081018490527fcb1652de9aeec38545fc281847b3dbfc89aab56dfa907b1ab68466f602c36fb49250015b60405180910390a15050565b6000611de48284613615565b6000611de48284613800565b811561296c57601f546040516101009091046001600160a01b0316906108fc8415029084906000818181858888f1935050505015801561296a573d6000803e3d6000fd5b505b80156129ae576020546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156129ac573d6000803e3d6000fd5b505b60408051838152602081018390527f916ad8171ef8c567c7790377a142f0200f9565940680c06e30dd105cfd9249689101612902565b6001600160a01b0383166000908152600e60205260408120548190819060ff1680612a2757506001600160a01b0385166000908152600e602052604090205460ff165b612a735760405162461bcd60e51b815260206004820152601c60248201527f474f444c3a204e6f206d61726b6574206d616b65727320666f756e64000000006044820152606401610c01565b6001600160a01b0386166000908152600e602052604090205460ff1615612b1557612aae6064611bb760135487611dd890919063ffffffff16565b9150612aba848361263e565b9050612ac7863084612c3e565b604080516001600160a01b03881681523060208201529081018390527f6b0b46d0273ce53f1de696d2100b35dd3a405dcecbcbeede66215d858d5c401d9060600160405180910390a1612c35565b6000612b218786612fbe565b15612b2f5750601454612b3b565b612b38876113d6565b90505b612b4a6064611bb78784611dd8565b92506000612b726064611bb7612b6b6014548661263e90919063ffffffff16565b8990611dd8565b602454909150612b82908261290e565b602455612b8f868561263e565b9250612b9c883086612c3e565b6000612bad602454610d9d30610f5b565b9050601b54811115612bd157601c5460ff16612bc85750601b545b612bd181613036565b6025546024541115612be857612be860245461312c565b604080516001600160a01b038b1681523060208201529081018690527f4ab5e0df8ff1605133dbdd1b8e3f52edb9539abe64595f6f70b30d2fea7f204a9060600160405180910390a15050505b95945050505050565b6001600160a01b038316612ca25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c01565b6001600160a01b038216612d045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c01565b6001600160a01b03831660009081526020819052604090205481811015612d7c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c01565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612db3908490613615565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612dff91815260200190565b60405180910390a3611c12565b600080612e1830610f5b565b60408051600280825260608201835292935060009290916020830190803683375050600754604080516339d94ae160e11b815290519394506001600160a01b03909116926373b295c2925060048083019260209291908290030181865afa158015612e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eab919061367e565b81600081518110612ebe57612ebe61362d565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612ef257612ef261362d565b6001600160a01b03928316602091820292909201015260075460405163c57559dd60e01b815291169063c57559dd908790612f389060009086908a904290600401613814565b6000604051808303818588803b158015612f5157600080fd5b505af1158015612f65573d6000803e3d6000fd5b50505050506000612f7983610d9d30610f5b565b60408051888152602081018390529192507f2d5c8efb676a77fc04b6b50a19f6ccbf08ee66df0202de33576485f1f77b4b69910160405180910390a195945050505050565b6016546001600160a01b03831660009081526017602052604081205490914291612fe89190613615565b1161302d576001600160a01b038316600090815260176020526040902042905560155461301f90606490611bb79061216587610f5b565b821161302d57506001610bd1565b50600092915050565b60006130526064611bb760185485611dd890919063ffffffff16565b9050600061306182600261291a565b9050600061306f848361263e565b9050600061307c8261264a565b9050600061309a6064611bb760185485611dd890919063ffffffff16565b905060006130b86064611bb760195486611dd890919063ffffffff16565b905060006130d66064611bb7601a5487611dd890919063ffffffff16565b905060006130ea82610d9d8581898961263e565b90506130f6838261290e565b92506131028383612926565b6000871180156131125750600084115b156131215761312187856127ff565b505050505050505050565b60006131378261264a565b602454909150613147908361263e565b60245560265460009061315b90839061290e565b6021546040519192506000916001600160a01b039091169083908381818185875af1925050503d80600081146131ad576040519150601f19603f3d011682016040523d82523d6000602084013e6131b2565b606091505b5050905080156131f4576040518381527fb0cc2628d6d644cf6be9d8110e142297ac910d6d8026d795a99f272fd9ad60b19060200160405180910390a1611c12565b602654613201908461290e565b60265550505050565b600060208083528351808285015260005b818110156132375785810183015185820160400152820161321b565b81811115613249576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461327457600080fd5b50565b6000806040838503121561328a57600080fd5b82356132958161325f565b946020939093013593505050565b6000602082840312156132b557600080fd5b5035919050565b600080604083850312156132cf57600080fd5b50508035926020909101359150565b6000806000606084860312156132f357600080fd5b83356132fe8161325f565b9250602084013561330e8161325f565b929592945050506040919091013590565b60006020828403121561333157600080fd5b8135611de48161325f565b600080600080600060a0868803121561335457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806040838503121561338a57600080fd5b82356133958161325f565b915060208301356133a58161325f565b809150509250929050565b801515811461327457600080fd5b600080604083850312156133d157600080fd5b82356133dc8161325f565b915060208301356133a5816133b0565b803560ff811681146133fd57600080fd5b919050565b60006020828403121561341457600080fd5b611de4826133ec565b6000806000806080858703121561343357600080fd5b61343c856133ec565b966020860135965060408601359560600135945092505050565b6000806020838503121561346957600080fd5b823567ffffffffffffffff8082111561348157600080fd5b818501915085601f83011261349557600080fd5b8135818111156134a457600080fd5b8660208260051b85010111156134b957600080fd5b60209290920196919550909350505050565b6000602082840312156134dd57600080fd5b8135611de4816133b0565b6000806000606084860312156134fd57600080fd5b83356135088161325f565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b82811015613569578151805185528681015187860152850151858501526060909301929085019060010161353a565b5091979650505050505050565b600181811c9082168061358a57607f821691505b602082108114156135ab57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156135f857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115613628576136286135ff565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415613657576136576135ff565b5060010190565b600060ff821660ff811415613675576136756135ff565b60010192915050565b60006020828403121561369057600080fd5b8151611de48161325f565b6000602082840312156136ad57600080fd5b8151611de4816133b0565b60008160001904831182151516156136d2576136d26135ff565b500290565b6000828210156136e9576136e96135ff565b500390565b634e487b7160e01b600052601260045260246000fd5b600082613713576137136136ee565b500690565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561374157600080fd5b505080516020909101519092909150565b600081518084526020808501945080840160005b8381101561378b5781516001600160a01b031687529582019590820190600101613766565b509495945050505050565b85815284602082015260a0604082015260006137b560a0830186613752565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156137e757600080fd5b8351925060208401519150604084015190509250925092565b60008261380f5761380f6136ee565b500490565b84815260806020820152600061382d6080830186613752565b6001600160a01b0394909416604083015250606001529291505056fea264697066735822122083effcf6c636665b54d1c61679f2723f1b68293d5d93caf00f642c8bfacf09f064736f6c634300080b003360a06040523480156200001157600080fd5b5060408051808201825260158082527f474f444c5f4469766964656e645f547261636b65720000000000000000000000602080840182815285518087019096529285528401528151919291839183916200006e91600391620000df565b50805162000084906004906020840190620000df565b5050600980546001600160a01b03191633908117909155604051909350600092507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091508290a369021e19e0c9bab2400000608052620001c2565b828054620000ed9062000185565b90600052602060002090601f0160209004810192826200011157600085556200015c565b82601f106200012c57805160ff19168380011785556200015c565b828001600101855582156200015c579182015b828111156200015c5782518255916020019190600101906200013f565b506200016a9291506200016e565b5090565b5b808211156200016a57600081556001016200016f565b600181811c908216806200019a57607f821691505b60208210811415620001bc57634e487b7160e01b600052602260045260246000fd5b50919050565b6080516117c2620001ec6000396000818161051c0152818161077d0152610cad01526117c26000f3fe6080604052600436106101c65760003560e01c80636a474002116100f7578063a457c2d711610095578063be10b61411610064578063be10b6141461050a578063dd62ed3e1461053e578063e30443bc14610584578063fbcbc0f1146105a457600080fd5b8063a457c2d714610474578063a8b9d24014610494578063a9059cbb146104b4578063aafd847a146104d457600080fd5b806385a6b3ae116100d157806385a6b3ae146104015780638da5cb5b1461041757806391b89fba1461043f57806395d89b411461045f57600080fd5b80636a474002146103a157806370a08231146103b6578063715018a6146103ec57600080fd5b806327ce014711610164578063369513561161013e578063369513561461031157806339509351146103315780634e7b827f1461035157806352b5f81d1461038157600080fd5b806327ce0147146102b5578063313ce567146102d557806331e79db0146102f157600080fd5b806309bbedde116101a057806309bbedde1461023d57806318160ddd1461026057806318c18adb1461027557806323b872dd1461029557600080fd5b806303c83302146101da57806306fdde03146101e2578063095ea7b31461020d57600080fd5b366101d5576101d36105d9565b005b600080fd5b6101d36105d9565b3480156101ee57600080fd5b506101f761066c565b60405161020491906114e6565b60405180910390f35b34801561021957600080fd5b5061022d610228366004611553565b6106fe565b6040519015158152602001610204565b34801561024957600080fd5b50610252610718565b604051908152602001610204565b34801561026c57600080fd5b50600254610252565b34801561028157600080fd5b506101d3610290366004611553565b610728565b3480156102a157600080fd5b5061022d6102b036600461157f565b610835565b3480156102c157600080fd5b506102526102d03660046115c0565b610859565b3480156102e157600080fd5b5060405160128152602001610204565b3480156102fd57600080fd5b506101d361030c3660046115c0565b6108b5565b34801561031d57600080fd5b5061022d61032c3660046115c0565b610994565b34801561033d57600080fd5b5061022d61034c366004611553565b6109e0565b34801561035d57600080fd5b5061022d61036c3660046115c0565b600d6020526000908152604090205460ff1681565b34801561038d57600080fd5b5061025261039c3660046115dd565b610a1f565b3480156103ad57600080fd5b506101d3610a60565b3480156103c257600080fd5b506102526103d13660046115c0565b6001600160a01b031660009081526020819052604090205490565b3480156103f857600080fd5b506101d3610b02565b34801561040d57600080fd5b5061025260085481565b34801561042357600080fd5b506009546040516001600160a01b039091168152602001610204565b34801561044b57600080fd5b5061025261045a3660046115c0565b610b76565b34801561046b57600080fd5b506101f7610b81565b34801561048057600080fd5b5061022d61048f366004611553565b610b90565b3480156104a057600080fd5b506102526104af3660046115c0565b610c22565b3480156104c057600080fd5b5061022d6104cf366004611553565b610c4e565b3480156104e057600080fd5b506102526104ef3660046115c0565b6001600160a01b031660009081526007602052604090205490565b34801561051657600080fd5b506102527f000000000000000000000000000000000000000000000000000000000000000081565b34801561054a57600080fd5b506102526105593660046115dd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561059057600080fd5b506101d361059f366004611553565b610c5c565b3480156105b057600080fd5b506105c46105bf3660046115c0565b610d8c565b60408051928352602083019190915201610204565b60006105e460025490565b116105ee57600080fd5b341561066a5761062161060060025490565b61060e34600160801b610db9565b610618919061162c565b60055490610dcc565b60055560405134815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a26008546106669034610dcc565b6008555b565b60606003805461067b9061164e565b80601f01602080910402602001604051908101604052809291908181526020018280546106a79061164e565b80156106f45780601f106106c9576101008083540402835291602001916106f4565b820191906000526020600020905b8154815290600101906020018083116106d757829003601f168201915b5050505050905090565b60003361070c818585610dd8565b60019150505b92915050565b6000610723600b5490565b905090565b6009546001600160a01b0316331461075b5760405162461bcd60e51b815260040161075290611689565b60405180910390fd5b6001600160a01b0382166000908152600d60205260409020805460ff191690557f000000000000000000000000000000000000000000000000000000000000000081106107fd576107ac8282610e39565b6001600160a01b0382166000908152600c602052604090205460ff166107fd576001600160a01b0382166000908152600c60205260409020805460ff191660011790556107fd600b80546001019055565b6040516001600160a01b038316907fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b2590600090a25050565b600033610843858285610e98565b61084e858585610f24565b506001949350505050565b6001600160a01b03811660009081526006602090815260408083205491839052822054600554600160801b926108ab926108a6926108a09161089b9190610db9565b610f80565b90610fee565b610ffa565b610712919061162c565b6009546001600160a01b031633146108df5760405162461bcd60e51b815260040161075290611689565b6001600160a01b0381166000908152600d60205260408120805460ff1916600117905561090d908290610e39565b6001600160a01b0381166000908152600c602052604090205460ff1615156001141561095d576001600160a01b0381166000908152600c60205260409020805460ff1916905561095d600b61104c565b6040516001600160a01b038216907fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b2590600090a250565b6009546000906001600160a01b031633146109c15760405162461bcd60e51b815260040161075290611689565b506001600160a01b03166000908152600d602052604090205460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061070c9082908690610a1a9087906116be565b610dd8565b6009546000906001600160a01b03163314610a4c5760405162461bcd60e51b815260040161075290611689565b6000610a5884846110a3565b949350505050565b60405162461bcd60e51b815260206004820152606560248201527f474f444c5f4469766964656e645f547261636b65723a2077697468647261774460448201527f69766964656e642064697361626c65642e20557365207468652027636c61696d60648201527f272066756e6374696f6e206f6e20746865206d61696e20474f444c20636f6e746084820152643930b1ba1760d91b60a482015260c401610752565b6009546001600160a01b03163314610b2c5760405162461bcd60e51b815260040161075290611689565b6009546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600980546001600160a01b0319169055565b600061071282610c22565b60606004805461067b9061164e565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610c155760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610752565b61084e8286868403610dd8565b6001600160a01b03811660009081526007602052604081205461071290610c4884610859565b906111f9565b60003361070c818585610f24565b6009546001600160a01b03163314610c865760405162461bcd60e51b815260040161075290611689565b6001600160a01b0382166000908152600d602052604090205460ff1615610cab575050565b7f00000000000000000000000000000000000000000000000000000000000000008110610d3157610cdc8282610e39565b6001600160a01b0382166000908152600c602052604090205460ff16610d2d576001600160a01b0382166000908152600c60205260409020805460ff19166001179055610d2d600b80546001019055565b5050565b610d3c826000610e39565b6001600160a01b0382166000908152600c602052604090205460ff16151560011415610d2d576001600160a01b0382166000908152600c60205260409020805460ff19169055610d2d600b61104c565b600080610d9883610c22565b6001600160a01b039093166000908152600760205260409020549293915050565b6000610dc582846116d6565b9392505050565b6000610dc582846116be565b60405162461bcd60e51b815260206004820152602b60248201527f474f444c5f4469766964656e645f547261636b65723a204e6f20617070726f7660448201526a185b1cc8185b1b1bddd95960aa1b6064820152608401610752565b505050565b6001600160a01b03821660009081526020819052604090205480821115610e78576000610e6683836111f9565b9050610e728482611205565b50505050565b80821015610e34576000610e8c82846111f9565b9050610e728482611269565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610e725781811015610f175760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610752565b610e728484848403610dd8565b60405162461bcd60e51b815260206004820152602b60248201527f474f444c5f4469766964656e645f547261636b65723a204e6f207472616e736660448201526a195c9cc8185b1b1bddd95960aa1b6064820152608401610752565b60006001600160ff1b03821115610fea5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610752565b5090565b6000610dc582846116f5565b600080821215610fea5760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610752565b80548061109b5760405162461bcd60e51b815260206004820152601b60248201527f436f756e7465723a2064656372656d656e74206f766572666c6f7700000000006044820152606401610752565b600019019055565b6000806110af84610c22565b905080156111ef576001600160a01b0384166000908152600760205260409020546110da9082610dcc565b6001600160a01b038516600081815260076020526040908190209290925590517feb063efb53b3790d2bc15284b59af7544466c8787c2883321ee27095647911b69061113b90849087909182526001600160a01b0316602082015260400190565b60405180910390a26000836001600160a01b03168260405160006040518083038185875af1925050503d8060008114611190576040519150601f19603f3d011682016040523d82523d6000602084013e611195565b606091505b50509050806111e7576001600160a01b0385166000908152600760205260409020546111c190836111f9565b6001600160a01b0386166000908152600760205260408120919091559250610712915050565b509050610712565b5060009392505050565b6000610dc58284611736565b61120f82826112ad565b61124961122a61089b83600554610db990919063ffffffff16565b6001600160a01b0384166000908152600660205260409020549061138c565b6001600160a01b0390921660009081526006602052604090209190915550565b6112738282611398565b61124961128e61089b83600554610db990919063ffffffff16565b6001600160a01b03841660009081526006602052604090205490610fee565b6001600160a01b0382166113035760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610752565b806002600082825461131591906116be565b90915550506001600160a01b038216600090815260208190526040812080548392906113429084906116be565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000610dc5828461174d565b6001600160a01b0382166113f85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610752565b6001600160a01b0382166000908152602081905260409020548181101561146c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610752565b6001600160a01b038316600090815260208190526040812083830390556002805484929061149b908490611736565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600060208083528351808285015260005b81811015611513578581018301518582016040015282016114f7565b81811115611525576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461155057600080fd5b50565b6000806040838503121561156657600080fd5b82356115718161153b565b946020939093013593505050565b60008060006060848603121561159457600080fd5b833561159f8161153b565b925060208401356115af8161153b565b929592945050506040919091013590565b6000602082840312156115d257600080fd5b8135610dc58161153b565b600080604083850312156115f057600080fd5b82356115fb8161153b565b9150602083013561160b8161153b565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261164957634e487b7160e01b600052601260045260246000fd5b500490565b600181811c9082168061166257607f821691505b6020821081141561168357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156116d1576116d1611616565b500190565b60008160001904831182151516156116f0576116f0611616565b500290565b600080821280156001600160ff1b038490038513161561171757611717611616565b600160ff1b839003841281161561173057611730611616565b50500190565b60008282101561174857611748611616565b500390565b60008083128015600160ff1b85018412161561176b5761176b611616565b6001600160ff1b038401831381161561178657611786611616565b5050039056fea26469706673582212207c4c690754a20a414483935177cd79a154892ee328b446f650abcfc0df3ec3e464736f6c634300080b0033000000000000000000000000029770f8c8b7b52d0a7554085e013dbb15c339900000000000000000000000002c3d264bf9f1c524448f8406df589e313ac774c8000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c7