1.2k txs
23.3k calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
automatedMarketMakerPairs
viewfunction automatedMarketMakerPairs(address) view returns (bool)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
buyFee
viewfunction buyFee() view returns (uint256)
DEAD_ADDRESS
viewfunction DEAD_ADDRESS() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
developmentWallet
viewfunction developmentWallet() view returns (address)
isBot
viewfunction isBot(address) view returns (bool)
isCooldownEnabled
viewfunction isCooldownEnabled() view returns (bool)
isExcludedFromFees
viewfunction isExcludedFromFees(address) view returns (bool)
isExcludedFromLimits
viewfunction isExcludedFromLimits(address) view returns (bool)
isLaunched
viewfunction isLaunched() view returns (bool)
isLimitsEnabled
viewfunction isLimitsEnabled() view returns (bool)
isTaxEnabled
viewfunction isTaxEnabled() view returns (bool)
MAX_FEES
viewfunction MAX_FEES() view returns (uint256)
maxBuy
viewfunction maxBuy() view returns (uint256)
maxSell
viewfunction maxSell() view returns (uint256)
maxWallet
viewfunction maxWallet() view returns (uint256)
name
viewfunction name() view returns (string)
operationsWallet
viewfunction operationsWallet() view returns (address)
owner
viewfunction owner() view returns (address)
sellFee
viewfunction sellFee() view returns (uint256)
swapTokensAtAmount
viewfunction swapTokensAtAmount() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
transferFee
viewfunction transferFee() view returns (uint256)
uniswapV2Pair
viewfunction uniswapV2Pair() view returns (address)
uniswapV2Router
viewfunction uniswapV2Router() view returns (address)
ZERO_ADDRESS
viewfunction ZERO_ADDRESS() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
excludeFromFees
nonpayablefunction excludeFromFees(address[] accounts, bool value)
excludeFromLimits
nonpayablefunction excludeFromLimits(address[] accounts, bool value)
launch
nonpayablefunction launch()
renounceOwnership
nonpayablefunction renounceOwnership()
setAutomatedMarketMakerPair
nonpayablefunction setAutomatedMarketMakerPair(address pair, bool value)
setBots
nonpayablefunction setBots(address[] accounts, bool value)
setBuyFees
nonpayablefunction setBuyFees(uint256 _buyFee)
setCooldownEnabled
nonpayablefunction setCooldownEnabled(bool value)
setDevelopmentWallet
nonpayablefunction setDevelopmentWallet(address _developmentWallet)
setDShares
nonpayablefunction setDShares(uint256 dShares_)
setLimitsEnabled
nonpayablefunction setLimitsEnabled(bool value)
setMaxBuy
nonpayablefunction setMaxBuy(uint256 amount)
setMaxSell
nonpayablefunction setMaxSell(uint256 amount)
setMaxWallet
nonpayablefunction setMaxWallet(uint256 amount)
setOperationsWallet
nonpayablefunction setOperationsWallet(address _operationsWallet)
setSellFees
nonpayablefunction setSellFees(uint256 _sellFee)
setSwapTokensAtAmount
nonpayablefunction setSwapTokensAtAmount(uint256 amount)
setTaxesEnabled
nonpayablefunction setTaxesEnabled(bool value)
setTransferFees
nonpayablefunction setTransferFees(uint256 _transferFee)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawStuckTokens
nonpayablefunction withdrawStuckTokens(address _token)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
ExcludeFromFees
event ExcludeFromFees(address account, bool isExcluded)
ExcludeFromLimits
event ExcludeFromLimits(address account, bool isExcluded)
Launch
event Launch()
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetAutomatedMarketMakerPair
event SetAutomatedMarketMakerPair(address pair, bool value)
SetBots
event SetBots(address account, bool isExcluded)
SetBuyFees
event SetBuyFees(uint256 newValue, uint256 oldValue)
SetCooldownEnabled
event SetCooldownEnabled(bool status)
SetDevelopmentWallet
event SetDevelopmentWallet(address newWallet, address oldWallet)
SetDShares
event SetDShares(uint256 newValue, uint256 oldValue)
SetLimitsEnabled
event SetLimitsEnabled(bool status)
SetMaxBuy
event SetMaxBuy(uint256 amount)
SetMaxSell
event SetMaxSell(uint256 amount)
SetMaxWallet
event SetMaxWallet(uint256 amount)
SetOperationsWallet
event SetOperationsWallet(address newWallet, address oldWallet)
SetSellFees
event SetSellFees(uint256 newValue, uint256 oldValue)
SetSwapTokensAtAmount
event SetSwapTokensAtAmount(uint256 newValue, uint256 oldValue)
SetTaxesEnabled
event SetTaxesEnabled(bool status)
SetTransferFees
event SetTransferFees(uint256 newValue, uint256 oldValue)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
WithdrawStuckTokens
event WithdrawStuckTokens(address token, uint256 amount)
errors
AddressZero
error AddressZero()
AlreadyLaunched
error AlreadyLaunched()
AMMAlreadySet
error AMMAlreadySet()
AmountTooHigh
error AmountTooHigh()
AmountTooLow
error AmountTooLow()
BotDetected
error BotDetected()
DShareTooLow
error DShareTooLow()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
FailedToWithdrawNativeTokens
error FailedToWithdrawNativeTokens()
FeeTooHigh
error FeeTooHigh()
InvalidSender
error InvalidSender()
MaxBuyAmountExceed
error MaxBuyAmountExceed()
MaxSellAmountExceed
error MaxSellAmountExceed()
MaxWalletAmountExceed
error MaxWalletAmountExceed()
NoNativeTokens
error NoNativeTokens()
NotLaunched
error NotLaunched()
NoTokens
error NoTokens()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
TransferDelay
error TransferDelay()
creation bytecode
0x60c060405234801561000f575f5ffd5b506040805180820182526006815265526f626f726160d01b6020808301919091528251808401909352600383526229212960e91b9083015290338061006e57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610077816103ec565b5060046100848382611178565b5060056100918282611178565b503391506100ac9050816a52b7d2dcc80cd2e4000000610434565b5f6100b660035490565b600680546001600160a01b0319908116734a066b0a5b2dbb1b9f13d0dd4896bd42c916c2fd17909155600780549091167327791ad490dab2cd03c71655cb477e6d764a27dc179055905070fee13a103a10d593b9ae06b3e05f2e7e1c6103e8610120836008611246565b61012a9190611263565b6009556103e861013b836008611246565b6101459190611263565b600a556103e8610156836008611246565b6101609190611263565b600b55612710610171836005611246565b61017b9190611263565b600c556007805462ffffff60a01b19166201010160a01b1790556014600d55601e600e819055603c600f55601055737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156101fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102209190611282565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102919190611282565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156102db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ff9190611282565b6001600160a01b031660a0819052610318906001610468565b61032c306080515f196104cb60201b60201c565b6103373060016104dd565b61034461dead60016104dd565b61034f8360016104dd565b600654610366906001600160a01b031660016104dd565b60075461037d906001600160a01b031660016104dd565b6103888160016104dd565b610393306001610538565b6103a061dead6001610538565b6103ab836001610538565b6006546103c2906001600160a01b03166001610538565b6007546103d9906001600160a01b03166001610538565b6103e4816001610538565b505050611359565b5f546001600160a01b0316801561041157610407815f6104dd565b610411815f610538565b61041c8260016104dd565b610427826001610538565b61043082610593565b5050565b6001600160a01b03821661045d5760405163ec442f0560e01b81525f6004820152602401610065565b6104305f83836105e2565b6001600160a01b0382165f81815260146020908152604091829020805460ff19168515159081179091558251938452908301527fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91015b60405180910390a15050565b6104d88383836001610c82565b505050565b6001600160a01b0382165f81815260126020908152604091829020805460ff19168515159081179091558251938452908301527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791016104bf565b6001600160a01b0382165f81815260136020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291016104bf565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383165f9081526011602052604090205433903290439060ff1615610621576040516339a9b03560e21b815260040160405180910390fd5b856001600160a01b0316836001600160a01b0316148061065957506001600160a01b0383165f9081526011602052604090205460ff16155b610676576040516339a9b03560e21b815260040160405180910390fd5b856001600160a01b0316826001600160a01b031614806106a75750826001600160a01b0316826001600160a01b0316145b806106ca57506001600160a01b0382165f9081526011602052604090205460ff16155b6106e7576040516339a9b03560e21b815260040160405180910390fd5b600754600160c01b900460ff168061071657506001600160a01b0386165f9081526013602052604090205460ff165b8061073857506001600160a01b0385165f9081526013602052604090205460ff165b61075557604051638dda39df60e01b815260040160405180910390fd5b6007545f90600160a01b900460ff16801561077a5750600754600160b81b900460ff16155b80156107c057506001600160a01b0387165f9081526013602052604090205460ff16806107be57506001600160a01b0386165f9081526013602052604090205460ff165b155b90508015610a7e575f546001600160a01b038881169116148015906107f257505f546001600160a01b03878116911614155b801561080657506001600160a01b03861615155b801561081d57506001600160a01b03861661dead14155b15610a7e57600754600160a81b900460ff1615610904576080516001600160a01b0316866001600160a01b03161415801561086c575060a0516001600160a01b0316866001600160a01b031614155b156109045761087c6003836112af565b6001600160a01b0384165f908152601560205260409020541080156108c157506108a76003836112af565b6001600160a01b0387165f90815260156020526040902054105b6108de57604051630301a6ed60e61b815260040160405180910390fd5b6001600160a01b038084165f908152601560205260408082208590559188168152208290555b6001600160a01b0387165f9081526014602052604090205460ff16801561094357506001600160a01b0386165f9081526013602052604090205460ff16155b156109b45760095485111561096b57604051632c676b8560e21b815260040160405180910390fd5b600b546001600160a01b0387165f9081526001602052604090205461099090876112c2565b11156109af5760405163d867451160e01b815260040160405180910390fd5b610a7e565b6001600160a01b0386165f9081526014602052604090205460ff1680156109f357506001600160a01b0387165f9081526013602052604090205460ff16155b15610a1b57600a548511156109af576040516338aa438560e21b815260040160405180910390fd5b6001600160a01b0386165f9081526013602052604090205460ff16610a7e57600b546001600160a01b0387165f90815260016020526040902054610a5f90876112c2565b1115610a7e5760405163d867451160e01b815260040160405180910390fd5b6007545f90600160b01b900460ff168015610aa35750600754600160b81b900460ff16155b8015610ae957506001600160a01b0388165f9081526012602052604090205460ff1680610ae757506001600160a01b0387165f9081526012602052604090205460ff165b155b90508015610c0a576001600160a01b0387165f9081526014602052604081205460ff168015610b1957505f600e54115b15610b3f576064600e5488610b2e9190611246565b610b389190611263565b9050610beb565b6001600160a01b0389165f9081526014602052604090205460ff168015610b6757505f600d54115b15610b7c576064600d5488610b2e9190611246565b6001600160a01b0388165f9081526014602052604090205460ff16158015610bbc57506001600160a01b0389165f9081526014602052604090205460ff16155b8015610bc957505f600f54115b15610beb576064600f5488610bde9190611246565b610be89190611263565b90505b8015610c0857610bfb81886112af565b9650610c08893083610d55565b505b305f90815260016020526040902054600c54811015828015610c4457506001600160a01b038a165f9081526014602052604090205460ff16155b8015610c4d5750805b15610c6b57600854851115610c6b57610c6582610e7b565b60088590555b610c768a8a8a610d55565b50505050505050505050565b6001600160a01b038416610cab5760405163e602df0560e01b81525f6004820152602401610065565b6001600160a01b038316610cd457604051634a1406b160e11b81525f6004820152602401610065565b6001600160a01b038085165f9081526002602090815260408083209387168352929052208290558015610d4f57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d4691815260200190565b60405180910390a35b50505050565b6001600160a01b038316610d7f578060035f828254610d7491906112c2565b90915550610def9050565b6001600160a01b0383165f9081526001602052604090205481811015610dd15760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610065565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b038216610e0b57600380548290039055610e29565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6e91815260200190565b60405180910390a3505050565b6007805460ff60b81b1916600160b81b1790556040805160028082526060820183525f928392919060208301908036833701905050905030815f81518110610ec557610ec56112d5565b60200260200101906001600160a01b031690816001600160a01b0316815250506080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f479190611282565b81600181518110610f5a57610f5a6112d5565b60200260200101906001600160a01b031690816001600160a01b0316815250505f600c546014610f8a9190611246565b905080841115610f98578093505b6080516001600160a01b031663791ac947855f8530426040518663ffffffff1660e01b8152600401610fce9594939291906112e9565b5f604051808303815f87803b158015610fe5575f5ffd5b505af1158015610ff7573d5f5f3e3d5ffd5b50506010544792505f915060649061100f9084611246565b6110199190611263565b90505f61102682846112af565b6006546040519192506001600160a01b03169082905f81818185875af1925050503d805f8114611071576040519150601f19603f3d011682016040523d82523d5f602084013e611076565b606091505b50506007546040519197506001600160a01b03169083905f81818185875af1925050503d805f81146110c3576040519150601f19603f3d011682016040523d82523d5f602084013e6110c8565b606091505b50506007805460ff60b81b191690555050505050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061110957607f821691505b60208210810361112757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104d857805f5260205f20601f840160051c810160208510156111525750805b601f840160051c820191505b81811015611171575f815560010161115e565b5050505050565b81516001600160401b03811115611191576111916110e1565b6111a58161119f84546110f5565b8461112d565b6020601f8211600181146111d7575f83156111c05750848201515b5f19600385901b1c1916600184901b178455611171565b5f84815260208120601f198516915b8281101561120657878501518255602094850194600190920191016111e6565b508482101561122357868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761125d5761125d611232565b92915050565b5f8261127d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611292575f5ffd5b81516001600160a01b03811681146112a8575f5ffd5b9392505050565b8181038181111561125d5761125d611232565b8082018082111561125d5761125d611232565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156113395783516001600160a01b0316835260209384019390920191600101611312565b50506001600160a01b039590951660608401525050608001529392505050565b60805160a0516128a761139d5f395f81816104ce0152611c9f01525f818161039401528181610ea801528181611c62015281816122cb01526123b101526128a75ff3fe6080604052600436106102f5575f3560e01c80638da5cb5b11610195578063c2300bef116100ea578063e6c1909b1161008e578063f2fde38b1161006b578063f2fde38b14610935578063f53bc83514610954578063f8b45b0514610973578063fd72e22a1461098857005b8063e6c1909b146108d7578063ee5ecc89146108f7578063ef998cf01461091657005b8063d5759ba3116100c7578063d5759ba31461083f578063dcf7aef31461085f578063dd62ed3e1461087e578063e2f45605146108c257005b8063c2300bef146107ed578063cb96372814610801578063d26ed3e31461082057005b8063acb2ad6f11610151578063b0ed273c1161012e578063b0ed273c1461076c578063b62496f51461078b578063b8eb3546146107b9578063c04a5414146107ce57005b8063acb2ad6f14610719578063ad29ffde1461072e578063afa4f3b21461074d57005b80638da5cb5b1461066d57806395927c251461068957806395d89b41146106a85780639a7a23d6146106bc5780639c0db5f3146106db578063a9059cbb146106fa57005b806349bd5a5e1161024b5780635cce86cd1161020757806370a08231116101e457806370a08231146105f157806370db69d614610625578063715018a61461063a57806372ac24861461064e57005b80635cce86cd146105845780635d0044ca146105b25780636ca541e5146105d157005b806349bd5a5e146104bd5780634e6fd6c4146104f05780634fbee19314610505578063538ba4f9146105335780635932ead11461054657806359512ab01461056557005b806323b872dd116102b2578063313ce5671161028f578063313ce567146104405780633bbac5791461045b57806341aea9de1461048957806347062402146104a857005b806323b872dd146103ec5780632b14ca561461040b578063307aebc91461042057005b806301339c21146102f757806306fdde031461030b578063095ea7b314610335578063106a5a8f146103645780631694505e1461038357806318160ddd146103ce575b005b348015610302575f5ffd5b506102f56109a7565b348015610316575f5ffd5b5061031f610a17565b60405161032c9190612501565b60405180910390f35b348015610340575f5ffd5b5061035461034f36600461254a565b610aa7565b604051901515815260200161032c565b34801561036f575f5ffd5b506102f561037e366004612581565b610ac0565b34801561038e575f5ffd5b506103b67f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161032c565b3480156103d9575f5ffd5b506003545b60405190815260200161032c565b3480156103f7575f5ffd5b50610354610406366004612603565b610b10565b348015610416575f5ffd5b506103de600e5481565b34801561042b575f5ffd5b5060075461035490600160c01b900460ff1681565b34801561044b575f5ffd5b506040516012815260200161032c565b348015610466575f5ffd5b50610354610475366004612641565b60116020525f908152604090205460ff1681565b348015610494575f5ffd5b506102f56104a3366004612663565b610b33565b3480156104b3575f5ffd5b506103de600d5481565b3480156104c8575f5ffd5b506103b67f000000000000000000000000000000000000000000000000000000000000000081565b3480156104fb575f5ffd5b506103b661dead81565b348015610510575f5ffd5b5061035461051f366004612641565b60126020525f908152604090205460ff1681565b34801561053e575f5ffd5b506103b65f81565b348015610551575f5ffd5b506102f5610560366004612663565b610b93565b348015610570575f5ffd5b506102f561057f366004612663565b610be8565b34801561058f575f5ffd5b5061035461059e366004612641565b60136020525f908152604090205460ff1681565b3480156105bd575f5ffd5b506102f56105cc36600461267e565b610c3d565b3480156105dc575f5ffd5b5060075461035490600160a81b900460ff1681565b3480156105fc575f5ffd5b506103de61060b366004612641565b6001600160a01b03165f9081526001602052604090205490565b348015610630575f5ffd5b506103de60095481565b348015610645575f5ffd5b506102f5610cbb565b348015610659575f5ffd5b506102f5610668366004612641565b610cce565b348015610678575f5ffd5b505f546001600160a01b03166103b6565b348015610694575f5ffd5b506102f56106a336600461267e565b610d80565b3480156106b3575f5ffd5b5061031f610de8565b3480156106c7575f5ffd5b506102f56106d6366004612695565b610df7565b3480156106e6575f5ffd5b506102f56106f5366004612581565b610e46565b348015610705575f5ffd5b5061035461071436600461254a565b611053565b348015610724575f5ffd5b506103de600f5481565b348015610739575f5ffd5b506102f5610748366004612581565b611060565b348015610758575f5ffd5b506102f561076736600461267e565b6110aa565b348015610777575f5ffd5b506102f561078636600461267e565b611176565b348015610796575f5ffd5b506103546107a5366004612641565b60146020525f908152604090205460ff1681565b3480156107c4575f5ffd5b506103de600a5481565b3480156107d9575f5ffd5b506007546103b6906001600160a01b031681565b3480156107f8575f5ffd5b506103de601481565b34801561080c575f5ffd5b506102f561081b366004612641565b6111de565b34801561082b575f5ffd5b506102f561083a36600461267e565b6113c3565b34801561084a575f5ffd5b5060075461035490600160a01b900460ff1681565b34801561086a575f5ffd5b506102f561087936600461267e565b61142b565b348015610889575f5ffd5b506103de6108983660046126cc565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156108cd575f5ffd5b506103de600c5481565b3480156108e2575f5ffd5b5060075461035490600160b01b900460ff1681565b348015610902575f5ffd5b506102f5610911366004612641565b611493565b348015610921575f5ffd5b506102f561093036600461267e565b61153d565b348015610940575f5ffd5b506102f561094f366004612641565b6115bb565b34801561095f575f5ffd5b506102f561096e36600461267e565b6115fd565b34801561097e575f5ffd5b506103de600b5481565b348015610993575f5ffd5b506006546103b6906001600160a01b031681565b6109af61167b565b600754600160c01b900460ff16156109da576040516319f4db0f60e31b815260040160405180910390fd5b6007805460ff60c01b1916600160c01b1790556040517f02ac8168caf2f254b394bd39e19417c5c28124ab89c9bc2d44921b19808e2669905f90a1565b606060048054610a26906126f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a52906126f8565b8015610a9d5780601f10610a7457610100808354040283529160200191610a9d565b820191905f5260205f20905b815481529060010190602001808311610a8057829003601f168201915b5050505050905090565b5f33610ab48185856116a7565b60019150505b92915050565b610ac861167b565b5f5b82811015610b0a57610b02848483818110610ae757610ae7612730565b9050602002016020810190610afc9190612641565b836116b9565b600101610aca565b50505050565b5f33610b1d858285611714565b610b2885858561178a565b506001949350505050565b610b3b61167b565b60078054821515600160a01b0260ff60a01b199091161790556040517ff771b1e218dc92494b39e21852f9c24c3b448d6697c2b485cc1f0cff3c9ec78190610b8890831515815260200190565b60405180910390a150565b610b9b61167b565b60078054821515600160a81b0260ff60a81b199091161790556040517f381fb4c4aa72df83c60e7e567b9b6faf3fc2b05a6da932da9f071d63442c828f90610b8890831515815260200190565b610bf061167b565b60078054821515600160b01b0260ff60b01b199091161790556040517f06cf69227e5c2b5a71319bc3784f6a5355ea0ba2a69bc4c39d64413dfa5a012b90610b8890831515815260200190565b610c4561167b565b6103e8610c5160035490565b610c5c906003612758565b610c66919061276f565b811015610c8657604051631fbaba3560e01b815260040160405180910390fd5b600b8190556040518181527fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf63618690602001610b88565b610cc361167b565b610ccc5f6117e7565b565b6007546001600160a01b03163314610cf957604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b038116610d2057604051639fabe1c160e01b815260040160405180910390fd5b600780546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f2b355c7f17401d9755d704a4cf6149a26deb56a381bb5d06c87b608183dbe09c91015b60405180910390a15050565b610d8861167b565b6014811115610daa5760405163cd4e616760e01b815260040160405180910390fd5b600e80549082905560408051838152602081018390527f125b37650f21d088600cef1223439f6a8bd70800debfd486c503a8a2d19d4b019101610d74565b606060058054610a26906126f8565b610dff61167b565b6001600160a01b0382165f9081526014602052604090205460ff1615610e38576040516304eb79b560e31b815260040160405180910390fd5b610e42828261182b565b5050565b610e4e61167b565b5f5b82811015610b0a5760145f858584818110610e6d57610e6d612730565b9050602002016020810190610e829190612641565b6001600160a01b0316815260208101919091526040015f205460ff16158015610f0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316848483818110610ee257610ee2612730565b9050602002016020810190610ef79190612641565b6001600160a01b031614155b8015610f3e575030848483818110610f1d57610f1d612730565b9050602002016020810190610f329190612641565b6001600160a01b031614155b8015610f7957505f848483818110610f5857610f58612730565b9050602002016020810190610f6d9190612641565b6001600160a01b031614155b8015611016575060125f858584818110610f9557610f95612730565b9050602002016020810190610faa9190612641565b6001600160a01b0316815260208101919091526040015f205460ff16158015611016575060135f858584818110610fe357610fe3612730565b9050602002016020810190610ff89190612641565b6001600160a01b0316815260208101919091526040015f205460ff16155b1561104b5761104b84848381811061103057611030612730565b90506020020160208101906110459190612641565b83611886565b600101610e50565b5f33610ab481858561178a565b61106861167b565b5f5b82811015610b0a576110a284848381811061108757611087612730565b905060200201602081019061109c9190612641565b836118e1565b60010161106a565b6110b261167b565b5f6110bc60035490565b9050620f42406110cd826001612758565b6110d7919061276f565b8210156110f757604051631fbaba3560e01b815260040160405180910390fd5b6103e8611105826005612758565b61110f919061276f565b82111561112f5760405163fd7850ad60e01b815260040160405180910390fd5b600c80549083905560408051848152602081018390527f190dc7c30bc62ef30e35c5f5512ad715a1bd03230f2d89c965249246c8d8ecca91015b60405180910390a1505050565b61117e61167b565b60148110156111a057604051637974d25f60e11b815260040160405180910390fd5b601080549082905560408051838152602081018390527f994fb1b51dba7883ed3c66a9e679f1be98c2a47cca8ad263abff0c223935c1989101610d74565b6111e661167b565b335f6001600160a01b03831661128c5750475f8161121757604051634870bf9160e01b815260040160405180910390fd5b6040516001600160a01b0384169083905f81818185875af1925050503d805f811461125d576040519150601f19603f3d011682016040523d82523d5f602084013e611262565b606091505b5050809150508061128657604051633398652560e11b815260040160405180910390fd5b50611384565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156112ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f2919061278e565b90505f81116113145760405163df95788360e01b815260040160405180910390fd5b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0384169063a9059cbb906044016020604051808303815f875af115801561135e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138291906127a5565b505b604080516001600160a01b0385168152602081018390527f07c81a5e6d155913a9ed2ce53630058179c89fc94bb5de130620b0245c9f6a0b9101611169565b6113cb61167b565b60148111156113ed5760405163cd4e616760e01b815260040160405180910390fd5b600f80549082905560408051838152602081018390527f8fd531ce6f3cbc5b8cc01a0413b630e3f11569780ee5cf8d0c78e03bca30bc259101610d74565b61143361167b565b60148111156114555760405163cd4e616760e01b815260040160405180910390fd5b600d80549082905560408051838152602081018390527f5fcc0eea159d45a3b8d481be746c9beed251431a542a5fed4484be37ab783e8d9101610d74565b6006546001600160a01b031633146114be57604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b0381166114e557604051639fabe1c160e01b815260040160405180910390fd5b600680546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917fe20a721838fcbbb3840bd5d97dde1ffeb479fe73d75736fa6fdfc0f220aae0059101610d74565b61154561167b565b6103e861155160035490565b61155c906002612758565b611566919061276f565b81101561158657604051631fbaba3560e01b815260040160405180910390fd5b600a8190556040518181527f3c0ac525ebd597ae4e1201e687d8a7424b740a53b775b1527eb1c1936c1bd3b790602001610b88565b6115c361167b565b6001600160a01b0381166115f157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6115fa816117e7565b50565b61160561167b565b6103e861161160035490565b61161c906002612758565b611626919061276f565b81101561164657604051631fbaba3560e01b815260040160405180910390fd5b60098190556040518181527f16fd9174d80e7089ed0c10c47c8079476be2ec28b97c4b40846cffd8a7aa9e9f90602001610b88565b5f546001600160a01b03163314610ccc5760405163118cdaa760e01b81523360048201526024016115e8565b6116b4838383600161193c565b505050565b6001600160a01b0382165f81815260136020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101610d74565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f19811015610b0a578181101561177c57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016115e8565b610b0a84848484035f61193c565b6001600160a01b0383166117b357604051634b637e8f60e11b81525f60048201526024016115e8565b6001600160a01b0382166117dc5760405163ec442f0560e01b81525f60048201526024016115e8565b6116b4838383611a0e565b5f546001600160a01b0316801561180c57611802815f6118e1565b61180c815f6116b9565b6118178260016118e1565b6118228260016116b9565b610e42826120ea565b6001600160a01b0382165f81815260146020908152604091829020805460ff19168515159081179091558251938452908301527fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab9101610d74565b6001600160a01b0382165f81815260116020908152604091829020805460ff19168515159081179091558251938452908301527ff7f8b40d08076851dfb7cfd6c584ae9a829a570f264abee45e0d7ca342ae8dc89101610d74565b6001600160a01b0382165f81815260126020908152604091829020805460ff19168515159081179091558251938452908301527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610d74565b6001600160a01b0384166119655760405163e602df0560e01b81525f60048201526024016115e8565b6001600160a01b03831661198e57604051634a1406b160e11b81525f60048201526024016115e8565b6001600160a01b038085165f9081526002602090815260408083209387168352929052208290558015610b0a57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611a0091815260200190565b60405180910390a350505050565b6001600160a01b0383165f9081526011602052604090205433903290439060ff1615611a4d576040516339a9b03560e21b815260040160405180910390fd5b856001600160a01b0316836001600160a01b03161480611a8557506001600160a01b0383165f9081526011602052604090205460ff16155b611aa2576040516339a9b03560e21b815260040160405180910390fd5b856001600160a01b0316826001600160a01b03161480611ad35750826001600160a01b0316826001600160a01b0316145b80611af657506001600160a01b0382165f9081526011602052604090205460ff16155b611b13576040516339a9b03560e21b815260040160405180910390fd5b600754600160c01b900460ff1680611b4257506001600160a01b0386165f9081526013602052604090205460ff165b80611b6457506001600160a01b0385165f9081526013602052604090205460ff165b611b8157604051638dda39df60e01b815260040160405180910390fd5b6007545f90600160a01b900460ff168015611ba65750600754600160b81b900460ff16155b8015611bec57506001600160a01b0387165f9081526013602052604090205460ff1680611bea57506001600160a01b0386165f9081526013602052604090205460ff165b155b90508015611ee6575f546001600160a01b03888116911614801590611c1e57505f546001600160a01b03878116911614155b8015611c3257506001600160a01b03861615155b8015611c4957506001600160a01b03861661dead14155b15611ee657600754600160a81b900460ff1615611d6c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614158015611cd457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614155b15611d6c57611ce46003836127c0565b6001600160a01b0384165f90815260156020526040902054108015611d295750611d0f6003836127c0565b6001600160a01b0387165f90815260156020526040902054105b611d4657604051630301a6ed60e61b815260040160405180910390fd5b6001600160a01b038084165f908152601560205260408082208590559188168152208290555b6001600160a01b0387165f9081526014602052604090205460ff168015611dab57506001600160a01b0386165f9081526013602052604090205460ff16155b15611e1c57600954851115611dd357604051632c676b8560e21b815260040160405180910390fd5b600b546001600160a01b0387165f90815260016020526040902054611df890876127d3565b1115611e175760405163d867451160e01b815260040160405180910390fd5b611ee6565b6001600160a01b0386165f9081526014602052604090205460ff168015611e5b57506001600160a01b0387165f9081526013602052604090205460ff16155b15611e8357600a54851115611e17576040516338aa438560e21b815260040160405180910390fd5b6001600160a01b0386165f9081526013602052604090205460ff16611ee657600b546001600160a01b0387165f90815260016020526040902054611ec790876127d3565b1115611ee65760405163d867451160e01b815260040160405180910390fd5b6007545f90600160b01b900460ff168015611f0b5750600754600160b81b900460ff16155b8015611f5157506001600160a01b0388165f9081526012602052604090205460ff1680611f4f57506001600160a01b0387165f9081526012602052604090205460ff165b155b90508015612072576001600160a01b0387165f9081526014602052604081205460ff168015611f8157505f600e54115b15611fa7576064600e5488611f969190612758565b611fa0919061276f565b9050612053565b6001600160a01b0389165f9081526014602052604090205460ff168015611fcf57505f600d54115b15611fe4576064600d5488611f969190612758565b6001600160a01b0388165f9081526014602052604090205460ff1615801561202457506001600160a01b0389165f9081526014602052604090205460ff16155b801561203157505f600f54115b15612053576064600f54886120469190612758565b612050919061276f565b90505b80156120705761206381886127c0565b9650612070893083612139565b505b305f90815260016020526040902054600c548110158280156120ac57506001600160a01b038a165f9081526014602052604090205460ff16155b80156120b55750805b156120d3576008548511156120d3576120cd8261225f565b60088590555b6120de8a8a8a612139565b50505050505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316612163578060035f82825461215891906127d3565b909155506121d39050565b6001600160a01b0383165f90815260016020526040902054818110156121b55760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016115e8565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166121ef5760038054829003905561220d565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161225291815260200190565b60405180910390a3505050565b6007805460ff60b81b1916600160b81b1790556040805160028082526060820183525f928392919060208301908036833701905050905030815f815181106122a9576122a9612730565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612325573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061234991906127e6565b8160018151811061235c5761235c612730565b60200260200101906001600160a01b031690816001600160a01b0316815250505f600c54601461238c9190612758565b90508084111561239a578093505b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906123ee9087905f90879030904290600401612801565b5f604051808303815f87803b158015612405575f5ffd5b505af1158015612417573d5f5f3e3d5ffd5b50506010544792505f915060649061242f9084612758565b612439919061276f565b90505f61244682846127c0565b6006546040519192506001600160a01b03169082905f81818185875af1925050503d805f8114612491576040519150601f19603f3d011682016040523d82523d5f602084013e612496565b606091505b50506007546040519197506001600160a01b03169083905f81818185875af1925050503d805f81146124e3576040519150601f19603f3d011682016040523d82523d5f602084013e6124e8565b606091505b50506007805460ff60b81b191690555050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146115fa575f5ffd5b5f5f6040838503121561255b575f5ffd5b823561256681612536565b946020939093013593505050565b80151581146115fa575f5ffd5b5f5f5f60408486031215612593575f5ffd5b833567ffffffffffffffff8111156125a9575f5ffd5b8401601f810186136125b9575f5ffd5b803567ffffffffffffffff8111156125cf575f5ffd5b8660208260051b84010111156125e3575f5ffd5b6020918201945092508401356125f881612574565b809150509250925092565b5f5f5f60608486031215612615575f5ffd5b833561262081612536565b9250602084013561263081612536565b929592945050506040919091013590565b5f60208284031215612651575f5ffd5b813561265c81612536565b9392505050565b5f60208284031215612673575f5ffd5b813561265c81612574565b5f6020828403121561268e575f5ffd5b5035919050565b5f5f604083850312156126a6575f5ffd5b82356126b181612536565b915060208301356126c181612574565b809150509250929050565b5f5f604083850312156126dd575f5ffd5b82356126e881612536565b915060208301356126c181612536565b600181811c9082168061270c57607f821691505b60208210810361272a57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610aba57610aba612744565b5f8261278957634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561279e575f5ffd5b5051919050565b5f602082840312156127b5575f5ffd5b815161265c81612574565b81810381811115610aba57610aba612744565b80820180821115610aba57610aba612744565b5f602082840312156127f6575f5ffd5b815161265c81612536565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156128515783516001600160a01b031683526020938401939092019160010161282a565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212204ba41526dfd0f2ca7d5f112c3b344ed120ae755ebf466bdc70dfcf03ad9d9dc264736f6c634300081e0033