ETH Price: $2,290.29 (-2.86%)

Token

DogeBot (DB)
 

Overview

Max Total Supply

1,000,000,000,000 DB

Holders

122

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
DogeBot

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 50 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-03
*/

/* 

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⣀⠀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⣠⡄⣶⡖⣿⣟⠀⢸⣿⣾⣿⢹⡟⢻⡷⣾⠿⣿⣴⣶⣄⡄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠶⣿⡟⢹⣷⢽⠷⠹⠗⠂⠀⢃⣉⣈⣀⣙⣋⣁⠙⠒⠋⠼⠛⡿⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⢰⡿⢿⡆⠀⠘⠓⠀⣁⣠⣤⣶⣦⡘⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣦⡄⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⡾⣿⡉⠻⠞⢃⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣦⡙⢿⣿⣿⣿⠇⠰⣦⠘⣿⣿⣿⠇⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣤⣤⣤⣤⠙⣃⣴⡾⣫⣭⡻⣿⣿⣿⡿⣟⣛⢿⣿⣿⣿⣆⠻⣿⣿⣇⣈⣁⣼⣿⣿⡟⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⣿⣿⣿⣿⣿⡿⢋⣠⣾⣿⣿⡇⡏⠈⢻⣜⣛⣫⡾⠋⢹⡏⣿⣿⣿⣿⣧⡘⣿⣿⣿⣿⢏⣾⡟⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣌⠻⣿⣿⣿⣿⡿⢋⣴⣿⣿⣿⡿⣫⡵⠇⠀⠀⠉⠉⠉⠀⠀⢸⡇⣿⣿⣿⣿⣿⣷⡘⣿⣿⣷⣿⡟⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣷⣌⠻⣿⠟⣰⣿⣿⣿⣿⡟⣼⠃⢠⡄⠀⠀⠀⠀⠀⠀⠀⠘⣷⢻⣿⣿⣿⣿⣿⣷⠘⣿⣿⠟⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠷⢠⠸⣿⣿⣿⣿⣿⢸⠇⠀⣈⠀⠀⠐⠽⠃⠀⠀⠀⠀⠸⡇⣿⣿⣿⣿⣿⣿⣧⠹⠋⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⢿⣧⠹⣿⣿⣿⣿⢿⠀⠈⠿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠒⠢⠍⠊⢿⣧⢻⣿⣿⣿⡼⣇⠀⠓⠒⠐⠂⠀⠀⠀⠀⠀⠀⣸⢇⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⣿⣿⠿⠶⠦⠄⠀⢻⣧⠹⣿⣿⣷⡝⣦⡀⠀⠀⠀⠀⠀⠀⠀⢀⣴⢫⣾⢟⣽⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣭⣤⣀⣀⠀⠀⠀⠀⠀⠹⣷⡙⣿⣿⣿⣮⣝⡷⢦⣤⣤⣤⡴⢾⣫⡵⢟⣵⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣼⣿⡿⠿⢿⣿⣿⣿⣿⣿⡿⠟⠋⠀⠀⠀⠀⠀⠘⢿⣎⠻⣿⣿⣿⣿⣿⣶⣶⣶⣿⠿⣫⣴⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠸⠋⠀⢀⣴⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠹⣷⣝⢿⣿⣿⣿⣿⣿⣿⣷⠿⠛⣡⣴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⠋⠀⠀⠀⢀⣀⣠⣤⣤⠀⠀⠀⢸⡆⠈⠻⣷⣝⠿⣿⠷⠟⣋⣥⣶⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⡏⢀⣠⣴⣾⣿⣿⣿⣿⣿⠀⠀⠀⣼⡇⠀⢠⠀⠉⣡⠀⣶⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢀⣼⣿⡇⢠⠸⠀⠀⢹⣇⢹⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⢸⣿⣿⣴⣿⣿⡟⠀⡞⠀⠀⠀⠀⢻⣦⠻⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⣿⣿⣿⣿⣿⠟⢀⠞⠀⠀⠀⠀⠀⠀⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⠀⠀⢀⣼⣿⣿⡿⠟⠁⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠐⠺⠿⠿⠿⠿⠟⠛⠋⠁⠀⠀⠀⠀⠐⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Telegram: http://t.me/DogeBot_ERC20
Twitter: https://twitter.com/DOGEBOT_ERC20
Medium: https://medium.com/@doge.bot



*/


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.17;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address public _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface InterfaceLP {
    function sync() external;
}

contract DogeBot is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "DogeBot";
    string constant _symbol = "DB";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**12 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    
    mapping (address => bool) isFeeexempt;
    mapping (address => bool) isTxLimitexempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private devFee          = 1;
    uint256 private teamFee         = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

    bool public abMode = false;
    mapping (address => bool) public isabed;   

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 18 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeexempt[msg.sender] = true;
        isFeeexempt[devFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[devFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xF0115D29E80ccB05084BCC9AA49c91B6E3C9EDa4;
        devFeeReceiver = 0x5f2CE2638a187E14dD0d7566241ddeb04C270494;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure 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 balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWalletAmount(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTransaction(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
             if(abMode){
                require(isabed[recipient],"Not abed"); 
          }
        }
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitexempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        

        // Checks max transaction limit
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeexempt[sender] || isFeeexempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitexempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeexempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function manualswapback() external onlyOwner {
           swapBack();
    
    }

     function manualSend() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);

    }

    function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
               if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setAllocation(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

     function enableLaunchMode(bool _status) public onlyOwner {
        abMode = _status;
    }

    function setisLaunched(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isabed[addresses[i]] = status;
        }
    }

    function enableTrade() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 600;
        sellMultiplier = 1200;
        transferMultiplier = 1900;
    }

        
           
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function setInternalAddress(address holder, bool exempt) external onlyOwner {
        isFeeexempt[holder] = exempt;
        isTxLimitexempt[holder] = exempt;
    }

    
    function updateFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }



event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"abMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableLaunchMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","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":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isabed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswapback","outputs":[],"stateMutability":"nonpayable","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":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setInternalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setisLaunched","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006fb565b620000439064e8d4a510006200070c565b6005556200007d6064620000696001600554620004cb60201b6200112c1790919060201c565b6200056260201b620011ae1790919060201c565b600655620000a36064620000696001600554620004cb60201b6200112c1790919060201c565b6007556001600c556002600d556001600e556001600f556000601055601054600e54600c54600d54600f54620000da919062000726565b620000e6919062000726565b620000f2919062000726565b620000fe919062000726565b60115560646012818155601382905560148290556015829055601e601b55601c91909155601f805461ffff60a01b191690556021805460ff191660011790556005546103e8916200015091906200070c565b6200015c91906200073c565b6022553480156200016c57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200022c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025291906200075f565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d791906200075f565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000329573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034f91906200075f565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673f0115d29e80ccb05084bcc9aa49c91b6e3c9eda41790945585548516735f2ce2638a187e14dd0d7566241ddeb04c2704941790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007da565b600082600003620004df575060006200055c565b6000620004ed83856200070c565b905082620004fc85836200073c565b14620005595760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200055983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005ac60201b60201c565b60008183620005d05760405162461bcd60e51b81526004016200055091906200078a565b506000620005df84866200073c565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200063f578160001904821115620006235762000623620005e8565b808516156200063157918102915b93841c939080029062000603565b509250929050565b60008262000658575060016200055c565b8162000667575060006200055c565b81600181146200068057600281146200068b57620006ab565b60019150506200055c565b60ff8411156200069f576200069f620005e8565b50506001821b6200055c565b5060208310610133831016604e8410600b8410161715620006d0575081810a6200055c565b620006dc8383620005fe565b8060001904821115620006f357620006f3620005e8565b029392505050565b60006200055960ff84168362000647565b80820281158282048414176200055c576200055c620005e8565b808201808211156200055c576200055c620005e8565b6000826200075a57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200077257600080fd5b81516001600160a01b03811681146200055957600080fd5b600060208083528351808285015260005b81811015620007b9578581018301518582016040015282016200079b565b506000604082860101526040601f19601f8301168501019250505092915050565b61230280620007ea6000396000f3fe60806040526004361061021f5760003560e01c80637d1db4a511610124578063aba1193d116100a6578063aba1193d1461061d578063b2bdfa7b1461063d578063d51ed1c81461065d578063d78e139d1461067d578063dd62ed3e1461069d578063f08bf67b146106e3578063f0a9e36514610712578063f2fde38b14610732578063f429389014610752578063f887ea4014610767578063fc3843ef1461078757600080fd5b80637d1db4a5146104b65780637fa4a5bb146104cc5780637fd1938e146104ec5780637fea8a1b1461050d578063893d20e81461052d5780638da5cb5b1461055457806395d89b4114610572578063992c58e41461059d578063a8aa1b31146105bd578063a9059cbb146105dd578063ab5a1887146105fd57600080fd5b8063201e7991116101ad578063201e79911461038057806323b872dd146103a057806327a14fc2146103c05780632ad75672146103e05780632b112e4914610400578063313ce56714610415578063571ac8b0146104315780636ddd17131461045157806370a082311461046b578063715018a61461048b57806378109e54146104a057600080fd5b806299d3861461022b5780630445b6671461024257806306fdde031461026b57806308fd3d05146102a4578063095ea7b3146102d55780631161ae39146102f5578063148f07ca1461031557806315d75b591461033557806318160ddd146103555780631df4ccfc1461036a57600080fd5b3661022657005b600080fd5b34801561023757600080fd5b5061024061079c565b005b34801561024e57600080fd5b5061025860225481565b6040519081526020015b60405180910390f35b34801561027757600080fd5b50604080518082019091526007815266111bd9d9509bdd60ca1b60208201525b6040516102629190611db7565b3480156102b057600080fd5b50601f546102c590600160a01b900460ff1681565b6040519015158152602001610262565b3480156102e157600080fd5b506102c56102f0366004611e21565b6107f6565b34801561030157600080fd5b506102c5610310366004611e4b565b610863565b34801561032157600080fd5b50610240610330366004611e7b565b610877565b34801561034157600080fd5b50610240610350366004611f01565b610916565b34801561036157600080fd5b50600554610258565b34801561037657600080fd5b5061025860115481565b34801561038c57600080fd5b5061024061039b366004611e4b565b610951565b3480156103ac57600080fd5b506102c56103bb366004611f2d565b610986565b3480156103cc57600080fd5b506102406103db366004611f69565b610a48565b3480156103ec57600080fd5b506102406103fb366004611f82565b610ab1565b34801561040c57600080fd5b50610258610b3a565b34801561042157600080fd5b5060405160098152602001610262565b34801561043d57600080fd5b506102c561044c366004611fe7565b610b83565b34801561045d57600080fd5b506021546102c59060ff1681565b34801561047757600080fd5b50610258610486366004611fe7565b610b91565b34801561049757600080fd5b50610240610bac565b3480156104ac57600080fd5b5061025860075481565b3480156104c257600080fd5b5061025860065481565b3480156104d857600080fd5b506102406104e7366004612002565b610c20565b3480156104f857600080fd5b50601f546102c590600160a81b900460ff1681565b34801561051957600080fd5b50610240610528366004612039565b610c88565b34801561053957600080fd5b506000546001600160a01b03165b6040516102629190612056565b34801561056057600080fd5b506000546001600160a01b0316610547565b34801561057e57600080fd5b50604080518082019091526002815261222160f11b6020820152610297565b3480156105a957600080fd5b506102406105b836600461206a565b610cd0565b3480156105c957600080fd5b50601f54610547906001600160a01b031681565b3480156105e957600080fd5b506102c56105f8366004611e21565b610d96565b34801561060957600080fd5b50610240610618366004611f69565b610da3565b34801561062957600080fd5b506102406106383660046120ad565b610e0c565b34801561064957600080fd5b50600054610547906001600160a01b031681565b34801561066957600080fd5b50610258610678366004611f69565b610e4d565b34801561068957600080fd5b50610240610698366004611f69565b610e8d565b3480156106a957600080fd5b506102586106b83660046120cb565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106ef57600080fd5b506102c56106fe366004611fe7565b602080526000908152604090205460ff1681565b34801561071e57600080fd5b506102c561072d366004611e21565b610ee1565b34801561073e57600080fd5b5061024061074d366004611fe7565b610fd2565b34801561075e57600080fd5b506102406110bc565b34801561077357600080fd5b50601d54610547906001600160a01b031681565b34801561079357600080fd5b506102406110f8565b6000546001600160a01b031633146107cf5760405162461bcd60e51b81526004016107c6906120fe565b60405180910390fd5b601f805460ff60a01b1916600160a01b1790556102586014556104b060135561076c601555565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108519086815260200190565b60405180910390a35060015b92915050565b60008261086f83610e4d565b119392505050565b6000546001600160a01b031633146108a15760405162461bcd60e51b81526004016107c6906120fe565b60005b828110156109105781602060008686858181106108c3576108c3612133565b90506020020160208101906108d89190611fe7565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109098161215f565b90506108a4565b50505050565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016107c6906120fe565b601391909155601491909155601555565b6000546001600160a01b0316331461097b5760405162461bcd60e51b81526004016107c6906120fe565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a33576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a0e9184906111ed565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a3e848484611227565b90505b9392505050565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016107c6906120fe565b6103e8600554610a829190612178565b6007541015610a9057600080fd5b6103e881600554610aa1919061219a565b610aab9190612178565b60075550565b6000546001600160a01b03163314610adb5760405162461bcd60e51b81526004016107c6906120fe565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610b7e90610b56906001600160a01b0316610b91565b600354610b7890610b6f906001600160a01b0316610b91565b600554906115e6565b906115e6565b905090565b600061085d826000196107f6565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610bd65760405162461bcd60e51b81526004016107c6906120fe565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c4a5760405162461bcd60e51b81526004016107c6906120fe565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610cb25760405162461bcd60e51b81526004016107c6906120fe565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b81526004016107c6906120fe565b600c869055600f859055600d849055600e8390556010829055610d2b82610d25858188818c8c611628565b90611628565b6011556012819055610d3e600582612178565b60115410610d8e5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107c6565b505050505050565b6000610a41338484611227565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016107c6906120fe565b6103e8600554610ddd9190612178565b6006541015610deb57600080fd5b6103e881600554610dfc919061219a565b610e069190612178565b60065550565b6000546001600160a01b03163314610e365760405162461bcd60e51b81526004016107c6906120fe565b6021805460ff191692151592909217909155602255565b600061085d610e5a610b3a565b601f54610e8790610e8090600290610e7a906001600160a01b0316610b91565b9061112c565b859061112c565b906111ae565b60195447906001600160a01b03166108fc6064610eaa858561219a565b610eb49190612178565b6040518115909202916000818181858888f19350505050158015610edc573d6000803e3d6000fd5b505050565b600081600003610f5b576040516370a0823160e01b81526001600160a01b038416906370a0823190610f17903090600401612056565b602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5891906121b1565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4191906121ca565b6000546001600160a01b03163314610ffc5760405162461bcd60e51b81526004016107c6906120fe565b6001600160a01b0381166110615760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156110f5573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111225760405162461bcd60e51b81526004016107c6906120fe565b61112a611685565b565b60008260000361113e5750600061085d565b600061114a838561219a565b9050826111578583612178565b14610a415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c6565b6000610a4183836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611a6c565b600081848411156112115760405162461bcd60e51b81526004016107c69190611db7565b50600061121e84866121e7565b95945050505050565b60235460009060ff161561124757611240848484611a9a565b9050610a41565b6001600160a01b03841660009081526001602052604090205460ff1615801561128957506001600160a01b03831660009081526001602052604090205460ff16155b1561134257601f54600160a01b900460ff166112de5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107c6565b601f54600160a81b900460ff1615611342576001600160a01b038316600090815260208052604090205460ff166113425760405162461bcd60e51b8152602060048201526008602482015267139bdd081858995960c21b60448201526064016107c6565b6001600160a01b03841660009081526001602052604090205460ff1615801561137457506001600160a01b0383163014155b801561138e57506003546001600160a01b03848116911614155b80156113a85750601f546001600160a01b03848116911614155b80156113c25750601a546001600160a01b03848116911614155b80156113dc57506017546001600160a01b03848116911614155b801561140157506001600160a01b0383166000908152600b602052604090205460ff16155b1561149757600061141184610b91565b60075490915061142184836121fa565b11156114955760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107c6565b505b6114a18483611b6e565b6114a9611bdb565b156114b6576114b6611685565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546115089184906111ed565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061155557506001600160a01b0384166000908152600a602052604090205460ff165b61156957611564858486611c2a565b61156b565b825b6001600160a01b0385166000908152600860205260409020549091506115919082611628565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206122ad833981519152906115d39085815260200190565b60405180910390a3506001949350505050565b6000610a4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ed565b60008061163583856121fa565b905083811015610a415760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107c6565b6023805460ff19166001179055601b54601c546000916116a491610863565b6116b057600c546116b3565b60005b905060006116d76002610e87601154610e878660225461112c90919063ffffffff16565b905060006116f0826022546115e690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061172a5761172a612133565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061175b5761175b612133565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906117a590869060009087903090429060040161220d565b600060405180830381600087803b1580156117bf57600080fd5b505af11580156117d3573d6000803e3d6000fd5b5050505060006117ec82476115e690919063ffffffff16565b905060006118076117fe8860026111ae565b601154906115e6565b9050600061181c6002610e878481878d61112c565b9050600061183983610e87600d548761112c90919063ffffffff16565b9050600061185684610e87600f548861112c90919063ffffffff16565b9050600061187385610e87600e548961112c90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146118c5576040519150601f19603f3d011682016040523d82523d6000602084013e6118ca565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461191a576040519150601f19603f3d011682016040523d82523d6000602084013e61191f565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461196f576040519150601f19603f3d011682016040523d82523d6000602084013e611974565b606091505b5060009250508b159050611a5457601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156119f2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a17919061227e565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611a8d5760405162461bcd60e51b81526004016107c69190611db7565b50600061121e8486612178565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611aeb9184906111ed565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b1a9083611628565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206122ad83398151915290611b5c9086815260200190565b60405180910390a35060019392505050565b60065481111580611b9757506001600160a01b0382166000908152600b602052604090205460ff165b611bd75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c6565b5050565b601f546000906001600160a01b03163314801590611bfc575060235460ff16155b8015611c0a575060215460ff165b8015610b7e57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c505750601354611c6b565b601f546001600160a01b0390811690861603611c6b57506014545b6000611c986012546064611c7f919061219a565b610e8784610e7a6011548a61112c90919063ffffffff16565b90506000611cb7601154610e876010548561112c90919063ffffffff16565b90506000611cc583836115e6565b30600090815260086020526040902054909150611ce29082611628565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d109083611628565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206122ad833981519152910160405180910390a38115611da157600554611d6a90836115e6565b6005556004546040518381526001600160a01b03918216918a16906000805160206122ad8339815191529060200160405180910390a35b611dab87846115e6565b98975050505050505050565b600060208083528351808285015260005b81811015611de457858101830151858201604001528201611dc8565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1c57600080fd5b919050565b60008060408385031215611e3457600080fd5b611e3d83611e05565b946020939093013593505050565b60008060408385031215611e5e57600080fd5b50508035926020909101359150565b80151581146110f557600080fd5b600080600060408486031215611e9057600080fd5b833567ffffffffffffffff80821115611ea857600080fd5b818601915086601f830112611ebc57600080fd5b813581811115611ecb57600080fd5b8760208260051b8501011115611ee057600080fd5b60209283019550935050840135611ef681611e6d565b809150509250925092565b600080600060608486031215611f1657600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611f4257600080fd5b611f4b84611e05565b9250611f5960208501611e05565b9150604084013590509250925092565b600060208284031215611f7b57600080fd5b5035919050565b600080600080600060a08688031215611f9a57600080fd5b611fa386611e05565b9450611fb160208701611e05565b9350611fbf60408701611e05565b9250611fcd60608701611e05565b9150611fdb60808701611e05565b90509295509295909350565b600060208284031215611ff957600080fd5b610a4182611e05565b6000806040838503121561201557600080fd5b61201e83611e05565b9150602083013561202e81611e6d565b809150509250929050565b60006020828403121561204b57600080fd5b8135610a4181611e6d565b6001600160a01b0391909116815260200190565b60008060008060008060c0878903121561208357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120c057600080fd5b8235611e3d81611e6d565b600080604083850312156120de57600080fd5b6120e783611e05565b91506120f560208401611e05565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161217157612171612149565b5060010190565b60008261219557634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761085d5761085d612149565b6000602082840312156121c357600080fd5b5051919050565b6000602082840312156121dc57600080fd5b8151610a4181611e6d565b8181038181111561085d5761085d612149565b8082018082111561085d5761085d612149565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561225d5784516001600160a01b031683529383019391830191600101612238565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561229357600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f252b6994337cd2850f8c52c5f3ce260be9cac075d4134cf82c502394de3e81764736f6c63430008110033

Deployed Bytecode

0x60806040526004361061021f5760003560e01c80637d1db4a511610124578063aba1193d116100a6578063aba1193d1461061d578063b2bdfa7b1461063d578063d51ed1c81461065d578063d78e139d1461067d578063dd62ed3e1461069d578063f08bf67b146106e3578063f0a9e36514610712578063f2fde38b14610732578063f429389014610752578063f887ea4014610767578063fc3843ef1461078757600080fd5b80637d1db4a5146104b65780637fa4a5bb146104cc5780637fd1938e146104ec5780637fea8a1b1461050d578063893d20e81461052d5780638da5cb5b1461055457806395d89b4114610572578063992c58e41461059d578063a8aa1b31146105bd578063a9059cbb146105dd578063ab5a1887146105fd57600080fd5b8063201e7991116101ad578063201e79911461038057806323b872dd146103a057806327a14fc2146103c05780632ad75672146103e05780632b112e4914610400578063313ce56714610415578063571ac8b0146104315780636ddd17131461045157806370a082311461046b578063715018a61461048b57806378109e54146104a057600080fd5b806299d3861461022b5780630445b6671461024257806306fdde031461026b57806308fd3d05146102a4578063095ea7b3146102d55780631161ae39146102f5578063148f07ca1461031557806315d75b591461033557806318160ddd146103555780631df4ccfc1461036a57600080fd5b3661022657005b600080fd5b34801561023757600080fd5b5061024061079c565b005b34801561024e57600080fd5b5061025860225481565b6040519081526020015b60405180910390f35b34801561027757600080fd5b50604080518082019091526007815266111bd9d9509bdd60ca1b60208201525b6040516102629190611db7565b3480156102b057600080fd5b50601f546102c590600160a01b900460ff1681565b6040519015158152602001610262565b3480156102e157600080fd5b506102c56102f0366004611e21565b6107f6565b34801561030157600080fd5b506102c5610310366004611e4b565b610863565b34801561032157600080fd5b50610240610330366004611e7b565b610877565b34801561034157600080fd5b50610240610350366004611f01565b610916565b34801561036157600080fd5b50600554610258565b34801561037657600080fd5b5061025860115481565b34801561038c57600080fd5b5061024061039b366004611e4b565b610951565b3480156103ac57600080fd5b506102c56103bb366004611f2d565b610986565b3480156103cc57600080fd5b506102406103db366004611f69565b610a48565b3480156103ec57600080fd5b506102406103fb366004611f82565b610ab1565b34801561040c57600080fd5b50610258610b3a565b34801561042157600080fd5b5060405160098152602001610262565b34801561043d57600080fd5b506102c561044c366004611fe7565b610b83565b34801561045d57600080fd5b506021546102c59060ff1681565b34801561047757600080fd5b50610258610486366004611fe7565b610b91565b34801561049757600080fd5b50610240610bac565b3480156104ac57600080fd5b5061025860075481565b3480156104c257600080fd5b5061025860065481565b3480156104d857600080fd5b506102406104e7366004612002565b610c20565b3480156104f857600080fd5b50601f546102c590600160a81b900460ff1681565b34801561051957600080fd5b50610240610528366004612039565b610c88565b34801561053957600080fd5b506000546001600160a01b03165b6040516102629190612056565b34801561056057600080fd5b506000546001600160a01b0316610547565b34801561057e57600080fd5b50604080518082019091526002815261222160f11b6020820152610297565b3480156105a957600080fd5b506102406105b836600461206a565b610cd0565b3480156105c957600080fd5b50601f54610547906001600160a01b031681565b3480156105e957600080fd5b506102c56105f8366004611e21565b610d96565b34801561060957600080fd5b50610240610618366004611f69565b610da3565b34801561062957600080fd5b506102406106383660046120ad565b610e0c565b34801561064957600080fd5b50600054610547906001600160a01b031681565b34801561066957600080fd5b50610258610678366004611f69565b610e4d565b34801561068957600080fd5b50610240610698366004611f69565b610e8d565b3480156106a957600080fd5b506102586106b83660046120cb565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106ef57600080fd5b506102c56106fe366004611fe7565b602080526000908152604090205460ff1681565b34801561071e57600080fd5b506102c561072d366004611e21565b610ee1565b34801561073e57600080fd5b5061024061074d366004611fe7565b610fd2565b34801561075e57600080fd5b506102406110bc565b34801561077357600080fd5b50601d54610547906001600160a01b031681565b34801561079357600080fd5b506102406110f8565b6000546001600160a01b031633146107cf5760405162461bcd60e51b81526004016107c6906120fe565b60405180910390fd5b601f805460ff60a01b1916600160a01b1790556102586014556104b060135561076c601555565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108519086815260200190565b60405180910390a35060015b92915050565b60008261086f83610e4d565b119392505050565b6000546001600160a01b031633146108a15760405162461bcd60e51b81526004016107c6906120fe565b60005b828110156109105781602060008686858181106108c3576108c3612133565b90506020020160208101906108d89190611fe7565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109098161215f565b90506108a4565b50505050565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016107c6906120fe565b601391909155601491909155601555565b6000546001600160a01b0316331461097b5760405162461bcd60e51b81526004016107c6906120fe565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a33576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a0e9184906111ed565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a3e848484611227565b90505b9392505050565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016107c6906120fe565b6103e8600554610a829190612178565b6007541015610a9057600080fd5b6103e881600554610aa1919061219a565b610aab9190612178565b60075550565b6000546001600160a01b03163314610adb5760405162461bcd60e51b81526004016107c6906120fe565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610b7e90610b56906001600160a01b0316610b91565b600354610b7890610b6f906001600160a01b0316610b91565b600554906115e6565b906115e6565b905090565b600061085d826000196107f6565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610bd65760405162461bcd60e51b81526004016107c6906120fe565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c4a5760405162461bcd60e51b81526004016107c6906120fe565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610cb25760405162461bcd60e51b81526004016107c6906120fe565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b81526004016107c6906120fe565b600c869055600f859055600d849055600e8390556010829055610d2b82610d25858188818c8c611628565b90611628565b6011556012819055610d3e600582612178565b60115410610d8e5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107c6565b505050505050565b6000610a41338484611227565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016107c6906120fe565b6103e8600554610ddd9190612178565b6006541015610deb57600080fd5b6103e881600554610dfc919061219a565b610e069190612178565b60065550565b6000546001600160a01b03163314610e365760405162461bcd60e51b81526004016107c6906120fe565b6021805460ff191692151592909217909155602255565b600061085d610e5a610b3a565b601f54610e8790610e8090600290610e7a906001600160a01b0316610b91565b9061112c565b859061112c565b906111ae565b60195447906001600160a01b03166108fc6064610eaa858561219a565b610eb49190612178565b6040518115909202916000818181858888f19350505050158015610edc573d6000803e3d6000fd5b505050565b600081600003610f5b576040516370a0823160e01b81526001600160a01b038416906370a0823190610f17903090600401612056565b602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5891906121b1565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4191906121ca565b6000546001600160a01b03163314610ffc5760405162461bcd60e51b81526004016107c6906120fe565b6001600160a01b0381166110615760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156110f5573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111225760405162461bcd60e51b81526004016107c6906120fe565b61112a611685565b565b60008260000361113e5750600061085d565b600061114a838561219a565b9050826111578583612178565b14610a415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c6565b6000610a4183836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611a6c565b600081848411156112115760405162461bcd60e51b81526004016107c69190611db7565b50600061121e84866121e7565b95945050505050565b60235460009060ff161561124757611240848484611a9a565b9050610a41565b6001600160a01b03841660009081526001602052604090205460ff1615801561128957506001600160a01b03831660009081526001602052604090205460ff16155b1561134257601f54600160a01b900460ff166112de5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107c6565b601f54600160a81b900460ff1615611342576001600160a01b038316600090815260208052604090205460ff166113425760405162461bcd60e51b8152602060048201526008602482015267139bdd081858995960c21b60448201526064016107c6565b6001600160a01b03841660009081526001602052604090205460ff1615801561137457506001600160a01b0383163014155b801561138e57506003546001600160a01b03848116911614155b80156113a85750601f546001600160a01b03848116911614155b80156113c25750601a546001600160a01b03848116911614155b80156113dc57506017546001600160a01b03848116911614155b801561140157506001600160a01b0383166000908152600b602052604090205460ff16155b1561149757600061141184610b91565b60075490915061142184836121fa565b11156114955760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107c6565b505b6114a18483611b6e565b6114a9611bdb565b156114b6576114b6611685565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546115089184906111ed565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061155557506001600160a01b0384166000908152600a602052604090205460ff165b61156957611564858486611c2a565b61156b565b825b6001600160a01b0385166000908152600860205260409020549091506115919082611628565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206122ad833981519152906115d39085815260200190565b60405180910390a3506001949350505050565b6000610a4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ed565b60008061163583856121fa565b905083811015610a415760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107c6565b6023805460ff19166001179055601b54601c546000916116a491610863565b6116b057600c546116b3565b60005b905060006116d76002610e87601154610e878660225461112c90919063ffffffff16565b905060006116f0826022546115e690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061172a5761172a612133565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061175b5761175b612133565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906117a590869060009087903090429060040161220d565b600060405180830381600087803b1580156117bf57600080fd5b505af11580156117d3573d6000803e3d6000fd5b5050505060006117ec82476115e690919063ffffffff16565b905060006118076117fe8860026111ae565b601154906115e6565b9050600061181c6002610e878481878d61112c565b9050600061183983610e87600d548761112c90919063ffffffff16565b9050600061185684610e87600f548861112c90919063ffffffff16565b9050600061187385610e87600e548961112c90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146118c5576040519150601f19603f3d011682016040523d82523d6000602084013e6118ca565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461191a576040519150601f19603f3d011682016040523d82523d6000602084013e61191f565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461196f576040519150601f19603f3d011682016040523d82523d6000602084013e611974565b606091505b5060009250508b159050611a5457601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156119f2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a17919061227e565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611a8d5760405162461bcd60e51b81526004016107c69190611db7565b50600061121e8486612178565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611aeb9184906111ed565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b1a9083611628565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206122ad83398151915290611b5c9086815260200190565b60405180910390a35060019392505050565b60065481111580611b9757506001600160a01b0382166000908152600b602052604090205460ff165b611bd75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c6565b5050565b601f546000906001600160a01b03163314801590611bfc575060235460ff16155b8015611c0a575060215460ff165b8015610b7e57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c505750601354611c6b565b601f546001600160a01b0390811690861603611c6b57506014545b6000611c986012546064611c7f919061219a565b610e8784610e7a6011548a61112c90919063ffffffff16565b90506000611cb7601154610e876010548561112c90919063ffffffff16565b90506000611cc583836115e6565b30600090815260086020526040902054909150611ce29082611628565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d109083611628565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206122ad833981519152910160405180910390a38115611da157600554611d6a90836115e6565b6005556004546040518381526001600160a01b03918216918a16906000805160206122ad8339815191529060200160405180910390a35b611dab87846115e6565b98975050505050505050565b600060208083528351808285015260005b81811015611de457858101830151858201604001528201611dc8565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1c57600080fd5b919050565b60008060408385031215611e3457600080fd5b611e3d83611e05565b946020939093013593505050565b60008060408385031215611e5e57600080fd5b50508035926020909101359150565b80151581146110f557600080fd5b600080600060408486031215611e9057600080fd5b833567ffffffffffffffff80821115611ea857600080fd5b818601915086601f830112611ebc57600080fd5b813581811115611ecb57600080fd5b8760208260051b8501011115611ee057600080fd5b60209283019550935050840135611ef681611e6d565b809150509250925092565b600080600060608486031215611f1657600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611f4257600080fd5b611f4b84611e05565b9250611f5960208501611e05565b9150604084013590509250925092565b600060208284031215611f7b57600080fd5b5035919050565b600080600080600060a08688031215611f9a57600080fd5b611fa386611e05565b9450611fb160208701611e05565b9350611fbf60408701611e05565b9250611fcd60608701611e05565b9150611fdb60808701611e05565b90509295509295909350565b600060208284031215611ff957600080fd5b610a4182611e05565b6000806040838503121561201557600080fd5b61201e83611e05565b9150602083013561202e81611e6d565b809150509250929050565b60006020828403121561204b57600080fd5b8135610a4181611e6d565b6001600160a01b0391909116815260200190565b60008060008060008060c0878903121561208357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120c057600080fd5b8235611e3d81611e6d565b600080604083850312156120de57600080fd5b6120e783611e05565b91506120f560208401611e05565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161217157612171612149565b5060010190565b60008261219557634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761085d5761085d612149565b6000602082840312156121c357600080fd5b5051919050565b6000602082840312156121dc57600080fd5b8151610a4181611e6d565b8181038181111561085d5761085d612149565b8082018082111561085d5761085d612149565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561225d5784516001600160a01b031683529383019391830191600101612238565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561229357600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f252b6994337cd2850f8c52c5f3ce260be9cac075d4134cf82c502394de3e81764736f6c63430008110033

Deployed Bytecode Sourcemap

8963:13776:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18569:175;;;;;;;;;;;;;:::i;:::-;;10741:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;10741:55:0;;;;;;;;12275:80;;;;;;;;;;-1:-1:-1;12347:5:0;;;;;;;;;;;;-1:-1:-1;;;12347:5:0;;;;12275:80;;;;;;;:::i;10579:31::-;;;;;;;;;;-1:-1:-1;10579:31:0;;;;-1:-1:-1;;;10579:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;10579:31:0;749:187:1;12697:216:0;;;;;;;;;;-1:-1:-1;12697:216:0;;;;;:::i;:::-;;:::i;22517:150::-;;;;;;;;;;-1:-1:-1;22517:150:0;;;;;:::i;:::-;;:::i;18361:200::-;;;;;;;;;;-1:-1:-1;18361:200:0;;;;;:::i;:::-;;:::i;18039:213::-;;;;;;;;;;-1:-1:-1;18039:213:0;;;;;:::i;:::-;;:::i;12005:88::-;;;;;;;;;;-1:-1:-1;12078:12:0;;12005:88;;9933:90;;;;;;;;;;;;;;;;21998:182;;;;;;;;;;-1:-1:-1;21998:182:0;;;;;:::i;:::-;;:::i;13215:370::-;;;;;;;;;;-1:-1:-1;13215:370:0;;;;;:::i;:::-;;:::i;13597:225::-;;;;;;;;;;-1:-1:-1;13597:225:0;;;;;:::i;:::-;;:::i;21387:440::-;;;;;;;;;;-1:-1:-1;21387:440:0;;;;;:::i;:::-;;:::i;22192:142::-;;;;;;;;;;;;;:::i;12099:80::-;;;;;;;;;;-1:-1:-1;12099:80:0;;9299:1;3979:36:1;;3967:2;3952:18;12099:80:0;3837:184:1;12921:122:0;;;;;;;;;;-1:-1:-1;12921:122:0;;;;;:::i;:::-;;:::i;10704:30::-;;;;;;;;;;-1:-1:-1;10704:30:0;;;;;;;;12445:105;;;;;;;;;;-1:-1:-1;12445:105:0;;;;;:::i;:::-;;:::i;7020:148::-;;;;;;;;;;;;;:::i;9437:61::-;;;;;;;;;;;;;;;;9372:58;;;;;;;;;;;;;;;;20644:166;;;;;;;;;;-1:-1:-1;20644:166:0;;;;;:::i;:::-;;:::i;10620:26::-;;;;;;;;;;-1:-1:-1;10620:26:0;;;;-1:-1:-1;;;10620:26:0;;;;;;18261:92;;;;;;;;;;-1:-1:-1;18261:92:0;;;;;:::i;:::-;;:::i;12361:78::-;;;;;;;;;;-1:-1:-1;12413:7:0;6871:6;-1:-1:-1;;;;;6871:6:0;12361:78;;;;;;;:::i;6806:79::-;;;;;;;;;;-1:-1:-1;6844:7:0;6871:6;-1:-1:-1;;;;;6871:6:0;6806:79;;12185:84;;;;;;;;;;-1:-1:-1;12259:7:0;;;;;;;;;;;;-1:-1:-1;;;12259:7:0;;;;12185:84;;20824:555;;;;;;;;;;-1:-1:-1;20824:555:0;;;;;:::i;:::-;;:::i;10547:19::-;;;;;;;;;;-1:-1:-1;10547:19:0;;;;-1:-1:-1;;;;;10547:19:0;;;13051:156;;;;;;;;;;-1:-1:-1;13051:156:0;;;;;:::i;:::-;;:::i;13830:196::-;;;;;;;;;;-1:-1:-1;13830:196:0;;;;;:::i;:::-;;:::i;21835:155::-;;;;;;;;;;-1:-1:-1;21835:155:0;;;;;:::i;:::-;;:::i;6426:21::-;;;;;;;;;;-1:-1:-1;6426:21:0;;;;-1:-1:-1;;;;;6426:21:0;;;22342:167;;;;;;;;;;-1:-1:-1;22342:167:0;;;;;:::i;:::-;;:::i;17320:198::-;;;;;;;;;;-1:-1:-1;17320:198:0;;;;;:::i;:::-;;:::i;12556:133::-;;;;;;;;;;-1:-1:-1;12556:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12658:19:0;;;12640:7;12658:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12556:133;10653:39;;;;;;;;;;-1:-1:-1;10653:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17747:284;;;;;;;;;;-1:-1:-1;17747:284:0;;;;;:::i;:::-;;:::i;7176:244::-;;;;;;;;;;-1:-1:-1;7176:244:0;;;;;:::i;:::-;;:::i;17619:120::-;;;;;;;;;;;;;:::i;10477:24::-;;;;;;;;;;-1:-1:-1;10477:24:0;;;;-1:-1:-1;;;;;10477:24:0;;;17527:83;;;;;;;;;;;;;:::i;18569:175::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;;;;;;;;;18620:11:::1;:18:::0;;-1:-1:-1;;;;18620:18:0::1;-1:-1:-1::0;;;18620:18:0::1;::::0;;18665:3:::1;18620:11;18649:19:::0;18696:4:::1;18679:14;:21:::0;18732:4:::1;18711:18;:25:::0;18569:175::o;12697:216::-;12801:10;12772:4;12789:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12789:32:0;;;;;;;;;;:41;;;12846:37;12772:4;;12789:32;;12846:37;;;;12824:6;160:25:1;;148:2;133:18;;14:177;12846:37:0;;;;;;;;-1:-1:-1;12901:4:0;12697:216;;;;;:::o;22517:150::-;22597:4;22653:6;22621:29;22641:8;22621:19;:29::i;:::-;:38;;22517:150;-1:-1:-1;;;22517:150:0:o;18361:200::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;18460:9:::1;18455:99;18471:20:::0;;::::1;18455:99;;;18536:6;18513;:20;18520:9;;18530:1;18520:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18513:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18513:20:0;:29;;-1:-1:-1;;18513:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18493:3:::1;::::0;::::1;:::i;:::-;;;18455:99;;;;18361:200:::0;;;:::o;18039:213::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;18137:14:::1;:22:::0;;;;18170:13:::1;:20:::0;;;;18201:18:::1;:27:::0;18039:213::o;21998:182::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;22095:15:::1;:25:::0;;;;22131:26:::1;:41:::0;21998:182::o;13215:370::-;-1:-1:-1;;;;;13335:19:0;;13315:4;13335:19;;;:11;:19;;;;;;;;13355:10;13335:31;;;;;;;;-1:-1:-1;;13335:52:0;13332:186;;13437:69;;;;;;;;;;;-1:-1:-1;;;13437:69:0;;;;;;;;-1:-1:-1;;;;;13437:19:0;;-1:-1:-1;13437:19:0;;;:11;:19;;;;;13457:10;13437:31;;;;;;;;;;:69;;13473:6;;13437:35;:69::i;:::-;-1:-1:-1;;;;;13403:19:0;;;;;;:11;:19;;;;;;;;13423:10;13403:31;;;;;;;:103;13332:186;13537:40;13551:6;13559:9;13570:6;13537:13;:40::i;:::-;13530:47;;13215:370;;;;;;:::o;13597:225::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;13722:4:::1;13707:12;;:19;;;;:::i;:::-;13688:15;;:38;;13680:47;;;::::0;::::1;;13792:4;13773:14;13758:12;;:29;;;;:::i;:::-;13757:39;;;;:::i;:::-;13739:15;:57:::0;-1:-1:-1;13597:225:0:o;21387:440::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;21585:21:::1;:46:::0;;-1:-1:-1;;;;;;21585:46:0;;::::1;-1:-1:-1::0;;;;;21585:46:0;;::::1;;::::0;;;21642:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21697:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21740:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;21785:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;21387:440::o;22192:142::-;22320:4;;22245:7;;22272:54;;22310:15;;-1:-1:-1;;;;;22320:4:0;22310:9;:15::i;:::-;22299:4;;22272:33;;22289:15;;-1:-1:-1;;;;;22299:4:0;22289:9;:15::i;:::-;22272:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;22265:61;;22192:142;:::o;12921:122::-;12976:4;13000:35;13008:7;-1:-1:-1;;13000:7:0;:35::i;12445:105::-;-1:-1:-1;;;;;12529:18:0;12511:7;12529:18;;;:9;:18;;;;;;;12445:105::o;7020:148::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;7127:1:::1;7111:6:::0;;7090:40:::1;::::0;-1:-1:-1;;;;;7111:6:0;;::::1;::::0;7090:40:::1;::::0;7127:1;;7090:40:::1;7158:1;7141:19:::0;;-1:-1:-1;;;;;;7141:19:0::1;::::0;;7020:148::o;20644:166::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20731:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;20731:28:0;;::::1;::::0;::::1;::::0;;;20770:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;20644:166::o;18261:92::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;18329:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;18329:16:0::1;-1:-1:-1::0;;;;18329:16:0;;::::1;::::0;;;::::1;::::0;;18261:92::o;20824:555::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;20998:12:::1;:28:::0;;;21037:7:::1;:18:::0;;;21066:12:::1;:28:::0;;;21105:6:::1;:16:::0;;;21132:7:::1;:18:::0;;;21172:73:::1;21142:8:::0;21172:59:::1;21114:7:::0;21172:59;21081:13;21172:59;21013:13;21047:8;21172:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;21161:8;:84:::0;21256:14:::1;:32:::0;;;21318:18:::1;21335:1;21273:15:::0;21318:18:::1;:::i;:::-;21307:8;;:29;21299:71;;;::::0;-1:-1:-1;;;21299:71:0;;7686:2:1;21299:71:0::1;::::0;::::1;7668:21:1::0;7725:2;7705:18;;;7698:30;7764:31;7744:18;;;7737:59;7813:18;;21299:71:0::1;7484:353:1::0;21299:71:0::1;20824:555:::0;;;;;;:::o;13051:156::-;13131:4;13155:44;13169:10;13181:9;13192:6;13155:13;:44::i;13830:196::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;13949:4:::1;13934:12;;:19;;;;:::i;:::-;13918:12;;:35;;13910:44;;;::::0;::::1;;14014:4;13997:12;13982;;:27;;;;:::i;:::-;13981:37;;;;:::i;:::-;13966:12;:52:::0;-1:-1:-1;13830:196:0:o;21835:155::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;21926:11:::1;:22:::0;;-1:-1:-1;;21926:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;21959:13:::1;:23:::0;21835:155::o;22342:167::-;22410:7;22437:64;22478:22;:20;:22::i;:::-;22460:4;;22437:36;;22450:22;;22470:1;;22450:15;;-1:-1:-1;;;;;22460:4:0;22450:9;:15::i;:::-;:19;;:22::i;:::-;22437:8;;:12;:36::i;:::-;:40;;:64::i;17320:198::-;17449:15;;17409:21;;-1:-1:-1;;;;;17449:15:0;17441:69;17506:3;17475:28;17487:16;17409:21;17475:28;:::i;:::-;:34;;;;:::i;:::-;17441:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17378:140;17320:198;:::o;17747:284::-;17828:4;17855:6;17865:1;17855:11;17852:95;;17891:44;;-1:-1:-1;;;17891:44:0;;-1:-1:-1;;;;;17891:29:0;;;;;:44;;17929:4;;17891:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17882:53;;17852:95;17993:21;;17964:59;;-1:-1:-1;;;17964:59:0;;-1:-1:-1;;;;;17993:21:0;;;17964:59;;;8205:51:1;8272:18;;;8265:34;;;17964:28:0;;;;;;8178:18:1;;17964:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7176:244::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7265:22:0;::::1;7257:73;;;::::0;-1:-1:-1;;;7257:73:0;;8762:2:1;7257:73:0::1;::::0;::::1;8744:21:1::0;8801:2;8781:18;;;8774:30;8840:34;8820:18;;;8813:62;-1:-1:-1;;;8891:18:1;;;8884:36;8937:19;;7257:73:0::1;8560:402:1::0;7257:73:0::1;7367:6;::::0;;7346:38:::1;::::0;-1:-1:-1;;;;;7346:38:0;;::::1;::::0;7367:6;::::1;::::0;7346:38:::1;::::0;::::1;7395:6;:17:::0;;-1:-1:-1;;;;;;7395:17:0::1;-1:-1:-1::0;;;;;7395:17:0;;;::::1;::::0;;;::::1;::::0;;7176:244::o;17619:120::-;17675:21;;17667:62;;-1:-1:-1;;;;;17675:21:0;;;;17707;17667:62;;;;;17675:21;17667:62;17675:21;17667:62;17707:21;17675;17667:62;;;;;;;;;;;;;;;;;;;;;17619:120::o;17527:83::-;6933:6;;-1:-1:-1;;;;;6933:6:0;6243:10;6933:22;6925:67;;;;-1:-1:-1;;;6925:67:0;;;;;;;:::i;:::-;17586:10:::1;:8;:10::i;:::-;17527:83::o:0;4605:250::-;4663:7;4687:1;4692;4687:6;4683:47;;-1:-1:-1;4717:1:0;4710:8;;4683:47;4742:9;4754:5;4758:1;4754;:5;:::i;:::-;4742:17;-1:-1:-1;4787:1:0;4778:5;4782:1;4742:17;4778:5;:::i;:::-;:10;4770:56;;;;-1:-1:-1;;;4770:56:0;;9169:2:1;4770:56:0;;;9151:21:1;9208:2;9188:18;;;9181:30;9247:34;9227:18;;;9220:62;-1:-1:-1;;;9298:18:1;;;9291:31;9339:19;;4770:56:0;8967:397:1;4861:132:0;4919:7;4946:39;4950:1;4953;4946:39;;;;;;;;;;;;;-1:-1:-1;;;4946:39:0;;;:3;:39::i;4407:192::-;4493:7;4529:12;4521:6;;;;4513:29;;;;-1:-1:-1;;;4513:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4553:9:0;4565:5;4569:1;4565;:5;:::i;:::-;4553:17;4407:192;-1:-1:-1;;;;;4407:192:0:o;14042:1412::-;14154:6;;14134:4;;14154:6;;14151:63;;;14170:41;14185:6;14193:9;14204:6;14170:14;:41::i;:::-;14163:48;;;;14151:63;-1:-1:-1;;;;;14230:22:0;;;;;;:14;:22;;;;;;;;14229:23;:53;;;;-1:-1:-1;;;;;;14257:25:0;;;;;;:14;:25;;;;;;;;14256:26;14229:53;14226:233;;;14306:11;;-1:-1:-1;;;14306:11:0;;;;14298:43;;;;-1:-1:-1;;;14298:43:0;;9704:2:1;14298:43:0;;;9686:21:1;9743:2;9723:18;;;9716:30;-1:-1:-1;;;9762:18:1;;;9755:50;9822:18;;14298:43:0;9502:344:1;14298:43:0;14370:6;;-1:-1:-1;;;14370:6:0;;;;14367:81;;;-1:-1:-1;;;;;14404:17:0;;;;;;:6;:17;;;;;;;;14396:37;;;;-1:-1:-1;;;14396:37:0;;10053:2:1;14396:37:0;;;10035:21:1;10092:1;10072:18;;;10065:29;-1:-1:-1;;;10110:18:1;;;10103:38;10158:18;;14396:37:0;9851:331:1;14396:37:0;-1:-1:-1;;;;;14491:22:0;;;;;;:14;:22;;;;;;;;14490:23;:53;;;;-1:-1:-1;;;;;;14517:26:0;;14538:4;14517:26;;14490:53;:84;;;;-1:-1:-1;14569:4:0;;-1:-1:-1;;;;;14548:26:0;;;14569:4;;14548:26;;14490:84;:105;;;;-1:-1:-1;14591:4:0;;-1:-1:-1;;;;;14578:17:0;;;14591:4;;14578:17;;14490:105;:137;;;;-1:-1:-1;14612:15:0;;-1:-1:-1;;;;;14599:28:0;;;14612:15;;14599:28;;14490:137;:174;;;;-1:-1:-1;14644:20:0;;-1:-1:-1;;;;;14631:33:0;;;14644:20;;14631:33;;14490:174;:205;;;;-1:-1:-1;;;;;;14669:26:0;;;;;;:15;:26;;;;;;;;14668:27;14490:205;14486:397;;;14711:18;14732:20;14742:9;14732;:20::i;:::-;14800:15;;14711:41;;-1:-1:-1;14776:19:0;14789:6;14711:41;14776:19;:::i;:::-;14775:40;;14767:114;;;;-1:-1:-1;;;14767:114:0;;10519:2:1;14767:114:0;;;10501:21:1;10558:2;10538:18;;;10531:30;10597:34;10577:18;;;10570:62;10668:32;10648:18;;;10641:60;10718:19;;14767:114:0;10317:426:1;14767:114:0;14696:187;14486:397;14948:28;14961:6;14969;14948:12;:28::i;:::-;14993:16;:14;:16::i;:::-;14990:35;;;15012:10;:8;:10::i;:::-;15105:53;;;;;;;;;;;-1:-1:-1;;;15105:53:0;;;;;;;;-1:-1:-1;;;;;15105:17:0;;-1:-1:-1;15105:17:0;;;:9;:17;;;;;;;;:53;;15127:6;;15105:21;:53::i;:::-;-1:-1:-1;;;;;15085:17:0;;;;;;:9;:17;;;;;;;;:73;;;;15197:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;15220:22:0;;;;;;:11;:22;;;;;;;;15197:45;15196:93;;15255:34;15263:6;15271;15279:9;15255:7;:34::i;:::-;15196:93;;;15246:6;15196:93;-1:-1:-1;;;;;15323:20:0;;;;;;:9;:20;;;;;;15171:118;;-1:-1:-1;15323:40:0;;15171:118;15323:24;:40::i;:::-;-1:-1:-1;;;;;15300:20:0;;;;;;;:9;:20;;;;;;;:63;;;;15381:43;;;;;;-1:-1:-1;;;;;;;;;;;15381:43:0;;;15409:14;160:25:1;;148:2;133:18;;14:177;15381:43:0;;;;;;;;-1:-1:-1;15442:4:0;;14042:1412;-1:-1:-1;;;;14042:1412:0:o;4265:136::-;4323:7;4350:43;4354:1;4357;4350:43;;;;;;;;;;;;;;;;;:3;:43::i;4078:181::-;4136:7;;4168:5;4172:1;4168;:5;:::i;:::-;4156:17;;4197:1;4192;:6;;4184:46;;;;-1:-1:-1;;;4184:46:0;;10950:2:1;4184:46:0;;;10932:21:1;10989:2;10969:18;;;10962:30;-1:-1:-1;;;11008:18:1;;;11001:57;11075:18;;4184:46:0;10748:351:1;18775:1861:0;10844:6;:13;;-1:-1:-1;;10844:13:0;10853:4;10844:13;;;18870:15:::1;::::0;18887:26:::1;::::0;10844:6;;18854:60:::1;::::0;:15:::1;:60::i;:::-;:79;;18921:12;;18854:79;;;18917:1;18854:79;18824:109;;18944:23;18970:59;19027:1;18970:52;19013:8;;18970:38;18988:19;18970:13;;:17;;:38;;;;:::i;:59::-;18944:85;;19040:20;19063:34;19081:15;19063:13;;:17;;:34;;;;:::i;:::-;19134:16;::::0;;19148:1:::1;19134:16:::0;;;;;::::1;::::0;;19040:57;;-1:-1:-1;19110:21:0::1;::::0;19134:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19134:16:0::1;19110:40;;19179:4;19161;19166:1;19161:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19161:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;19205:4:::1;::::0;19195:7;;19205:4;::::1;::::0;19195;;19205;;19195:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;19195:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;19280:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;19280:188:0;;19246:21:::1;::::0;19280:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;19352:12;;19222:21:::1;::::0;19395:4;;19422::::1;::::0;19442:15:::1;::::0;19280:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19481:17;19501:40;19527:13;19501:21;:25;;:40;;;;:::i;:::-;19481:60:::0;-1:-1:-1;19554:19:0::1;19576:40;19589:26;:19:::0;19613:1:::1;19589:23;:26::i;:::-;19576:8;::::0;;:12:::1;:40::i;:::-;19554:62:::0;-1:-1:-1;19637:26:0::1;19666:58;19722:1;19666:51;19554:62:::0;19666:51;:9;19680:19;19666:13:::1;:34::i;:58::-;19637:87;;19735:26;19764:44;19796:11;19764:27;19778:12;;19764:9;:13;;:27;;;;:::i;:44::-;19735:73;;19819:21;19843:39;19870:11;19843:22;19857:7;;19843:9;:13;;:22;;;;:::i;:39::-;19819:63;;19893:20;19916:38;19942:11;19916:21;19930:6;;19916:9;:13;;:21;;;;:::i;:38::-;19996:20;::::0;19988:65:::1;::::0;19893:61;;-1:-1:-1;19968:15:0::1;::::0;-1:-1:-1;;;;;19996:20:0;;::::1;::::0;20030:18;;19968:15;19988:65;19968:15;19988:65;20030:18;19996:20;19988:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;20088:14:0::1;::::0;20080:53:::1;::::0;19967:86;;-1:-1:-1;;;;;;20088:14:0::1;::::0;20116:12;;20080:53:::1;::::0;;;20116:12;20088:14;20080:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;20168:15:0::1;::::0;20160:55:::1;::::0;20064:69;;-1:-1:-1;;;;;;20168:15:0::1;::::0;20197:13;;20160:55:::1;::::0;;;20197:13;20168:15;20160:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;20249:5:0::1;::::0;-1:-1:-1;;20270:19:0;;;-1:-1:-1;20267:362:0::1;;20305:6;::::0;20479:21:::1;::::0;20305:244:::1;::::0;-1:-1:-1;;;20305:244:0;;20381:4:::1;20305:244;::::0;::::1;12772:34:1::0;12822:18;;;12815:34;;;20305:6:0::1;12865:18:1::0;;;12858:34;;;12908:18;;;12901:34;-1:-1:-1;;;;;20479:21:0;;::::1;12951:19:1::0;;;12944:44;20519:15:0::1;13004:19:1::0;;;12997:35;20305:6:0;::::1;::::0;:22:::1;::::0;20335:18;;12706:19:1;;20305:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;20569:48:0::1;::::0;;13528:25:1;;;13584:2;13569:18;;13562:34;;;20569:48:0::1;::::0;-1:-1:-1;13501:18:1;20569:48:0::1;;;;;;;20267:362;-1:-1:-1::0;;10862:6:0;:14;;-1:-1:-1;;10862:14:0;;;-1:-1:-1;;;;;;;;;;18775:1861:0:o;4999:189::-;5085:7;5120:12;5113:5;5105:28;;;;-1:-1:-1;;;5105:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5144:9:0;5156:5;5160:1;5156;:5;:::i;15466:330::-;15596:53;;;;;;;;;;;-1:-1:-1;;;15596:53:0;;;;;;;;-1:-1:-1;;;;;15596:17:0;;15559:4;15596:17;;;:9;:17;;;;;;;:53;;15618:6;;15596:21;:53::i;:::-;-1:-1:-1;;;;;15576:17:0;;;;;;;:9;:17;;;;;;:73;;;;15683:20;;;;;;;:32;;15708:6;15683:24;:32::i;:::-;-1:-1:-1;;;;;15660:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15731:35;;;;;;-1:-1:-1;;;;;;;;;;;15731:35:0;;;15759:6;160:25:1;;148:2;133:18;;14:177;15731:35:0;;;;;;;;-1:-1:-1;15784:4:0;15466:330;;;;;:::o;15804:166::-;15901:12;;15891:6;:22;;:49;;;-1:-1:-1;;;;;;15917:23:0;;;;;;:15;:23;;;;;;;;15891:49;15883:79;;;;-1:-1:-1;;;15883:79:0;;13809:2:1;15883:79:0;;;13791:21:1;13848:2;13828:18;;;13821:30;-1:-1:-1;;;13867:18:1;;;13860:47;13924:18;;15883:79:0;13607:341:1;15883:79:0;15804:166;;:::o;17115:197::-;17202:4;;17164;;-1:-1:-1;;;;;17202:4:0;17188:10;:18;;;;:38;;-1:-1:-1;17220:6:0;;;;17219:7;17188:38;:62;;;;-1:-1:-1;17239:11:0;;;;17188:62;:116;;;;-1:-1:-1;;17291:13:0;;17281:4;17263:24;;;;:9;:24;;;;;;:41;;;17115:197::o;16100:1007::-;16237:18;;16284:4;;16186:7;;16237:18;-1:-1:-1;;;;;16284:4:0;;;16271:17;;;;16268:154;;-1:-1:-1;16318:14:0;;16268:154;;;16363:4;;-1:-1:-1;;;;;16363:4:0;;;16353:14;;;;16350:72;;-1:-1:-1;16397:13:0;;16350:72;16434:17;16454:62;16495:14;;16512:3;16495:20;;;;:::i;:::-;16454:36;16479:10;16454:20;16465:8;;16454:6;:10;;:20;;;;:::i;:62::-;16434:82;;16527:18;16548:36;16575:8;;16548:22;16562:7;;16548:9;:13;;:22;;;;:::i;:36::-;16527:57;-1:-1:-1;16595:22:0;16620:25;:9;16527:57;16620:13;:25::i;:::-;16703:4;16685:24;;;;:9;:24;;;;;;16595:50;;-1:-1:-1;16685:44:0;;16595:50;16685:28;:44::i;:::-;16676:4;16658:24;;;;:9;:24;;;;;;:71;;;;16779:15;;-1:-1:-1;;;;;16779:15:0;16769:26;;;;:42;;16800:10;16769:30;:42::i;:::-;16750:15;;-1:-1:-1;;;;;16750:15:0;;;16740:26;;;;:9;:26;;;;;;;;;:71;;;;16827:47;160:25:1;;;16852:4:0;;16827:47;;;;-1:-1:-1;;;;;;;;;;;16827:47:0;133:18:1;16827:47:0;;;;;;;16908:14;;16905:154;;16953:12;;:28;;16970:10;16953:16;:28::i;:::-;16938:12;:43;17018:4;;17001:34;;160:25:1;;;-1:-1:-1;;;;;17018:4:0;;;;17001:34;;;-1:-1:-1;;;;;;;;;;;17001:34:0;148:2:1;133:18;17001:34:0;;;;;;;16905:154;17078:21;:6;17089:9;17078:10;:21::i;:::-;17071:28;16100:1007;-1:-1:-1;;;;;;;;16100:1007:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:118::-;1717:5;1710:13;1703:21;1696:5;1693:32;1683:60;;1739:1;1736;1729:12;1754:750;1846:6;1854;1862;1915:2;1903:9;1894:7;1890:23;1886:32;1883:52;;;1931:1;1928;1921:12;1883:52;1971:9;1958:23;2000:18;2041:2;2033:6;2030:14;2027:34;;;2057:1;2054;2047:12;2027:34;2095:6;2084:9;2080:22;2070:32;;2140:7;2133:4;2129:2;2125:13;2121:27;2111:55;;2162:1;2159;2152:12;2111:55;2202:2;2189:16;2228:2;2220:6;2217:14;2214:34;;;2244:1;2241;2234:12;2214:34;2299:7;2292:4;2282:6;2279:1;2275:14;2271:2;2267:23;2263:34;2260:47;2257:67;;;2320:1;2317;2310:12;2257:67;2351:4;2343:13;;;;-1:-1:-1;2375:6:1;-1:-1:-1;;2416:20:1;;2403:34;2446:28;2403:34;2446:28;:::i;:::-;2493:5;2483:15;;;1754:750;;;;;:::o;2509:316::-;2586:6;2594;2602;2655:2;2643:9;2634:7;2630:23;2626:32;2623:52;;;2671:1;2668;2661:12;2623:52;-1:-1:-1;;2694:23:1;;;2764:2;2749:18;;2736:32;;-1:-1:-1;2815:2:1;2800:18;;;2787:32;;2509:316;-1:-1:-1;2509:316:1:o;2830:328::-;2907:6;2915;2923;2976:2;2964:9;2955:7;2951:23;2947:32;2944:52;;;2992:1;2989;2982:12;2944:52;3015:29;3034:9;3015:29;:::i;:::-;3005:39;;3063:38;3097:2;3086:9;3082:18;3063:38;:::i;:::-;3053:48;;3148:2;3137:9;3133:18;3120:32;3110:42;;2830:328;;;;;:::o;3163:180::-;3222:6;3275:2;3263:9;3254:7;3250:23;3246:32;3243:52;;;3291:1;3288;3281:12;3243:52;-1:-1:-1;3314:23:1;;3163:180;-1:-1:-1;3163:180:1:o;3348:484::-;3443:6;3451;3459;3467;3475;3528:3;3516:9;3507:7;3503:23;3499:33;3496:53;;;3545:1;3542;3535:12;3496:53;3568:29;3587:9;3568:29;:::i;:::-;3558:39;;3616:38;3650:2;3639:9;3635:18;3616:38;:::i;:::-;3606:48;;3673:38;3707:2;3696:9;3692:18;3673:38;:::i;:::-;3663:48;;3730:38;3764:2;3753:9;3749:18;3730:38;:::i;:::-;3720:48;;3787:39;3821:3;3810:9;3806:19;3787:39;:::i;:::-;3777:49;;3348:484;;;;;;;;:::o;4026:186::-;4085:6;4138:2;4126:9;4117:7;4113:23;4109:32;4106:52;;;4154:1;4151;4144:12;4106:52;4177:29;4196:9;4177:29;:::i;4217:315::-;4282:6;4290;4343:2;4331:9;4322:7;4318:23;4314:32;4311:52;;;4359:1;4356;4349:12;4311:52;4382:29;4401:9;4382:29;:::i;:::-;4372:39;;4461:2;4450:9;4446:18;4433:32;4474:28;4496:5;4474:28;:::i;:::-;4521:5;4511:15;;;4217:315;;;;;:::o;4537:241::-;4593:6;4646:2;4634:9;4625:7;4621:23;4617:32;4614:52;;;4662:1;4659;4652:12;4614:52;4701:9;4688:23;4720:28;4742:5;4720:28;:::i;4783:203::-;-1:-1:-1;;;;;4947:32:1;;;;4929:51;;4917:2;4902:18;;4783:203::o;4991:523::-;5095:6;5103;5111;5119;5127;5135;5188:3;5176:9;5167:7;5163:23;5159:33;5156:53;;;5205:1;5202;5195:12;5156:53;-1:-1:-1;;5228:23:1;;;5298:2;5283:18;;5270:32;;-1:-1:-1;5349:2:1;5334:18;;5321:32;;5400:2;5385:18;;5372:32;;-1:-1:-1;5451:3:1;5436:19;;5423:33;;-1:-1:-1;5503:3:1;5488:19;5475:33;;-1:-1:-1;4991:523:1;-1:-1:-1;4991:523:1:o;5519:309::-;5584:6;5592;5645:2;5633:9;5624:7;5620:23;5616:32;5613:52;;;5661:1;5658;5651:12;5613:52;5700:9;5687:23;5719:28;5741:5;5719:28;:::i;5833:260::-;5901:6;5909;5962:2;5950:9;5941:7;5937:23;5933:32;5930:52;;;5978:1;5975;5968:12;5930:52;6001:29;6020:9;6001:29;:::i;:::-;5991:39;;6049:38;6083:2;6072:9;6068:18;6049:38;:::i;:::-;6039:48;;5833:260;;;;;:::o;6324:356::-;6526:2;6508:21;;;6545:18;;;6538:30;6604:34;6599:2;6584:18;;6577:62;6671:2;6656:18;;6324:356::o;6685:127::-;6746:10;6741:3;6737:20;6734:1;6727:31;6777:4;6774:1;6767:15;6801:4;6798:1;6791:15;6817:127;6878:10;6873:3;6869:20;6866:1;6859:31;6909:4;6906:1;6899:15;6933:4;6930:1;6923:15;6949:135;6988:3;7009:17;;;7006:43;;7029:18;;:::i;:::-;-1:-1:-1;7076:1:1;7065:13;;6949:135::o;7089:217::-;7129:1;7155;7145:132;;7199:10;7194:3;7190:20;7187:1;7180:31;7234:4;7231:1;7224:15;7262:4;7259:1;7252:15;7145:132;-1:-1:-1;7291:9:1;;7089:217::o;7311:168::-;7384:9;;;7415;;7432:15;;;7426:22;;7412:37;7402:71;;7453:18;;:::i;7842:184::-;7912:6;7965:2;7953:9;7944:7;7940:23;7936:32;7933:52;;;7981:1;7978;7971:12;7933:52;-1:-1:-1;8004:16:1;;7842:184;-1:-1:-1;7842:184:1:o;8310:245::-;8377:6;8430:2;8418:9;8409:7;8405:23;8401:32;8398:52;;;8446:1;8443;8436:12;8398:52;8478:9;8472:16;8497:28;8519:5;8497:28;:::i;9369:128::-;9436:9;;;9457:11;;;9454:37;;;9471:18;;:::i;10187:125::-;10252:9;;;10273:10;;;10270:36;;;10286:18;;:::i;11236:980::-;11498:4;11546:3;11535:9;11531:19;11577:6;11566:9;11559:25;11603:2;11641:6;11636:2;11625:9;11621:18;11614:34;11684:3;11679:2;11668:9;11664:18;11657:31;11708:6;11743;11737:13;11774:6;11766;11759:22;11812:3;11801:9;11797:19;11790:26;;11851:2;11843:6;11839:15;11825:29;;11872:1;11882:195;11896:6;11893:1;11890:13;11882:195;;;11961:13;;-1:-1:-1;;;;;11957:39:1;11945:52;;12052:15;;;;12017:12;;;;11993:1;11911:9;11882:195;;;-1:-1:-1;;;;;;;12133:32:1;;;;12128:2;12113:18;;12106:60;-1:-1:-1;;;12197:3:1;12182:19;12175:35;12094:3;11236:980;-1:-1:-1;;;11236:980:1:o;13043:306::-;13131:6;13139;13147;13200:2;13188:9;13179:7;13175:23;13171:32;13168:52;;;13216:1;13213;13206:12;13168:52;13245:9;13239:16;13229:26;;13295:2;13284:9;13280:18;13274:25;13264:35;;13339:2;13328:9;13324:18;13318:25;13308:35;;13043:306;;;;;:::o

Swarm Source

ipfs://f252b6994337cd2850f8c52c5f3ce260be9cac075d4134cf82c502394de3e817
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.