[ { "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": false, "internalType": "address", "name": "adr", "type": "address" } ], "name": "Authorized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "cap", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "period", "type": "uint256" } ], "name": "AutoBuybackSettingsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToken", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "AutoLiquifyUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" } ], "name": "Buyback", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "gas", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "autoClaim", "type": "bool" } ], "name": "DistributorSettingsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "DividendExemptUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "FeeExemptUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "autoLiquidityReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "NFTFeeReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "devFeeReceiver", "type": "address" } ], "name": "FeeReceiversUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "liquidityFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buybackFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "reflectionFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "NFTFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "devFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "feeDenominator", "type": "uint256" } ], "name": "FeesUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Launch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "MaxwalletExemptUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountToken", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" } ], "name": "SwapBack", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SwapBackSettingsUpdated", "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": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "TxLimitExemptUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TxLimitUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "adr", "type": "address" } ], "name": "Unauthorized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "banned", "type": "bool" } ], "name": "WalletBanStatusUpdated", "type": "event" }, { "inputs": [], "name": "NFTFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "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": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "buybackAVAX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "buybackWEI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "devFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "distributor", "outputs": [ { "internalType": "contract DividendDistributor", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAccumulatedFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAutoBuybackSettings", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "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": "getAutoLiquifySettings", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "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" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSwapBackSettings", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "selling", "type": "bool" } ], "name": "getTotalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setAutoLiquifyEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" }, { "internalType": "bool", "name": "_autoClaim", "type": "bool" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_NFTFeeReceiver", "type": "address" }, { "internalType": "address", "name": "_devFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFee", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFee", "type": "uint256" }, { "internalType": "uint256", "name": "_NFTFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsDividendExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "bool", "name": "banned", "type": "bool" } ], "name": "setWalletBanStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setmaxwalletExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "transfer", "outputs": [], "stateMutability": "nonpayable", "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 payable", "name": "adr", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "unban", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600280546001600160a01b031990811673c7198437980c041c805a1edcba50c1ce5db951181790915560038054821673b31f66aa3c1e785363f0875a1b74e27b85fd66c71790556004805490911661dead1790556d04ee2d6d415b85acef81000000006005556c0c9f2c9cd04674edea400000006006556c3f1bdf10116048a59340000000600755600f805461010060ff19918216600190811761ff0019169190911790925561012c60105560646012556101f4601355601482905560c860155561044d60165561271060175560208054821690556026805460ff60a01b191690556207a12060275569152d02c7e14af68000006028556029805490911690911790556ba18f07d736b90be550000000602a553480156200012457600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601d805490921673e54ca86531e17ef3616d22ca28b0d458b6c891061791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b158015620001b457600080fd5b505afa158015620001c9573d6000803e3d6000fd5b505050506040513d6020811015620001e057600080fd5b5051600354604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200023857600080fd5b505af11580156200024d573d6000803e3d6000fd5b505050506040513d60208110156200026457600080fd5b5051601e80546001600160a01b0319166001600160a01b03928316179055306000908152600960209081526040808320601d8054861685529252918290206000199055549051911690620002b89062000421565b6001600160a01b03909116815260405190819003602001906000f080158015620002e6573d6000803e3d6000fd5b50602680546001600160a01b039283166001600160a01b031991821617909155336000818152600a60209081526040808320805460ff199081166001908117909255600b84528285208054821683179055600d84528285208054821683178155308087528487208054841685179055601e80548b1688528588208054851686179055600480548c1689528689208054861687179055835485168617909355548a168752600c86528487208054841685179055865283862080548316841790555490971684528184208054909716179095556018805485168417905560198054851684179055601a805490941683179093556005548282526008845284822081905584519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a36200042f565b6110c5806200345783390190565b613018806200043f6000396000f3fe6080604052600436106102975760003560e01c806395d89b411161015a578063d7c01032116100c1578063f1f3bca31161007a578063f1f3bca314610a93578063f2fde38b14610abf578063f708a64f14610af2578063f84ba65d14610b2d578063f887ea4014610b68578063fe9fbb8014610b7d5761029e565b8063d7c010321461094a578063dab84ee71461098f578063db8d55f1146109a4578063dd62ed3e146109f3578063df20fd4914610a2e578063f0b37c0414610a605761029e565b8063b9f1455711610113578063b9f145571461086d578063bf56b371146108a0578063bfe10928146108b5578063c15fc5ab146108ca578063ca33e64c14610905578063cb213c121461091a5761029e565b806395d89b41146102e3578063998a6b5f146107a5578063a437df3b146107d7578063a8aa1b31146107ec578063a9059cbb14610801578063b6a5d7de1461083a5761029e565b806356f965d7116101fe57806370a08231116101b757806370a08231146106cd5780637880aadc146107005780637d1db4a51461073557806382247ec01461074a578063893d20e81461075f5780638a4068dd146107905761029e565b806356f965d714610593578063571ac8b0146105dd5780635c85974f146106105780635df45a371461063a578063658d4b7f1461066857806367822dfe146106a35761029e565b80631d54613d116102505780631d54613d1461045b57806323b872dd146104965780632d48e896146104d95780632f54bf6e14610509578063313ce5671461053c57806354200d6f146105675761029e565b8063048c7baf146102a357806306fdde03146102e3578063095ea7b31461036d578063113f49a2146103ba57806318160ddd146103e45780631ba8eee71461040b5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102e1600480360360808110156102c657600080fd5b50803515159060208101359060408101359060600135610bb0565b005b3480156102ef57600080fd5b506102f8610c6d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561033257818101518382015260200161031a565b50505050905090810190601f16801561035f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037957600080fd5b506103a66004803603604081101561039057600080fd5b506001600160a01b038135169060200135610c8f565b604080519115158252519081900360200190f35b3480156103c657600080fd5b506102e1600480360360208110156103dd57600080fd5b5035610cf6565b3480156103f057600080fd5b506103f9610d4a565b60408051918252519081900360200190f35b34801561041757600080fd5b506102e1600480360360e081101561042e57600080fd5b50803515159060208101359060408101359060608101359060808101359060a08101359060c00135610d50565b34801561046757600080fd5b506102e16004803603604081101561047e57600080fd5b506001600160a01b0381351690602001351515610e5c565b3480156104a257600080fd5b506103a6600480360360608110156104b957600080fd5b506001600160a01b03813581169160208101359091169060400135610f08565b3480156104e557600080fd5b506102e1600480360360408110156104fc57600080fd5b5080359060200135610fca565b34801561051557600080fd5b506103a66004803603602081101561052c57600080fd5b50356001600160a01b0316611082565b34801561054857600080fd5b50610551611099565b6040805160ff9092168252519081900360200190f35b34801561057357600080fd5b506102e16004803603602081101561058a57600080fd5b5035151561109e565b34801561059f57600080fd5b506105a8611135565b6040805196151587526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156105e957600080fd5b506103a66004803603602081101561060057600080fd5b50356001600160a01b0316611155565b34801561061c57600080fd5b506102e16004803603602081101561063357600080fd5b5035611163565b34801561064657600080fd5b5061064f611201565b6040805192835260208301919091528051918290030190f35b34801561067457600080fd5b506102e16004803603604081101561068b57600080fd5b506001600160a01b038135169060200135151561120b565b3480156106af57600080fd5b506102e1600480360360208110156106c657600080fd5b50356112b7565b3480156106d957600080fd5b506103f9600480360360208110156106f057600080fd5b50356001600160a01b0316611312565b34801561070c57600080fd5b5061071561132d565b604080519315158452602084019290925282820152519081900360600190f35b34801561074157600080fd5b506103f9611345565b34801561075657600080fd5b506103f961134b565b34801561076b57600080fd5b50610774611351565b604080516001600160a01b039092168252519081900360200190f35b34801561079c57600080fd5b506102e1611360565b3480156107b157600080fd5b506102e1600480360360408110156107c857600080fd5b508035906020013515156113f5565b3480156107e357600080fd5b506107746114ae565b3480156107f857600080fd5b506107746114bd565b34801561080d57600080fd5b506103a66004803603604081101561082457600080fd5b506001600160a01b0381351690602001356114cc565b34801561084657600080fd5b506102e16004803603602081101561085d57600080fd5b50356001600160a01b03166114d9565b34801561087957600080fd5b506102e16004803603602081101561089057600080fd5b50356001600160a01b0316611578565b3480156108ac57600080fd5b506103f96115e1565b3480156108c157600080fd5b506107746115e7565b3480156108d657600080fd5b506102e1600480360360408110156108ed57600080fd5b506001600160a01b03813516906020013515156115f6565b34801561091157600080fd5b50610774611730565b34801561092657600080fd5b5061092f61173f565b60408051921515835260208301919091528051918290030190f35b34801561095657600080fd5b506102e16004803603606081101561096d57600080fd5b506001600160a01b03813581169160208101358216916040909101351661174d565b34801561099b57600080fd5b50610774611817565b3480156109b057600080fd5b506109b9611826565b6040805197151588526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b3480156109ff57600080fd5b506103f960048036036040811015610a1657600080fd5b506001600160a01b038135811691602001351661184a565b348015610a3a57600080fd5b506102e160048036036040811015610a5157600080fd5b50803515159060200135611875565b348015610a6c57600080fd5b506102e160048036036020811015610a8357600080fd5b50356001600160a01b0316611911565b348015610a9f57600080fd5b506103f960048036036020811015610ab657600080fd5b503515156119ac565b348015610acb57600080fd5b506102e160048036036020811015610ae257600080fd5b50356001600160a01b03166119eb565b348015610afe57600080fd5b506102e160048036036040811015610b1557600080fd5b506001600160a01b0381351690602001351515611a9c565b348015610b3957600080fd5b506102e160048036036040811015610b5057600080fd5b506001600160a01b0381351690602001351515611c70565b348015610b7457600080fd5b50610774611d1c565b348015610b8957600080fd5b506103a660048036036020811015610ba057600080fd5b50356001600160a01b0316611d2b565b610bb933611d2b565b610bf8576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6020805485151560ff1990911681178255602185905560006022556023849055602483905543602555604080519182529181018590528082018490526060810183905290517f07e4a4dc3e8013db5de426f27688d245ba84f9f9195eed42e7a94acb0a565b6f9181900360800190a150505050565b604080518082019091526008815267555344544241434b60c01b602082015290565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610cff33611d2b565b610d3e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b610d4781611d49565b50565b60055490565b610d5933611d2b565b610d98576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600f805460ff19168815151790556012859055601384905560148390556015829055610dd082610dca85818989611d96565b90611d96565b6016819055601087905560178290558190610deb9088611d96565b10610df557600080fd5b60408051881515815260208101889052808201879052606081018690526080810185905260a0810184905260c0810183905290517f76d099a416dfc2ebb98aadbbac897c0d02a441d0c4fb2e3a9fdf6414d6dcfea99181900360e00190a150505050505050565b610e6533611d2b565b610ea4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915582519384529083015280517f463f81492419927b6b1aef7271d6d7da08fb28638f175f3f7961b1571911f0409281900390910190a15050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610fb5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610f90918490611df0565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610fc0848484611e87565b90505b9392505050565b610fd333611d2b565b611012576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602654604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050505050565b6000546001600160a01b038281169116145b919050565b601290565b6110a733611d2b565b6110e6576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600f8054821515610100810261ff00199092169190911790915560408051918252517f075af1ef3c1829076b56416deceff9df2103194b5dfbf756f8557478b494f7ff9181900360200190a150565b60205460215460225460235460245460255460ff90951694909192939495565b6000610cf082600019610c8f565b61116c33611d2b565b6111ab576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620186a0600554816111b957fe5b048110156111c657600080fd5b60068190556040805182815290517fa53407ff336a78b145e1a297adce2a5d7a54e6c31d13b4e69e04aad80b07b44b9181900360200190a150565b601b54601c549091565b61121433611d2b565b611253576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915582519384529083015280517f4d5771454588f51370a8a2e7e151354b6de0dc3159b14821b4ad76bc04c28bc79281900390910190a15050565b6112c033611d2b565b6112ff576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b610d4781670de0b6b3a764000002611d49565b6001600160a01b031660009081526008602052604090205490565b600f54601154602a5461010090920460ff1692909190565b60065481565b60075481565b6000546001600160a01b031690565b61136933611d2b565b6113a8576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b33600081815260086020908152604080832080546005805460288054918201909255820190925590548251908152915190949392600080516020612fc3833981519152928290030190a350565b6113fe33611d2b565b61143d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620f424082111561144d57600080fd5b60278290556026805460ff60a01b1916600160a01b8315159081029190911790915560408051848152602081019290925280517f5fdd419a37de0633d9df0f25b1b1f9a77e5794e82e87c24bc9ded94c0990b1769281900390910190a15050565b6019546001600160a01b031681565b601e546001600160a01b031681565b6000610fc3338484611e87565b6114e233611082565b61151c576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260016020818152604092839020805460ff1916909217909155815192835290517fdc84e3a4c83602050e3865df792a4e6800211a79ac60db94e703a820ce8929249281900390910190a150565b61158133611d2b565b6115c0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600e60205260409020805460ff19169055565b601f5481565b6026546001600160a01b031681565b6115ff33611d2b565b61163e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b80156116c65742426312cc0300011161169e576040805162461bcd60e51b815260206004820152601760248201527f55736572207761732070757420696e206120636167652e000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600e60205260409020805460ff191660011790556116e7565b6001600160a01b0382166000908152600e60205260409020805460ff191690555b604080516001600160a01b0384168152821515602082015281517ffc70dcce81b5afebab40f1a9a0fe597f9097cb179cb4508e875b7b166838f88d929181900390910190a15050565b6018546001600160a01b031681565b602954602a5460ff90911691565b61175633611d2b565b611795576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601880546001600160a01b038086166001600160a01b03199283168117909355601980548683169084168117909155601a805492861692909316821790925560408051938452602084019290925282820152517f12b4cfbea7a8dac3b859f7b88ff33db6082e4c6bb29a58b3d8edbd58ed7420289181900360600190a1505050565b601a546001600160a01b031681565b600f5460125460135460145460155460105460175460ff9096169590919293949596565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b61187e33611d2b565b6118bd576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6029805460ff1916831515908117909155602a829055604080519182526020820183905280517f30e0f7c488b6c70123097f13cf387e140b0e0b8c9d9e3473e502f35b035d377c9281900390910190a15050565b61191a33611082565b611954576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260016020908152604091829020805460ff19169055815192835290517f8e4a23d6a5d81f013eca4bc92aeb9214ccafcaebd1f097c350c922d6e19122d59281900390910190a150565b600043601f54600101106119cf576017546119c89060016122a4565b9050611094565b816119dc57601654610cf0565b601054601654610cf091611d96565b6119f433611082565b611a2e576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b611aa533611d2b565b611ae4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382163014801590611b0b5750601e546001600160a01b03838116911614155b611b1457600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611bb15760265460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b158015611b9457600080fd5b505af1158015611ba8573d6000803e3d6000fd5b50505050611c28565b6026546001600160a01b03838116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611c0f57600080fd5b505af1158015611c23573d6000803e3d6000fd5b505050505b604080516001600160a01b0384168152821515602082015281517e8548b19959a911110b36c03f6148fa56fbcc2ce2553abf33112aa00bbdfd6a929181900390910190a15050565b611c7933611d2b565b611cb8576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915582519384529083015280517fe1fc1cdd7520f99d4b4715966557867ae295b281f90d30b3631bae054b7f196c9281900390910190a15050565b601d546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b600454611d609082906001600160a01b03166122e6565b6040805182815290517fd33075670012f1689703c1e45a2b858dbe814a49e78c19fa053e181156e480699181900360200190a150565b600082820183811015610fc3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115611e7f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e44578181015183820152602001611e2c565b50505050905090810190601f168015611e715780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152600e602052604081205460ff1615611ee8576040805162461bcd60e51b815260206004820152601060248201526f14d95b99195c881a5cc818985b9b995960821b604482015290519081900360640190fd5b6001600160a01b0383166000908152600e602052604090205460ff1615611f4c576040805162461bcd60e51b8152602060048201526013602482015272149958da5c1a595b9d081a5cc818985b9b9959606a1b604482015290519081900360640190fd5b602b5460ff1615611f6957611f6284848461243d565b9050610fc3565b611f728461250c565b611f7c848361256c565b611f8683836125de565b611f8e612668565b15611f9b57611f9b6126b9565b611fa3612c88565b15611fb057611fb0612cda565b611fb8612d21565b158015611fd25750601e546001600160a01b038481169116145b15612001576001600160a01b038416600090815260086020526040902054611ff957600080fd5b612001612d29565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054612053918490611df0565b6001600160a01b03851660009081526008602052604081209190915561207885612d6b565b612082578261208d565b61208d858585612d9b565b6001600160a01b0385166000908152600860205260409020549091506120b39082611d96565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600c909152205460ff16612157576026546001600160a01b03868116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561214457600080fd5b505af1925050508015612155575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166121e8576026546001600160a01b03858116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156121d557600080fd5b505af19250505080156121e6575060015b505b602654600160a01b900460ff161561226057602654602754604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b15801561224d57600080fd5b505af192505050801561225e575060015b505b836001600160a01b0316856001600160a01b0316600080516020612fc3833981519152836040518082815260200191505060405180910390a3506001949350505050565b6000610fc383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df0565b602b805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b03169183915060009061232e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061235c57fe5b6001600160a01b03928316602091820292909201810191909152601d5460405163c57559dd60e01b815260006004820181815287861660448401524260648401819052608060248501908152885160848601528851959097169663c57559dd968b9694958a958c95939260a49092019187810191028083838b5b838110156123ee5781810151838201526020016123d6565b50505050905001955050505050506000604051808303818588803b15801561241557600080fd5b505af1158015612429573d6000803e3d6000fd5b5050602b805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461248e918490611df0565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546124bd9083611d96565b6001600160a01b038085166000818152600860209081526040918290209490945580518681529051919392881692600080516020612fc383398151915292918290030190a35060019392505050565b612514612d21565b80612523575061252381611d2b565b610d47576040805162461bcd60e51b815260206004820152601560248201527428393296a630bab731b410283937ba32b1ba34b7b760591b604482015290519081900360640190fd5b6006548111158061259557506001600160a01b0382166000908152600b602052604090205460ff165b6125da576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b5050565b6007546001600160a01b038316600090815260086020526040902054820111158061262157506001600160a01b0382166000908152600d602052604090205460ff165b6125da576040805162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015290519081900360640190fd5b601e546000906001600160a01b031633148015906126895750602b5460ff16155b8015612697575060295460ff165b80156126b45750602a543060009081526008602052604090205410155b905090565b602b805460ff19166001179055602a54601154108015906126e15750600f54610100900460ff165b1561293e57602a546011546126f5916122a4565b601155602a54600090612709906002612ea1565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061273d57fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061276857fe5b6001600160a01b03928316602091820292909201810191909152601d54604051633b158ab160e11b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763762b1562978c9795968c9690939260c49091019187820191028083838b5b838110156128025781810151838201526020016127ea565b505050509050019650505050505050600060405180830381600087803b15801561282b57600080fd5b505af115801561283f573d6000803e3d6000fd5b50505050600061285882476122a490919063ffffffff16565b601d5460185460408051637c8d9fb960e11b81523060048201526024810189905260006044820181905260648201526001600160a01b0392831660848201524260a4820152905193945091169163f91b3f7291849160c480830192606092919082900301818588803b1580156128cd57600080fd5b505af11580156128e1573d6000803e3d6000fd5b50505050506040513d60608110156128f857600080fd5b5050604080518281526020810186905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a150505050612c7c565b602a54604080516002808252606082018352600092602083019080368337019050509050308160008151811061297057fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061299b57fe5b6001600160a01b03928316602091820292909201810191909152601d54604051633b158ab160e11b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763762b1562978c9795968c9690939260c49091019187820191028083838b5b83811015612a35578181015183820152602001612a1d565b505050509050019650505050505050600060405180830381600087803b158015612a5e57600080fd5b505af1158015612a72573d6000803e3d6000fd5b505050506000612a8b82476122a490919063ffffffff16565b90506000612ab0601654612aaa60135485612ee390919063ffffffff16565b90612ea1565b90506000612acf601654612aaa60145486612ee390919063ffffffff16565b90506000612aee601654612aaa60155487612ee390919063ffffffff16565b9050602660009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612b4057600080fd5b505af193505050508015612b52575060015b506019546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114612ba5576040519150601f19603f3d011682016040523d82523d6000602084013e612baa565b606091505b505090508015612bc557601b54612bc19084611d96565b601b555b601a546040516001600160a01b03909116906175309084906000818181858888f193505050503d8060008114612c17576040519150601f19603f3d011682016040523d82523d6000602084013e612c1c565b606091505b50909150508015612c3857601c54612c349083611d96565b601c555b604080518981526020810187905281517f05ab84b321981d7d9a13402e494604c50821bcb5f2400d128fa06cd6451113d4929181900390910190a150505050505050505b602b805460ff19169055565b601e546000906001600160a01b03163314801590612ca95750602b5460ff16155b8015612cb7575060205460ff165b8015612cc95750436024546025540111155b80156126b457505060235447101590565b602354600454612cf391906001600160a01b03166122e6565b43602555602354602254612d0691611d96565b60228190556021541015612d1f576020805460ff191690555b565b601f54151590565b43601f556026805460ff60a01b1916600160a01b1790556040517f02ac8168caf2f254b394bd39e19417c5c28124ab89c9bc2d44921b19808e266990600090a1565b600f5460009060ff168015610cf05750506001600160a01b03166000908152600a602052604090205460ff161590565b601754601e546000918291612dcd9190612aaa90612dc6906001600160a01b038981169116146119ac565b8690612ee3565b30600090815260086020526040902054909150612dea9082611d96565b30600081815260086020908152604091829020939093558051848152905191926001600160a01b03891692600080516020612fc38339815191529281900390910190a3601e546001600160a01b038581169116148015612e515750600f54610100900460ff165b15612e8e57612e8a612e81612e73601054601654611d9690919063ffffffff16565b601054612aaa908590612ee3565b60115490611d96565b6011555b612e9883826122a4565b95945050505050565b6000610fc383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f3c565b600082612ef257506000610cf0565b82820282848281612eff57fe5b0414610fc35760405162461bcd60e51b8152600401808060200182810382526021815260200180612fa26021913960400191505060405180910390fd5b60008183612f8b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e44578181015183820152602001611e2c565b506000838581612f9757fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220182f1272a2820f03c5a946ab7d39a9295ded0eea2fa4d973bf17dd39a6d5c22f64736f6c634300070600336080604052600180546001600160a01b031990811673c7198437980c041c805a1edcba50c1ce5db95118179091556002805490911673b31f66aa3c1e785363f0875a1b74e27b85fd66c71790556ec097ce7bc90715b34b9f1000000000600c55610384600d55670de0b6b3a7640000600e5534801561007d57600080fd5b506040516110c53803806110c5833981810160405260208110156100a057600080fd5b50516001600160a01b0381166100ca5773e54ca86531e17ef3616d22ca28b0d458b6c891066100cc565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610fbf806101066000396000f3fe6080604052600436106100f35760003560e01c8063ce7c2ac21161008a578063efca2eed11610059578063efca2eed146102f6578063f0fc6bca1461030b578063ffb2c47914610320578063ffd49c841461034a576100f3565b8063ce7c2ac214610255578063d0e30db0146102a6578063e2d2e219146102ae578063edf35253146102c3576100f3565b80633a98ef39116100c65780633a98ef39146101bd5780634fab0ae8146101d25780635e6056bb146101e7578063997664d714610240576100f3565b806311ce023d146100f857806314b6ca961461011f57806328fd31981461015a5780632d48e8961461018d575b600080fd5b34801561010457600080fd5b5061010d61035f565b60408051918252519081900360200190f35b34801561012b57600080fd5b506101586004803603604081101561014257600080fd5b506001600160a01b038135169060200135610365565b005b34801561016657600080fd5b5061010d6004803603602081101561017d57600080fd5b50356001600160a01b03166104a8565b34801561019957600080fd5b50610158600480360360408110156101b057600080fd5b5080359060200135610534565b3480156101c957600080fd5b5061010d610594565b3480156101de57600080fd5b5061010d61059a565b3480156101f357600080fd5b5061021a6004803603602081101561020a57600080fd5b50356001600160a01b03166105a0565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561024c57600080fd5b5061010d6105cd565b34801561026157600080fd5b506102886004803603602081101561027857600080fd5b50356001600160a01b03166105d3565b60408051938452602084019290925282820152519081900360600190f35b6101586105f4565b3480156102ba57600080fd5b5061010d6108aa565b3480156102cf57600080fd5b50610158600480360360208110156102e657600080fd5b50356001600160a01b03166108b0565b34801561030257600080fd5b5061010d6108bc565b34801561031757600080fd5b506101586108c2565b34801561032c57600080fd5b506101586004803603602081101561034357600080fd5b50356108cd565b34801561035657600080fd5b5061010d6109fb565b600c5481565b6000546001600160a01b0316331461037c57600080fd5b61038582610a01565b6000811180156103ab57506001600160a01b038216600090815260076020526040902054155b156103be576103b982610b85565b6103f1565b801580156103e357506001600160a01b03821660009081526007602052604090205415155b156103f1576103f182610be6565b6001600160a01b03821660009081526007602052604090205460085461042291839161041c91610cd3565b90610d1e565b6008556001600160a01b038216600090815260076020526040902081905561044981610d78565b6001600160a01b03831660008181526007602090815260409182902060010193909355805191825291810183905281517f465bc1e774b3c331b04932a22f9781dbb864defe943d70548ba9b8af6c528b5c929181900390910190a15050565b6001600160a01b0381166000908152600760205260408120546104cd5750600061052f565b6001600160a01b0382166000908152600760205260408120546104ef90610d78565b6001600160a01b0384166000908152600760205260409020600101549091508082116105205760009250505061052f565b61052a8282610cd3565b925050505b919050565b6000546001600160a01b0316331461054b57600080fd5b600d829055600e819055604080518381526020810183905281517f4bee245ad45dacfa3feb4cc8a61ace735c47b485fb8a399ce9e3f6c87aade418929181900390910190a15050565b60085481565b600e5481565b600854600a546001600160a01b038316600090815260076020526040902080546002909101549193509193565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d602081101561066957600080fd5b50516040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b0316918391506000906106ab57fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106106d557fe5b6001600160a01b0392831660209182029290920181019190915260035460405163c57559dd60e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763c57559dd97349795968b969495939460a49091019187810191028083838b5b8381101561076757818101518382015260200161074f565b50505050905001955050505050506000604051808303818588803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061082d94508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156107fb57600080fd5b505afa15801561080f573d6000803e3d6000fd5b505050506040513d602081101561082557600080fd5b505190610cd3565b60095490915061083d9082610d1e565b600955600854600c546108679161085e916108589085610d95565b90610dee565b600b5490610d1e565b600b55604080513481526020810183905281517fa3af609bf46297028ce551832669030f9effef2b02606d02cbbcc40fe6b47c55929181900390910190a1505050565b600b5481565b6108b981610a01565b50565b600a5481565b6108cb33610a01565b565b6000546001600160a01b031633146108e457600080fd5b600454806108f257506108b9565b6000805a90506000805b858410801561090a57508482105b156109b05784600f541061091e576000600f555b61094a6004600f548154811061093057fe5b6000918252602090912001546001600160a01b0316610e30565b1561097f5761097b6004600f548154811061096157fe5b6000918252602090912001546001600160a01b0316610a01565b6001015b61099461098d5a8590610cd3565b8590610d1e565b93505a600f8054600190810190915590935091909101906108fc565b600f54604080518481526020810184905280820192909252517f96b82f6a439ac2d3939f479dd110e1915927d68eac70cf39a47cf294d53234ee9181900360600190a1505050505050565b600d5481565b6001600160a01b038116600090815260076020526040902054610a23576108b9565b6000610a2e826104a8565b90508015610b8157600a54610a439082610d1e565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610a9c57600080fd5b505af1158015610ab0573d6000803e3d6000fd5b505050506040513d6020811015610ac657600080fd5b50506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610afb9082610d1e565b6001600160a01b0383166000908152600760205260409020600281019190915554610b2590610d78565b6001600160a01b03831660008181526007602090815260409182902060010193909355805191825291810183905281517f33ad5d6b2a46b5457e0d36286a2686a0390b0821dedbbdf8dcdcda64f4782c68929181900390910190a15b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b600480546000198101908110610bf857fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610c3057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610c7e57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610cae57fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610d1583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e6c565b90505b92915050565b600082820183811015610d15576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610d18600c54610858600b5485610d9590919063ffffffff16565b600082610da457506000610d18565b82820282848281610db157fe5b0414610d155760405162461bcd60e51b8152600401808060200182810382526021815260200180610f696021913960400191505060405180910390fd5b6000610d1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f03565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610d185750600e54610e65836104a8565b1192915050565b60008184841115610efb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ec0578181015183820152602001610ea8565b50505050905090810190601f168015610eed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610f525760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ec0578181015183820152602001610ea8565b506000838581610f5e57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204cd9109d66aeb65c01870a48e6af573aea0e602063e7d98a46e02021587fa96764736f6c63430007060033