[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "RewardPoolWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "teamWalletUpdated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "lpAddress", "type": "address" } ], "name": "blacklistLiquidityPool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "blacklistRenounced", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableTestnetPurchasePhase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reduceTestnetTaxRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "risks", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "sellFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treasuryWallet", "type": "address" } ], "name": "setTreasuryWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "testnetPurchasePhase", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForTreasury", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasuryWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "unblacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buyFee", "type": "uint256" } ], "name": "updateBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_sellFee", "type": "uint256" } ], "name": "updateSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addresses", "type": "address[]" } ], "name": "updateTestnetWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treasuryWallet", "type": "address" } ], "name": "updateTreasuryWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawStuckBCraft", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "toAddr", "type": "address" } ], "name": "withdrawStuckEth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "withdrawStuckToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c0604052600a805463ffffffff191660019081179091556055600f556014805460ff191690911790553480156200003657600080fd5b50336040518060400160405280600a81526020016910985cd94810dc98599d60b21b815250604051806040016040528060068152602001651090d490519560d21b81525081600390816200008b919062001216565b5060046200009a828262001216565b5050600580546001600160a01b0319166001600160a01b0384169081179091556040519091506000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350734752ba5dbc23f44d87826276bf6fd6b1c372ad246200010b81600162000358565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000156573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017c9190620012e2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f09190620012e2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200023e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002649190620012e2565b6001600160a01b031660a08190526200027f90600162000358565b60a0516200028f906001620003d2565b69043c33c19375648000006007819055600955681b1ae4d6e2ef5000006008556005600c819055600d81905554600680546001600160a01b0319166001600160a01b03909216918217905569d3c21bcecceda100000090620002f390600162000426565b6200030030600162000426565b6200030f61dead600162000426565b60055462000328906001600160a01b0316600162000358565b6200033530600162000358565b6200034461dead600162000358565b620003503382620004d0565b50506200141e565b6005546001600160a01b03163314620003a75760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004715760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064016200039e565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620004fc5760405163ec442f0560e01b8152600060048201526024016200039e565b6200050a600083836200050e565b5050565b6001600160a01b038216620005725760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016200039e565b6001600160a01b0383166000908152600b602052604090205460ff1615620005d25760405162461bcd60e51b815260206004820152601260248201527114d95b99195c88189b1858dadb1a5cdd195960721b60448201526064016200039e565b6001600160a01b0382166000908152600b602052604090205460ff16156200063d5760405162461bcd60e51b815260206004820152601460248201527f526563656976657220626c61636b6c697374656400000000000000000000000060448201526064016200039e565b806000036200065957620006548383600062000ceb565b505050565b600a5460ff161562000a01576005546001600160a01b038481169116148015906200069257506005546001600160a01b03838116911614155b8015620006a757506001600160a01b03821615155b8015620006bf57506001600160a01b03821661dead14155b8015620006d65750600554600160a01b900460ff16155b1562000a0157600a54610100900460ff166200077a576001600160a01b03831660009081526010602052604090205460ff16806200072c57506001600160a01b03821660009081526010602052604090205460ff165b6200077a5760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e0000000000000000000060448201526064016200039e565b6001600160a01b03831660009081526012602052604090205460ff168015620007bc57506001600160a01b03821660009081526011602052604090205460ff16155b15620008b0576007548111156200083c5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d61785472616e73616374696f6e416d6f756e742e000000000000000000000060648201526084016200039e565b6009546001600160a01b0383166000908152602081905260409020546200086490836200132a565b1115620008aa5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016200039e565b62000a01565b6001600160a01b03821660009081526012602052604090205460ff168015620008f257506001600160a01b03831660009081526011602052604090205460ff16155b156200097257600754811115620008aa5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d61785472616e73616374696f6e416d6f756e742e0000000000000000000060648201526084016200039e565b6001600160a01b03821660009081526011602052604090205460ff1662000a01576009546001600160a01b038316600090815260208190526040902054620009bb90836200132a565b111562000a015760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016200039e565b306000908152602081905260409020546008548110801590819062000a2e5750600a5462010000900460ff165b801562000a455750600554600160a01b900460ff16155b801562000a6b57506001600160a01b03851660009081526012602052604090205460ff16155b801562000a9157506001600160a01b03851660009081526010602052604090205460ff16155b801562000ab757506001600160a01b03841660009081526010602052604090205460ff16155b1562000ae8576005805460ff60a01b1916600160a01b17905562000ada62000e1e565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526010602052604090205460ff600160a01b90920482161591168062000b3757506001600160a01b03851660009081526010602052604090205460ff165b1562000b41575060005b6000811562000cd5576001600160a01b0380871660009081526012602052604080822054928a16825290205460ff918216911681801562000b8457506000600d54115b1562000bcb57600d5462000ba99060649062000ba2908a9062000e96565b9062000ead565b925082600e600082825462000bbf91906200132a565b9091555062000c159050565b80801562000bdb57506000600c54115b1562000c1557600c5462000bf99060649062000ba2908a9062000e96565b925082600e600082825462000c0f91906200132a565b90915550505b60145460ff161562000cb05780801562000c4857506001600160a01b03881660009081526013602052604090205460ff16155b8062000c76575081801562000c7657506001600160a01b03891660009081526013602052604090205460ff16155b1562000cb057600f5462000c949060649062000ba2908a9062000e96565b925082600e600082825462000caa91906200132a565b90915550505b821562000cc45762000cc489308562000ceb565b62000cd0838862001340565b965050505b62000ce287878762000ceb565b50505050505050565b6001600160a01b03831662000d1a57806002600082825462000d0e91906200132a565b9091555062000d8e9050565b6001600160a01b0383166000908152602081905260409020548181101562000d6f5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016200039e565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821662000dac5760028054829003905562000dcb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000e1191815260200190565b60405180910390a3505050565b30600090815260208190526040902054600e5481158062000e3d575080155b1562000e47575050565b60085462000e5790601462001356565b82111562000e725760085462000e6f90601462001356565b91505b8162000e7e8162000ebb565b60065462000654906001600160a01b03164762001036565b600062000ea4828462001356565b90505b92915050565b600062000ea4828462001370565b604080516002808252606082018352600092602083019080368337019050509050308160008151811062000ef35762000ef362001393565b60200260200101906001600160a01b031690816001600160a01b0316815250506080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000f54573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f7a9190620012e2565b8160018151811062000f905762000f9062001393565b60200260200101906001600160a01b031690816001600160a01b03168152505062000fc530608051846200109360201b60201c565b6080516001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b815260040162000ffe959493929190620013a9565b600060405180830381600087803b1580156200101957600080fd5b505af11580156200102e573d6000803e3d6000fd5b505050505050565b600080600080600085875af1905080620006545760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c45440000000000000000000000000060448201526064016200039e565b6200065483838360016001600160a01b038416620010c85760405163e602df0560e01b8152600060048201526024016200039e565b6001600160a01b038316620010f457604051634a1406b160e11b8152600060048201526024016200039e565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156200117257826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516200116991815260200190565b60405180910390a35b50505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620011a357607f821691505b602082108103620011c457634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000654576000816000526020600020601f850160051c81016020861015620011f55750805b601f850160051c820191505b818110156200102e5782815560010162001201565b81516001600160401b0381111562001232576200123262001178565b6200124a816200124384546200118e565b84620011ca565b602080601f831160018114620012825760008415620012695750858301515b600019600386901b1c1916600185901b1785556200102e565b600085815260208120601f198616915b82811015620012b35788860151825594840194600190910190840162001292565b5085821015620012d25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620012f557600080fd5b81516001600160a01b03811681146200130d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000ea75762000ea762001314565b8181038181111562000ea75762000ea762001314565b808202811582820484141762000ea75762000ea762001314565b6000826200138e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b81811015620013fd5784516001600160a01b031683529383019391830191600101620013d6565b50506001600160a01b03969096166060850152505050608001529392505050565b60805160a051612ad4620014676000396000818161055801528181610ff401526115e20152600081816103e2015281816124650152818161251e015261255a0152612ad46000f3fe6080604052600436106103395760003560e01c80638a8c523c116101ab578063c8c8ebe4116100f7578063eba4c33311610095578063f8b45b051161006f578063f8b45b051461099d578063f9d7ff89146109b3578063f9f92be414610912578063fe575a87146109c857600080fd5b8063eba4c33314610948578063ed8d556b14610968578063f2fde38b1461097d57600080fd5b8063d257b34f116100d1578063d257b34f146108ac578063dd62ed3e146108cc578063e19b282314610912578063e2f456051461093257600080fd5b8063c8c8ebe414610866578063c9c930021461087c578063cc2ffe7c1461089657600080fd5b8063a9059cbb11610164578063bbc0c7421161013e578063bbc0c742146107e7578063bc205ad314610806578063c024666814610826578063c18bc1951461084657600080fd5b8063a9059cbb14610777578063b62496f514610797578063b83ff063146107c757600080fd5b80638a8c523c146106ed5780638da5cb5b14610702578063924de9b71461072257806395d89b41146107425780639a7a23d614610757578063a8602fea146106cd57600080fd5b80634626402b1161028557806370a08231116102235780637571336a116101fd5780637571336a1461066d57806375e3661e1461068d5780637ca8448a146106ad578063809d458d146106cd57600080fd5b806370a082311461060257806371fc468814610638578063751039fc1461065857600080fd5b80634a62bb651161025f5780634a62bb651461057a5780634fbee193146105945780635f189361146105cd5780636ddd1713146105e257600080fd5b80634626402b14610510578063470624021461053057806349bd5a5e1461054657600080fd5b806323b872dd116102f257806329201a3a116102cc57806329201a3a146104a85780632b14ca56146104bd578063313ce567146104d35780633dc599ff146104ef57600080fd5b806323b872dd1461045d57806327c8f8351461047d57806328a60caa1461049357600080fd5b806306fdde0314610345578063095ea7b31461037057806310d5de53146103a05780631694505e146103d057806318160ddd1461041c578063203e727e1461043b57600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a01565b60405161036791906125ce565b60405180910390f35b34801561037c57600080fd5b5061039061038b36600461263d565b610a93565b6040519015158152602001610367565b3480156103ac57600080fd5b506103906103bb366004612669565b60116020526000908152604090205460ff1681565b3480156103dc57600080fd5b506104047f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610367565b34801561042857600080fd5b506002545b604051908152602001610367565b34801561044757600080fd5b5061045b610456366004612686565b610aad565b005b34801561046957600080fd5b5061039061047836600461269f565b610b93565b34801561048957600080fd5b5061040461dead81565b34801561049f57600080fd5b5061045b610bb7565b3480156104b457600080fd5b5061045b610cdf565b3480156104c957600080fd5b5061042d600d5481565b3480156104df57600080fd5b5060405160128152602001610367565b3480156104fb57600080fd5b50600a54610390906301000000900460ff1681565b34801561051c57600080fd5b50600654610404906001600160a01b031681565b34801561053c57600080fd5b5061042d600c5481565b34801561055257600080fd5b506104047f000000000000000000000000000000000000000000000000000000000000000081565b34801561058657600080fd5b50600a546103909060ff1681565b3480156105a057600080fd5b506103906105af366004612669565b6001600160a01b031660009081526010602052604090205460ff1690565b3480156105d957600080fd5b5061045b610d15565b3480156105ee57600080fd5b50600a546103909062010000900460ff1681565b34801561060e57600080fd5b5061042d61061d366004612669565b6001600160a01b031660009081526020819052604090205490565b34801561064457600080fd5b5061045b610653366004612686565b610d54565b34801561066457600080fd5b50610390610dd0565b34801561067957600080fd5b5061045b6106883660046126ee565b610e0d565b34801561069957600080fd5b5061045b6106a8366004612669565b610e62565b3480156106b957600080fd5b5061045b6106c8366004612669565b610ead565b3480156106d957600080fd5b5061045b6106e8366004612669565b610eea565b3480156106f957600080fd5b5061045b610f36565b34801561070e57600080fd5b50600554610404906001600160a01b031681565b34801561072e57600080fd5b5061045b61073d366004612727565b610f73565b34801561074e57600080fd5b5061035a610fb9565b34801561076357600080fd5b5061045b6107723660046126ee565b610fc8565b34801561078357600080fd5b5061039061079236600461263d565b6110a3565b3480156107a357600080fd5b506103906107b2366004612669565b60126020526000908152604090205460ff1681565b3480156107d357600080fd5b5061045b6107e236600461275a565b6110b1565b3480156107f357600080fd5b50600a5461039090610100900460ff1681565b34801561081257600080fd5b5061045b61082136600461281f565b611139565b34801561083257600080fd5b5061045b6108413660046126ee565b6112a1565b34801561085257600080fd5b5061045b610861366004612686565b61132a565b34801561087257600080fd5b5061042d60075481565b34801561088857600080fd5b506014546103909060ff1681565b3480156108a257600080fd5b5061042d600e5481565b3480156108b857600080fd5b506103906108c7366004612686565b6113fb565b3480156108d857600080fd5b5061042d6108e736600461281f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561091e57600080fd5b5061045b61092d366004612669565b611552565b34801561093e57600080fd5b5061042d60085481565b34801561095457600080fd5b5061045b610963366004612686565b6116c6565b34801561097457600080fd5b5061045b611746565b34801561098957600080fd5b5061045b610998366004612669565b6117e8565b3480156109a957600080fd5b5061042d60095481565b3480156109bf57600080fd5b5061035a61185e565b3480156109d457600080fd5b506103906109e3366004612669565b6001600160a01b03166000908152600b602052604090205460ff1690565b606060038054610a109061284d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3c9061284d565b8015610a895780601f10610a5e57610100808354040283529160200191610a89565b820191906000526020600020905b815481529060010190602001808311610a6c57829003601f168201915b5050505050905090565b600033610aa181858561187e565b60019150505b92915050565b6005546001600160a01b03163314610ae05760405162461bcd60e51b8152600401610ad790612887565b60405180910390fd5b670de0b6b3a76400006103e8610af560025490565b610b009060056128c3565b610b0a91906128da565b610b1491906128da565b811015610b7b5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e352560881b6064820152608401610ad7565b610b8d81670de0b6b3a76400006128c3565b60075550565b600033610ba1858285611890565b610bac858585611908565b506001949350505050565b6005546001600160a01b03163314610be15760405162461bcd60e51b8152600401610ad790612887565b6040516370a0823160e01b815230600482018190526000916370a0823190602401602060405180830381865afa158015610c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4391906128fc565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303816000875af1158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190612915565b5060405133904780156108fc02916000818181858888f19350505050158015610cdb573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610d095760405162461bcd60e51b8152600401610ad790612887565b6014805460ff19169055565b6005546001600160a01b03163314610d3f5760405162461bcd60e51b8152600401610ad790612887565b600a805463ff00000019166301000000179055565b6005546001600160a01b03163314610d7e5760405162461bcd60e51b8152600401610ad790612887565b600c8190556005811115610dcd5760405162461bcd60e51b8152602060048201526016602482015275213abc903332b2b99036bab9ba103132901e1e901a9760511b6044820152606401610ad7565b50565b6005546000906001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610ad790612887565b50600a805460ff19169055600190565b6005546001600160a01b03163314610e375760405162461bcd60e51b8152600401610ad790612887565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e8c5760405162461bcd60e51b8152600401610ad790612887565b6001600160a01b03166000908152600b60205260409020805460ff19169055565b6005546001600160a01b03163314610ed75760405162461bcd60e51b8152600401610ad790612887565b610dcd6001600160a01b03821647611967565b6005546001600160a01b03163314610f145760405162461bcd60e51b8152600401610ad790612887565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f605760405162461bcd60e51b8152600401610ad790612887565b600a805462ffff00191662010100179055565b6005546001600160a01b03163314610f9d5760405162461bcd60e51b8152600401610ad790612887565b600a8054911515620100000262ff000019909216919091179055565b606060048054610a109061284d565b6005546001600160a01b03163314610ff25760405162461bcd60e51b8152600401610ad790612887565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110995760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610ad7565b610cdb82826119b8565b600033610aa1818585611908565b6005546001600160a01b031633146110db5760405162461bcd60e51b8152600401610ad790612887565b60005b8151811015610cdb576001601360008484815181106110ff576110ff612932565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016110de565b6005546001600160a01b031633146111635760405162461bcd60e51b8152600401610ad790612887565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610ad7565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122491906128fc565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015611277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129b9190612915565b50505050565b6005546001600160a01b031633146112cb5760405162461bcd60e51b8152600401610ad790612887565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113545760405162461bcd60e51b8152600401610ad790612887565b670de0b6b3a76400006103e861136960025490565b61137490600a6128c3565b61137e91906128da565b61138891906128da565b8110156113e35760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263312e302560e01b6064820152608401610ad7565b6113f581670de0b6b3a76400006128c3565b60095550565b6005546000906001600160a01b031633146114285760405162461bcd60e51b8152600401610ad790612887565b620186a061143560025490565b6114409060016128c3565b61144a91906128da565b8210156114b75760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610ad7565b6103e86114c360025490565b6114ce9060056128c3565b6114d891906128da565b8211156115445760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610ad7565b50600881905560015b919050565b6005546001600160a01b0316331461157c5760405162461bcd60e51b8152600401610ad790612887565b600a546301000000900460ff16156115e05760405162461bcd60e51b815260206004820152602160248201527f5465616d20686173207265766f6b656420626c61636b6c6973742072696768746044820152607360f81b6064820152608401610ad7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161415801561163f57506001600160a01b03811673c532a74256d3db42d0bf7a0400fefdbad769400814155b6116a25760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f7420626c61636b6c69737420746f6b656e277320763220726f757460448201526d32b91037b9103b19103837b7b61760911b6064820152608401610ad7565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6005546001600160a01b031633146116f05760405162461bcd60e51b8152600401610ad790612887565b600d8190556005811115610dcd5760405162461bcd60e51b815260206004820152601760248201527f53656c6c2066656573206d757374206265203c3d20352e0000000000000000006044820152606401610ad7565b6005546001600160a01b031633146117705760405162461bcd60e51b8152600401610ad790612887565b60006005600f546117819190612948565b116117ce5760405162461bcd60e51b815260206004820152601f60248201527f54617820726174652063616e6e6f74206265206c6f776572207468616e2030006044820152606401610ad7565b6005600f60008282546117e19190612948565b9091555050565b6005546001600160a01b031633146118125760405162461bcd60e51b8152600401610ad790612887565b600580546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b60606040518060c0016040528060a081526020016129ff60a09139905090565b61188b8383836001611a0c565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461129b57818110156118f957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610ad7565b61129b84848484036000611a0c565b6001600160a01b03831661193257604051634b637e8f60e11b815260006004820152602401610ad7565b6001600160a01b03821661195c5760405163ec442f0560e01b815260006004820152602401610ad7565b61188b838383611ae1565b600080600080600085875af190508061188b5760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610ad7565b6001600160a01b038216600081815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038416611a365760405163e602df0560e01b815260006004820152602401610ad7565b6001600160a01b038316611a6057604051634a1406b160e11b815260006004820152602401610ad7565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561129b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611ad391815260200190565b60405180910390a350505050565b6001600160a01b038216611b435760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ad7565b6001600160a01b0383166000908152600b602052604090205460ff1615611ba15760405162461bcd60e51b815260206004820152601260248201527114d95b99195c88189b1858dadb1a5cdd195960721b6044820152606401610ad7565b6001600160a01b0382166000908152600b602052604090205460ff1615611c015760405162461bcd60e51b8152602060048201526014602482015273149958d95a5d995c88189b1858dadb1a5cdd195960621b6044820152606401610ad7565b80600003611c155761188b83836000612258565b600a5460ff1615611f8b576005546001600160a01b03848116911614801590611c4c57506005546001600160a01b03838116911614155b8015611c6057506001600160a01b03821615155b8015611c7757506001600160a01b03821661dead14155b8015611c8d5750600554600160a01b900460ff16155b15611f8b57600a54610100900460ff16611d25576001600160a01b03831660009081526010602052604090205460ff1680611ce057506001600160a01b03821660009081526010602052604090205460ff165b611d255760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610ad7565b6001600160a01b03831660009081526012602052604090205460ff168015611d6657506001600160a01b03821660009081526011602052604090205460ff16155b15611e4a57600754811115611ddb5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610ad7565b6009546001600160a01b038316600090815260208190526040902054611e01908361295b565b1115611e455760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610ad7565b611f8b565b6001600160a01b03821660009081526012602052604090205460ff168015611e8b57506001600160a01b03831660009081526011602052604090205460ff16155b15611f0157600754811115611e455760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610ad7565b6001600160a01b03821660009081526011602052604090205460ff16611f8b576009546001600160a01b038316600090815260208190526040902054611f47908361295b565b1115611f8b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610ad7565b3060009081526020819052604090205460085481108015908190611fb75750600a5462010000900460ff165b8015611fcd5750600554600160a01b900460ff16155b8015611ff257506001600160a01b03851660009081526012602052604090205460ff16155b801561201757506001600160a01b03851660009081526010602052604090205460ff16155b801561203c57506001600160a01b03841660009081526010602052604090205460ff16155b1561206a576005805460ff60a01b1916600160a01b17905561205c612382565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526010602052604090205460ff600160a01b9092048216159116806120b857506001600160a01b03851660009081526010602052604090205460ff165b156120c1575060005b60008115612244576001600160a01b0380871660009081526012602052604080822054928a16825290205460ff918216911681801561210257506000600d54115b15612146576121276064612121600d548a6123ef90919063ffffffff16565b90612402565b925082600e600082825461213b919061295b565b9091555061218e9050565b80801561215557506000600c54115b1561218e576121746064612121600c548a6123ef90919063ffffffff16565b925082600e6000828254612188919061295b565b90915550505b60145460ff1615612224578080156121bf57506001600160a01b03881660009081526013602052604090205460ff16155b806121eb57508180156121eb57506001600160a01b03891660009081526013602052604090205460ff16155b156122245761220a6064612121600f548a6123ef90919063ffffffff16565b925082600e600082825461221e919061295b565b90915550505b821561223557612235893085612258565b61223f8388612948565b965050505b61224f878787612258565b50505050505050565b6001600160a01b038316612283578060026000828254612278919061295b565b909155506122f59050565b6001600160a01b038316600090815260208190526040902054818110156122d65760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610ad7565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661231157600280548290039055612330565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161237591815260200190565b60405180910390a3505050565b30600090815260208190526040902054600e548115806123a0575080155b156123a9575050565b6008546123b79060146128c3565b8211156123cf576008546123cc9060146128c3565b91505b816123d98161240e565b60065461188b906001600160a01b031647611967565b60006123fb82846128c3565b9392505050565b60006123fb82846128da565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061244357612443612932565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e5919061296e565b816001815181106124f8576124f8612932565b60200260200101906001600160a01b031690816001600160a01b031681525050612543307f00000000000000000000000000000000000000000000000000000000000000008461187e565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061259890859060009086903090429060040161298b565b600060405180830381600087803b1580156125b257600080fd5b505af11580156125c6573d6000803e3d6000fd5b505050505050565b60006020808352835180602085015260005b818110156125fc578581018301518582016040015282016125e0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dcd57600080fd5b803561154d8161261d565b6000806040838503121561265057600080fd5b823561265b8161261d565b946020939093013593505050565b60006020828403121561267b57600080fd5b81356123fb8161261d565b60006020828403121561269857600080fd5b5035919050565b6000806000606084860312156126b457600080fd5b83356126bf8161261d565b925060208401356126cf8161261d565b929592945050506040919091013590565b8015158114610dcd57600080fd5b6000806040838503121561270157600080fd5b823561270c8161261d565b9150602083013561271c816126e0565b809150509250929050565b60006020828403121561273957600080fd5b81356123fb816126e0565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561276d57600080fd5b823567ffffffffffffffff8082111561278557600080fd5b818501915085601f83011261279957600080fd5b8135818111156127ab576127ab612744565b8060051b604051601f19603f830116810181811085821117156127d0576127d0612744565b6040529182528482019250838101850191888311156127ee57600080fd5b938501935b828510156128135761280485612632565b845293850193928501926127f3565b98975050505050505050565b6000806040838503121561283257600080fd5b823561283d8161261d565b9150602083013561271c8161261d565b600181811c9082168061286157607f821691505b60208210810361288157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610aa757610aa76128ad565b6000826128f757634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561290e57600080fd5b5051919050565b60006020828403121561292757600080fd5b81516123fb816126e0565b634e487b7160e01b600052603260045260246000fd5b81810381811115610aa757610aa76128ad565b80820180821115610aa757610aa76128ad565b60006020828403121561298057600080fd5b81516123fb8161261d565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156129dd5784516001600160a01b0316835293830193918301916001016129b8565b50506001600160a01b0396909616606085015250505060800152939250505056fe54686520646576656c6f7065727320626568696e6420626173652063726166742061726520726574617264656420616e64207465737420696e2070726f642c20646f206e6f74207370656e64206d6f6e6579206f6e207468697320756e6c65737320796f752061726520676f696e6720746f20706c6179207468652067616d652c2065766572797468696e6720696e2063727970746f206973207269736b792ea2646970667358221220c1a914226293c79d4529a271b6b891a32614083a28cf1867c9ad03b39809e3d264736f6c63430008180033