[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" }, { "indexed": false, "internalType": "bool", "name": "isExcludedDuringTrades", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" }, { "indexed": false, "internalType": "bool", "name": "isExcludedDuringTrades", "type": "bool" } ], "name": "ExcludeMultipleAccountsFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "oldValue", "type": "uint256" } ], "name": "GasForProcessingUpdated", "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": false, "internalType": "uint256", "name": "iterations", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "claims", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lastProcessedIndex", "type": "uint256" }, { "indexed": true, "internalType": "bool", "name": "autoAVAX", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "gas", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "processor", "type": "address" } ], "name": "ProcessedDividendTracker", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SendDividends", "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": "avaxReceived", "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": "UpdateDividendTracker", "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": [], "name": "AVAXRewardsFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_marketingWalletAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "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": "blacklistAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "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": "account", "type": "address" } ], "name": "dividendTokenBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dividendTracker", "outputs": [ { "internalType": "contract avaxGASDividendTracker", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" }, { "internalType": "bool", "name": "excludedFromTrades", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "bool", "name": "excluded", "type": "bool" }, { "internalType": "bool", "name": "excludedFromTrades", "type": "bool" } ], "name": "excludeMultipleAccountsFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "gasForProcessing", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountDividendsInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getAccountDividendsInfoAtIndex", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getClaimWait", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLastProcessedIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNumberOfDividendTokenHolders", "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": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFeesDuringTrades", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "processDividendTracker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setAVAXRewardsFee", "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": "uint256", "name": "value", "type": "uint256" } ], "name": "setLiquiditFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setMarketingFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "wallet", "type": "address" } ], "name": "setMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "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": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "claimWait", "type": "uint256" } ], "name": "updateClaimWait", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateDividendTracker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateGasForProcessing", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateUniswapV2Router", "outputs": [], "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" } ]
60806040526009805461dead6001600160a01b03199091161790556a01a784379d99db42000000600a556008600c8190556005600d819055600e8290556200006f91906200005b908290620005c7602090811b6200216317901c565b620005c760201b620021631790919060201c565b600f55601080546001600160a01b0319167366099144d2cee6ddd78182f1748be1ab1aa619f5179055620493e0601155348015620000ac57600080fd5b506040805180820182526007808252666176617847415360c81b602080840182815285518087019096529285528401528151919291620000ef9160039162000a99565b5080516200010590600490602084019062000a99565b505050620001226200011c6200063560201b60201c565b62000639565b604051620001309062000b28565b604051809103906000f0801580156200014d573d6000803e3d6000fd5b50600860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060007360ae616a2155ee3d9a68541ba4544862310933d490506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001c957600080fd5b505afa158015620001de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000204919062000b4d565b6001600160a01b031663c9c6539630846001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024d57600080fd5b505afa15801562000262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000288919062000b4d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002d157600080fd5b505af1158015620002e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030c919062000b4d565b600680546001600160a01b038086166001600160a01b031992831617909255600780549284169290911691909117905590506200034b8160016200068b565b60085460405163031e79db60e41b81526001600160a01b0390911660048201819052906331e79db090602401600060405180830381600087803b1580156200039257600080fd5b505af1158015620003a7573d6000803e3d6000fd5b505060085460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b158015620003f157600080fd5b505af115801562000406573d6000803e3d6000fd5b50506008546001600160a01b031691506331e79db09050620004306005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200047257600080fd5b505af115801562000487573d6000803e3d6000fd5b505060085460095460405163031e79db60e41b81526001600160a01b039182166004820152911692506331e79db09150602401600060405180830381600087803b158015620004d557600080fd5b505af1158015620004ea573d6000803e3d6000fd5b505060085460405163031e79db60e41b81526001600160a01b03868116600483015290911692506331e79db09150602401600060405180830381600087803b1580156200053657600080fd5b505af11580156200054b573d6000803e3d6000fd5b505050506200056c62000563620007f860201b60201c565b60018062000807565b60105462000586906001600160a01b031660018062000807565b620005943060018062000807565b620005bf620005ab6005546001600160a01b031690565b6c01431e0fae6d7217caa0000000620009b4565b505062000bd8565b600080620005d6838562000b76565b9050838110156200062e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b9392505050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821660009081526014602052604090205460ff16151581151514156200072c5760405162461bcd60e51b815260206004820152604160248201527f617661784741533a204175746f6d61746564206d61726b6574206d616b65722060448201527f7061697220697320616c72656164792073657420746f20746861742076616c756064820152606560f81b608482015260a40162000625565b6001600160a01b0382166000908152601460205260409020805460ff19168215801591909117909155620007bc5760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b158015620007a257600080fd5b505af1158015620007b7573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b031690565b6005546001600160a01b03163314620008635760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000625565b6001600160a01b03831660009081526012602052604090205460ff161515821515141580620008b157506001600160a01b03831660009081526013602052604090205460ff16151581151514155b6200093a5760405162461bcd60e51b815260206004820152604c60248201527f617661784741533a204163636f756e7420697320616c7265616479207468652060448201527f76616c7565206f6620276578636c756465642720616e6420276578636c75646560648201526b6446726f6d5472616465732760a01b608482015260a40162000625565b6001600160a01b0383166000818152601260209081526040808320805487151560ff199182168117909255601384529382902080548715159516851790558151908152918201929092527f9dba1fcf514d206e831b0cd6e2507585c9306918bfe1a43686d532dee3d459ff910160405180910390a2505050565b6001600160a01b03821662000a0c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000625565b806002600082825462000a20919062000b76565b90915550506001600160a01b0382166000908152602081905260408120805483929062000a4f90849062000b76565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b82805462000aa79062000b9b565b90600052602060002090601f01602090048101928262000acb576000855562000b16565b82601f1062000ae657805160ff191683800117855562000b16565b8280016001018555821562000b16579182015b8281111562000b1657825182559160200191906001019062000af9565b5062000b2492915062000b36565b5090565b612323806200423983390190565b5b8082111562000b24576000815560010162000b37565b60006020828403121562000b5f578081fd5b81516001600160a01b03811681146200062e578182fd5b6000821982111562000b9657634e487b7160e01b81526011600452602481fd5b500190565b600181811c9082168062000bb057607f821691505b6020821081141562000bd257634e487b7160e01b600052602260045260246000fd5b50919050565b6136518062000be86000396000f3fe6080604052600436106103035760003560e01c8063700bb19111610190578063a8b9d240116100dc578063b723100611610095578063e7841ec01161006f578063e7841ec014610996578063e98030c7146109ab578063f27fd254146109cb578063f2fde38b146109eb57600080fd5b8063b72310061461091a578063dd62ed3e1461093a578063e2f456051461098057600080fd5b8063a8b9d2401461080f578063a9059cbb1461082f578063ad56c13c1461084f578063adefd90c146108b4578063b3db6cb3146108d4578063b62496f5146108ea57600080fd5b80638da5cb5b116101495780639a7a23d6116101235780639a7a23d6146107a45780639c1b8af5146107c4578063a26579ad146107da578063a457c2d7146107ef57600080fd5b80638da5cb5b1461075b57806395d89b411461077957806398118cb41461078e57600080fd5b8063700bb1911461069057806370a08231146106b0578063715018a6146106e657806385141a77146106fb578063871c128d1461071b57806388bdd9be1461073b57600080fd5b8063395093511161024f578063506bdebf1161020857806364b0f653116101e257806364b0f6531461062557806365b8dbc01461063a5780636843cd841461065a5780636b67c4df1461067a57600080fd5b8063506bdebf146105c55780635d098b38146105e5578063625e764c1461060557600080fd5b806339509351146104f75780634144d9e414610517578063455a43961461053757806349bd5a5e146105575780634e71d92d146105775780634fbee1931461058c57600080fd5b80631b3d1c4e116102bc5780632c1f5216116102965780632c1f52161461048657806330bb4cff146104a6578063313ce567146104bb57806331e79db0146104d757600080fd5b80631b3d1c4e146104145780631cdd3be31461043657806323b872dd1461046657600080fd5b806306fdde031461030f578063095ea7b31461033a57806313114a9d1461036a57806313c4c6831461038e5780631694505e146103c757806318160ddd146103ff57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610a0b565b604051610331919061339e565b60405180910390f35b34801561034657600080fd5b5061035a61035536600461320b565b610a9d565b6040519015158152602001610331565b34801561037657600080fd5b50610380600f5481565b604051908152602001610331565b34801561039a57600080fd5b5061035a6103a936600461307b565b6001600160a01b031660009081526013602052604090205460ff1690565b3480156103d357600080fd5b506006546103e7906001600160a01b031681565b6040516001600160a01b039091168152602001610331565b34801561040b57600080fd5b50600254610380565b34801561042057600080fd5b5061043461042f366004613158565b610ab4565b005b34801561044257600080fd5b5061035a61045136600461307b565b600b6020526000908152604090205460ff1681565b34801561047257600080fd5b5061035a6104813660046130eb565b610c35565b34801561049257600080fd5b506008546103e7906001600160a01b031681565b3480156104b257600080fd5b50610380610cdf565b3480156104c757600080fd5b5060405160128152602001610331565b3480156104e357600080fd5b506104346104f236600461307b565b610d61565b34801561050357600080fd5b5061035a61051236600461320b565b610dee565b34801561052357600080fd5b506010546103e7906001600160a01b031681565b34801561054357600080fd5b5061043461055236600461312b565b610e2a565b34801561056357600080fd5b506007546103e7906001600160a01b031681565b34801561058357600080fd5b50610434610e7f565b34801561059857600080fd5b5061035a6105a736600461307b565b6001600160a01b031660009081526012602052604090205460ff1690565b3480156105d157600080fd5b506104346105e0366004613236565b610f06565b3480156105f157600080fd5b5061043461060036600461307b565b611064565b34801561061157600080fd5b506104346106203660046132e4565b6110b0565b34801561063157600080fd5b50610380611100565b34801561064657600080fd5b5061043461065536600461307b565b611145565b34801561066657600080fd5b5061038061067536600461307b565b611622565b34801561068657600080fd5b50610380600e5481565b34801561069c57600080fd5b506104346106ab3660046132e4565b6116a1565b3480156106bc57600080fd5b506103806106cb36600461307b565b6001600160a01b031660009081526020819052604090205490565b3480156106f257600080fd5b50610434611783565b34801561070757600080fd5b506009546103e7906001600160a01b031681565b34801561072757600080fd5b506104346107363660046132e4565b6117b9565b34801561074757600080fd5b5061043461075636600461307b565b61190e565b34801561076757600080fd5b506005546001600160a01b03166103e7565b34801561078557600080fd5b50610324611cb2565b34801561079a57600080fd5b50610380600d5481565b3480156107b057600080fd5b506104346107bf36600461312b565b611cc1565b3480156107d057600080fd5b5061038060115481565b3480156107e657600080fd5b50610380611d98565b3480156107fb57600080fd5b5061035a61080a36600461320b565b611ddd565b34801561081b57600080fd5b5061038061082a36600461307b565b611e76565b34801561083b57600080fd5b5061035a61084a36600461320b565b611ea9565b34801561085b57600080fd5b5061086f61086a36600461307b565b611eb6565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610331565b3480156108c057600080fd5b506104346108cf3660046132e4565b611f60565b3480156108e057600080fd5b50610380600c5481565b3480156108f657600080fd5b5061035a61090536600461307b565b60146020526000908152604090205460ff1681565b34801561092657600080fd5b506104346109353660046132e4565b611fa4565b34801561094657600080fd5b506103806109553660046130b3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561098c57600080fd5b50610380600a5481565b3480156109a257600080fd5b50610380611fe9565b3480156109b757600080fd5b506104346109c63660046132e4565b61202e565b3480156109d757600080fd5b5061086f6109e63660046132e4565b612089565b3480156109f757600080fd5b50610434610a0636600461307b565b6120cb565b606060038054610a1a9061358c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a469061358c565b8015610a935780601f10610a6857610100808354040283529160200191610a93565b820191906000526020600020905b815481529060010190602001808311610a7657829003601f168201915b5050505050905090565b6000610aaa3384846121c9565b5060015b92915050565b6005546001600160a01b03163314610ae75760405162461bcd60e51b8152600401610ade90613434565b60405180910390fd5b6001600160a01b03831660009081526012602052604090205460ff161515821515141580610b3457506001600160a01b03831660009081526013602052604090205460ff16151581151514155b610bbb5760405162461bcd60e51b815260206004820152604c60248201527f617661784741533a204163636f756e7420697320616c7265616479207468652060448201527f76616c7565206f6620276578636c756465642720616e6420276578636c75646560648201526b6446726f6d5472616465732760a01b608482015260a401610ade565b6001600160a01b0383166000818152601260209081526040808320805487151560ff199182168117909255601384529382902080548715159516851790558151908152918201929092527f9dba1fcf514d206e831b0cd6e2507585c9306918bfe1a43686d532dee3d459ff910160405180910390a2505050565b6000610c428484846122ed565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610cc75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610ade565b610cd485338584036121c9565b506001949350505050565b600854604080516342d359d760e11b815290516000926001600160a01b0316916385a6b3ae916004808301926020929190829003018186803b158015610d2457600080fd5b505afa158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c91906132fc565b905090565b6005546001600160a01b03163314610d8b5760405162461bcd60e51b8152600401610ade90613434565b60085460405163031e79db60e41b81526001600160a01b038381166004830152909116906331e79db0906024015b600060405180830381600087803b158015610dd357600080fd5b505af1158015610de7573d6000803e3d6000fd5b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610aaa918590610e2590869061351e565b6121c9565b6005546001600160a01b03163314610e545760405162461bcd60e51b8152600401610ade90613434565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60085460405163bc4c4b3760e01b8152336004820152600060248201526001600160a01b039091169063bc4c4b3790604401602060405180830381600087803b158015610ecb57600080fd5b505af1158015610edf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0391906132c8565b50565b6005546001600160a01b03163314610f305760405162461bcd60e51b8152600401610ade90613434565b60005b83811015611020578260126000878785818110610f6057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610f75919061307b565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508160136000878785818110610fd157634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fe6919061307b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611018816135c7565b915050610f33565b507f556fd1bff044f62583918732b3e6116ac078ad7d1b92b1ed67f19289c3fb2975848484846040516110569493929190613341565b60405180910390a150505050565b6005546001600160a01b0316331461108e5760405162461bcd60e51b8152600401610ade90613434565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110da5760405162461bcd60e51b8152600401610ade90613434565b600e819055600d54600c546110fa9183916110f491612163565b90612163565b600f5550565b600854604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde916004808301926020929190829003018186803b158015610d2457600080fd5b6005546001600160a01b0316331461116f5760405162461bcd60e51b8152600401610ade90613434565b6006546001600160a01b03828116911614156111e25760405162461bcd60e51b815260206004820152602c60248201527f617661784741533a2054686520726f7574657220616c7265616479206861732060448201526b74686174206164647265737360a01b6064820152608401610ade565b6006546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a0155916004808301926020929190829003018186803b15801561127457600080fd5b505afa158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190613097565b90506000816001600160a01b031663e6a4390530600660009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b15801561130e57600080fd5b505afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113469190613097565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561138c57600080fd5b505afa1580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c49190613097565b90506001600160a01b0381166114ed57816001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b15801561143257600080fd5b505afa158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146a9190613097565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156114b257600080fd5b505af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190613097565b90505b600780546001600160a01b0319166001600160a01b03831690811790915560009081526014602052604090205460ff1661153857600754611538906001600160a01b03166001612854565b600854600654604051634e7b827f60e01b81526001600160a01b039182166004820152911690634e7b827f9060240160206040518083038186803b15801561157f57600080fd5b505afa158015611593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b791906132c8565b61161d5760085460065460405163031e79db60e41b81526001600160a01b0391821660048201529116906331e79db090602401600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b505050565b6008546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a08231906024015b60206040518083038186803b15801561166957600080fd5b505afa15801561167d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aae91906132fc565b6008546040516001624d3b8760e01b0319815260048101839052600091829182916001600160a01b03169063ffb2c47990602401606060405180830381600087803b1580156116ef57600080fd5b505af1158015611703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117279190613314565b604080518481526020810184905290810182905260608101889052929550909350915032906000907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a98906080015b60405180910390a350505050565b6005546001600160a01b031633146117ad5760405162461bcd60e51b8152600401610ade90613434565b6117b760006129bc565b565b6005546001600160a01b031633146117e35760405162461bcd60e51b8152600401610ade90613434565b62030d4081101580156117f957506207a1208111155b61186b5760405162461bcd60e51b815260206004820152603d60248201527f617661784741533a20676173466f7250726f63657373696e67206d757374206260448201527f65206265747765656e203230302c30303020616e64203530302c3030300000006064820152608401610ade565b6011548114156118db5760405162461bcd60e51b815260206004820152603560248201527f617661784741533a2043616e6e6f742075706461746520676173466f7250726f60448201527463657373696e6720746f2073616d652076616c756560581b6064820152608401610ade565b60115460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db790600090a3601155565b6005546001600160a01b031633146119385760405162461bcd60e51b8152600401610ade90613434565b6008546001600160a01b03828116911614156119b55760405162461bcd60e51b815260206004820152603660248201527f617661784741533a20546865206469766964656e6420747261636b657220616c6044820152757265616479206861732074686174206164647265737360501b6064820152608401610ade565b6000819050306001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156119fd57600080fd5b505afa158015611a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a359190613097565b6001600160a01b031614611ac75760405162461bcd60e51b815260206004820152604d60248201527f617661784741533a20546865206e6577206469766964656e6420747261636b6560448201527f72206d757374206265206f776e6564206279207468652061766178474153207460648201526c1bdad95b8818dbdb9d1c9858dd609a1b608482015260a401610ade565b60405163031e79db60e41b81526001600160a01b03821660048201819052906331e79db090602401600060405180830381600087803b158015611b0957600080fd5b505af1158015611b1d573d6000803e3d6000fd5b505060405163031e79db60e41b81523060048201526001600160a01b03841692506331e79db09150602401600060405180830381600087803b158015611b6257600080fd5b505af1158015611b76573d6000803e3d6000fd5b50505050806001600160a01b03166331e79db0611b9b6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015611bdc57600080fd5b505af1158015611bf0573d6000803e3d6000fd5b505060065460405163031e79db60e41b81526001600160a01b03918216600482015290841692506331e79db09150602401600060405180830381600087803b158015611c3b57600080fd5b505af1158015611c4f573d6000803e3d6000fd5b50506008546040516001600160a01b03918216935090851691507f90c7d74461c613da5efa97d90740869367d74ab3aa5837aa4ae9a975f954b7a890600090a3600880546001600160a01b0319166001600160a01b039290921691909117905550565b606060048054610a1a9061358c565b6005546001600160a01b03163314611ceb5760405162461bcd60e51b8152600401610ade90613434565b6007546001600160a01b038381169116141580611d055750805b611d8a5760405162461bcd60e51b815260206004820152604a60248201527f617661784741533a205468652063757272656e7420706169722063616e6e6f7460448201527f2062652072656d6f7665642066726f6d206175746f6d617465644d61726b65746064820152694d616b6572506169727360b01b608482015260a401610ade565b611d948282612854565b5050565b60085460408051631bc9e27b60e21b815290516000926001600160a01b031691636f2789ec916004808301926020929190829003018186803b158015610d2457600080fd5b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015611e5f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ade565b611e6c33858584036121c9565b5060019392505050565b6008546040516302a2e74960e61b81526001600160a01b038381166004830152600092169063a8b9d24090602401611651565b6000610aaa3384846122ed565b60085460405163fbcbc0f160e01b81526001600160a01b038381166004830152600092839283928392839283928392839291169063fbcbc0f1906024015b6101006040518083038186803b158015611f0d57600080fd5b505afa158015611f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4591906131a2565b97509750975097509750975097509750919395975091939597565b6005546001600160a01b03163314611f8a5760405162461bcd60e51b8152600401610ade90613434565b600d819055600e54600c546110fa91906110f49084612163565b6005546001600160a01b03163314611fce5760405162461bcd60e51b8152600401610ade90613434565b600c819055600e54600d546110fa91906110f4908490612163565b6008546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec0916004808301926020929190829003018186803b158015610d2457600080fd5b6005546001600160a01b031633146120585760405162461bcd60e51b8152600401610ade90613434565b60085460405163e98030c760e01b8152600481018390526001600160a01b039091169063e98030c790602401610db9565b600854604051635183d6fd60e01b81526004810183905260009182918291829182918291829182916001600160a01b0390911690635183d6fd90602401611ef4565b6005546001600160a01b031633146120f55760405162461bcd60e51b8152600401610ade90613434565b6001600160a01b03811661215a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ade565b610f03816129bc565b600080612170838561351e565b9050838110156121c25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ade565b9392505050565b6001600160a01b03831661222b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ade565b6001600160a01b03821661228c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ade565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166123135760405162461bcd60e51b8152600401610ade90613469565b6001600160a01b0382166123395760405162461bcd60e51b8152600401610ade906133f1565b6001600160a01b0383166000908152600b602052604090205460ff1615801561237b57506001600160a01b0382166000908152600b602052604090205460ff16155b6123bd5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610ade565b806123ce5761161d83836000612a0e565b30600090815260208190526040902054600a54811080159081906123fc5750600754600160a01b900460ff16155b801561242157506001600160a01b03851660009081526014602052604090205460ff16155b801561243b57506005546001600160a01b03868116911614155b801561245557506005546001600160a01b03858116911614155b156124e8576007805460ff60a01b1916600160a01b179055600f54600e5460009161248b91612485908690612b5b565b90612bda565b905061249681612c1c565b60006124b3600f54612485600d5487612b5b90919063ffffffff16565b90506124be81612c6d565b306000908152602081905260409020546124d781612cf4565b50506007805460ff60a01b19169055505b6007546001600160a01b03861660009081526012602052604090205460ff600160a01b90920482161591168061253657506001600160a01b03851660009081526012602052604090205460ff165b156125cb576001600160a01b03861660009081526013602052604090205460ff168061257a57506001600160a01b03851660009081526013602052604090205460ff165b806125c257506001600160a01b03851660009081526014602052604090205460ff161580156125c257506001600160a01b03861660009081526014602052604090205460ff16155b156125cb575060005b80156126475760006125ed6064612485600f5488612b5b90919063ffffffff16565b6001600160a01b03871660009081526014602052604090205490915060ff161561262e576126216064612485876001612b5b565b61262b908261351e565b90505b6126388582612d9b565b9450612645873083612a0e565b505b612652868686612a0e565b6008546001600160a01b031663e30443bc87612683816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156126c957600080fd5b505af19250505080156126da575060015b506008546001600160a01b031663e30443bc8661270c816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561275257600080fd5b505af1925050508015612763575060015b50600754600160a01b900460ff1661284c576011546008546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401606060405180830381600087803b1580156127c157600080fd5b505af19250505080156127f1575060408051601f3d908101601f191682019092526127ee91810190613314565b60015b6127fa57611618565b60408051848152602081018490529081018290526060810185905232906001907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a3505050505b505050505050565b6001600160a01b03821660009081526014602052604090205460ff16151581151514156128f35760405162461bcd60e51b815260206004820152604160248201527f617661784741533a204175746f6d61746564206d61726b6574206d616b65722060448201527f7061697220697320616c72656164792073657420746f20746861742076616c756064820152606560f81b608482015260a401610ade565b6001600160a01b0382166000908152601460205260409020805460ff191682158015919091179091556129805760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b15801561296757600080fd5b505af115801561297b573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316612a345760405162461bcd60e51b8152600401610ade90613469565b6001600160a01b038216612a5a5760405162461bcd60e51b8152600401610ade906133f1565b6001600160a01b03831660009081526020819052604090205481811015612ad25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ade565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612b0990849061351e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161177591815260200190565b50505050565b600082612b6a57506000610aae565b6000612b768385613556565b905082612b838583613536565b146121c25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ade565b60006121c283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ddd565b47612c2682612e14565b6000612c324783612d9b565b6010546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015612b55573d6000803e3d6000fd5b6000612c7a826002612bda565b90506000612c888383612d9b565b905047612c9483612e14565b6000612ca04783612d9b565b9050612cac8382612f91565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b612cfd81612e14565b60085460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114612d4e576040519150601f19603f3d011682016040523d82523d6000602084013e612d53565b606091505b50509050801561161d5760408051848152602081018490527f80195cc573b02cc48460cbca6e6e4cc85ddb91959d946e1c3025ea3d87942dc3910160405180910390a1505050565b60006121c283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061304a565b60008183612dfe5760405162461bcd60e51b8152600401610ade919061339e565b506000612e0b8486613536565b95945050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612e5757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600654604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b158015612eab57600080fd5b505afa158015612ebf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee39190613097565b81600181518110612f0457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600654612f2a91309116846121c9565b600654604051633b158ab160e11b81526001600160a01b039091169063762b156290612f639085906000908690309042906004016134ae565b600060405180830381600087803b158015612f7d57600080fd5b505af115801561284c573d6000803e3d6000fd5b600654612fa99030906001600160a01b0316846121c9565b600654604051637c8d9fb960e11b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f91b3f7290839060c4016060604051808303818588803b15801561301157600080fd5b505af1158015613025573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610de79190613314565b6000818484111561306e5760405162461bcd60e51b8152600401610ade919061339e565b506000612e0b8486613575565b60006020828403121561308c578081fd5b81356121c2816135f8565b6000602082840312156130a8578081fd5b81516121c2816135f8565b600080604083850312156130c5578081fd5b82356130d0816135f8565b915060208301356130e0816135f8565b809150509250929050565b6000806000606084860312156130ff578081fd5b833561310a816135f8565b9250602084013561311a816135f8565b929592945050506040919091013590565b6000806040838503121561313d578182fd5b8235613148816135f8565b915060208301356130e08161360d565b60008060006060848603121561316c578283fd5b8335613177816135f8565b925060208401356131878161360d565b915060408401356131978161360d565b809150509250925092565b600080600080600080600080610100898b0312156131be578384fd5b88516131c9816135f8565b809850506020890151965060408901519550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b6000806040838503121561321d578182fd5b8235613228816135f8565b946020939093013593505050565b6000806000806060858703121561324b578384fd5b843567ffffffffffffffff80821115613262578586fd5b818701915087601f830112613275578586fd5b813581811115613283578687fd5b8860208260051b8501011115613297578687fd5b602092830196509450508501356132ad8161360d565b915060408501356132bd8161360d565b939692955090935050565b6000602082840312156132d9578081fd5b81516121c28161360d565b6000602082840312156132f5578081fd5b5035919050565b60006020828403121561330d578081fd5b5051919050565b600080600060608486031215613328578081fd5b8351925060208401519150604084015190509250925092565b6060808252810184905260008560808301825b87811015613384578235613367816135f8565b6001600160a01b0316825260209283019290910190600101613354565b509415156020840152505090151560409091015292915050565b6000602080835283518082850152825b818110156133ca578581018301518582016040015282016133ae565b818111156133db5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156134fd5784516001600160a01b0316835293830193918301916001016134d8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115613531576135316135e2565b500190565b60008261355157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615613570576135706135e2565b500290565b600082821015613587576135876135e2565b500390565b600181811c908216806135a057607f821691505b602082108114156135c157634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156135db576135db6135e2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610f0357600080fd5b8015158114610f0357600080fdfea2646970667358221220a90bae1f9da070bc3675bd01306bf7e01ab69dee348aeee0f717e35f6ab76e0f64736f6c6343000804003360a06040523480156200001157600080fd5b506040518060400160405280601781526020017f617661784741535f4469766964656e5f547261636b65720000000000000000008152506040518060400160405280601881526020017f617661784741535f4469766964656e645f547261636b6572000000000000000081525081816200009a62000094620000e460201b60201c565b620000e8565b8151620000af90600490602085019062000138565b508051620000c590600590602084019062000138565b5050610e106011555050692a5a058fc295ed000000608052506200021b565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280546200014690620001de565b90600052602060002090601f0160209004810192826200016a5760008555620001b5565b82601f106200018557805160ff1916838001178555620001b5565b82800160010185558215620001b5579182015b82811115620001b557825182559160200191906001019062000198565b50620001c3929150620001c7565b5090565b5b80821115620001c35760008155600101620001c8565b600181811c90821680620001f357607f821691505b602082108114156200021557634e487b7160e01b600052602260045260246000fd5b50919050565b6080516120e56200023e600039600081816105d80152610ef201526120e56000f3fe6080604052600436106102085760003560e01c8063715018a611610118578063bc4c4b37116100a0578063e7841ec01161006f578063e7841ec014610660578063e98030c714610675578063f2fde38b14610695578063fbcbc0f1146106b5578063ffb2c479146106d557600080fd5b8063bc4c4b37146105a6578063be10b614146105c6578063dd62ed3e146105fa578063e30443bc1461064057600080fd5b806395d89b41116100e757806395d89b41146104fb578063a457c2d714610510578063a8b9d24014610530578063a9059cbb14610550578063aafd847a1461057057600080fd5b8063715018a61461048857806385a6b3ae1461049d5780638da5cb5b146104b357806391b89fba146104db57600080fd5b80633009a6091161019b5780634e7b827f1161016a5780634e7b827f146103925780635183d6fd146103c25780636a474002146104275780636f2789ec1461043c57806370a082311461045257600080fd5b80633009a60914610320578063313ce5671461033657806331e79db014610352578063395093511461037257600080fd5b806318160ddd116101d757806318160ddd1461029e578063226cfa3d146102b357806323b872dd146102e057806327ce01471461030057600080fd5b806303c833021461021c57806306fdde0314610224578063095ea7b31461024f57806309bbedde1461027f57600080fd5b3661021757610215610710565b005b600080fd5b610215610710565b34801561023057600080fd5b506102396107a3565b6040516102469190611eb8565b60405180910390f35b34801561025b57600080fd5b5061026f61026a366004611df0565b610835565b6040519015158152602001610246565b34801561028b57600080fd5b50600a545b604051908152602001610246565b3480156102aa57600080fd5b50600354610290565b3480156102bf57600080fd5b506102906102ce366004611d7c565b60106020526000908152604090205481565b3480156102ec57600080fd5b5061026f6102fb366004611e48565b61084c565b34801561030c57600080fd5b5061029061031b366004611d7c565b6108fb565b34801561032c57600080fd5b50610290600e5481565b34801561034257600080fd5b5060405160128152602001610246565b34801561035e57600080fd5b5061021561036d366004611d7c565b610958565b34801561037e57600080fd5b5061026f61038d366004611df0565b610a7f565b34801561039e57600080fd5b5061026f6103ad366004611d7c565b600f6020526000908152604090205460ff1681565b3480156103ce57600080fd5b506103e26103dd366004611ea0565b610abb565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610246565b34801561043357600080fd5b50610215610c2d565b34801561044857600080fd5b5061029060115481565b34801561045e57600080fd5b5061029061046d366004611d7c565b6001600160a01b031660009081526001602052604090205490565b34801561049457600080fd5b50610215610cd5565b3480156104a957600080fd5b5061029060095481565b3480156104bf57600080fd5b506000546040516001600160a01b039091168152602001610246565b3480156104e757600080fd5b506102906104f6366004611d7c565b610d09565b34801561050757600080fd5b50610239610d14565b34801561051c57600080fd5b5061026f61052b366004611df0565b610d23565b34801561053c57600080fd5b5061029061054b366004611d7c565b610dbc565b34801561055c57600080fd5b5061026f61056b366004611df0565b610de8565b34801561057c57600080fd5b5061029061058b366004611d7c565b6001600160a01b031660009081526008602052604090205490565b3480156105b257600080fd5b5061026f6105c1366004611db4565b610df5565b3480156105d257600080fd5b506102907f000000000000000000000000000000000000000000000000000000000000000081565b34801561060657600080fd5b50610290610615366004611e1b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561064c57600080fd5b5061021561065b366004611df0565b610ea1565b34801561066c57600080fd5b50600e54610290565b34801561068157600080fd5b50610215610690366004611ea0565b61102e565b3480156106a157600080fd5b506102156106b0366004611d7c565b6111a0565b3480156106c157600080fd5b506103e26106d0366004611d7c565b61123b565b3480156106e157600080fd5b506106f56106f0366004611ea0565b6113b3565b60408051938452602084019290925290820152606001610246565b600061071b60035490565b1161072557600080fd5b34156107a15761075861073760035490565b61074534600160801b6114dc565b61074f9190611f99565b60065490611562565b60065560405134815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a260095461079d9034611562565b6009555b565b6060600480546107b29061202e565b80601f01602080910402602001604051908101604052809291908181526020018280546107de9061202e565b801561082b5780601f106108005761010080835404028352916020019161082b565b820191906000526020600020905b81548152906001019060200180831161080e57829003601f168201915b5050505050905090565b60006108423384846115c1565b5060015b92915050565b60006108598484846116e5565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156108e35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108f085338584036115c1565b506001949350505050565b6001600160a01b0381166000908152600760209081526040808320546001909252822054600654600160801b9261094e92610949926109439161093e91906114dc565b611744565b90611754565b611792565b6108469190611f99565b6000546001600160a01b031633146109825760405162461bcd60e51b81526004016108da90611f0b565b6001600160a01b0381166000908152600f602052604090205460ff16156109a857600080fd5b6001600160a01b0381166000908152600f60205260408120805460ff191660011790556109d69082906117a5565b60405163131836e760e21b8152600a60048201526001600160a01b038216602482015273840b5fc8c6dee2b1140174a3abdc215190426ccf90634c60db9c9060440160006040518083038186803b158015610a3057600080fd5b505af4158015610a44573d6000803e3d6000fd5b50506040516001600160a01b03841692507fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b259150600090a250565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610842918590610ab6908690611f81565b6115c1565b600080600080600080600080600a73840b5fc8c6dee2b1140174a3abdc215190426ccf63deb3d89690916040518263ffffffff1660e01b8152600401610b0391815260200190565b60206040518083038186803b158015610b1b57600080fd5b505af4158015610b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b539190611e88565b8910610b78575060009650600019955085945086935083925082915081905080610c22565b6040516368d54f3f60e11b8152600a6004820152602481018a905260009073840b5fc8c6dee2b1140174a3abdc215190426ccf9063d1aa9e7e9060440160206040518083038186803b158015610bcd57600080fd5b505af4158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c059190611d98565b9050610c108161123b565b98509850985098509850985098509850505b919395975091939597565b60405162461bcd60e51b815260206004820152606b60248201527f617661784741535f4469766964656e645f547261636b65723a2077697468647260448201527f61774469766964656e642064697361626c65642e20557365207468652027636c60648201527f61696d272066756e6374696f6e206f6e20746865206d61696e2061766178474160848201526a299031b7b73a3930b1ba1760a91b60a482015260c4016108da565b6000546001600160a01b03163314610cff5760405162461bcd60e51b81526004016108da90611f0b565b6107a1600061180a565b600061084682610dbc565b6060600580546107b29061202e565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610da55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108da565b610db233858584036115c1565b5060019392505050565b6001600160a01b03811660009081526008602052604081205461084690610de2846108fb565b9061185a565b60006108423384846116e5565b600080546001600160a01b03163314610e205760405162461bcd60e51b81526004016108da90611f0b565b6000610e2b8461189c565b90508015610e97576001600160a01b038416600081815260106020526040908190204290555184151591907fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09290610e859085815260200190565b60405180910390a36001915050610846565b5060009392505050565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b81526004016108da90611f0b565b6001600160a01b0382166000908152600f602052604090205460ff1615610ef0575050565b7f00000000000000000000000000000000000000000000000000000000000000008110610f9f57610f2182826117a5565b604051632f0ad01760e21b8152600a60048201526001600160a01b03831660248201526044810182905273840b5fc8c6dee2b1140174a3abdc215190426ccf9063bc2b405c9060640160006040518083038186803b158015610f8257600080fd5b505af4158015610f96573d6000803e3d6000fd5b5050505061101d565b610faa8260006117a5565b60405163131836e760e21b8152600a60048201526001600160a01b038316602482015273840b5fc8c6dee2b1140174a3abdc215190426ccf90634c60db9c9060440160006040518083038186803b15801561100457600080fd5b505af4158015611018573d6000803e3d6000fd5b505050505b611028826001610df5565b505b5050565b6000546001600160a01b031633146110585760405162461bcd60e51b81526004016108da90611f0b565b610e10811015801561106d5750620151808111155b6110f55760405162461bcd60e51b815260206004820152604d60248201527f617661784741535f4469766964656e645f547261636b65723a20636c61696d5760448201527f616974206d757374206265207570646174656420746f206265747765656e203160648201526c20616e6420323420686f75727360981b608482015260a4016108da565b60115481141561116d5760405162461bcd60e51b815260206004820152603f60248201527f617661784741535f4469766964656e645f547261636b65723a2043616e6e6f7460448201527f2075706461746520636c61696d5761697420746f2073616d652076616c75650060648201526084016108da565b60115460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f90600090a3601155565b6000546001600160a01b031633146111ca5760405162461bcd60e51b81526004016108da90611f0b565b6001600160a01b03811661122f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108da565b6112388161180a565b50565b6040516317e142d160e01b8152600a60048201526001600160a01b0382166024820152819060009081908190819081908190819073840b5fc8c6dee2b1140174a3abdc215190426ccf906317e142d19060440160206040518083038186803b1580156112a657600080fd5b505af41580156112ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112de9190611e88565b965060001995506000871261134057600e5487111561130c57600e546113059088906119e2565b9550611340565b600e54600a5460009110611321576000611330565b600e54600a546113309161185a565b905061133c8882611754565b9650505b61134988610dbc565b9450611354886108fb565b6001600160a01b03891660009081526010602052604090205490945092508261137e57600061138c565b60115461138c908490611562565b915042821161139c5760006113a6565b6113a6824261185a565b9050919395975091939597565b600a5460009081908190806113d3575050600e54600092508291506114d5565b600e546000805a90506000805b89841080156113ee57508582105b156114c457846113fd81612069565b600a549096508610905061141057600094505b6000600a600001868154811061143657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316808352601090915260409091205490915061146790611a1f565b1561148a57611477816001610df5565b1561148a578161148681612069565b9250505b8261149481612069565b93505060005a9050808511156114bb576114b86114b1868361185a565b8790611562565b95505b93506113e09050565b600e85905590975095509193505050505b9193909250565b6000826114eb57506000610846565b60006114f78385611fb9565b9050826115048583611f99565b1461155b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108da565b9392505050565b60008061156f8385611f81565b90508381101561155b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108da565b6001600160a01b0383166116235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108da565b6001600160a01b0382166116845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108da565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405162461bcd60e51b815260206004820152602e60248201527f617661784741535f4469766964656e645f547261636b65723a204e6f2074726160448201526d1b9cd9995c9cc8185b1b1bddd95960921b60648201526084016108da565b6000818181121561084657600080fd5b6000806117618385611f40565b9050600083121580156117745750838112155b80611789575060008312801561178957508381125b61155b57600080fd5b6000808212156117a157600080fd5b5090565b6001600160a01b038216600090815260016020526040902054808211156117e45760006117d2838361185a565b90506117de8482611a46565b50611028565b808210156110285760006117f8828461185a565b90506118048482611aaa565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061155b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aee565b6000806118a883610dbc565b905080156119d9576001600160a01b0383166000908152600860205260409020546118d39082611562565b6001600160a01b038416600081815260086020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d906119229084815260200190565b60405180910390a26000836001600160a01b031682610bb890604051600060405180830381858888f193505050503d806000811461197c576040519150601f19603f3d011682016040523d82523d6000602084013e611981565b606091505b50509050806119d2576001600160a01b0384166000908152600860205260409020546119ad908361185a565b6001600160a01b03909416600090815260086020526040812094909455509192915050565b5092915050565b50600092915050565b6000806119ef8385611fd8565b905060008312158015611a025750838113155b806117895750600083128015611789575083811361155b57600080fd5b600042821115611a3157506000919050565b601154611a3e428461185a565b101592915050565b611a508282611b28565b611a8a611a6b61093e836006546114dc90919063ffffffff16565b6001600160a01b038416600090815260076020526040902054906119e2565b6001600160a01b0390921660009081526007602052604090209190915550565b611ab48282611c1b565b611a8a611acf61093e836006546114dc90919063ffffffff16565b6001600160a01b03841660009081526007602052604090205490611754565b60008184841115611b125760405162461bcd60e51b81526004016108da9190611eb8565b506000611b1f8486612017565b95945050505050565b6001600160a01b038216611b7e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108da565b611b8a60008383611028565b8060036000828254611b9c9190611f81565b90915550506001600160a01b03821660009081526001602052604081208054839290611bc9908490611f81565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361102a60008383611028565b6001600160a01b038216611c7b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108da565b611c8782600083611028565b6001600160a01b03821660009081526001602052604090205481811015611cfb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016108da565b6001600160a01b0383166000908152600160205260408120838303905560038054849290611d2a908490612017565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361102883600084611028565b600060208284031215611d8d578081fd5b813561155b8161209a565b600060208284031215611da9578081fd5b815161155b8161209a565b60008060408385031215611dc6578081fd5b8235611dd18161209a565b915060208301358015158114611de5578182fd5b809150509250929050565b60008060408385031215611e02578182fd5b8235611e0d8161209a565b946020939093013593505050565b60008060408385031215611e2d578182fd5b8235611e388161209a565b91506020830135611de58161209a565b600080600060608486031215611e5c578081fd5b8335611e678161209a565b92506020840135611e778161209a565b929592945050506040919091013590565b600060208284031215611e99578081fd5b5051919050565b600060208284031215611eb1578081fd5b5035919050565b6000602080835283518082850152825b81811015611ee457858101830151858201604001528201611ec8565b81811115611ef55783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600080821280156001600160ff1b0384900385131615611f6257611f62612084565b600160ff1b8390038412811615611f7b57611f7b612084565b50500190565b60008219821115611f9457611f94612084565b500190565b600082611fb457634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611fd357611fd3612084565b500290565b60008083128015600160ff1b850184121615611ff657611ff6612084565b6001600160ff1b038401831381161561201157612011612084565b50500390565b60008282101561202957612029612084565b500390565b600181811c9082168061204257607f821691505b6020821081141561206357634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561207d5761207d612084565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461123857600080fdfea2646970667358221220f6ae04593d528e877d82d058f891693de5a27f4d4b587a222a915daf1e13ea1c64736f6c63430008040033