[ { "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": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newRate", "type": "uint256" } ], "name": "FeesRateUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newRate", "type": "uint256" } ], "name": "MaxTransferAmountRateUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "MinAmountToLiquifyUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOperator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOperator", "type": "address" } ], "name": "OperatorTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "router", "type": "address" }, { "indexed": true, "internalType": "address", "name": "pair", "type": "address" } ], "name": "SnowSwapRouterUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "SwapAndLiquifyEnabledUpdated", "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": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newRate", "type": "uint256" } ], "name": "TransferTaxRateUpdated", "type": "event" }, { "inputs": [], "name": "DELEGATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAXIMUM_TRANSFER_TAX_RATE", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "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": [], "name": "antiBot", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint32", "name": "", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint256", "name": "votes", "type": "uint256" } ], "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": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feesRate", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getCurrentVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPriorVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "maxTransferAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransferAmountRate", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minAmountToLiquify", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "operator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "snowSwapPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "snowSwapRouter", "outputs": [ { "internalType": "contract IPangolinRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "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": "newFeesAddress", "type": "address" } ], "name": "transferFeesAddress", "outputs": [], "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": "newOperator", "type": "address" } ], "name": "transferOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferTaxRate", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_antiBot", "type": "uint256" } ], "name": "updateAntiBot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_feesRate", "type": "uint16" } ], "name": "updateFeesRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_maxTransferAmountRate", "type": "uint16" } ], "name": "updateMaxTransferAmountRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minAmount", "type": "uint256" } ], "name": "updateMinAmountToLiquify", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" } ], "name": "updateSnowSwapRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "updateSwapAndLiquifyEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_transferTaxRate", "type": "uint16" } ], "name": "updateTransferTaxRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526001600755600880546101f461ffff199091161763ffff00001916623200001761ffff60201b191664c8000000001760ff60301b19169055670de0b6b3a76400006009553480156200005557600080fd5b506040518060400160405280600981526020016829b737bbaa37b5b2b760b91b81525060405180604001604052806004815260200163534e4f5760e01b8152506000620000a7620001b360201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350815162000106906004906020850190620001b7565b5080516200011c906005906020840190620001b7565b50506006805460ff191660121790555062000136620001b3565b600c80546001600160a01b0319166001600160a01b039290921691909117905562000160620001b3565b600d80546001600160a01b0319166001600160a01b03928316179055600c546040519116906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a362000253565b3390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001fa57805160ff19168380011785556200022a565b828001600101855582156200022a579182015b828111156200022a5782518255916020019190600101906200020d565b50620002389291506200023c565b5090565b5b808211156200023857600081556001016200023d565b61336b80620002636000396000f3fe6080604052600436106102975760003560e01c80637c372b2b1161015a578063a9e75723116100c1578063d5abeb011161007a578063d5abeb0114610a08578063d824835814610a1d578063dd62ed3e14610a32578063e7a324dc14610a6d578063f1127ed814610a82578063f2fde38b14610ae15761029e565b8063a9e757231461090f578063b4b5ea5714610924578063b65d08b014610957578063bf3806c31461096c578063c3cda5201461099f578063d2acd085146109f35761029e565b80639e08d1a3116101135780639e08d1a3146107f35780639f9a4e7f1461081d578063a0712d6814610849578063a392e67414610873578063a457c2d71461089d578063a9059cbb146108d65761029e565b80637c372b2b1461073e5780637dfcbe341461076c5780637ecebe0014610781578063893d20e8146107b45780638da5cb5b146107c957806395d89b41146107de5761029e565b80633ff8bf2e116101fe5780636a141e2c116101b75780636a141e2c146106105780636fcfff451461063e57806370a082311461068a578063715018a6146106bd578063782d6fe1146106d25780637859552b1461070b5761029e565b80633ff8bf2e1461053257806340c10f19146105475780634a74bb0214610580578063570ca73514610595578063587cde1e146105aa5780635c19a95c146105dd5761029e565b806320606b701161025057806320606b701461041357806323b872dd1461042857806329605e771461046b578063313ce567146104a0578063376c2391146104cb57806339509351146104f95761029e565b806306fdde03146102a3578063095ea7b31461032d57806309dc38351461037a578063127043c3146103ab57806318160ddd146103d75780631ad9339a146103fe5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610b14565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102f25781810151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033957600080fd5b506103666004803603604081101561035057600080fd5b506001600160a01b038135169060200135610baa565b604080519115158252519081900360200190f35b34801561038657600080fd5b5061038f610bc8565b604080516001600160a01b039092168252519081900360200190f35b3480156103b757600080fd5b506103c0610bd7565b6040805161ffff9092168252519081900360200190f35b3480156103e357600080fd5b506103ec610be7565b60408051918252519081900360200190f35b34801561040a57600080fd5b506103c0610bed565b34801561041f57600080fd5b506103ec610bf3565b34801561043457600080fd5b506103666004803603606081101561044b57600080fd5b506001600160a01b03813581169160208101359091169060400135610c17565b34801561047757600080fd5b5061049e6004803603602081101561048e57600080fd5b50356001600160a01b0316610c9e565b005b3480156104ac57600080fd5b506104b5610d88565b6040805160ff9092168252519081900360200190f35b3480156104d757600080fd5b5061049e600480360360208110156104ee57600080fd5b503561ffff16610d91565b34801561050557600080fd5b506103666004803603604081101561051c57600080fd5b506001600160a01b038135169060200135610e82565b34801561053e57600080fd5b506103c0610ed0565b34801561055357600080fd5b5061049e6004803603604081101561056a57600080fd5b506001600160a01b038135169060200135610ee2565b34801561058c57600080fd5b50610366610f77565b3480156105a157600080fd5b5061038f610f87565b3480156105b657600080fd5b5061038f600480360360208110156105cd57600080fd5b50356001600160a01b0316610f96565b3480156105e957600080fd5b5061049e6004803603602081101561060057600080fd5b50356001600160a01b0316610fb4565b34801561061c57600080fd5b5061049e6004803603602081101561063357600080fd5b503561ffff16610fc1565b34801561064a57600080fd5b506106716004803603602081101561066157600080fd5b50356001600160a01b0316611103565b6040805163ffffffff9092168252519081900360200190f35b34801561069657600080fd5b506103ec600480360360208110156106ad57600080fd5b50356001600160a01b031661111b565b3480156106c957600080fd5b5061049e611136565b3480156106de57600080fd5b506103ec600480360360408110156106f557600080fd5b506001600160a01b0381351690602001356111e2565b34801561071757600080fd5b5061049e6004803603602081101561072e57600080fd5b50356001600160a01b03166113ea565b34801561074a57600080fd5b5061049e6004803603602081101561076157600080fd5b503561ffff1661149a565b34801561077857600080fd5b506103ec611591565b34801561078d57600080fd5b506103ec600480360360208110156107a457600080fd5b50356001600160a01b0316611597565b3480156107c057600080fd5b5061038f6115a9565b3480156107d557600080fd5b5061038f6115b8565b3480156107ea57600080fd5b506102b86115c7565b3480156107ff57600080fd5b5061049e6004803603602081101561081657600080fd5b5035611628565b34801561082957600080fd5b5061049e6004803603602081101561084057600080fd5b50351515611676565b34801561085557600080fd5b506103666004803603602081101561086c57600080fd5b5035611718565b34801561087f57600080fd5b5061049e6004803603602081101561089657600080fd5b5035611795565b3480156108a957600080fd5b50610366600480360360408110156108c057600080fd5b506001600160a01b038135169060200135611821565b3480156108e257600080fd5b50610366600480360360408110156108f957600080fd5b506001600160a01b038135169060200135611889565b34801561091b57600080fd5b506103ec61189d565b34801561093057600080fd5b506103ec6004803603602081101561094757600080fd5b50356001600160a01b03166118cf565b34801561096357600080fd5b506103c0611933565b34801561097857600080fd5b5061049e6004803603602081101561098f57600080fd5b50356001600160a01b031661193d565b3480156109ab57600080fd5b5061049e600480360360c08110156109c257600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135611bbb565b3480156109ff57600080fd5b5061038f611e2e565b348015610a1457600080fd5b506103ec611e3d565b348015610a2957600080fd5b506103ec611e4b565b348015610a3e57600080fd5b506103ec60048036036040811015610a5557600080fd5b506001600160a01b0381358116916020013516611e51565b348015610a7957600080fd5b506103ec611e7c565b348015610a8e57600080fd5b50610ac160048036036040811015610aa557600080fd5b5080356001600160a01b0316906020013563ffffffff16611ea0565b6040805163ffffffff909316835260208301919091528051918290030190f35b348015610aed57600080fd5b5061049e60048036036020811015610b0457600080fd5b50356001600160a01b0316611ecd565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ba05780601f10610b7557610100808354040283529160200191610ba0565b820191906000526020600020905b815481529060010190602001808311610b8357829003601f168201915b5050505050905090565b6000610bbe610bb7611fcf565b8484611fd3565b5060015b92915050565b600b546001600160a01b031681565b60085462010000900461ffff1681565b60035490565b6103e881565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000610c248484846120bf565b610c9484610c30611fcf565b610c8f85604051806060016040528060288152602001613052602891396001600160a01b038a16600090815260026020526040812090610c6e611fcf565b6001600160a01b0316815260208101919091526040016000205491906122e2565b611fd3565b5060019392505050565b600c546001600160a01b03163314610ce75760405162461bcd60e51b81526004018080602001828103825260248152602001806131a36024913960400191505060405180910390fd5b6001600160a01b038116610d2c5760405162461bcd60e51b81526004018080602001828103825260388152602001806132356038913960400191505060405180910390fd5b600c546040516001600160a01b038084169216907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed90600090a3600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60065460ff1690565b600c546001600160a01b03163314610dda5760405162461bcd60e51b81526004018080602001828103825260248152602001806131a36024913960400191505060405180910390fd5b600754610e26576103e861ffff82161115610e265760405162461bcd60e51b81526004018080602001828103825260508152602001806130026050913960600191505060405180910390fd5b6008546040805161ffff92831681529183166020830152805133927fe9d5c8ee2a65d4fb859c680669d8f902172d53e3f15f9f11108a31bbada4b70b92908290030190a26008805461ffff191661ffff92909216919091179055565b6000610bbe610e8f611fcf565b84610c8f8560026000610ea0611fcf565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612379565b600854640100000000900461ffff1681565b610eea611fcf565b6001600160a01b0316610efb6115b8565b6001600160a01b031614610f44576040805162461bcd60e51b81526020600482018190526024820152600080516020613183833981519152604482015290519081900360640190fd5b610f4e82826123d3565b6001600160a01b038083166000908152600e6020526040812054610f73921683612516565b5050565b600854600160301b900460ff1681565b600c546001600160a01b031690565b6001600160a01b039081166000908152600e60205260409020541690565b610fbe3382612653565b50565b600c546001600160a01b0316331461100a5760405162461bcd60e51b81526004018080602001828103825260248152602001806131a36024913960400191505060405180910390fd5b6127108161ffff16111561104f5760405162461bcd60e51b815260040180806020018281038252605d81526020018061309c605d913960600191505060405180910390fd5b60648161ffff1610156110935760405162461bcd60e51b8152600401808060200182810382526059815260200180612f1e6059913960600191505060405180910390fd5b6008546040805161ffff640100000000909304831681529183166020830152805133927fb62a50fc861a770636e85357becb3b82a32e911106609d4985871eaf29011e0892908290030190a26008805461ffff9092166401000000000265ffff0000000019909216919091179055565b60106020526000908152604090205463ffffffff1681565b6001600160a01b031660009081526001602052604090205490565b61113e611fcf565b6001600160a01b031661114f6115b8565b6001600160a01b031614611198576040805162461bcd60e51b81526020600482018190526024820152600080516020613183833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60004382106112225760405162461bcd60e51b815260040180806020018281038252602781526020018061326d6027913960400191505060405180910390fd5b6001600160a01b03831660009081526010602052604090205463ffffffff1680611250576000915050610bc2565b6001600160a01b0384166000908152600f6020908152604080832063ffffffff6000198601811685529252909120541683106112bf576001600160a01b0384166000908152600f602090815260408083206000199490940163ffffffff16835292905220600101549050610bc2565b6001600160a01b0384166000908152600f6020908152604080832083805290915290205463ffffffff168310156112fa576000915050610bc2565b600060001982015b8163ffffffff168163ffffffff1611156113b357600282820363ffffffff1604810361132c612e97565b506001600160a01b0387166000908152600f6020908152604080832063ffffffff80861685529083529281902081518083019092528054909316808252600190930154918101919091529087141561138e57602001519450610bc29350505050565b805163ffffffff168711156113a5578193506113ac565b6001820392505b5050611302565b506001600160a01b0385166000908152600f6020908152604080832063ffffffff9094168352929052206001015491505092915050565b600c546001600160a01b031633146114335760405162461bcd60e51b81526004018080602001828103825260248152602001806131a36024913960400191505060405180910390fd5b6001600160a01b0381166114785760405162461bcd60e51b815260040180806020018281038252603f815260200180613294603f913960400191505060405180910390fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600c546001600160a01b031633146114e35760405162461bcd60e51b81526004018080602001828103825260248152602001806131a36024913960400191505060405180910390fd5b60648161ffff1611156115275760405162461bcd60e51b81526004018080602001828103825260418152602001806132f56041913960600191505060405180910390fd5b6008546040805161ffff62010000909304831681529183166020830152805133927f02d12de7645f14eb30d4253d703245791ff2c12ec6a17b9b2c490a94df20ba8692908290030190a26008805461ffff909216620100000263ffff000019909216919091179055565b60075481565b60116020526000908152604090205481565b60006115b36115b8565b905090565b6000546001600160a01b031690565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ba05780601f10610b7557610100808354040283529160200191610ba0565b600c546001600160a01b031633146116715760405162461bcd60e51b81526004018080602001828103825260248152602001806131a36024913960400191505060405180910390fd5b600755565b600c546001600160a01b031633146116bf5760405162461bcd60e51b81526004018080602001828103825260248152602001806131a36024913960400191505060405180910390fd5b604080518215158152905133917f3ca65588b29182880283bc8778fea5f01b351e01d874839a39a99e1c281a2113919081900360200190a260088054911515600160301b0266ff00000000000019909216919091179055565b6000611722611fcf565b6001600160a01b03166117336115b8565b6001600160a01b03161461177c576040805162461bcd60e51b81526020600482018190526024820152600080516020613183833981519152604482015290519081900360640190fd5b61178d611787611fcf565b836123d3565b506001919050565b600c546001600160a01b031633146117de5760405162461bcd60e51b81526004018080602001828103825260248152602001806131a36024913960400191505060405180910390fd5b6009546040805191825260208201839052805133927f54c7a13ff01698e4ed3550a23216585f8472c7b1515a932eac98c9a6d48990c592908290030190a2600955565b6000610bbe61182e611fcf565b84610c8f856040518060600160405280602581526020016132106025913960026000611858611fcf565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906122e2565b6000610bbe611896611fcf565b84846120bf565b6008546000906115b390612710906118c990640100000000900461ffff166118c3610be7565b906126e8565b90612741565b6001600160a01b03811660009081526010602052604081205463ffffffff16806118fa57600061192c565b6001600160a01b0383166000908152600f6020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b60085461ffff1681565b611945611fcf565b6001600160a01b03166119566115b8565b6001600160a01b03161461199f576040805162461bcd60e51b81526020600482018190526024820152600080516020613183833981519152604482015290519081900360640190fd5b600a80546001600160a01b0319166001600160a01b0383811691909117918290556040805163c45a015560e01b81529051929091169163c45a015591600480820192602092909190829003018186803b1580156119fb57600080fd5b505afa158015611a0f573d6000803e3d6000fd5b505050506040513d6020811015611a2557600080fd5b5051600a54604080516339d94ae160e11b815290516001600160a01b039384169363e6a439059330939116916373b295c291600480820192602092909190829003018186803b158015611a7757600080fd5b505afa158015611a8b573d6000803e3d6000fd5b505050506040513d6020811015611aa157600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152516044808301926020929190829003018186803b158015611af157600080fd5b505afa158015611b05573d6000803e3d6000fd5b505050506040513d6020811015611b1b57600080fd5b5051600b80546001600160a01b0319166001600160a01b03928316179081905516611b775760405162461bcd60e51b8152600401808060200182810382526031815260200180612fd16031913960400191505060405180910390fd5b600b54600a546040516001600160a01b03928316929091169033907fe8a97e9098b2b0a00e8aed4b6f7dd307e1e670050db0b04942eb32662568431390600090a450565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866611be6610b14565b80519060200120611bf56127a8565b60408051602080820195909552808201939093526060830191909152306080808401919091528151808403909101815260a0830182528051908401207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c08401526001600160a01b038b1660e084015261010083018a90526101208084018a9052825180850390910181526101408401835280519085012061190160f01b6101608501526101628401829052610182808501829052835180860390910181526101a285018085528151918701919091206000918290526101c2860180865281905260ff8b166101e287015261020286018a90526102228601899052935192965090949293909260019261024280840193601f198301929081900390910190855afa158015611d28573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d7a5760405162461bcd60e51b815260040180806020018281038252602681526020018061313c6026913960400191505060405180910390fd5b6001600160a01b03811660009081526011602052604090208054600181019091558914611dd85760405162461bcd60e51b815260040180806020018281038252602281526020018061307a6022913960400191505060405180910390fd5b87421115611e175760405162461bcd60e51b8152600401808060200182810382526026815260200180612eaf6026913960400191505060405180910390fd5b611e21818b612653565b505050505b505050505050565b600a546001600160a01b031681565b6910f0cf064dd59200000090565b60095481565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600f6020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b611ed5611fcf565b6001600160a01b0316611ee66115b8565b6001600160a01b031614611f2f576040805162461bcd60e51b81526020600482018190526024820152600080516020613183833981519152604482015290519081900360640190fd5b6001600160a01b038116611f745760405162461bcd60e51b8152600401808060200182810382526026815260200180612f776026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b0383166120185760405162461bcd60e51b8152600401808060200182810382526024815260200180612efa6024913960400191505060405180910390fd5b6001600160a01b03821661205d5760405162461bcd60e51b81526004018080602001828103825260228152602001806132d36022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600854600160301b900460ff16151560011480156120e75750600b54600160a01b900460ff16155b80156120fd5750600a546001600160a01b031615155b80156121135750600b546001600160a01b031615155b801561212d5750600b546001600160a01b03848116911614155b8015612152575061213c6115b8565b6001600160a01b0316836001600160a01b031614155b1561215f5761215f6127ac565b60085461ffff16158061218a57506121756115b8565b6001600160a01b0316836001600160a01b0316145b806121ad57506121986115b8565b6001600160a01b0316826001600160a01b0316145b156121c2576121bd8383836128b2565b6122dd565b6008546000906121df90612710906118c990859061ffff166126e8565b600854909150600090612204906064906118c990859062010000900461ffff166126e8565b905060006122128383612a04565b905080820183146122545760405162461bcd60e51b815260040180806020018281038252602281526020018061311a6022913960400191505060405180910390fd5b60006122608585612a04565b905083810185146122a25760405162461bcd60e51b81526004018080602001828103825260218152602001806130f96021913960400191505060405180910390fd5b600d546122ba9088906001600160a01b0316856128b2565b6122cc876122c66115b8565b846128b2565b6122d78787836128b2565b93505050505b505050565b600081848411156123715760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561233657818101518382015260200161231e565b50505050905090810190601f1680156123635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561192c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b03821661242e576040805162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b612436611e3d565b6003546124439083612379565b111561248b576040805162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b604482015290519081900360640190fd5b6003546124989082612379565b6003556001600160a01b0382166000908152600160205260409020546124be9082612379565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b816001600160a01b0316836001600160a01b0316141580156125385750600081115b156122dd576001600160a01b038316156125ca576001600160a01b03831660009081526010602052604081205463ffffffff1690816125785760006125aa565b6001600160a01b0385166000908152600f6020908152604080832063ffffffff60001987011684529091529020600101545b905060006125b88285612a04565b90506125c686848484612a61565b5050505b6001600160a01b038216156122dd576001600160a01b03821660009081526010602052604081205463ffffffff169081612605576000612637565b6001600160a01b0384166000908152600f6020908152604080832063ffffffff60001987011684529091529020600101545b905060006126458285612379565b9050611e2685848484612a61565b6001600160a01b038083166000908152600e60205260408120549091169061267a8461111b565b6001600160a01b038581166000818152600e602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46126e2828483612516565b50505050565b6000826126f757506000610bc2565b8282028284828161270457fe5b041461192c5760405162461bcd60e51b81526004018080602001828103825260218152602001806131626021913960400191505060405180910390fd5b6000808211612797576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816127a057fe5b049392505050565b4690565b600b805460ff60a01b1916600160a01b1790556008805461ffff19811690915561ffff1660006127db3061111b565b905060006127e761189d565b90508082116127f657816127f8565b805b9150600954821061288b576009546000612813826002612741565b905060006128218383612a04565b90504761282d83612bc6565b60006128394783612a04565b90506128458382612d6c565b604080518581526020810183905280820185905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a150505050505b50506008805461ffff191661ffff92909216919091179055600b805460ff60a01b19169055565b6001600160a01b0383166128f75760405162461bcd60e51b8152600401808060200182810382526025815260200180612ed56025913960400191505060405180910390fd5b6001600160a01b03821661293c5760405162461bcd60e51b81526004018080602001828103825260238152602001806131ed6023913960400191505060405180910390fd5b612979816040518060600160405280602681526020016131c7602691396001600160a01b03861660009081526001602052604090205491906122e2565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546129a89082612379565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115612a5b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000612a8543604051806060016040528060348152602001612f9d60349139612e39565b905060008463ffffffff16118015612ace57506001600160a01b0385166000908152600f6020908152604080832063ffffffff6000198901811685529252909120548282169116145b15612b0b576001600160a01b0385166000908152600f6020908152604080832063ffffffff60001989011684529091529020600101829055612b7c565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600f84528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260109092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60408051600280825260608083018452926020830190803683370190505090503081600081518110612bf457fe5b6001600160a01b03928316602091820292909201810191909152600a54604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b158015612c4857600080fd5b505afa158015612c5c573d6000803e3d6000fd5b505050506040513d6020811015612c7257600080fd5b5051815182906001908110612c8357fe5b6001600160a01b039283166020918202929092010152600a54612ca99130911684611fd3565b600a54604051633b158ab160e11b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663762b1562968a968a9594939092909160c40190602080880191028083838b5b83811015612d2f578181015183820152602001612d17565b505050509050019650505050505050600060405180830381600087803b158015612d5857600080fd5b505af1158015611e26573d6000803e3d6000fd5b600a54612d849030906001600160a01b031684611fd3565b600a546001600160a01b031663f91b3f72823085600080612da3610f87565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b158015612e0e57600080fd5b505af1158015612e22573d6000803e3d6000fd5b50505050506040513d60608110156126e257600080fd5b6000816401000000008410612e8f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561233657818101518382015260200161231e565b509192915050565b60408051808201909152600080825260208201529056fe534e4f573a3a64656c656761746542795369673a207369676e6174757265206578706972656442455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f2061646472657373534e4f573a3a7570646174654d61785472616e73666572416d6f756e74526174653a204d6178207472616e7366657220616d6f756e742072617465206d7573742065786365656420746865206d696e696d756d20726174652e4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373534e4f573a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473534e4f573a3a757064617465536e6f7753776170526f757465723a20496e76616c6964207061697220616464726573732e534e4f573a3a7570646174655472616e73666572546178526174653a205472616e73666572207461782072617465206d757374206e6f742065786365656420746865206d6178696d756d20726174652e42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365534e4f573a3a64656c656761746542795369673a20696e76616c6964206e6f6e6365534e4f573a3a7570646174654d61785472616e73666572416d6f756e74526174653a204d6178207472616e7366657220616d6f756e742072617465206d757374206e6f742065786365656420746865206d6178696d756d20726174652e534e4f573a3a7472616e736665723a205461782076616c756520696e76616c6964534e4f573a3a7472616e736665723a20466565732076616c756520696e76616c6964534e4f573a3a64656c656761746542795369673a20696e76616c6964207369676e6174757265536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f7242455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f534e4f573a3a7472616e736665724f70657261746f723a206e6577206f70657261746f7220697320746865207a65726f2061646472657373534e4f573a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564534e4f573a3a7472616e7366657246656573416464726573733a206e65772066656573206164647265737320697320746865207a65726f206164647265737342455032303a20617070726f766520746f20746865207a65726f2061646472657373534e4f573a3a75706461746546656573526174653a20466565732072617465206d757374206e6f742065786365656420746865206d6178696d756d20726174652ea2646970667358221220dd7a0679b7c9b08b633d0ca9ebb053a3803764a192dff866765822d3e1ab547664736f6c634300060c0033