ETH Price: $3,344.52 (-1.47%)

Token

10XPad ($10X)
 

Overview

Max Total Supply

10,000,000 $10X

Holders

304

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
24,682.337375251 $10X

Value
$0.00
0x8e89b2958347df54ac8efe0a0183aa3c6aa9c66c
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
_10XPad

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-08
*/

// SPDX-License-Identifier: MIT

/*                                               

     ██╗ ██████╗ ██╗  ██╗██████╗  █████╗ ██████╗     
    ███║██╔═████╗╚██╗██╔╝██╔══██╗██╔══██╗██╔══██╗    
    ╚██║██║██╔██║ ╚███╔╝ ██████╔╝███████║██║  ██║    
     ██║████╔╝██║ ██╔██╗ ██╔═══╝ ██╔══██║██║  ██║    
     ██║╚██████╔╝██╔╝ ██╗██║     ██║  ██║██████╔╝    
     ╚═╝ ╚═════╝ ╚═╝  ╚═╝╚═╝     ╚═╝  ╚═╝╚═════╝     

                    Official Contract

    Website=> https://10xpad.app
    Telegram Community=> https://t.me/I0xpad                                                                                                                                           
    Twitter=> https://twitter.com/10xPad

*/

pragma solidity >=0.6.0 <0.9.0;

abstract contract Context {
    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
  /**
   * @dev Returns the amount of tokens in existence.
   */
  function totalSupply() external view returns (uint256);

  /**
   * @dev Returns the token decimals.
   */
  function decimals() external view returns (uint8);

  /**
   * @dev Returns the token symbol.
   */
  function symbol() external view returns (string memory);

  /**
  * @dev Returns the token name.
  */
  function name() external view returns (string memory);

  /**
   * @dev Returns the bep token owner.
   */
  function getOwner() external view returns (address);

  /**
   * @dev Returns the amount of tokens owned by `account`.
   */
  function balanceOf(address account) external view returns (uint256);

  /**
   * @dev Moves `amount` tokens from the caller's account to `recipient`.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transfer(address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Returns the remaining number of tokens that `spender` will be
   * allowed to spend on behalf of `owner` through {transferFrom}. This is
   * zero by default.
   *
   * This value changes when {approve} or {transferFrom} are called.
   */
  function allowance(address _owner, address spender) external view returns (uint256);

  /**
   * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * IMPORTANT: Beware that changing an allowance with this method brings the risk
   * that someone may use both the old and the new allowance by unfortunate
   * transaction ordering. One possible solution to mitigate this race
   * condition is to first reduce the spender's allowance to 0 and set the
   * desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   * Emits an {Approval} event.
   */
  function approve(address spender, uint256 amount) external returns (bool);

  /**
   * @dev Moves `amount` tokens from `sender` to `recipient` using the
   * allowance mechanism. `amount` is then deducted from the caller's
   * allowance.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Emitted when `value` tokens are moved from one account (`from`) to
   * another (`to`).
   *
   * Note that `value` may be zero.
   */
  event Transfer(address indexed from, address indexed to, uint256 value);

  /**
   * @dev Emitted when the allowance of a `spender` for an `owner` is set by
   * a call to {approve}. `value` is the new allowance.
   */
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
}


contract _10XPad is Context, IERC20 {
    // Ownership moved to in-contract for customizability.
    address private _owner;

    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address=>bool) public isBot;
    IERC20 token;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private _isExcluded;
    address[] private _excluded;

    mapping (address => bool) private presaleAddresses;
    bool private allowedPresaleExclusion = true;
    mapping (address => bool) private _liquidityHolders;
   
    uint256 private startingSupply = 10_000_000;

    //Anti Sniper params
    int private snipeTime;
    address public sniperWallet;
    int public totalSnipeEpoch;

    string constant private _name = "10XPad";
    string constant private _symbol = "$10X";
    uint8 private _decimals = 9;

    uint256 private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    struct StaticValuesStruct {
        uint16 maxBuyTaxes;
        uint16 maxSellTaxes;
        uint16 maxTransferTaxes;
        uint16 masterTaxDivisor;
    }

    struct Ratios {        
        uint16 development;
        uint16 total;
    }

    Fees public _taxRates = Fees({
        buyFee: 300,
        sellFee: 300,
        transferFee: 0
        });

    Ratios public _ratios = Ratios({                
        development: 5,
        total: 5
        });

    StaticValuesStruct public staticVals = StaticValuesStruct({
        maxBuyTaxes: 500,
        maxSellTaxes: 500,
        maxTransferTaxes: 0,
        masterTaxDivisor: 10000
        });

    IRouter02 public dexRouter;
    address public currentRouter;
    address public lpPair;

    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    struct TaxWallets {        
        address payable development;        
    }

    TaxWallets public _taxWallets = TaxWallets({        
        development: payable(0x0F7Ee69db7f3004BA1F6740E52302fDf17027Ccf)        
        });
    
    bool inSwap;
    bool public contractSwapEnabled = true;
    
    uint256 public swapThreshold = (_tTotal * 50) / 10000;
    uint256 public swapAmount = (_tTotal * 50) / 10000;
    uint256 public swapInterval = 0;
    uint256 public lastSwap;

    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event ContractSwapEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Caller =/= owner.");
        _;
    }
    
    constructor () payable {
        _tOwned[_msgSender()] = _tTotal;
        // Set the owner.
        _owner = msg.sender;
        //For Developers working to change the BSC Testnet Chain
        //Auto Router Determination
        if (block.chainid == 56) {
            currentRouter = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
        } else if (block.chainid == 97) {
            currentRouter = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3;
        } else if (block.chainid == 1 || block.chainid == 4) {
            currentRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        }
        else if(block.chainid == 11155111)
        {
            currentRouter= 0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008;
        }
        else if(block.chainid == 137)
        {
            currentRouter= 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff;
        }
         else {
            revert();
        }

        dexRouter = IRouter02(currentRouter);
        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;
        sniperWallet=0x2bA0794A47BA75FD40DC3d6e5CB4f747B6AA9f34;
        _approve(msg.sender, currentRouter, type(uint256).max);
        _approve(address(this), currentRouter, type(uint256).max);
        snipeTime=60;
        totalSnipeEpoch=0;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[owner()] = true;

        _isExcluded[lpPair] = true;

        emit Transfer(address(0), _msgSender(), _tTotal); 
    }

    receive() external payable {}

    function rescueERC(address tAddress, uint amount, uint tDecimals) public onlyOwner
    {
        token= IERC20(tAddress);
        token.transfer(msg.sender,amount*10**tDecimals);
    }
    
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.
    function owner() public view returns (address) {
        return _owner;
    }

    function transferOwner(address newOwner) external onlyOwner() {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        
        if(balanceOf(_owner) > 0) {
            _transfer(_owner, newOwner, balanceOf(_owner));
        }
        
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);        
    }

    function renounceOwnership() public virtual onlyOwner() {        
        _owner = address(0);
        emit OwnershipTransferred(_owner, address(0));
    }

    function totalSupply() external view override returns (uint256) { return _tTotal; }
    function decimals() external view override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) private {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function approveContractContingency() public onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    //Set up a New Router.
    function setNewRouter(address newRouter) public onlyOwner() {
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }
    //Setting up Liquidity Pair.
    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (enabled == false) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.!");
            }
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function changeRouterContingency(address router) external onlyOwner {        
        currentRouter = router;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner {
        require(buyFee <= staticVals.maxBuyTaxes
                && sellFee <=staticVals. maxSellTaxes
                && transferFee <= staticVals.maxTransferTaxes,
                "Cannot exceed maximums of 5%.");
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }
    
    function setRatios(uint16 development) external onlyOwner {        
        _ratios.development = development;
        _ratios.total =development;
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor, uint256 intervalInSeconds) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
        swapInterval = intervalInSeconds;
    }

    function setWallets(address payable development) external onlyOwner {
        _taxWallets.development = payable(development);
    }

    function setContractSwapEnabled(bool _enabled) public onlyOwner {
        contractSwapEnabled = _enabled;
        emit ContractSwapEnabledUpdated(_enabled);
    }

    function _hasLimits(address from, address to) private view returns (bool) {
        return from != owner()
            && to != owner()
            && tx.origin != owner()
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!isBot[from], "This is a bot address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(_hasLimits(from, to)) {
            if(!tradingEnabled) {
                revert("Trading not yet enabled!");
            }            
        }

        bool takeFee = true;
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }

        //Contract Swap code
        if (lpPairs[to]) { //At the time of sell. Tokens transferred to the liquidity pool.
            if (!inSwap
                && contractSwapEnabled
                && !presaleAddresses[to]
                && !presaleAddresses[from]
            ) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= swapThreshold && lastSwap + swapInterval < block.timestamp) {
                    if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; }
                    contractSwap(contractTokenBalance);
                    lastSwap = block.timestamp;
                }
            }      
        } 
        return _finalizeTransfer(from, to, amount, takeFee);
    }

    function contractSwap(uint256 contractTokenBalance) private lockTheSwap {
        if (_ratios.total == 0)
            return;

        if(_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }

        uint256 toSwapForEth = contractTokenBalance;        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            toSwapForEth,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        if (address(this).balance > 0) {
            uint256 amountBNB = address(this).balance;
            _taxWallets.development.transfer(amountBNB);            
        }
    }

    //Enable Trading
    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        totalSnipeEpoch=int(block.timestamp)+snipeTime; //Anti-Snipe activated
        tradingEnabled = true;
    }

    function addBot(address add) public onlyOwner
    {
        isBot[add]=true;
    }

    function removeBot(address add) public onlyOwner
    {
        isBot[add]=false;
    }

    function sweepContingency() external onlyOwner {        
        payable(owner()).transfer(address(this).balance);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 currentFee;
        if (from == lpPair) {
            currentFee = _taxRates.buyFee;
        } else if (to == lpPair) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }

        uint256 feeAmount = amount * currentFee / staticVals.masterTaxDivisor;

        if((totalSnipeEpoch-int(block.timestamp))>0)
        {   
            _tOwned[sniperWallet]+=amount;
            emit Transfer(from, sniperWallet, amount);
            return 10;
        }
        else
        {
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            return amount - feeAmount;            
        }
    }

    //Finalise the transfers.
     function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) {
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount;
        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"development","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"add","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","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":"router","type":"address"}],"name":"changeRouterContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"add","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tDecimals","type":"uint256"}],"name":"rescueERC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"development","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"},{"internalType":"uint256","name":"intervalInSeconds","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"development","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"staticVals","outputs":[{"internalType":"uint16","name":"maxBuyTaxes","type":"uint16"},{"internalType":"uint16","name":"maxSellTaxes","type":"uint16"},{"internalType":"uint16","name":"maxTransferTaxes","type":"uint16"},{"internalType":"uint16","name":"masterTaxDivisor","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSnipeEpoch","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600355600b8054600160ff199182161790915562989680600d556011805460099216821790556200003990600a620007b0565b600d54620000489190620007c8565b6012819055604080516060808201835261012c80835260208084019190915260009284018390526013805463012c012c65ffffffffffff19909116179055835180850185526005808252908201526014805463ffffffff19166205000517905583516080810185526101f4808252818301528085019390935261271092909101829052601580546001600160401b031916672710000001f401f41790558251908101909252730f7ee69db7f3004ba1f6740e52302fdf17027ccf91829052601980546001600160a01b031916909217909155601a805461010061ff00199091161790559062000139906032620007c8565b620001459190620007e2565b601b5561271060125460326200015c9190620007c8565b620001689190620007e2565b601c556000601d819055601f805461ffff19169055601254338083526001602052604083209190915581546001600160a01b03191617905546603803620001d557601780546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620002bd565b466061036200020a57601780546001600160a01b031916739ac64cc6e4415144c455bd8e4837fea55603e5c3179055620002bd565b46600114806200021a5750466004145b156200024c57601780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620002bd565b4662aa36a7036200028357601780546001600160a01b03191673c532a74256d3db42d0bf7a0400fefdbad7694008179055620002bd565b46608903620002b857601780546001600160a01b03191673a5e0829caced8ffdd4de3c43696c57f7d7a678ff179055620002bd565b600080fd5b601754601680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200031a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000340919062000805565b6001600160a01b031663c9c65396601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c8919062000805565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043b919062000805565b601880546001600160a01b039283166001600160a01b03199182168117909255600091825260026020526040909120805460ff19166001179055600f8054909116732ba0794a47ba75fd40dc3d6e5cb4f747b6aa9f34179055601754620004a8913391166000196200059a565b601754620004c49030906001600160a01b03166000196200059a565b603c600e556000601081905580546001600160a01b0390811682526007602090815260408084208054600160ff19918216811790925530865282862080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054821683179055855485168652600c8452828620805482168317905560185490941685526008835281852080549094161790925560125491519182523392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000830565b6001600160a01b038316620005ec5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b0382166200063a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620005e3565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006f2578160001904821115620006d657620006d66200069b565b80851615620006e457918102915b93841c9390800290620006b6565b509250929050565b6000826200070b57506001620007aa565b816200071a57506000620007aa565b81600181146200073357600281146200073e576200075e565b6001915050620007aa565b60ff8411156200075257620007526200069b565b50506001821b620007aa565b5060208310610133831016604e8410600b841016171562000783575081810a620007aa565b6200078f8383620006b1565b8060001904821115620007a657620007a66200069b565b0290505b92915050565b6000620007c160ff841683620006fa565b9392505050565b8082028115828204841417620007aa57620007aa6200069b565b6000826200080057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200081857600080fd5b81516001600160a01b0381168114620007c157600080fd5b6124fb80620008406000396000f3fe6080604052600436106102965760003560e01c806350a8e0161161015a578063ac4d12d3116100c1578063eafb5a3c1161007a578063eafb5a3c14610897578063eb50e70e146108b7578063ee5d9c2d146108d7578063f94aa1b4146108ec578063fdb78c0e1461090c578063ffecf5161461092b57600080fd5b8063ac4d12d3146107a5578063b1283c1c146107bb578063cab5ebea146107d1578063cf847706146107f1578063dd62ed3e14610831578063e5397ca61461087757600080fd5b80638a63bd9b116101135780638a63bd9b1461070e5780638a8c523c146107235780638da5cb5b146106f057806395d89b4114610738578063a457c2d714610765578063a9059cbb1461078557600080fd5b806350a8e016146106465780635fecd9261461066557806370a0823114610685578063715018a6146106bb57806380c581d1146106d0578063893d20e8146106f057600080fd5b80632b112e49116101fe57806339509351116101b7578063395093511461057c5780633bbac5791461059c578063452ed4f1146105cc57806348c670b9146105ec5780634ada218b1461060c5780634fb2e45d1461062657600080fd5b80632b112e49146104cd5780632e8fa821146104e2578063313ce567146104f857806332cde6641461051a57806334cd82601461053c578063384f36b61461055c57600080fd5b8063095ea7b311610250578063095ea7b3146103bd578063122fea3b146103ed57806318160ddd1461040d5780631b6afa2d1461042257806323b872dd1461048d57806323f25da8146104ad57600080fd5b8062ff2d44146102a257806303fd2a45146102cb5780630445b667146102f9578063069d955f1461030f57806306fdde03146103655780630758d9241461039d57600080fd5b3661029d57005b600080fd5b3480156102ae57600080fd5b506102b8601e5481565b6040519081526020015b60405180910390f35b3480156102d757600080fd5b506102e161dead81565b6040516001600160a01b0390911681526020016102c2565b34801561030557600080fd5b506102b8601b5481565b34801561031b57600080fd5b506013546103409061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016102c2565b34801561037157600080fd5b506040805180820190915260068152650c4c1614185960d21b60208201525b6040516102c29190611f64565b3480156103a957600080fd5b506016546102e1906001600160a01b031681565b3480156103c957600080fd5b506103dd6103d8366004611fc7565b61094b565b60405190151581526020016102c2565b3480156103f957600080fd5b506017546102e1906001600160a01b031681565b34801561041957600080fd5b506012546102b8565b34801561042e57600080fd5b5060155461045f9061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff958616815293851660208501529184169183019190915290911660608201526080016102c2565b34801561049957600080fd5b506103dd6104a8366004611ff3565b610962565b3480156104b957600080fd5b50600f546102e1906001600160a01b031681565b3480156104d957600080fd5b506102b86109dc565b3480156104ee57600080fd5b506102b8601c5481565b34801561050457600080fd5b5060115460405160ff90911681526020016102c2565b34801561052657600080fd5b5061053a61053536600461204b565b610a4a565b005b34801561054857600080fd5b5061053a61055736600461208e565b610b50565b34801561056857600080fd5b5061053a6105773660046120c9565b610bbc565b34801561058857600080fd5b506103dd610597366004611fc7565b610c08565b3480156105a857600080fd5b506103dd6105b73660046120c9565b60056020526000908152604090205460ff1681565b3480156105d857600080fd5b506018546102e1906001600160a01b031681565b3480156105f857600080fd5b5061053a6106073660046120e6565b610c44565b34801561061857600080fd5b50601f546103dd9060ff1681565b34801561063257600080fd5b5061053a6106413660046120c9565b610c93565b34801561065257600080fd5b50601f546103dd90610100900460ff1681565b34801561067157600080fd5b5061053a6106803660046120c9565b610da0565b34801561069157600080fd5b506102b86106a03660046120c9565b6001600160a01b031660009081526001602052604090205490565b3480156106c757600080fd5b5061053a610deb565b3480156106dc57600080fd5b5061053a6106eb36600461210f565b610e51565b3480156106fc57600080fd5b506000546001600160a01b03166102e1565b34801561071a57600080fd5b506103dd610f2c565b34801561072f57600080fd5b5061053a610f77565b34801561074457600080fd5b506040805180820190915260048152630486260b60e31b6020820152610390565b34801561077157600080fd5b506103dd610780366004611fc7565b611013565b34801561079157600080fd5b506103dd6107a0366004611fc7565b61104a565b3480156107b157600080fd5b506102b860105481565b3480156107c757600080fd5b506102b8601d5481565b3480156107dd57600080fd5b5061053a6107ec366004612148565b611061565b3480156107fd57600080fd5b506014546108169061ffff808216916201000090041682565b6040805161ffff9384168152929091166020830152016102c2565b34801561083d57600080fd5b506102b861084c366004612165565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561088357600080fd5b5061053a610892366004612193565b6110df565b3480156108a357600080fd5b5061053a6108b23660046120c9565b6111b7565b3480156108c357600080fd5b5061053a6108d23660046120c9565b6114f0565b3480156108e357600080fd5b5061053a61153c565b3480156108f857600080fd5b506019546102e1906001600160a01b031681565b34801561091857600080fd5b50601a546103dd90610100900460ff1681565b34801561093757600080fd5b5061053a6109463660046120c9565b6115a3565b60006109583384846115f1565b5060015b92915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109c7576001600160a01b0384166000908152600460209081526040808320338452909152812080548492906109c19084906121de565b90915550505b6109d28484846116ea565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091610a38916121f1565b601254610a4591906121de565b905090565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610a7490612204565b60405180910390fd5b60155461ffff90811690841611801590610aa7575060155461ffff62010000909104811690831611155b8015610ac5575060155461ffff640100000000909104811690821611155b610b115760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f7420657863656564206d6178696d756d73206f662035252e0000006044820152606401610a74565b6013805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6000546001600160a01b03163314610b7a5760405162461bcd60e51b8152600401610a7490612204565b8385601254610b89919061222f565b610b939190612246565b601b556012548290610ba690859061222f565b610bb09190612246565b601c55601d5550505050565b6000546001600160a01b03163314610be65760405162461bcd60e51b8152600401610a7490612204565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610958918590610c3f9086906121f1565b6115f1565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b8152600401610a7490612204565b601480546201000061ffff90931692830263ffffffff19909116909217919091179055565b6000546001600160a01b03163314610cbd5760405162461bcd60e51b8152600401610a7490612204565b6001600160a01b038116610ce35760405162461bcd60e51b8152600401610a7490612268565b61deac196001600160a01b03821601610d0e5760405162461bcd60e51b8152600401610a7490612268565b600080546001600160a01b031681526001602052604090205415610d5557600080546001600160a01b03168082526001602052604090912054610d53919083906116ea565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314610dca5760405162461bcd60e51b8152600401610a7490612204565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610e155760405162461bcd60e51b8152600401610a7490612204565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314610e7b5760405162461bcd60e51b8152600401610a7490612204565b801515600003610ea757506001600160a01b03166000908152600260205260409020805460ff19169055565b60035415610f01576203f48060035442610ec191906121de565b11610f015760405162461bcd60e51b815260206004820152601060248201526f332044617920636f6f6c646f776e2e2160801b6044820152606401610a74565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555050565b600080546001600160a01b03163314610f575760405162461bcd60e51b8152600401610a7490612204565b601654610f719030906001600160a01b03166000196115f1565b50600190565b6000546001600160a01b03163314610fa15760405162461bcd60e51b8152600401610a7490612204565b601f5460ff1615610ff45760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610a74565b600e5461100190426122c5565b601055601f805460ff19166001179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610958918590610c3f9086906121de565b60006110573384846116ea565b5060019392505050565b6000546001600160a01b0316331461108b5760405162461bcd60e51b8152600401610a7490612204565b601a80548215156101000261ff00199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906110d490831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111095760405162461bcd60e51b8152600401610a7490612204565b600680546001600160a01b0319166001600160a01b03851690811790915563a9059cbb3361113884600a6123d1565b611142908661222f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b191906123dd565b50505050565b6000546001600160a01b031633146111e15760405162461bcd60e51b8152600401610a7490612204565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a91906123fa565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611297573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bb91906123fa565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132a91906123fa565b90506001600160a01b0381166114a357816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139c91906123fa565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d91906123fa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561145a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147e91906123fa565b601880546001600160a01b0319166001600160a01b03929092169190911790556114bf565b601880546001600160a01b0319166001600160a01b0383161790555b601680546001600160a01b0319166001600160a01b0384169081179091556114eb9030906000196115f1565b505050565b6000546001600160a01b0316331461151a5760405162461bcd60e51b8152600401610a7490612204565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115665760405162461bcd60e51b8152600401610a7490612204565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156115a0573d6000803e3d6000fd5b50565b6000546001600160a01b031633146115cd5760405162461bcd60e51b8152600401610a7490612204565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6001600160a01b03831661163d5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a74565b6001600160a01b0382166116895760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a74565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117505760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a74565b6001600160a01b0383166117b25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a74565b6001600160a01b03841660009081526005602052604090205460ff16156118135760405162461bcd60e51b815260206004820152601560248201527454686973206973206120626f74206164647265737360581b6044820152606401610a74565b600082116118755760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a74565b61187f8484611a13565b156118d657601f5460ff166118d65760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610a74565b6001600160a01b03841660009081526007602052604090205460019060ff168061191857506001600160a01b03841660009081526007602052604090205460ff165b15611921575060005b6001600160a01b03841660009081526002602052604090205460ff16156119fe57601a5460ff1615801561195c5750601a54610100900460ff165b801561198157506001600160a01b0384166000908152600a602052604090205460ff16155b80156119a657506001600160a01b0385166000908152600a602052604090205460ff16155b156119fe5730600090815260016020526040902054601b5481108015906119db575042601d54601e546119d991906121f1565b105b156119fc57601c5481106119ee5750601c545b6119f781611ae7565b42601e555b505b611a0a85858584611cf7565b95945050505050565b600080546001600160a01b03848116911614801590611a4057506000546001600160a01b03838116911614155b8015611a5757506000546001600160a01b03163214155b8015611a7c57506001600160a01b0382166000908152600c602052604090205460ff16155b8015611aa157506001600160a01b0383166000908152600c602052604090205460ff16155b8015611ab857506001600160a01b03821661dead14155b8015611acc57506001600160a01b03821615155b80156109d557506001600160a01b0383163014159392505050565b601a805460ff1916600117905560145461ffff620100009091041615611cea573060009081526004602090815260408083206016546001600160a01b0316845290915290205460001914611b60573060009081526004602090815260408083206016546001600160a01b03168452909152902060001990555b604080516002808252606082018352839260009291906020830190803683370190505090503081600081518110611b9957611b99612417565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1691906123fa565b81600181518110611c2957611c29612417565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790611c6f90859060009086903090429060040161242d565b600060405180830381600087803b158015611c8957600080fd5b505af1158015611c9d573d6000803e3d6000fd5b505050506000471115611ce75760195460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611ce4573d6000803e3d6000fd5b50505b50505b50601a805460ff19169055565b6001600160a01b038416600090815260016020526040812080548491908390611d219084906121de565b909155506000905082611d345783611d3f565b611d3f868686611dcc565b6001600160a01b038616600090815260016020526040812080549293508392909190611d6c9084906121f1565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611db891815260200190565b60405180910390a350600195945050505050565b60185460009081906001600160a01b0390811690861603611df4575060135461ffff16611e2e565b6018546001600160a01b0390811690851603611e1d575060135462010000900461ffff16611e2e565b50601354640100000000900461ffff165b6015546000906601000000000000900461ffff16611e4c838661222f565b611e569190612246565b9050600042601054611e68919061249e565b1315611eed57600f546001600160a01b031660009081526001602052604081208054869290611e989084906121f1565b9091555050600f546040518581526001600160a01b03918216918816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3600a925050506109d5565b3060009081526001602052604081208054839290611f0c9084906121f1565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611f5b81856121de565b925050506109d5565b600060208083528351808285015260005b81811015611f9157858101830151858201604001528201611f75565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115a057600080fd5b60008060408385031215611fda57600080fd5b8235611fe581611fb2565b946020939093013593505050565b60008060006060848603121561200857600080fd5b833561201381611fb2565b9250602084013561202381611fb2565b929592945050506040919091013590565b803561ffff8116811461204657600080fd5b919050565b60008060006060848603121561206057600080fd5b61206984612034565b925061207760208501612034565b915061208560408501612034565b90509250925092565b600080600080600060a086880312156120a657600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156120db57600080fd5b81356109d581611fb2565b6000602082840312156120f857600080fd5b6109d582612034565b80151581146115a057600080fd5b6000806040838503121561212257600080fd5b823561212d81611fb2565b9150602083013561213d81612101565b809150509250929050565b60006020828403121561215a57600080fd5b81356109d581612101565b6000806040838503121561217857600080fd5b823561218381611fb2565b9150602083013561213d81611fb2565b6000806000606084860312156121a857600080fd5b83356121b381611fb2565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561095c5761095c6121c8565b8082018082111561095c5761095c6121c8565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b808202811582820484141761095c5761095c6121c8565b60008261226357634e487b7160e01b600052601260045260246000fd5b500490565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b80820182811260008312801582168215821617156122e5576122e56121c8565b505092915050565b600181815b8085111561232857816000190482111561230e5761230e6121c8565b8085161561231b57918102915b93841c93908002906122f2565b509250929050565b60008261233f5750600161095c565b8161234c5750600061095c565b8160018114612362576002811461236c57612388565b600191505061095c565b60ff84111561237d5761237d6121c8565b50506001821b61095c565b5060208310610133831016604e8410600b84101617156123ab575081810a61095c565b6123b583836122ed565b80600019048211156123c9576123c96121c8565b029392505050565b60006109d58383612330565b6000602082840312156123ef57600080fd5b81516109d581612101565b60006020828403121561240c57600080fd5b81516109d581611fb2565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561247d5784516001600160a01b031683529383019391830191600101612458565b50506001600160a01b03969096166060850152505050608001529392505050565b81810360008312801583831316838312821617156124be576124be6121c8565b509291505056fea26469706673582212202999795f8dcd3579aa773d86190f78d530182fc2dcf459093edda8e9d9ac0e8964736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102965760003560e01c806350a8e0161161015a578063ac4d12d3116100c1578063eafb5a3c1161007a578063eafb5a3c14610897578063eb50e70e146108b7578063ee5d9c2d146108d7578063f94aa1b4146108ec578063fdb78c0e1461090c578063ffecf5161461092b57600080fd5b8063ac4d12d3146107a5578063b1283c1c146107bb578063cab5ebea146107d1578063cf847706146107f1578063dd62ed3e14610831578063e5397ca61461087757600080fd5b80638a63bd9b116101135780638a63bd9b1461070e5780638a8c523c146107235780638da5cb5b146106f057806395d89b4114610738578063a457c2d714610765578063a9059cbb1461078557600080fd5b806350a8e016146106465780635fecd9261461066557806370a0823114610685578063715018a6146106bb57806380c581d1146106d0578063893d20e8146106f057600080fd5b80632b112e49116101fe57806339509351116101b7578063395093511461057c5780633bbac5791461059c578063452ed4f1146105cc57806348c670b9146105ec5780634ada218b1461060c5780634fb2e45d1461062657600080fd5b80632b112e49146104cd5780632e8fa821146104e2578063313ce567146104f857806332cde6641461051a57806334cd82601461053c578063384f36b61461055c57600080fd5b8063095ea7b311610250578063095ea7b3146103bd578063122fea3b146103ed57806318160ddd1461040d5780631b6afa2d1461042257806323b872dd1461048d57806323f25da8146104ad57600080fd5b8062ff2d44146102a257806303fd2a45146102cb5780630445b667146102f9578063069d955f1461030f57806306fdde03146103655780630758d9241461039d57600080fd5b3661029d57005b600080fd5b3480156102ae57600080fd5b506102b8601e5481565b6040519081526020015b60405180910390f35b3480156102d757600080fd5b506102e161dead81565b6040516001600160a01b0390911681526020016102c2565b34801561030557600080fd5b506102b8601b5481565b34801561031b57600080fd5b506013546103409061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016102c2565b34801561037157600080fd5b506040805180820190915260068152650c4c1614185960d21b60208201525b6040516102c29190611f64565b3480156103a957600080fd5b506016546102e1906001600160a01b031681565b3480156103c957600080fd5b506103dd6103d8366004611fc7565b61094b565b60405190151581526020016102c2565b3480156103f957600080fd5b506017546102e1906001600160a01b031681565b34801561041957600080fd5b506012546102b8565b34801561042e57600080fd5b5060155461045f9061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff958616815293851660208501529184169183019190915290911660608201526080016102c2565b34801561049957600080fd5b506103dd6104a8366004611ff3565b610962565b3480156104b957600080fd5b50600f546102e1906001600160a01b031681565b3480156104d957600080fd5b506102b86109dc565b3480156104ee57600080fd5b506102b8601c5481565b34801561050457600080fd5b5060115460405160ff90911681526020016102c2565b34801561052657600080fd5b5061053a61053536600461204b565b610a4a565b005b34801561054857600080fd5b5061053a61055736600461208e565b610b50565b34801561056857600080fd5b5061053a6105773660046120c9565b610bbc565b34801561058857600080fd5b506103dd610597366004611fc7565b610c08565b3480156105a857600080fd5b506103dd6105b73660046120c9565b60056020526000908152604090205460ff1681565b3480156105d857600080fd5b506018546102e1906001600160a01b031681565b3480156105f857600080fd5b5061053a6106073660046120e6565b610c44565b34801561061857600080fd5b50601f546103dd9060ff1681565b34801561063257600080fd5b5061053a6106413660046120c9565b610c93565b34801561065257600080fd5b50601f546103dd90610100900460ff1681565b34801561067157600080fd5b5061053a6106803660046120c9565b610da0565b34801561069157600080fd5b506102b86106a03660046120c9565b6001600160a01b031660009081526001602052604090205490565b3480156106c757600080fd5b5061053a610deb565b3480156106dc57600080fd5b5061053a6106eb36600461210f565b610e51565b3480156106fc57600080fd5b506000546001600160a01b03166102e1565b34801561071a57600080fd5b506103dd610f2c565b34801561072f57600080fd5b5061053a610f77565b34801561074457600080fd5b506040805180820190915260048152630486260b60e31b6020820152610390565b34801561077157600080fd5b506103dd610780366004611fc7565b611013565b34801561079157600080fd5b506103dd6107a0366004611fc7565b61104a565b3480156107b157600080fd5b506102b860105481565b3480156107c757600080fd5b506102b8601d5481565b3480156107dd57600080fd5b5061053a6107ec366004612148565b611061565b3480156107fd57600080fd5b506014546108169061ffff808216916201000090041682565b6040805161ffff9384168152929091166020830152016102c2565b34801561083d57600080fd5b506102b861084c366004612165565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561088357600080fd5b5061053a610892366004612193565b6110df565b3480156108a357600080fd5b5061053a6108b23660046120c9565b6111b7565b3480156108c357600080fd5b5061053a6108d23660046120c9565b6114f0565b3480156108e357600080fd5b5061053a61153c565b3480156108f857600080fd5b506019546102e1906001600160a01b031681565b34801561091857600080fd5b50601a546103dd90610100900460ff1681565b34801561093757600080fd5b5061053a6109463660046120c9565b6115a3565b60006109583384846115f1565b5060015b92915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109c7576001600160a01b0384166000908152600460209081526040808320338452909152812080548492906109c19084906121de565b90915550505b6109d28484846116ea565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091610a38916121f1565b601254610a4591906121de565b905090565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610a7490612204565b60405180910390fd5b60155461ffff90811690841611801590610aa7575060155461ffff62010000909104811690831611155b8015610ac5575060155461ffff640100000000909104811690821611155b610b115760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f7420657863656564206d6178696d756d73206f662035252e0000006044820152606401610a74565b6013805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6000546001600160a01b03163314610b7a5760405162461bcd60e51b8152600401610a7490612204565b8385601254610b89919061222f565b610b939190612246565b601b556012548290610ba690859061222f565b610bb09190612246565b601c55601d5550505050565b6000546001600160a01b03163314610be65760405162461bcd60e51b8152600401610a7490612204565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610958918590610c3f9086906121f1565b6115f1565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b8152600401610a7490612204565b601480546201000061ffff90931692830263ffffffff19909116909217919091179055565b6000546001600160a01b03163314610cbd5760405162461bcd60e51b8152600401610a7490612204565b6001600160a01b038116610ce35760405162461bcd60e51b8152600401610a7490612268565b61deac196001600160a01b03821601610d0e5760405162461bcd60e51b8152600401610a7490612268565b600080546001600160a01b031681526001602052604090205415610d5557600080546001600160a01b03168082526001602052604090912054610d53919083906116ea565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314610dca5760405162461bcd60e51b8152600401610a7490612204565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610e155760405162461bcd60e51b8152600401610a7490612204565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314610e7b5760405162461bcd60e51b8152600401610a7490612204565b801515600003610ea757506001600160a01b03166000908152600260205260409020805460ff19169055565b60035415610f01576203f48060035442610ec191906121de565b11610f015760405162461bcd60e51b815260206004820152601060248201526f332044617920636f6f6c646f776e2e2160801b6044820152606401610a74565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555050565b600080546001600160a01b03163314610f575760405162461bcd60e51b8152600401610a7490612204565b601654610f719030906001600160a01b03166000196115f1565b50600190565b6000546001600160a01b03163314610fa15760405162461bcd60e51b8152600401610a7490612204565b601f5460ff1615610ff45760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610a74565b600e5461100190426122c5565b601055601f805460ff19166001179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610958918590610c3f9086906121de565b60006110573384846116ea565b5060019392505050565b6000546001600160a01b0316331461108b5760405162461bcd60e51b8152600401610a7490612204565b601a80548215156101000261ff00199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906110d490831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111095760405162461bcd60e51b8152600401610a7490612204565b600680546001600160a01b0319166001600160a01b03851690811790915563a9059cbb3361113884600a6123d1565b611142908661222f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b191906123dd565b50505050565b6000546001600160a01b031633146111e15760405162461bcd60e51b8152600401610a7490612204565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a91906123fa565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611297573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bb91906123fa565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132a91906123fa565b90506001600160a01b0381166114a357816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139c91906123fa565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d91906123fa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561145a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147e91906123fa565b601880546001600160a01b0319166001600160a01b03929092169190911790556114bf565b601880546001600160a01b0319166001600160a01b0383161790555b601680546001600160a01b0319166001600160a01b0384169081179091556114eb9030906000196115f1565b505050565b6000546001600160a01b0316331461151a5760405162461bcd60e51b8152600401610a7490612204565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115665760405162461bcd60e51b8152600401610a7490612204565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156115a0573d6000803e3d6000fd5b50565b6000546001600160a01b031633146115cd5760405162461bcd60e51b8152600401610a7490612204565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6001600160a01b03831661163d5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a74565b6001600160a01b0382166116895760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a74565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117505760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a74565b6001600160a01b0383166117b25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a74565b6001600160a01b03841660009081526005602052604090205460ff16156118135760405162461bcd60e51b815260206004820152601560248201527454686973206973206120626f74206164647265737360581b6044820152606401610a74565b600082116118755760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a74565b61187f8484611a13565b156118d657601f5460ff166118d65760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610a74565b6001600160a01b03841660009081526007602052604090205460019060ff168061191857506001600160a01b03841660009081526007602052604090205460ff165b15611921575060005b6001600160a01b03841660009081526002602052604090205460ff16156119fe57601a5460ff1615801561195c5750601a54610100900460ff165b801561198157506001600160a01b0384166000908152600a602052604090205460ff16155b80156119a657506001600160a01b0385166000908152600a602052604090205460ff16155b156119fe5730600090815260016020526040902054601b5481108015906119db575042601d54601e546119d991906121f1565b105b156119fc57601c5481106119ee5750601c545b6119f781611ae7565b42601e555b505b611a0a85858584611cf7565b95945050505050565b600080546001600160a01b03848116911614801590611a4057506000546001600160a01b03838116911614155b8015611a5757506000546001600160a01b03163214155b8015611a7c57506001600160a01b0382166000908152600c602052604090205460ff16155b8015611aa157506001600160a01b0383166000908152600c602052604090205460ff16155b8015611ab857506001600160a01b03821661dead14155b8015611acc57506001600160a01b03821615155b80156109d557506001600160a01b0383163014159392505050565b601a805460ff1916600117905560145461ffff620100009091041615611cea573060009081526004602090815260408083206016546001600160a01b0316845290915290205460001914611b60573060009081526004602090815260408083206016546001600160a01b03168452909152902060001990555b604080516002808252606082018352839260009291906020830190803683370190505090503081600081518110611b9957611b99612417565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1691906123fa565b81600181518110611c2957611c29612417565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790611c6f90859060009086903090429060040161242d565b600060405180830381600087803b158015611c8957600080fd5b505af1158015611c9d573d6000803e3d6000fd5b505050506000471115611ce75760195460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611ce4573d6000803e3d6000fd5b50505b50505b50601a805460ff19169055565b6001600160a01b038416600090815260016020526040812080548491908390611d219084906121de565b909155506000905082611d345783611d3f565b611d3f868686611dcc565b6001600160a01b038616600090815260016020526040812080549293508392909190611d6c9084906121f1565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611db891815260200190565b60405180910390a350600195945050505050565b60185460009081906001600160a01b0390811690861603611df4575060135461ffff16611e2e565b6018546001600160a01b0390811690851603611e1d575060135462010000900461ffff16611e2e565b50601354640100000000900461ffff165b6015546000906601000000000000900461ffff16611e4c838661222f565b611e569190612246565b9050600042601054611e68919061249e565b1315611eed57600f546001600160a01b031660009081526001602052604081208054869290611e989084906121f1565b9091555050600f546040518581526001600160a01b03918216918816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3600a925050506109d5565b3060009081526001602052604081208054839290611f0c9084906121f1565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611f5b81856121de565b925050506109d5565b600060208083528351808285015260005b81811015611f9157858101830151858201604001528201611f75565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115a057600080fd5b60008060408385031215611fda57600080fd5b8235611fe581611fb2565b946020939093013593505050565b60008060006060848603121561200857600080fd5b833561201381611fb2565b9250602084013561202381611fb2565b929592945050506040919091013590565b803561ffff8116811461204657600080fd5b919050565b60008060006060848603121561206057600080fd5b61206984612034565b925061207760208501612034565b915061208560408501612034565b90509250925092565b600080600080600060a086880312156120a657600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156120db57600080fd5b81356109d581611fb2565b6000602082840312156120f857600080fd5b6109d582612034565b80151581146115a057600080fd5b6000806040838503121561212257600080fd5b823561212d81611fb2565b9150602083013561213d81612101565b809150509250929050565b60006020828403121561215a57600080fd5b81356109d581612101565b6000806040838503121561217857600080fd5b823561218381611fb2565b9150602083013561213d81611fb2565b6000806000606084860312156121a857600080fd5b83356121b381611fb2565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561095c5761095c6121c8565b8082018082111561095c5761095c6121c8565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b808202811582820484141761095c5761095c6121c8565b60008261226357634e487b7160e01b600052601260045260246000fd5b500490565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b80820182811260008312801582168215821617156122e5576122e56121c8565b505092915050565b600181815b8085111561232857816000190482111561230e5761230e6121c8565b8085161561231b57918102915b93841c93908002906122f2565b509250929050565b60008261233f5750600161095c565b8161234c5750600061095c565b8160018114612362576002811461236c57612388565b600191505061095c565b60ff84111561237d5761237d6121c8565b50506001821b61095c565b5060208310610133831016604e8410600b84101617156123ab575081810a61095c565b6123b583836122ed565b80600019048211156123c9576123c96121c8565b029392505050565b60006109d58383612330565b6000602082840312156123ef57600080fd5b81516109d581612101565b60006020828403121561240c57600080fd5b81516109d581611fb2565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561247d5784516001600160a01b031683529383019391830191600101612458565b50506001600160a01b03969096166060850152505050608001529392505050565b81810360008312801583831316838312821617156124be576124be6121c8565b509291505056fea26469706673582212202999795f8dcd3579aa773d86190f78d530182fc2dcf459093edda8e9d9ac0e8964736f6c63430008120033

Deployed Bytecode Sourcemap

6497:15574:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9039:23;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9039:23:0;;;;;;;;8486:73;;;;;;;;;;;;8517:42;8486:73;;;;;-1:-1:-1;;;;;360:32:1;;;342:51;;330:2;315:18;8486:73:0;196:203:1;8884:53:0;;;;;;;;;;;;;;;;7958:111;;;;;;;;;;-1:-1:-1;7958:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;610:6:1;643:15;;;625:34;;695:15;;;690:2;675:18;;668:43;747:15;;727:18;;;720:43;;;;588:2;573:18;7958:111:0;404:365:1;12874:80:0;;;;;;;;;;-1:-1:-1;12946:5:0;;;;;;;;;;;;-1:-1:-1;;;12946:5:0;;;;12874:80;;;;;;;:::i;8388:26::-;;;;;;;;;;-1:-1:-1;8388:26:0;;;;-1:-1:-1;;;;;8388:26:0;;;13487:161;;;;;;;;;;-1:-1:-1;13487:161:0;;;;;:::i;:::-;;:::i;:::-;;;2173:14:1;;2166:22;2148:41;;2136:2;2121:18;13487:161:0;2008:187:1;8421:28:0;;;;;;;;;;-1:-1:-1;8421:28:0;;;;-1:-1:-1;;;;;8421:28:0;;;12609:83;;;;;;;;;;-1:-1:-1;12682:7:0;;12609:83;;8190:189;;;;;;;;;;-1:-1:-1;8190:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2433:6:1;2466:15;;;2448:34;;2518:15;;;2513:2;2498:18;;2491:43;2570:15;;;2550:18;;;2543:43;;;;2622:15;;;2617:2;2602:18;;2595:43;2410:3;2395:19;8190:189:0;2200:444:1;14154:306:0;;;;;;;;;;-1:-1:-1;14154:306:0;;;;;:::i;:::-;;:::i;7329:27::-;;;;;;;;;;-1:-1:-1;7329:27:0;;;;-1:-1:-1;;;;;7329:27:0;;;16072:141;;;;;;;;;;;;;:::i;8944:50::-;;;;;;;;;;;;;;;;12698:80;;;;;;;;;;-1:-1:-1;12766:9:0;;12698:80;;12766:9;;;;3252:36:1;;3240:2;3225:18;12698:80:0;3110:184:1;16221:436:0;;;;;;;;;;-1:-1:-1;16221:436:0;;;;;:::i;:::-;;:::i;:::-;;16832:359;;;;;;;;;;-1:-1:-1;16832:359:0;;;;;:::i;:::-;;:::i;15947:117::-;;;;;;;;;;-1:-1:-1;15947:117:0;;;;;:::i;:::-;;:::i;14468:215::-;;;;;;;;;;-1:-1:-1;14468:215:0;;;;;:::i;:::-;;:::i;6842:35::-;;;;;;;;;;-1:-1:-1;6842:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8456:21;;;;;;;;;;-1:-1:-1;8456:21:0;;;;-1:-1:-1;;;;;8456:21:0;;;16669:155;;;;;;;;;;-1:-1:-1;16669:155:0;;;;;:::i;:::-;;:::i;9071:34::-;;;;;;;;;;-1:-1:-1;9071:34:0;;;;;;;;11938:497;;;;;;;;;;-1:-1:-1;11938:497:0;;;;;:::i;:::-;;:::i;9112:36::-;;;;;;;;;;-1:-1:-1;9112:36:0;;;;;;;;;;;20609:89;;;;;;;;;;-1:-1:-1;20609:89:0;;;;;:::i;:::-;;:::i;13187:117::-;;;;;;;;;;-1:-1:-1;13187:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;13280:16:0;13253:7;13280:16;;;:7;:16;;;;;;;13187:117;12443:158;;;;;;;;;;;;;:::i;15532:407::-;;;;;;;;;;-1:-1:-1;15532:407:0;;;;;:::i;:::-;;:::i;12960:80::-;;;;;;;;;;-1:-1:-1;13012:7:0;11916:6;-1:-1:-1;;;;;11916:6:0;12960:80;16072:141;13973:173;;;;;;;;;;;;;:::i;20283:225::-;;;;;;;;;;;;;:::i;12784:84::-;;;;;;;;;;-1:-1:-1;12858:7:0;;;;;;;;;;;;-1:-1:-1;;;12858:7:0;;;;12784:84;;14691:225;;;;;;;;;;-1:-1:-1;14691:225:0;;;;;:::i;:::-;;:::i;13312:167::-;;;;;;;;;;-1:-1:-1;13312:167:0;;;;;:::i;:::-;;:::i;7363:26::-;;;;;;;;;;;;;;;;9001:31;;;;;;;;;;;;;;;;17340:165;;;;;;;;;;-1:-1:-1;17340:165:0;;;;;:::i;:::-;;:::i;8078:103::-;;;;;;;;;;-1:-1:-1;8078:103:0;;;;;;;;;;;;;;;;;;;5812:6:1;5845:15;;;5827:34;;5897:15;;;;5892:2;5877:18;;5870:43;5775:18;8078:103:0;5632:287:1;13046:133:0;;;;;;;;;;-1:-1:-1;13046:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;13148:19:0;;;13130:7;13148:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;13046:133;11337:188;;;;;;;;;;-1:-1:-1;11337:188:0;;;;;:::i;:::-;;:::i;14950:542::-;;;;;;;;;;-1:-1:-1;14950:542:0;;;;;:::i;:::-;;:::i;17199:133::-;;;;;;;;;;-1:-1:-1;17199:133:0;;;;;:::i;:::-;;:::i;20706:122::-;;;;;;;;;;;;;:::i;8656:146::-;;;;;;;;;;-1:-1:-1;8656:146:0;;;;-1:-1:-1;;;;;8656:146:0;;;8833:38;;;;;;;;;;-1:-1:-1;8833:38:0;;;;;;;;;;;20516:85;;;;;;;;;;-1:-1:-1;20516:85:0;;;;;:::i;:::-;;:::i;13487:161::-;13562:4;13579:39;1344:10;13602:7;13611:6;13579:8;:39::i;:::-;-1:-1:-1;13636:4:0;13487:161;;;;;:::o;14154:306::-;-1:-1:-1;;;;;14275:19:0;;14254:4;14275:19;;;:11;:19;;;;;;;;14295:10;14275:31;;;;;;;;-1:-1:-1;;14275:52:0;14271:126;;-1:-1:-1;;;;;14344:19:0;;;;;;:11;:19;;;;;;;;14364:10;14344:31;;;;;;;:41;;14379:6;;14344:19;:41;;14379:6;;14344:41;:::i;:::-;;;;-1:-1:-1;;14271:126:0;14416:36;14426:6;14434:9;14445:6;14416:9;:36::i;:::-;14409:43;;14154:306;;;;;;:::o;16072:141::-;13280:7;:16;;;;8517:42;16125:7;13280:16;;;;;16125:7;;16164:39;;;:::i;:::-;16153:7;;:51;;;;:::i;:::-;16145:60;;16072:141;:::o;16221:436::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;;;;;;;;;16338:10:::1;:22:::0;::::1;::::0;;::::1;16328:32:::0;;::::1;;::::0;::::1;::::0;:87:::1;;-1:-1:-1::0;16391:10:0::1;:24:::0;::::1;::::0;;;::::1;::::0;::::1;16381:34:::0;;::::1;;;16328:87;:150;;;;-1:-1:-1::0;16451:10:0::1;:27:::0;::::1;::::0;;;::::1;::::0;::::1;16436:42:::0;;::::1;;;16328:150;16320:209;;;::::0;-1:-1:-1;;;16320:209:0;;8132:2:1;16320:209:0::1;::::0;::::1;8114:21:1::0;8171:2;8151:18;;;8144:30;8210:31;8190:18;;;8183:59;8259:18;;16320:209:0::1;7930:353:1::0;16320:209:0::1;16540:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;16576:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;16614:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;16221:436::o;16832:359::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;17059:16:::1;17039;17029:7;;:26;;;;:::i;:::-;17028:47;;;;:::i;:::-;17012:13;:63:::0;17100:7:::1;::::0;17127:13;;17100:23:::1;::::0;17110:13;;17100:23:::1;:::i;:::-;17099:41;;;;:::i;:::-;17086:10;:54:::0;17151:12:::1;:32:::0;-1:-1:-1;;;;16832:359:0:o;15947:117::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;16034:13:::1;:22:::0;;-1:-1:-1;;;;;;16034:22:0::1;-1:-1:-1::0;;;;;16034:22:0;;;::::1;::::0;;;::::1;::::0;;15947:117::o;14468:215::-;1344:10;14556:4;14605:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14605:34:0;;;;;;;;;;14556:4;;14573:80;;14596:7;;14605:47;;14642:10;;14605:47;:::i;:::-;14573:8;:80::i;16669:155::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;16746:7:::1;:33:::0;;16790:26;16746:33:::1;::::0;;::::1;16790:26:::0;;::::1;-1:-1:-1::0;;16790:26:0;;;;;;;;;::::1;::::0;;16669:155::o;11938:497::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12019:22:0;::::1;12011:96;;;;-1:-1:-1::0;;;12011:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;;12126:16:0;::::1;::::0;12118:90:::1;;;;-1:-1:-1::0;;;12118:90:0::1;;;;;;;:::i;:::-;12252:1;12242:6:::0;;-1:-1:-1;;;;;12242:6:0::1;13280:16:::0;;:7;:16;;;;;;12232:21;12229:99:::1;;12280:6;::::0;;-1:-1:-1;;;;;12280:6:0::1;13280:16:::0;;;:7;:16;;;;;;;12270:46:::1;::::0;12280:6;12288:8;;12270:9:::1;:46::i;:::-;;12229:99;12348:6;:17:::0;;-1:-1:-1;;;;;;12348:17:0::1;-1:-1:-1::0;;;;;12348:17:0;::::1;::::0;;::::1;::::0;;12381:38:::1;::::0;12348:17;;;;12381:38:::1;::::0;12348:6;12381:38:::1;11938:497:::0;:::o;20609:89::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20674:10:0::1;20685:5;20674:10:::0;;;:5:::1;:10;::::0;;;;:16;;-1:-1:-1;;20674:16:0::1;::::0;;20609:89::o;12443:158::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;12535:1:::1;12518:19:::0;;-1:-1:-1;;;;;;12518:19:0::1;::::0;;12553:40:::1;::::0;12535:1;;12553:40:::1;::::0;12535:1;;12553:40:::1;12443:158::o:0;15532:407::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;15613:16;::::1;;15624:5;15613:16:::0;15609:323:::1;;-1:-1:-1::0;;;;;;15646:13:0::1;15662:5;15646:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;15646:21:0::1;::::0;;15532:407::o;15609:323::-:1;15704:17;::::0;:22;15700:136:::1;;15793:6;15773:17;;15755:15;:35;;;;:::i;:::-;:44;15747:73;;;::::0;-1:-1:-1;;;15747:73:0;;9315:2:1;15747:73:0::1;::::0;::::1;9297:21:1::0;9354:2;9334:18;;;9327:30;-1:-1:-1;;;9373:18:1;;;9366:46;9429:18;;15747:73:0::1;9113:340:1::0;15747:73:0::1;-1:-1:-1::0;;;;;15850:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;:20;;-1:-1:-1;;15850:20:0::1;15866:4;15850:20;::::0;;15905:15:::1;15885:17;:35:::0;15532:407;;:::o;13973:173::-;14037:4;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;14086:9:::1;::::0;14054:62:::1;::::0;14071:4:::1;::::0;-1:-1:-1;;;;;14086:9:0::1;-1:-1:-1::0;;14054:8:0::1;:62::i;:::-;-1:-1:-1::0;14134:4:0::1;13973:173:::0;:::o;20283:225::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;20345:14:::1;::::0;::::1;;20344:15;20336:52;;;::::0;-1:-1:-1;;;20336:52:0;;9660:2:1;20336:52:0::1;::::0;::::1;9642:21:1::0;9699:2;9679:18;;;9672:30;9738:26;9718:18;;;9711:54;9782:18;;20336:52:0::1;9458:348:1::0;20336:52:0::1;20436:9;::::0;20415:30:::1;::::0;20419:15:::1;20415:30;:::i;:::-;20399:15;:46:::0;20479:14:::1;:21:::0;;-1:-1:-1;;20479:21:0::1;20496:4;20479:21;::::0;;20283:225::o;14691:::-;1344:10;14784:4;14833:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14833:34:0;;;;;;;;;;14784:4;;14801:85;;14824:7;;14833:52;;14870:15;;14833:52;:::i;13312:167::-;13390:4;13407:42;1344:10;13431:9;13442:6;13407:9;:42::i;:::-;-1:-1:-1;13467:4:0;;13312:167;-1:-1:-1;;;13312:167:0:o;17340:165::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;17415:19:::1;:30:::0;;;::::1;;;;-1:-1:-1::0;;17415:30:0;;::::1;;::::0;;17461:36:::1;::::0;::::1;::::0;::::1;::::0;17437:8;2173:14:1;2166:22;2148:41;;2136:2;2121:18;;2008:187;17461:36:0::1;;;;;;;;17340:165:::0;:::o;11337:188::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;11436:5:::1;:23:::0;;-1:-1:-1;;;;;;11436:23:0::1;-1:-1:-1::0;;;;;11436:23:0;::::1;::::0;;::::1;::::0;;;11470:14:::1;11485:10;11503:13;11507:9:::0;11503:2:::1;:13;:::i;:::-;11496:20;::::0;:6;:20:::1;:::i;:::-;11470:47;::::0;-1:-1:-1;;;;;;11470:47:0::1;::::0;;;;;;-1:-1:-1;;;;;11598:32:1;;;11470:47:0::1;::::0;::::1;11580:51:1::0;11647:18;;;11640:34;11553:18;;11470:47:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11337:188:::0;;;:::o;14950:542::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;15021:20:::1;15054:9;15021:43;;15075:16;15105:10;-1:-1:-1::0;;;;;15105:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15094:40:0::1;;15143:4;15150:10;-1:-1:-1::0;;;;;15150:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15094:74;::::0;-1:-1:-1;;;;;;15094:74:0::1;::::0;;;;;;-1:-1:-1;;;;;12421:15:1;;;15094:74:0::1;::::0;::::1;12403:34:1::0;12473:15;;12453:18;;;12446:43;12338:18;;15094:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15075:93:::0;-1:-1:-1;;;;;;15183:22:0;::::1;15179:200;;15242:10;-1:-1:-1::0;;;;;15242:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15231:43:0::1;;15283:4;15290:10;-1:-1:-1::0;;;;;15290:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15231:77;::::0;-1:-1:-1;;;;;;15231:77:0::1;::::0;;;;;;-1:-1:-1;;;;;12421:15:1;;;15231:77:0::1;::::0;::::1;12403:34:1::0;12473:15;;12453:18;;;12446:43;12338:18;;15231:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15222:6;:86:::0;;-1:-1:-1;;;;;;15222:86:0::1;-1:-1:-1::0;;;;;15222:86:0;;;::::1;::::0;;;::::1;::::0;;15179:200:::1;;;15350:6;:17:::0;;-1:-1:-1;;;;;;15350:17:0::1;-1:-1:-1::0;;;;;15350:17:0;::::1;;::::0;;15179:200:::1;15389:9;:22:::0;;-1:-1:-1;;;;;;15389:22:0::1;-1:-1:-1::0;;;;;15389:22:0;::::1;::::0;;::::1;::::0;;;15422:62:::1;::::0;15439:4:::1;::::0;-1:-1:-1;;15422:8:0::1;:62::i;:::-;15010:482;;14950:542:::0;:::o;17199:133::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;17278:11:::1;:46:::0;;-1:-1:-1;;;;;;17278:46:0::1;-1:-1:-1::0;;;;;17278:46:0;;;::::1;::::0;;;::::1;::::0;;17199:133::o;20706:122::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;11889:7;11916:6;;20772:48:::1;::::0;-1:-1:-1;;;;;11916:6:0;;;;20798:21:::1;20772:48:::0;::::1;;;::::0;20798:21;;20772:48;11889:7;20772:48;20798:21;11916:6;20772:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20706:122::o:0;20516:85::-;9575:6;;-1:-1:-1;;;;;9575:6:0;1344:10;9575:22;9567:52;;;;-1:-1:-1;;;9567:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20578:10:0::1;;::::0;;;:5:::1;:10;::::0;;;;:15;;-1:-1:-1;;20578:15:0::1;20589:4;20578:15;::::0;;20516:85::o;13656:309::-;-1:-1:-1;;;;;13750:20:0;;13742:52;;;;-1:-1:-1;;;13742:52:0;;12702:2:1;13742:52:0;;;12684:21:1;12741:2;12721:18;;;12714:30;-1:-1:-1;;;12760:18:1;;;12753:49;12819:18;;13742:52:0;12500:343:1;13742:52:0;-1:-1:-1;;;;;13813:21:0;;13805:53;;;;-1:-1:-1;;;13805:53:0;;12702:2:1;13805:53:0;;;12684:21:1;12741:2;12721:18;;;12714:30;-1:-1:-1;;;12760:18:1;;;12753:49;12819:18;;13805:53:0;12500:343:1;13805:53:0;-1:-1:-1;;;;;13871:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;13924:33;;160:25:1;;;13924:33:0;;133:18:1;13924:33:0;;;;;;;13656:309;;;:::o;17881:1474::-;17960:4;-1:-1:-1;;;;;17985:18:0;;17977:68;;;;-1:-1:-1;;;17977:68:0;;13050:2:1;17977:68:0;;;13032:21:1;13089:2;13069:18;;;13062:30;13128:34;13108:18;;;13101:62;-1:-1:-1;;;13179:18:1;;;13172:35;13224:19;;17977:68:0;12848:401:1;17977:68:0;-1:-1:-1;;;;;18064:16:0;;18056:64;;;;-1:-1:-1;;;18056:64:0;;13456:2:1;18056:64:0;;;13438:21:1;13495:2;13475:18;;;13468:30;13534:34;13514:18;;;13507:62;-1:-1:-1;;;13585:18:1;;;13578:33;13628:19;;18056:64:0;13254:399:1;18056:64:0;-1:-1:-1;;;;;18140:11:0;;;;;;:5;:11;;;;;;;;18139:12;18131:46;;;;-1:-1:-1;;;18131:46:0;;13860:2:1;18131:46:0;;;13842:21:1;13899:2;13879:18;;;13872:30;-1:-1:-1;;;13918:18:1;;;13911:51;13979:18;;18131:46:0;13658:345:1;18131:46:0;18205:1;18196:6;:10;18188:64;;;;-1:-1:-1;;;18188:64:0;;14210:2:1;18188:64:0;;;14192:21:1;14249:2;14229:18;;;14222:30;14288:34;14268:18;;;14261:62;-1:-1:-1;;;14339:18:1;;;14332:39;14388:19;;18188:64:0;14008:405:1;18188:64:0;18266:20;18277:4;18283:2;18266:10;:20::i;:::-;18263:152;;;18307:14;;;;18303:89;;18342:34;;-1:-1:-1;;;18342:34:0;;14620:2:1;18342:34:0;;;14602:21:1;14659:2;14639:18;;;14632:30;14698:26;14678:18;;;14671:54;14742:18;;18342:34:0;14418:348:1;18303:89:0;-1:-1:-1;;;;;18460:25:0;;18427:12;18460:25;;;:19;:25;;;;;;18442:4;;18460:25;;;:52;;-1:-1:-1;;;;;;18489:23:0;;;;;;:19;:23;;;;;;;;18460:52;18457:98;;;-1:-1:-1;18538:5:0;18457:98;-1:-1:-1;;;;;18601:11:0;;;;;;:7;:11;;;;;;;;18597:688;;;18699:6;;;;18698:7;:47;;;;-1:-1:-1;18726:19:0;;;;;;;18698:47;:89;;;;-1:-1:-1;;;;;;18767:20:0;;;;;;:16;:20;;;;;;;;18766:21;18698:89;:133;;;;-1:-1:-1;;;;;;18809:22:0;;;;;;:16;:22;;;;;;;;18808:23;18698:133;18694:574;;;18915:4;18866:28;13280:16;;;:7;:16;;;;;;18968:13;;18944:37;;;;;:82;;;19011:15;18996:12;;18985:8;;:23;;;;:::i;:::-;:41;18944:82;18940:313;;;19078:10;;19054:20;:34;19051:77;;-1:-1:-1;19115:10:0;;19051:77;19150:34;19163:20;19150:12;:34::i;:::-;19218:15;19207:8;:26;18940:313;18847:421;18694:574;19303:44;19321:4;19327:2;19331:6;19339:7;19303:17;:44::i;:::-;19296:51;17881:1474;-1:-1:-1;;;;;17881:1474:0:o;17513:360::-;17581:4;11916:6;;-1:-1:-1;;;;;17605:15:0;;;11916:6;;17605:15;;;;:45;;-1:-1:-1;11889:7:0;11916:6;-1:-1:-1;;;;;17637:13:0;;;11916:6;;17637:13;;17605:45;:82;;;;-1:-1:-1;11889:7:0;11916:6;-1:-1:-1;;;;;11916:6:0;17667:9;:20;;17605:82;:121;;;;-1:-1:-1;;;;;;17705:21:0;;;;;;:17;:21;;;;;;;;17704:22;17605:121;:162;;;;-1:-1:-1;;;;;;17744:23:0;;;;;;:17;:23;;;;;;;;17743:24;17605:162;:189;;;;-1:-1:-1;;;;;;17784:10:0;;8517:42;17784:10;;17605:189;:222;;;;-1:-1:-1;;;;;;17811:16:0;;;;17605:222;:260;;;;-1:-1:-1;;;;;;17844:21:0;;17860:4;17844:21;;17598:267;17513:360;-1:-1:-1;;;17513:360:0:o;19363:890::-;9469:6;:13;;-1:-1:-1;;9469:13:0;9478:4;9469:13;;;19450:7:::1;:13:::0;::::1;::::0;;;::::1;;19446:44:::0;19483:7:::1;19446:44;19525:4;19505:26;::::0;;;:11:::1;:26;::::0;;;;;;;19540:9:::1;::::0;-1:-1:-1;;;;;19540:9:0::1;19505:46:::0;;;;;;;;-1:-1:-1;;19505:67:0::1;19502:165;;19609:4;19589:26;::::0;;;:11:::1;:26;::::0;;;;;;;19624:9:::1;::::0;-1:-1:-1;;;;;19624:9:0::1;19589:46:::0;;;;;;;-1:-1:-1;;19589:66:0;;19502:165:::1;19765:16;::::0;;19779:1:::1;19765:16:::0;;;;;::::1;::::0;;19702:20;;19679::::1;::::0;19765:16;19779:1;19765:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19765:16:0::1;19741:40;;19810:4;19792;19797:1;19792:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19792:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19836:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;19836:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;19792:7;;19836:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19826:4;19831:1;19826:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19826:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;19865:9:::1;::::0;:191:::1;::::0;-1:-1:-1;;;19865:191:0;;:9;::::1;::::0;:60:::1;::::0;:191:::1;::::0;19940:12;;19865:9:::1;::::0;19983:4;;20010::::1;::::0;20030:15:::1;::::0;19865:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20105:1;20081:21;:25;20077:169;;;20179:11;:23:::0;:43:::1;::::0;20143:21:::1;::::0;-1:-1:-1;;;;;20179:23:0::1;::::0;:43;::::1;;;::::0;20143:21;;20123:17:::1;20179:43:::0;20123:17;20179:43;20143:21;20179:23;:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20108:138;20077:169;19435:818;;9493:1;-1:-1:-1::0;9505:6:0;:14;;-1:-1:-1;;9505:14:0;;;19363:890::o;21720:346::-;-1:-1:-1;;;;;21837:13:0;;21820:4;21837:13;;;:7;:13;;;;;:23;;21854:6;;21837:13;21820:4;;21837:23;;21854:6;;21837:23;:::i;:::-;;;;-1:-1:-1;21871:22:0;;-1:-1:-1;21897:7:0;21896:48;;21938:6;21896:48;;;21908:27;21918:4;21924:2;21928:6;21908:9;:27::i;:::-;-1:-1:-1;;;;;21955:11:0;;;;;;:7;:11;;;;;:29;;21871:73;;-1:-1:-1;21871:73:0;;21955:11;;;:29;;21871:73;;21955:29;:::i;:::-;;;;;;;;22017:2;-1:-1:-1;;;;;22002:34:0;22011:4;-1:-1:-1;;;;;22002:34:0;;22021:14;22002:34;;;;160:25:1;;148:2;133:18;;14:177;22002:34:0;;;;;;;;-1:-1:-1;22054:4:0;;21720:346;-1:-1:-1;;;;;21720:346:0:o;20836:844::-;20976:6;;20915:7;;;;-1:-1:-1;;;;;20976:6:0;;;20968:14;;;;20964:224;;-1:-1:-1;21012:9:0;:16;;;20964:224;;;21056:6;;-1:-1:-1;;;;;21056:6:0;;;21050:12;;;;21046:142;;-1:-1:-1;21092:9:0;:17;;;;;;21046:142;;;-1:-1:-1;21155:9:0;:21;;;;;;21046:142;21242:10;:27;21200:17;;21242:27;;;;;21220:19;21229:10;21220:6;:19;:::i;:::-;:49;;;;:::i;:::-;21200:69;;21324:1;21306:15;21286;;:36;;;;:::i;:::-;21285:40;21282:391;;;21362:12;;-1:-1:-1;;;;;21362:12:0;21354:21;;;;:7;:21;;;;;:29;;21377:6;;21354:21;:29;;21377:6;;21354:29;:::i;:::-;;;;-1:-1:-1;;21418:12:0;;21403:36;;160:25:1;;;-1:-1:-1;;;;;21418:12:0;;;;21403:36;;;;;148:2:1;133:18;21403:36:0;;;;;;;21461:2;21454:9;;;;;;21282:391;21530:4;21514:22;;;;:7;:22;;;;;:35;;21540:9;;21514:22;:35;;21540:9;;21514:35;:::i;:::-;;;;-1:-1:-1;;21569:40:0;;160:25:1;;;21592:4:0;;-1:-1:-1;;;;;21569:40:0;;;;;148:2:1;133:18;21569:40:0;;;;;;;21631:18;21640:9;21631:6;:18;:::i;:::-;21624:25;;;;;;774:548:1;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1058:3;1243:1;1238:2;1229:6;1218:9;1214:22;1210:31;1203:42;1313:2;1306;1302:7;1297:2;1289:6;1285:15;1281:29;1270:9;1266:45;1262:54;1254:62;;;;774:548;;;;:::o;1552:131::-;-1:-1:-1;;;;;1627:31:1;;1617:42;;1607:70;;1673:1;1670;1663:12;1688:315;1756:6;1764;1817:2;1805:9;1796:7;1792:23;1788:32;1785:52;;;1833:1;1830;1823:12;1785:52;1872:9;1859:23;1891:31;1916:5;1891:31;:::i;:::-;1941:5;1993:2;1978:18;;;;1965:32;;-1:-1:-1;;;1688:315:1:o;2649:456::-;2726:6;2734;2742;2795:2;2783:9;2774:7;2770:23;2766:32;2763:52;;;2811:1;2808;2801:12;2763:52;2850:9;2837:23;2869:31;2894:5;2869:31;:::i;:::-;2919:5;-1:-1:-1;2976:2:1;2961:18;;2948:32;2989:33;2948:32;2989:33;:::i;:::-;2649:456;;3041:7;;-1:-1:-1;;;3095:2:1;3080:18;;;;3067:32;;2649:456::o;3299:159::-;3366:20;;3426:6;3415:18;;3405:29;;3395:57;;3448:1;3445;3438:12;3395:57;3299:159;;;:::o;3463:328::-;3537:6;3545;3553;3606:2;3594:9;3585:7;3581:23;3577:32;3574:52;;;3622:1;3619;3612:12;3574:52;3645:28;3663:9;3645:28;:::i;:::-;3635:38;;3692:37;3725:2;3714:9;3710:18;3692:37;:::i;:::-;3682:47;;3748:37;3781:2;3770:9;3766:18;3748:37;:::i;:::-;3738:47;;3463:328;;;;;:::o;3796:454::-;3891:6;3899;3907;3915;3923;3976:3;3964:9;3955:7;3951:23;3947:33;3944:53;;;3993:1;3990;3983:12;3944:53;-1:-1:-1;;4016:23:1;;;4086:2;4071:18;;4058:32;;-1:-1:-1;4137:2:1;4122:18;;4109:32;;4188:2;4173:18;;4160:32;;-1:-1:-1;4239:3:1;4224:19;4211:33;;-1:-1:-1;3796:454:1;-1:-1:-1;3796:454:1:o;4255:247::-;4314:6;4367:2;4355:9;4346:7;4342:23;4338:32;4335:52;;;4383:1;4380;4373:12;4335:52;4422:9;4409:23;4441:31;4466:5;4441:31;:::i;4507:184::-;4565:6;4618:2;4606:9;4597:7;4593:23;4589:32;4586:52;;;4634:1;4631;4624:12;4586:52;4657:28;4675:9;4657:28;:::i;4696:118::-;4782:5;4775:13;4768:21;4761:5;4758:32;4748:60;;4804:1;4801;4794:12;4819:382;4884:6;4892;4945:2;4933:9;4924:7;4920:23;4916:32;4913:52;;;4961:1;4958;4951:12;4913:52;5000:9;4987:23;5019:31;5044:5;5019:31;:::i;:::-;5069:5;-1:-1:-1;5126:2:1;5111:18;;5098:32;5139:30;5098:32;5139:30;:::i;:::-;5188:7;5178:17;;;4819:382;;;;;:::o;5386:241::-;5442:6;5495:2;5483:9;5474:7;5470:23;5466:32;5463:52;;;5511:1;5508;5501:12;5463:52;5550:9;5537:23;5569:28;5591:5;5569:28;:::i;5924:388::-;5992:6;6000;6053:2;6041:9;6032:7;6028:23;6024:32;6021:52;;;6069:1;6066;6059:12;6021:52;6108:9;6095:23;6127:31;6152:5;6127:31;:::i;:::-;6177:5;-1:-1:-1;6234:2:1;6219:18;;6206:32;6247:33;6206:32;6247:33;:::i;6317:383::-;6394:6;6402;6410;6463:2;6451:9;6442:7;6438:23;6434:32;6431:52;;;6479:1;6476;6469:12;6431:52;6518:9;6505:23;6537:31;6562:5;6537:31;:::i;:::-;6587:5;6639:2;6624:18;;6611:32;;-1:-1:-1;6690:2:1;6675:18;;;6662:32;;6317:383;-1:-1:-1;;;6317:383:1:o;7189:127::-;7250:10;7245:3;7241:20;7238:1;7231:31;7281:4;7278:1;7271:15;7305:4;7302:1;7295:15;7321:128;7388:9;;;7409:11;;;7406:37;;;7423:18;;:::i;7454:125::-;7519:9;;;7540:10;;;7537:36;;;7553:18;;:::i;7584:341::-;7786:2;7768:21;;;7825:2;7805:18;;;7798:30;-1:-1:-1;;;7859:2:1;7844:18;;7837:47;7916:2;7901:18;;7584:341::o;8288:168::-;8361:9;;;8392;;8409:15;;;8403:22;;8389:37;8379:71;;8430:18;;:::i;8461:217::-;8501:1;8527;8517:132;;8571:10;8566:3;8562:20;8559:1;8552:31;8606:4;8603:1;8596:15;8634:4;8631:1;8624:15;8517:132;-1:-1:-1;8663:9:1;;8461:217::o;8683:425::-;8885:2;8867:21;;;8924:2;8904:18;;;8897:30;8963:34;8958:2;8943:18;;8936:62;9034:31;9029:2;9014:18;;9007:59;9098:3;9083:19;;8683:425::o;9811:216::-;9875:9;;;9903:11;;;9850:3;9933:9;;9961:10;;9957:19;;9986:10;;9978:19;;9954:44;9951:70;;;10001:18;;:::i;:::-;9951:70;;9811:216;;;;:::o;10032:422::-;10121:1;10164:5;10121:1;10178:270;10199:7;10189:8;10186:21;10178:270;;;10258:4;10254:1;10250:6;10246:17;10240:4;10237:27;10234:53;;;10267:18;;:::i;:::-;10317:7;10307:8;10303:22;10300:55;;;10337:16;;;;10300:55;10416:22;;;;10376:15;;;;10178:270;;;10182:3;10032:422;;;;;:::o;10459:806::-;10508:5;10538:8;10528:80;;-1:-1:-1;10579:1:1;10593:5;;10528:80;10627:4;10617:76;;-1:-1:-1;10664:1:1;10678:5;;10617:76;10709:4;10727:1;10722:59;;;;10795:1;10790:130;;;;10702:218;;10722:59;10752:1;10743:10;;10766:5;;;10790:130;10827:3;10817:8;10814:17;10811:43;;;10834:18;;:::i;:::-;-1:-1:-1;;10890:1:1;10876:16;;10905:5;;10702:218;;11004:2;10994:8;10991:16;10985:3;10979:4;10976:13;10972:36;10966:2;10956:8;10953:16;10948:2;10942:4;10939:12;10935:35;10932:77;10929:159;;;-1:-1:-1;11041:19:1;;;11073:5;;10929:159;11120:34;11145:8;11139:4;11120:34;:::i;:::-;11190:6;11186:1;11182:6;11178:19;11169:7;11166:32;11163:58;;;11201:18;;:::i;:::-;11239:20;;10459:806;-1:-1:-1;;;10459:806:1:o;11270:131::-;11330:5;11359:36;11386:8;11380:4;11359:36;:::i;11685:245::-;11752:6;11805:2;11793:9;11784:7;11780:23;11776:32;11773:52;;;11821:1;11818;11811:12;11773:52;11853:9;11847:16;11872:28;11894:5;11872:28;:::i;11935:251::-;12005:6;12058:2;12046:9;12037:7;12033:23;12029:32;12026:52;;;12074:1;12071;12064:12;12026:52;12106:9;12100:16;12125:31;12150:5;12125:31;:::i;14903:127::-;14964:10;14959:3;14955:20;14952:1;14945:31;14995:4;14992:1;14985:15;15019:4;15016:1;15009:15;15035:980;15297:4;15345:3;15334:9;15330:19;15376:6;15365:9;15358:25;15402:2;15440:6;15435:2;15424:9;15420:18;15413:34;15483:3;15478:2;15467:9;15463:18;15456:31;15507:6;15542;15536:13;15573:6;15565;15558:22;15611:3;15600:9;15596:19;15589:26;;15650:2;15642:6;15638:15;15624:29;;15671:1;15681:195;15695:6;15692:1;15689:13;15681:195;;;15760:13;;-1:-1:-1;;;;;15756:39:1;15744:52;;15851:15;;;;15816:12;;;;15792:1;15710:9;15681:195;;;-1:-1:-1;;;;;;;15932:32:1;;;;15927:2;15912:18;;15905:60;-1:-1:-1;;;15996:3:1;15981:19;15974:35;15893:3;15035:980;-1:-1:-1;;;15035:980:1:o;16020:200::-;16086:9;;;16059:4;16114:9;;16142:10;;16154:12;;;16138:29;16177:12;;;16169:21;;16135:56;16132:82;;;16194:18;;:::i;:::-;16132:82;16020:200;;;;:::o

Swarm Source

ipfs://2999795f8dcd3579aa773d86190f78d530182fc2dcf459093edda8e9d9ac0e89
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.