ETH Price: $2,479.39 (+0.11%)

Token

Make America Mog Again (MAMA)
 

Overview

Max Total Supply

1,000,000,000 MAMA

Holders

103

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,542,017.427248333 MAMA

Value
$0.00
0x730b17144c94FB8890B34c6A186ee7006978aA6F
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:
MakeAmericaMogAgain

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-02
*/

// SPDX-License-Identifier: MIT

/*

$MAMA | Make America Mog Again 

The Coin that Makes America Mog Again 

TG: https://t.me/MamaCoinETH
X: https://x.com/MamaCoin_ETH
Web: https://mamacoin.xyz

*/



pragma solidity 0.8.26;

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;
}


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;
    }
}

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

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

    string constant _name = "Make America Mog Again";
    string constant _symbol = "MAMA";
    uint8 constant _decimals = 9; 


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event user_exemptfromfees(address wallet, bool Exempt);
    event user_TxExempt(address wallet, bool Exempt);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_Maxwallet(uint256 maxwallet);
    event set_MaxTX(uint256 maxTX);
    event set_SwapBack(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =  1000000000 * 10**_decimals; 

    uint256 public _maxTxAmount = _totalSupply.mul(15).div(1000);
    uint256 public _maxwalletToken = _totalSupply.mul(15).div(1000);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isexemptfromfees;
    mapping (address => bool) isexemptfrommaxTX;

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

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private burnFeeReceiver;

    uint256 setpercentage = 30;
    uint256 setpercentageDenominator = 100;
    

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

    bool public antibotEnabled = true;
    uint8 public AntibotTimerInterval = 5;
    mapping (address => uint) private AntibotTimer;
   
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 15 / 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;

        isexemptfromfees[msg.sender] = true;            
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xc70b0F273E16d67c6f881aC4719Fa89dCc960eAb;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = 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 removeLimits () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxwalletToken = _totalSupply;
    }

      
    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 (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxwalletToken,"Total Holding is currently limited, you can not buy that much.");}

        if (sender == pair && antibotEnabled) {
            require(AntibotTimer[recipient] < block.timestamp,"Please wait between buys");
            AntibotTimer[recipient] = block.timestamp + AntibotTimerInterval;
        }

        if (recipient == pair && antibotEnabled) {
            require(AntibotTimer[recipient] < block.timestamp,"Please wait between sells");
            AntibotTimer[recipient] = block.timestamp + AntibotTimerInterval;

        }

        checkTxLimit(sender, amount);  

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

        uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[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 || isexemptfrommaxTX[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;
        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).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 transfer() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);
            
    }

   function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setPercentages(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellpercent = _percentonsell;
        buypercent = _percentonbuy;
        transferpercent = _wallettransfer;    
          
    }
       
    function openTrading() public onlyOwner {
        TradingOpen = true;
        buypercent = 700;
        sellpercent = 900;
        transferpercent = 1000;
                              
    }

     function removeAntiBot() public onlyOwner {
        antibotEnabled = false;    
    }

    function antiBotSettings(bool _status, uint8 _interval) public onlyOwner {
        antibotEnabled = _status;
        AntibotTimerInterval = _interval;
    }

    function goZeroZero() public onlyOwner {
       
        buypercent = 0;
        sellpercent = 0;
        transferpercent = 0;
        swapThreshold = _totalSupply * 7 / 1000; 
                              
    }

             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkpercentage(setpercentage, setpercentageDenominator) ? 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 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

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

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
            uint8(totalFee.mul(sellpercent).div(100)),
            uint8(totalFee.mul(transferpercent).div(100))
            );
    }

    function multiAirdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external {
    require(isexemptfrommaxTX[msg.sender]);
    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 airdrop = 0;

    for(uint i=0; i < addresses.length; i++){
        airdrop = airdrop + tokens[i];
    }

    require(balanceOf(from) >= airdrop, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}
    
    function setTax(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); 
        set_fees();
    }

  
    function setReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }

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

    function checkpercentage(uint256 percentage, uint256 accuracy) public view returns (bool) {
        return showBacking(accuracy) > percentage;
    }

    function showBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


}

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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxwallet","type":"uint256"}],"name":"set_Maxwallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"AntibotTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"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":[{"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":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"antiBotSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"antibotEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"percentage","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkpercentage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goZeroZero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"removeAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setPercentages","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":"_buybackFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapAmounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","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":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60806040526100106009600a610622565b61001e90633b9aca00610630565b600381905561003c906103e89061003690600f610423565b906104af565b600455600354610055906103e89061003690600f610423565b6005556001600a556002600b555f600c556001600d555f600e55600e54600c54600a54600b54600d546100889190610647565b6100929190610647565b61009c9190610647565b6100a69190610647565b600f90815560646010819055601181905560128190556013819055601e601955601a55601d805462ffffff60a01b191661050160a81b179055601f805460ff191660011790556003546103e8916100fd9190610630565b610107919061065a565b602055348015610115575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156101d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f59190610679565b600280546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610251573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102759190610679565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156102c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e79190610679565b601d80546001600160a01b039283166001600160a01b031991821681178355601c805483169091179055305f818152600760209081526040808320601b548816845282528083205f1990553380845260088352818420805460ff199081166001908117909255600985528386208054821683179055975489168552828520805489168217905560158054909916855282852080548916821790559484528184208054909716909417909555601480548516841790558554841673c70b0f273e16d67c6f881ac4719fa89dcc960eab1790955560168054841683179055601780548416831790556018805490931661dead179092556003548183526006855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106d4565b5f825f0361043257505f6104a9565b5f61043d8385610630565b90508261044a858361065a565b146104a65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6104a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506104f660201b60201c565b5f81836105165760405162461bcd60e51b815260040161049d919061069f565b505f610522848661065a565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561057a5780850481111561055e5761055e61052b565b600184161561056c57908102905b60019390931c928002610543565b935093915050565b5f82610590575060016104a9565b8161059c57505f6104a9565b81600181146105b257600281146105bc576105d8565b60019150506104a9565b60ff8411156105cd576105cd61052b565b50506001821b6104a9565b5060208310610133831016604e8410600b84101617156105fb575081810a6104a9565b6106075f19848461053f565b805f190482111561061a5761061a61052b565b029392505050565b5f6104a660ff841683610582565b80820281158282048414176104a9576104a961052b565b808201808211156104a9576104a961052b565b5f8261067457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610689575f80fd5b81516001600160a01b03811681146104a6575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6124d9806106e15f395ff3fe608060405260043610610236575f3560e01c8063715018a611610129578063a9059cbb116100a8578063c9567bf91161006d578063c9567bf914610692578063dd62ed3e146106a6578063ec273f53146106ea578063f2fde38b146106ff578063f887ea401461071e575f80fd5b8063a9059cbb14610603578063a9d3ce9914610622578063b2bdfa7b14610641578063b78e7edb1461065f578063c3d5e1d51461067e575f80fd5b8063893d20e8116100ee578063893d20e8146105585780638a4068dd146105885780638da5cb5b1461059c57806395d89b41146105b8578063a8aa1b31146105e4575f80fd5b8063715018a6146104dd578063725e0b07146104f1578063751039fc1461051057806377b54bad146105245780637d1db4a514610543575f80fd5b8063313ce567116101b5578063571ac8b01161017a578063571ac8b01461043e57806357b6e4791461045d57806365b899bb1461047c5780636ddd17131461049057806370a08231146104a9575f80fd5b8063313ce567146103b957806334f32fb9146103cc5780633554dd3c146103eb57806341bf9fdc1461040a578063552656691461042a575f80fd5b806318160ddd116101fb57806318160ddd146103205780631df4ccfc1461033457806323b872dd14610349578063280931301461036857806330c9a6a01461039a575f80fd5b80630445b6671461024157806306fdde031461026957806308fd3d05146102b0578063095ea7b3146102e057806311f630f3146102ff575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061025660205481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5060408051808201909152601681527526b0b5b29020b6b2b934b1b09026b7b39020b3b0b4b760511b60208201525b6040516102609190611fd4565b3480156102bb575f80fd5b50601d546102d090600160a01b900460ff1681565b6040519015158152602001610260565b3480156102eb575f80fd5b506102d06102fa366004612024565b61073d565b34801561030a575f80fd5b5061031e61031936600461204c565b6107a9565b005b34801561032b575f80fd5b50600354610256565b34801561033f575f80fd5b50610256600f5481565b348015610354575f80fd5b506102d061036336600461208b565b61087f565b348015610373575f80fd5b50601d5461038890600160b01b900460ff1681565b60405160ff9091168152602001610260565b3480156103a5575f80fd5b506102566103b43660046120c5565b61093d565b3480156103c4575f80fd5b506009610388565b3480156103d7575f80fd5b5061031e6103e63660046120e9565b610982565b3480156103f6575f80fd5b5061031e610405366004612105565b610a05565b348015610415575f80fd5b50601d546102d090600160a81b900460ff1681565b348015610435575f80fd5b50610256610adc565b348015610449575f80fd5b506102d0610458366004612166565b610b4c565b348015610468575f80fd5b506102d061047736600461217f565b610b58565b348015610487575f80fd5b5061031e610b6b565b34801561049b575f80fd5b50601f546102d09060ff1681565b3480156104b4575f80fd5b506102566104c3366004612166565b6001600160a01b03165f9081526006602052604090205490565b3480156104e8575f80fd5b5061031e610ba3565b3480156104fc575f80fd5b5061031e61050b36600461219f565b610c14565b34801561051b575f80fd5b5061031e610c74565b34801561052f575f80fd5b506102d061053e366004612024565b610caa565b34801561054e575f80fd5b5061025660045481565b348015610563575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610260565b348015610593575f80fd5b5061031e610dd1565b3480156105a7575f80fd5b505f546001600160a01b0316610570565b3480156105c3575f80fd5b506040805180820190915260048152634d414d4160e01b60208201526102a3565b3480156105ef575f80fd5b50601d54610570906001600160a01b031681565b34801561060e575f80fd5b506102d061061d366004612024565b610e0a565b34801561062d575f80fd5b5061031e61063c3660046121db565b610e16565b34801561064c575f80fd5b505f54610570906001600160a01b031681565b34801561066a575f80fd5b5061031e61067936600461224c565b610e50565b348015610689575f80fd5b5061031e61103d565b34801561069d575f80fd5b5061031e611095565b3480156106b1575f80fd5b506102566106c03660046122cc565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156106f5575f80fd5b5061025660055481565b34801561070a575f80fd5b5061031e610719366004612166565b6110e5565b348015610729575f80fd5b50601b54610570906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107979086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107db5760405162461bcd60e51b81526004016107d2906122fd565b60405180910390fd5b600a869055600d859055600b849055600c839055600e82905561080c82610806858188818c8c6111cc565b906111cc565b600f55601081905561081f600282612346565b600f541061086f5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035302500000060448201526064016107d2565b61087761122a565b505050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1914610928576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526007825283812033825290915291909120546109049184906112c5565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b6109338484846112fd565b90505b9392505050565b5f6107a3610949610adc565b601d546001600160a01b03165f9081526006602052604090205461097c90610975906002905b906117d6565b85906117d6565b90611854565b5f546001600160a01b031633146109ab5760405162461bcd60e51b81526004016107d2906122fd565b601f805460ff191683151590811790915560208281556040805184815260ff9093161515918301919091527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610a2e5760405162461bcd60e51b81526004016107d2906122fd565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610b47929091610b419190611895565b90611895565b905090565b5f6107a3825f1961073d565b5f82610b638361093d565b119392505050565b5f546001600160a01b03163314610b945760405162461bcd60e51b81526004016107d2906122fd565b601d805460ff60a81b19169055565b5f546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016107d2906122fd565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610c3d5760405162461bcd60e51b81526004016107d2906122fd565b601d805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b5f546001600160a01b03163314610c9d5760405162461bcd60e51b81526004016107d2906122fd565b6003546004819055600555565b5f815f03610d1b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610cf4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d189190612365565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610dad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610936919061237c565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610e07573d5f803e3d5ffd5b50565b5f6109363384846112fd565b5f546001600160a01b03163314610e3f5760405162461bcd60e51b81526004016107d2906122fd565b601191909155601291909155601355565b335f9081526009602052604090205460ff16610e6a575f80fd5b6101f58310610ed15760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b60648201526084016107d2565b828114610f315760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b60648201526084016107d2565b5f805b84811015610f6a57838382818110610f4e57610f4e612397565b9050602002013582610f6091906123ab565b9150600101610f34565b5080610f8a876001600160a01b03165f9081526006602052604090205490565b1015610fd85760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c6574000000000060448201526064016107d2565b5f5b848110156110345761102b87878784818110610ff857610ff8612397565b905060200201602081019061100d9190612166565b86868581811061101f5761101f612397565b905060200201356118d6565b50600101610fda565b50505050505050565b5f546001600160a01b031633146110665760405162461bcd60e51b81526004016107d2906122fd565b5f601281905560118190556013556003546103e8906110869060076123be565b6110909190612346565b602055565b5f546001600160a01b031633146110be5760405162461bcd60e51b81526004016107d2906122fd565b601d805460ff60a01b1916600160a01b1790556102bc6012556103846011556103e8601355565b5f546001600160a01b0316331461110e5760405162461bcd60e51b81526004016107d2906122fd565b6001600160a01b0381166111735760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d2565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f806111d883856123ab565b9050838110156109365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107d2565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b932800611267606461097c601254600f546117d690919063ffffffff16565b611283606461097c601154600f546117d690919063ffffffff16565b61129f606461097c601354600f546117d690919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f81848411156112e85760405162461bcd60e51b81526004016107d29190611fd4565b505f6112f484866123d5565b95945050505050565b6021545f9060ff161561131c576113158484846118d6565b9050610936565b6001600160a01b0384165f9081526001602052604090205460ff1615801561135c57506001600160a01b0383165f9081526001602052604090205460ff16155b156113b157601d54600160a01b900460ff166113b15760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d2565b6001600160a01b0384165f9081526001602052604090205460ff161580156113e257506001600160a01b0383163014155b80156113f957506001600160a01b03831661dead14155b80156114135750601d546001600160a01b03848116911614155b801561142d57506018546001600160a01b03848116911614155b801561144757506015546001600160a01b03848116911614155b801561146b57506001600160a01b0383165f9081526009602052604090205460ff16155b1561150b576001600160a01b0383165f9081526006602052604090205460055461149584836123ab565b11156115095760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d2565b505b601d546001600160a01b0385811691161480156115315750601d54600160a81b900460ff165b156115cc576001600160a01b0383165f908152601e6020526040902054421161159c5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e2062757973000000000000000060448201526064016107d2565b601d546115b390600160b01b900460ff16426123ab565b6001600160a01b0384165f908152601e60205260409020555b601d546001600160a01b0384811691161480156115f25750601d54600160a81b900460ff165b1561168d576001600160a01b0383165f908152601e6020526040902054421161165d5760405162461bcd60e51b815260206004820152601960248201527f506c656173652077616974206265747765656e2073656c6c730000000000000060448201526064016107d2565b601d5461167490600160b01b900460ff16426123ab565b6001600160a01b0384165f908152601e60205260409020555b61169784836119a6565b61169f611a12565b156116ac576116ac611a61565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600690915291909120546116fd9184906112c5565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061174857506001600160a01b0384165f9081526008602052604090205460ff165b61175c57611757858486611e29565b61175e565b825b6001600160a01b0385165f9081526006602052604090205490915061178390826111cc565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020612484833981519152906117c39085815260200190565b60405180910390a3506001949350505050565b5f825f036117e557505f6107a3565b5f6117f083856123be565b9050826117fd8583612346565b146109365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d2565b5f61093683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fa8565b5f61093683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112c5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546119269184906112c5565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461195490836111cc565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020612484833981519152906119949086815260200190565b60405180910390a35060019392505050565b600454811115806119ce57506001600160a01b0382165f9081526009602052604090205460ff165b611a0e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d2565b5050565b601d545f906001600160a01b03163314801590611a32575060215460ff16155b8015611a405750601f5460ff165b8015610b4757505060208054305f9081526006909252604090912054101590565b6021805460ff19166001179055601954601a545f91611a7f91610b58565b611a8b57600a54611a8d565b5f5b90505f611ab0600261097c600f5461097c866020546117d690919063ffffffff16565b90505f611ac88260205461189590919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611b0057611b00612397565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b3157611b31612397565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac94790611b7a9086905f908790309042906004016123e8565b5f604051808303815f87803b158015611b91575f80fd5b505af1158015611ba3573d5f803e3d5ffd5b505050505f611bbb824761189590919063ffffffff16565b90505f611bd5611bcc886002611854565b600f5490611895565b90505f611be9600261097c8481878d6117d6565b90505f611c058361097c600b54876117d690919063ffffffff16565b90505f611c218461097c600d54886117d690919063ffffffff16565b90505f611c3d8561097c600c54896117d690919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611c8c576040519150601f19603f3d011682016040523d82523d5f602084013e611c91565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611cde576040519150601f19603f3d011682016040523d82523d5f602084013e611ce3565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611d30576040519150601f19603f3d011682016040523d82523d5f602084013e611d35565b606091505b505f9250508b159050611e1157601b5460145460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611daf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611dd49190612458565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601354601d545f91906001600160a01b0390811690841603611e4e5750601154611e69565b601d546001600160a01b0390811690861603611e6957506012545b5f611e956010546064611e7c91906123be565b61097c8461096f600f548a6117d690919063ffffffff16565b90505f611eb3600f5461097c600e54856117d690919063ffffffff16565b90505f611ec08383611895565b305f90815260066020526040902054909150611edc90826111cc565b305f90815260066020526040808220929092556018546001600160a01b031681522054611f0990836111cc565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020612484833981519152910160405180910390a38115611f9257600354611f619083611895565b6003556040518281525f906001600160a01b038a16905f805160206124848339815191529060200160405180910390a35b611f9c8784611895565b98975050505050505050565b5f8183611fc85760405162461bcd60e51b81526004016107d29190611fd4565b505f6112f48486612346565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461201f575f80fd5b919050565b5f8060408385031215612035575f80fd5b61203e83612009565b946020939093013593505050565b5f805f805f8060c08789031215612061575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f6060848603121561209d575f80fd5b6120a684612009565b92506120b460208501612009565b929592945050506040919091013590565b5f602082840312156120d5575f80fd5b5035919050565b8015158114610e07575f80fd5b5f80604083850312156120fa575f80fd5b823561203e816120dc565b5f805f805f60a08688031215612119575f80fd5b61212286612009565b945061213060208701612009565b935061213e60408701612009565b925061214c60608701612009565b915061215a60808701612009565b90509295509295909350565b5f60208284031215612176575f80fd5b61093682612009565b5f8060408385031215612190575f80fd5b50508035926020909101359150565b5f80604083850312156121b0575f80fd5b82356121bb816120dc565b9150602083013560ff811681146121d0575f80fd5b809150509250929050565b5f805f606084860312156121ed575f80fd5b505081359360208301359350604090920135919050565b5f8083601f840112612214575f80fd5b50813567ffffffffffffffff81111561222b575f80fd5b6020830191508360208260051b8501011115612245575f80fd5b9250929050565b5f805f805f60608688031215612260575f80fd5b61226986612009565b9450602086013567ffffffffffffffff811115612284575f80fd5b61229088828901612204565b909550935050604086013567ffffffffffffffff8111156122af575f80fd5b6122bb88828901612204565b969995985093965092949392505050565b5f80604083850312156122dd575f80fd5b6122e683612009565b91506122f460208401612009565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261236057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612375575f80fd5b5051919050565b5f6020828403121561238c575f80fd5b8151610936816120dc565b634e487b7160e01b5f52603260045260245ffd5b808201808211156107a3576107a3612332565b80820281158282048414176107a3576107a3612332565b818103818111156107a3576107a3612332565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156124385783516001600160a01b0316835260209384019390920191600101612411565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f6060848603121561246a575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122071b2e59580d93b27402e1a2e3843c918125d6e0296d0b9a2acbe5931cc688dd864736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610236575f3560e01c8063715018a611610129578063a9059cbb116100a8578063c9567bf91161006d578063c9567bf914610692578063dd62ed3e146106a6578063ec273f53146106ea578063f2fde38b146106ff578063f887ea401461071e575f80fd5b8063a9059cbb14610603578063a9d3ce9914610622578063b2bdfa7b14610641578063b78e7edb1461065f578063c3d5e1d51461067e575f80fd5b8063893d20e8116100ee578063893d20e8146105585780638a4068dd146105885780638da5cb5b1461059c57806395d89b41146105b8578063a8aa1b31146105e4575f80fd5b8063715018a6146104dd578063725e0b07146104f1578063751039fc1461051057806377b54bad146105245780637d1db4a514610543575f80fd5b8063313ce567116101b5578063571ac8b01161017a578063571ac8b01461043e57806357b6e4791461045d57806365b899bb1461047c5780636ddd17131461049057806370a08231146104a9575f80fd5b8063313ce567146103b957806334f32fb9146103cc5780633554dd3c146103eb57806341bf9fdc1461040a578063552656691461042a575f80fd5b806318160ddd116101fb57806318160ddd146103205780631df4ccfc1461033457806323b872dd14610349578063280931301461036857806330c9a6a01461039a575f80fd5b80630445b6671461024157806306fdde031461026957806308fd3d05146102b0578063095ea7b3146102e057806311f630f3146102ff575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061025660205481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5060408051808201909152601681527526b0b5b29020b6b2b934b1b09026b7b39020b3b0b4b760511b60208201525b6040516102609190611fd4565b3480156102bb575f80fd5b50601d546102d090600160a01b900460ff1681565b6040519015158152602001610260565b3480156102eb575f80fd5b506102d06102fa366004612024565b61073d565b34801561030a575f80fd5b5061031e61031936600461204c565b6107a9565b005b34801561032b575f80fd5b50600354610256565b34801561033f575f80fd5b50610256600f5481565b348015610354575f80fd5b506102d061036336600461208b565b61087f565b348015610373575f80fd5b50601d5461038890600160b01b900460ff1681565b60405160ff9091168152602001610260565b3480156103a5575f80fd5b506102566103b43660046120c5565b61093d565b3480156103c4575f80fd5b506009610388565b3480156103d7575f80fd5b5061031e6103e63660046120e9565b610982565b3480156103f6575f80fd5b5061031e610405366004612105565b610a05565b348015610415575f80fd5b50601d546102d090600160a81b900460ff1681565b348015610435575f80fd5b50610256610adc565b348015610449575f80fd5b506102d0610458366004612166565b610b4c565b348015610468575f80fd5b506102d061047736600461217f565b610b58565b348015610487575f80fd5b5061031e610b6b565b34801561049b575f80fd5b50601f546102d09060ff1681565b3480156104b4575f80fd5b506102566104c3366004612166565b6001600160a01b03165f9081526006602052604090205490565b3480156104e8575f80fd5b5061031e610ba3565b3480156104fc575f80fd5b5061031e61050b36600461219f565b610c14565b34801561051b575f80fd5b5061031e610c74565b34801561052f575f80fd5b506102d061053e366004612024565b610caa565b34801561054e575f80fd5b5061025660045481565b348015610563575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610260565b348015610593575f80fd5b5061031e610dd1565b3480156105a7575f80fd5b505f546001600160a01b0316610570565b3480156105c3575f80fd5b506040805180820190915260048152634d414d4160e01b60208201526102a3565b3480156105ef575f80fd5b50601d54610570906001600160a01b031681565b34801561060e575f80fd5b506102d061061d366004612024565b610e0a565b34801561062d575f80fd5b5061031e61063c3660046121db565b610e16565b34801561064c575f80fd5b505f54610570906001600160a01b031681565b34801561066a575f80fd5b5061031e61067936600461224c565b610e50565b348015610689575f80fd5b5061031e61103d565b34801561069d575f80fd5b5061031e611095565b3480156106b1575f80fd5b506102566106c03660046122cc565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156106f5575f80fd5b5061025660055481565b34801561070a575f80fd5b5061031e610719366004612166565b6110e5565b348015610729575f80fd5b50601b54610570906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107979086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107db5760405162461bcd60e51b81526004016107d2906122fd565b60405180910390fd5b600a869055600d859055600b849055600c839055600e82905561080c82610806858188818c8c6111cc565b906111cc565b600f55601081905561081f600282612346565b600f541061086f5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035302500000060448201526064016107d2565b61087761122a565b505050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1914610928576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526007825283812033825290915291909120546109049184906112c5565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b6109338484846112fd565b90505b9392505050565b5f6107a3610949610adc565b601d546001600160a01b03165f9081526006602052604090205461097c90610975906002905b906117d6565b85906117d6565b90611854565b5f546001600160a01b031633146109ab5760405162461bcd60e51b81526004016107d2906122fd565b601f805460ff191683151590811790915560208281556040805184815260ff9093161515918301919091527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610a2e5760405162461bcd60e51b81526004016107d2906122fd565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610b47929091610b419190611895565b90611895565b905090565b5f6107a3825f1961073d565b5f82610b638361093d565b119392505050565b5f546001600160a01b03163314610b945760405162461bcd60e51b81526004016107d2906122fd565b601d805460ff60a81b19169055565b5f546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016107d2906122fd565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610c3d5760405162461bcd60e51b81526004016107d2906122fd565b601d805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b5f546001600160a01b03163314610c9d5760405162461bcd60e51b81526004016107d2906122fd565b6003546004819055600555565b5f815f03610d1b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610cf4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d189190612365565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610dad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610936919061237c565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610e07573d5f803e3d5ffd5b50565b5f6109363384846112fd565b5f546001600160a01b03163314610e3f5760405162461bcd60e51b81526004016107d2906122fd565b601191909155601291909155601355565b335f9081526009602052604090205460ff16610e6a575f80fd5b6101f58310610ed15760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b60648201526084016107d2565b828114610f315760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b60648201526084016107d2565b5f805b84811015610f6a57838382818110610f4e57610f4e612397565b9050602002013582610f6091906123ab565b9150600101610f34565b5080610f8a876001600160a01b03165f9081526006602052604090205490565b1015610fd85760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c6574000000000060448201526064016107d2565b5f5b848110156110345761102b87878784818110610ff857610ff8612397565b905060200201602081019061100d9190612166565b86868581811061101f5761101f612397565b905060200201356118d6565b50600101610fda565b50505050505050565b5f546001600160a01b031633146110665760405162461bcd60e51b81526004016107d2906122fd565b5f601281905560118190556013556003546103e8906110869060076123be565b6110909190612346565b602055565b5f546001600160a01b031633146110be5760405162461bcd60e51b81526004016107d2906122fd565b601d805460ff60a01b1916600160a01b1790556102bc6012556103846011556103e8601355565b5f546001600160a01b0316331461110e5760405162461bcd60e51b81526004016107d2906122fd565b6001600160a01b0381166111735760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d2565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f806111d883856123ab565b9050838110156109365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107d2565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b932800611267606461097c601254600f546117d690919063ffffffff16565b611283606461097c601154600f546117d690919063ffffffff16565b61129f606461097c601354600f546117d690919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f81848411156112e85760405162461bcd60e51b81526004016107d29190611fd4565b505f6112f484866123d5565b95945050505050565b6021545f9060ff161561131c576113158484846118d6565b9050610936565b6001600160a01b0384165f9081526001602052604090205460ff1615801561135c57506001600160a01b0383165f9081526001602052604090205460ff16155b156113b157601d54600160a01b900460ff166113b15760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d2565b6001600160a01b0384165f9081526001602052604090205460ff161580156113e257506001600160a01b0383163014155b80156113f957506001600160a01b03831661dead14155b80156114135750601d546001600160a01b03848116911614155b801561142d57506018546001600160a01b03848116911614155b801561144757506015546001600160a01b03848116911614155b801561146b57506001600160a01b0383165f9081526009602052604090205460ff16155b1561150b576001600160a01b0383165f9081526006602052604090205460055461149584836123ab565b11156115095760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d2565b505b601d546001600160a01b0385811691161480156115315750601d54600160a81b900460ff165b156115cc576001600160a01b0383165f908152601e6020526040902054421161159c5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e2062757973000000000000000060448201526064016107d2565b601d546115b390600160b01b900460ff16426123ab565b6001600160a01b0384165f908152601e60205260409020555b601d546001600160a01b0384811691161480156115f25750601d54600160a81b900460ff165b1561168d576001600160a01b0383165f908152601e6020526040902054421161165d5760405162461bcd60e51b815260206004820152601960248201527f506c656173652077616974206265747765656e2073656c6c730000000000000060448201526064016107d2565b601d5461167490600160b01b900460ff16426123ab565b6001600160a01b0384165f908152601e60205260409020555b61169784836119a6565b61169f611a12565b156116ac576116ac611a61565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600690915291909120546116fd9184906112c5565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061174857506001600160a01b0384165f9081526008602052604090205460ff165b61175c57611757858486611e29565b61175e565b825b6001600160a01b0385165f9081526006602052604090205490915061178390826111cc565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020612484833981519152906117c39085815260200190565b60405180910390a3506001949350505050565b5f825f036117e557505f6107a3565b5f6117f083856123be565b9050826117fd8583612346565b146109365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d2565b5f61093683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fa8565b5f61093683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112c5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546119269184906112c5565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461195490836111cc565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020612484833981519152906119949086815260200190565b60405180910390a35060019392505050565b600454811115806119ce57506001600160a01b0382165f9081526009602052604090205460ff165b611a0e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d2565b5050565b601d545f906001600160a01b03163314801590611a32575060215460ff16155b8015611a405750601f5460ff165b8015610b4757505060208054305f9081526006909252604090912054101590565b6021805460ff19166001179055601954601a545f91611a7f91610b58565b611a8b57600a54611a8d565b5f5b90505f611ab0600261097c600f5461097c866020546117d690919063ffffffff16565b90505f611ac88260205461189590919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611b0057611b00612397565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b3157611b31612397565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac94790611b7a9086905f908790309042906004016123e8565b5f604051808303815f87803b158015611b91575f80fd5b505af1158015611ba3573d5f803e3d5ffd5b505050505f611bbb824761189590919063ffffffff16565b90505f611bd5611bcc886002611854565b600f5490611895565b90505f611be9600261097c8481878d6117d6565b90505f611c058361097c600b54876117d690919063ffffffff16565b90505f611c218461097c600d54886117d690919063ffffffff16565b90505f611c3d8561097c600c54896117d690919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611c8c576040519150601f19603f3d011682016040523d82523d5f602084013e611c91565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611cde576040519150601f19603f3d011682016040523d82523d5f602084013e611ce3565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611d30576040519150601f19603f3d011682016040523d82523d5f602084013e611d35565b606091505b505f9250508b159050611e1157601b5460145460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611daf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611dd49190612458565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601354601d545f91906001600160a01b0390811690841603611e4e5750601154611e69565b601d546001600160a01b0390811690861603611e6957506012545b5f611e956010546064611e7c91906123be565b61097c8461096f600f548a6117d690919063ffffffff16565b90505f611eb3600f5461097c600e54856117d690919063ffffffff16565b90505f611ec08383611895565b305f90815260066020526040902054909150611edc90826111cc565b305f90815260066020526040808220929092556018546001600160a01b031681522054611f0990836111cc565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020612484833981519152910160405180910390a38115611f9257600354611f619083611895565b6003556040518281525f906001600160a01b038a16905f805160206124848339815191529060200160405180910390a35b611f9c8784611895565b98975050505050505050565b5f8183611fc85760405162461bcd60e51b81526004016107d29190611fd4565b505f6112f48486612346565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461201f575f80fd5b919050565b5f8060408385031215612035575f80fd5b61203e83612009565b946020939093013593505050565b5f805f805f8060c08789031215612061575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f6060848603121561209d575f80fd5b6120a684612009565b92506120b460208501612009565b929592945050506040919091013590565b5f602082840312156120d5575f80fd5b5035919050565b8015158114610e07575f80fd5b5f80604083850312156120fa575f80fd5b823561203e816120dc565b5f805f805f60a08688031215612119575f80fd5b61212286612009565b945061213060208701612009565b935061213e60408701612009565b925061214c60608701612009565b915061215a60808701612009565b90509295509295909350565b5f60208284031215612176575f80fd5b61093682612009565b5f8060408385031215612190575f80fd5b50508035926020909101359150565b5f80604083850312156121b0575f80fd5b82356121bb816120dc565b9150602083013560ff811681146121d0575f80fd5b809150509250929050565b5f805f606084860312156121ed575f80fd5b505081359360208301359350604090920135919050565b5f8083601f840112612214575f80fd5b50813567ffffffffffffffff81111561222b575f80fd5b6020830191508360208260051b8501011115612245575f80fd5b9250929050565b5f805f805f60608688031215612260575f80fd5b61226986612009565b9450602086013567ffffffffffffffff811115612284575f80fd5b61229088828901612204565b909550935050604086013567ffffffffffffffff8111156122af575f80fd5b6122bb88828901612204565b969995985093965092949392505050565b5f80604083850312156122dd575f80fd5b6122e683612009565b91506122f460208401612009565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261236057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612375575f80fd5b5051919050565b5f6020828403121561238c575f80fd5b8151610936816120dc565b634e487b7160e01b5f52603260045260245ffd5b808201808211156107a3576107a3612332565b80820281158282048414176107a3576107a3612332565b818103818111156107a3576107a3612332565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156124385783516001600160a01b0316835260209384019390920191600101612411565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f6060848603121561246a575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122071b2e59580d93b27402e1a2e3843c918125d6e0296d0b9a2acbe5931cc688dd864736f6c634300081a0033

Deployed Bytecode Sourcemap

5160:15039:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7663:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7663:55:0;;;;;;;;9085:80;;;;;;;;;;-1:-1:-1;9157:5:0;;;;;;;;;;;;-1:-1:-1;;;9157:5:0;;;;9085:80;;;;;;;:::i;7443:31::-;;;;;;;;;;-1:-1:-1;7443:31:0;;;;-1:-1:-1;;;7443:31:0;;;;;;;;;784:14:1;;777:22;759:41;;747:2;732:18;7443:31:0;619:187:1;9507:216:0;;;;;;;;;;-1:-1:-1;9507:216:0;;;;;:::i;:::-;;:::i;18374:584::-;;;;;;;;;;-1:-1:-1;18374:584:0;;;;;:::i;:::-;;:::i;:::-;;8815:88;;;;;;;;;;-1:-1:-1;8888:12:0;;8815:88;;6802:93;;;;;;;;;;;;;;;;10025:370;;;;;;;;;;-1:-1:-1;10025:370:0;;;;;:::i;:::-;;:::i;7524:37::-;;;;;;;;;;-1:-1:-1;7524:37:0;;;;-1:-1:-1;;;7524:37:0;;;;;;;;;2679:4:1;2667:17;;;2649:36;;2637:2;2622:18;7524:37:0;2507:184:1;19899:149:0;;;;;;;;;;-1:-1:-1;19899:149:0;;;;;:::i;:::-;;:::i;8909:80::-;;;;;;;;;;-1:-1:-1;5544:1:0;8909:80;;19527:206;;;;;;;;;;-1:-1:-1;19527:206:0;;;;;:::i;:::-;;:::i;18970:549::-;;;;;;;;;;-1:-1:-1;18970:549:0;;;;;:::i;:::-;;:::i;7484:33::-;;;;;;;;;;-1:-1:-1;7484:33:0;;;;-1:-1:-1;;;7484:33:0;;;;;;20060:132;;;;;;;;;;;;;:::i;9731:122::-;;;;;;;;;;-1:-1:-1;9731:122:0;;;;;:::i;:::-;;:::i;19741:150::-;;;;;;;;;;-1:-1:-1;19741:150:0;;;;;:::i;:::-;;:::i;15085:87::-;;;;;;;;;;;;;:::i;7626:30::-;;;;;;;;;;-1:-1:-1;7626:30:0;;;;;;;;9255:105;;;;;;;;;;-1:-1:-1;9255:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9339:18:0;9321:7;9339:18;;;:9;:18;;;;;;;9255:105;2074:148;;;;;;;;;;;;;:::i;15180:159::-;;;;;;;;;;-1:-1:-1;15180:159:0;;;;;:::i;:::-;;:::i;10407:139::-;;;;;;;;;;;;;:::i;14259:338::-;;;;;;;;;;-1:-1:-1;14259:338:0;;;;;:::i;:::-;;:::i;6236:60::-;;;;;;;;;;;;;;;;9171:78;;;;;;;;;;-1:-1:-1;9223:7:0;1925:6;-1:-1:-1;;;;;1925:6:0;9171:78;;;-1:-1:-1;;;;;5022:32:1;;;5004:51;;4992:2;4977:18;9171:78:0;4858:203:1;14122:130:0;;;;;;;;;;;;;:::i;1860:79::-;;;;;;;;;;-1:-1:-1;1898:7:0;1925:6;-1:-1:-1;;;;;1925:6:0;1860:79;;8995:84;;;;;;;;;;-1:-1:-1;9069:7:0;;;;;;;;;;;;-1:-1:-1;;;9069:7:0;;;;8995:84;;7411:19;;;;;;;;;;-1:-1:-1;7411:19:0;;;;-1:-1:-1;;;;;7411:19:0;;;9861:156;;;;;;;;;;-1:-1:-1;9861:156:0;;;;;:::i;:::-;;:::i;14605:259::-;;;;;;;;;;-1:-1:-1;14605:259:0;;;;;:::i;:::-;;:::i;1480:21::-;;;;;;;;;;-1:-1:-1;1480:21:0;;;;-1:-1:-1;;;;;1480:21:0;;;17724:638;;;;;;;;;;-1:-1:-1;17724:638:0;;;;;:::i;:::-;;:::i;15347:220::-;;;;;;;;;;;;;:::i;14879:197::-;;;;;;;;;;;;;:::i;9366:133::-;;;;;;;;;;-1:-1:-1;9366:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9468:19:0;;;9450:7;9468:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9366:133;6303:63;;;;;;;;;;;;;;;;2230:244;;;;;;;;;;-1:-1:-1;2230:244:0;;;;;:::i;:::-;;:::i;7341:24::-;;;;;;;;;;-1:-1:-1;7341:24:0;;;;-1:-1:-1;;;;;7341:24:0;;;9507:216;9611:10;9582:4;9599:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9599:32:0;;;;;;;;;;:41;;;9656:37;9582:4;;9599:32;;9656:37;;;;9634:6;160:25:1;;148:2;133:18;;14:177;9656:37:0;;;;;;;;-1:-1:-1;9711:4:0;9507:216;;;;;:::o;18374:584::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;;;;;;;;;18547:12:::1;:28:::0;;;18586:10:::1;:24:::0;;;18621:12:::1;:28:::0;;;18660:6:::1;:16:::0;;;18687:7:::1;:18:::0;;;18727:76:::1;18697:8:::0;18727:62:::1;18669:7:::0;18727:62;18636:13;18727:62;18562:13;18599:11;18727:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;18716:8;:87:::0;18814:14:::1;:32:::0;;;18876:18:::1;18893:1;18831:15:::0;18876:18:::1;:::i;:::-;18865:8;;:29;18857:71;;;::::0;-1:-1:-1;;;18857:71:0;;8164:2:1;18857:71:0::1;::::0;::::1;8146:21:1::0;8203:2;8183:18;;;8176:30;8242:31;8222:18;;;8215:59;8291:18;;18857:71:0::1;7962:353:1::0;18857:71:0::1;18940:10;:8;:10::i;:::-;18374:584:::0;;;;;;:::o;10025:370::-;-1:-1:-1;;;;;10145:19:0;;10125:4;10145:19;;;:11;:19;;;;;;;;10165:10;10145:31;;;;;;;;-1:-1:-1;;10145:52:0;10142:186;;10247:69;;;;;;;;;;;-1:-1:-1;;;10247:69:0;;;;;;;;-1:-1:-1;;;;;10247:19:0;;-1:-1:-1;10247:19:0;;;:11;:19;;;;;10267:10;10247:31;;;;;;;;;;:69;;10283:6;;10247:35;:69::i;:::-;-1:-1:-1;;;;;10213:19:0;;;;;;:11;:19;;;;;;;;10233:10;10213:31;;;;;;;:103;10142:186;10347:40;10361:6;10369:9;10380:6;10347:13;:40::i;:::-;10340:47;;10025:370;;;;;;:::o;19899:149::-;19959:7;19986:54;20027:12;:10;:12::i;:::-;20009:4;;-1:-1:-1;;;;;20009:4:0;9321:7;9339:18;;;:9;:18;;;;;;19986:36;;19999:22;;20019:1;;19999:15;:19;;:22::i;:::-;19986:8;;:12;:36::i;:::-;:40;;:54::i;19527:206::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;19613:11:::1;:22:::0;;-1:-1:-1;;19613:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19646:13:::1;:23:::0;;;19685:40:::1;::::0;;8488:25:1;;;19613:22:0::1;19713:11:::0;;;8556:14:1;8549:22;8529:18;;;8522:50;;;;19685:40:0::1;::::0;8461:18:1;19685:40:0::1;;;;;;;19527:206:::0;;:::o;18970:549::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;19165:21:::1;:46:::0;;-1:-1:-1;;;;;19165:46:0;;::::1;-1:-1:-1::0;;;;;;19165:46:0;;::::1;;::::0;;;19222:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19277:14:::1;:32:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19320:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19365:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;19423:88:::1;::::0;;8814:51:1;;;8896:2;8881:18;;8874:60;;;;8950:18;;;8943:60;;;;9034:2;9019:18;;9012:60;;;;19423:88:0::1;::::0;8801:3:1;8786:19;19423:88:0::1;;;;;;;18970:549:::0;;;;;:::o;20060:132::-;9339:9;:18;;;;5293:42;20103:7;9339:18;;;;;20130:12;;20103:7;;20130:54;;9339:18;;20130:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;20123:61;;20060:132;:::o;9731:122::-;9786:4;9810:35;9818:7;-1:-1:-1;;9810:7:0;:35::i;19741:150::-;19825:4;19873:10;19849:21;19861:8;19849:11;:21::i;:::-;:34;;19741:150;-1:-1:-1;;;19741:150:0:o;15085:87::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;15138:14:::1;:22:::0;;-1:-1:-1;;;;15138:22:0::1;::::0;;15085:87::o;2074:148::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;2181:1:::1;2165:6:::0;;2144:40:::1;::::0;-1:-1:-1;;;;;2165:6:0;;::::1;::::0;2144:40:::1;::::0;2181:1;;2144:40:::1;2212:1;2195:19:::0;;-1:-1:-1;;;;;;2195:19:0::1;::::0;;2074:148::o;15180:159::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;15264:14:::1;:24:::0;;-1:-1:-1;;;;15299:32:0;-1:-1:-1;;;15264:24:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;15299:32:0;;;;;-1:-1:-1;;;15264:24:0::1;15299:32:::0;;;::::1;::::0;;;::::1;;::::0;;15180:159::o;10407:139::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;10481:12:::1;::::0;10466::::1;:27:::0;;;10508:15:::1;:30:::0;10407:139::o;14259:338::-;14340:12;14373:6;14383:1;14373:11;14370:95;;14409:44;;-1:-1:-1;;;14409:44:0;;14447:4;14409:44;;;5004:51:1;-1:-1:-1;;;;;14409:29:0;;;;;4977:18:1;;14409:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14400:53;;14370:95;14480:32;;;-1:-1:-1;;;;;9510:32:1;;9492:51;;9574:2;9559:18;;9552:34;;;14480:32:0;;9465:18:1;14480:32:0;;;;;;;14559:21;;14530:59;;-1:-1:-1;;;14530:59:0;;-1:-1:-1;;;;;14559:21:0;;;14530:59;;;9492:51:1;9559:18;;;9552:34;;;14530:28:0;;;;;;9465:18:1;;14530:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14122:130::-;14176:21;;14168:62;;-1:-1:-1;;;;;14176:21:0;;;;14208;14168:62;;;;;14176:21;14168:62;14176:21;14168:62;14208:21;14176;14168:62;;;;;;;;;;;;;;;;;;;;;14122:130::o;9861:156::-;9941:4;9965:44;9979:10;9991:9;10002:6;9965:13;:44::i;14605:259::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;14731:11:::1;:28:::0;;;;14770:10:::1;:26:::0;;;;14807:15:::1;:33:::0;14605:259::o;17724:638::-;17859:10;17841:29;;;;:17;:29;;;;;;;;17833:38;;;;;;17905:3;17886:22;;17878:79;;;;-1:-1:-1;;;17878:79:0;;10049:2:1;17878:79:0;;;10031:21:1;10088:2;10068:18;;;10061:30;10127:34;10107:18;;;10100:62;-1:-1:-1;;;10178:18:1;;;10171:43;10231:19;;17878:79:0;9847:409:1;17878:79:0;17972:33;;;17964:85;;;;-1:-1:-1;;;17964:85:0;;10463:2:1;17964:85:0;;;10445:21:1;10502:2;10482:18;;;10475:30;10541:34;10521:18;;;10514:62;-1:-1:-1;;;10592:18:1;;;10585:38;10640:19;;17964:85:0;10261:404:1;17964:85:0;18058:15;18090:6;18086:88;18100:20;;;18086:88;;;18157:6;;18164:1;18157:9;;;;;;;:::i;:::-;;;;;;;18147:7;:19;;;;:::i;:::-;18137:29;-1:-1:-1;18122:3:0;;18086:88;;;;18209:7;18190:15;18200:4;-1:-1:-1;;;;;9339:18:0;9321:7;9339:18;;;:9;:18;;;;;;;9255:105;18190:15;:26;;18182:66;;;;-1:-1:-1;;;18182:66:0;;11134:2:1;18182:66:0;;;11116:21:1;11173:2;11153:18;;;11146:30;11212:29;11192:18;;;11185:57;11259:18;;18182:66:0;10932:351:1;18182:66:0;18261:6;18257:102;18271:20;;;18257:102;;;18308:43;18323:4;18328:9;;18338:1;18328:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18341:6;;18348:1;18341:9;;;;;;;:::i;:::-;;;;;;;18308:14;:43::i;:::-;-1:-1:-1;18293:3:0;;18257:102;;;;17826:536;17724:638;;;;;:::o;15347:220::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;15419:1:::1;15406:10;:14:::0;;;15431:11:::1;:15:::0;;;15457::::1;:19:::0;15503:12:::1;::::0;15522:4:::1;::::0;15503:16:::1;::::0;15518:1:::1;15503:16;:::i;:::-;:23;;;;:::i;:::-;15487:13;:39:::0;15347:220::o;14879:197::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;14930:11:::1;:18:::0;;-1:-1:-1;;;;14930:18:0::1;-1:-1:-1::0;;;14930:18:0::1;::::0;;14972:3:::1;14959:10;:16:::0;15000:3:::1;14986:11;:17:::0;15032:4:::1;15014:15;:22:::0;14879:197::o;2230:244::-;1987:6;;-1:-1:-1;;;;;1987:6:0;1297:10;1987:22;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2319:22:0;::::1;2311:73;;;::::0;-1:-1:-1;;;2311:73:0;;11663:2:1;2311:73:0::1;::::0;::::1;11645:21:1::0;11702:2;11682:18;;;11675:30;11741:34;11721:18;;;11714:62;-1:-1:-1;;;11792:18:1;;;11785:36;11838:19;;2311:73:0::1;11461:402:1::0;2311:73:0::1;2421:6;::::0;;2400:38:::1;::::0;-1:-1:-1;;;;;2400:38:0;;::::1;::::0;2421:6;::::1;::::0;2400:38:::1;::::0;::::1;2449:6;:17:::0;;-1:-1:-1;;;;;;2449:17:0::1;-1:-1:-1::0;;;;;2449:17:0;;;::::1;::::0;;;::::1;::::0;;2230:244::o;4043:181::-;4101:7;;4133:5;4137:1;4133;:5;:::i;:::-;4121:17;;4162:1;4157;:6;;4149:46;;;;-1:-1:-1;;;4149:46:0;;12070:2:1;4149:46:0;;;12052:21:1;12109:2;12089:18;;;12082:30;12148:29;12128:18;;;12121:57;12195:18;;4149:46:0;11868:351:1;17475:241:0;17528:180;17543:33;17572:3;17543:24;17556:10;;17543:8;;:12;;:24;;;;:::i;:33::-;17598:34;17628:3;17598:25;17611:11;;17598:8;;:12;;:25;;;;:::i;:34::-;17654:38;17688:3;17654:29;17667:15;;17654:8;;:12;;:29;;;;:::i;:38::-;17528:180;;;12444:4:1;12432:17;;;12414:36;;12486:17;;;12481:2;12466:18;;12459:45;12540:17;;12520:18;;;12513:45;17528:180:0;;;;;;12402:2:1;17528:180:0;;;17475:241::o;4372:192::-;4458:7;4494:12;4486:6;;;;4478:29;;;;-1:-1:-1;;;4478:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4518:9:0;4530:5;4534:1;4530;:5;:::i;:::-;4518:17;4372:192;-1:-1:-1;;;;;4372:192:0:o;10562:1710::-;10674:6;;10654:4;;10674:6;;10671:63;;;10690:41;10705:6;10713:9;10724:6;10690:14;:41::i;:::-;10683:48;;;;10671:63;-1:-1:-1;;;;;10750:22:0;;;;;;:14;:22;;;;;;;;10749:23;:53;;;;-1:-1:-1;;;;;;10777:25:0;;;;;;:14;:25;;;;;;;;10776:26;10749:53;10746:139;;;10826:11;;-1:-1:-1;;;10826:11:0;;;;10818:43;;;;-1:-1:-1;;;10818:43:0;;12904:2:1;10818:43:0;;;12886:21:1;12943:2;12923:18;;;12916:30;-1:-1:-1;;;12962:18:1;;;12955:50;13022:18;;10818:43:0;12702:344:1;10818:43:0;-1:-1:-1;;;;;10927:22:0;;;;;;:14;:22;;;;;;;;10926:23;:53;;;;-1:-1:-1;;;;;;10953:26:0;;10974:4;10953:26;;10926:53;:84;;;;-1:-1:-1;;;;;;10984:26:0;;5293:42;10984:26;;10926:84;:105;;;;-1:-1:-1;11027:4:0;;-1:-1:-1;;;;;11014:17:0;;;11027:4;;11014:17;;10926:105;:137;;;;-1:-1:-1;11048:15:0;;-1:-1:-1;;;;;11035:28:0;;;11048:15;;11035:28;;10926:137;:174;;;;-1:-1:-1;11080:20:0;;-1:-1:-1;;;;;11067:33:0;;;11080:20;;11067:33;;10926:174;:207;;;;-1:-1:-1;;;;;;11105:28:0;;;;;;:17;:28;;;;;;;;11104:29;10926:207;10922:399;;;-1:-1:-1;;;;;9339:18:0;;11149;9339;;;:9;:18;;;;;;11238:15;;11214:19;11227:6;9339:18;11214:19;:::i;:::-;11213:40;;11205:114;;;;-1:-1:-1;;;11205:114:0;;13253:2:1;11205:114:0;;;13235:21:1;13292:2;13272:18;;;13265:30;13331:34;13311:18;;;13304:62;13402:32;13382:18;;;13375:60;13452:19;;11205:114:0;13051:426:1;11205:114:0;11134:187;10922:399;11347:4;;-1:-1:-1;;;;;11337:14:0;;;11347:4;;11337:14;:32;;;;-1:-1:-1;11355:14:0;;-1:-1:-1;;;11355:14:0;;;;11337:32;11333:221;;;-1:-1:-1;;;;;11394:23:0;;;;;;:12;:23;;;;;;11420:15;-1:-1:-1;11386:77:0;;;;-1:-1:-1;;;11386:77:0;;13684:2:1;11386:77:0;;;13666:21:1;13723:2;13703:18;;;13696:30;13762:26;13742:18;;;13735:54;13806:18;;11386:77:0;13482:348:1;11386:77:0;11522:20;;11504:38;;-1:-1:-1;;;11522:20:0;;;;11504:15;:38;:::i;:::-;-1:-1:-1;;;;;11478:23:0;;;;;;:12;:23;;;;;:64;11333:221;11583:4;;-1:-1:-1;;;;;11570:17:0;;;11583:4;;11570:17;:35;;;;-1:-1:-1;11591:14:0;;-1:-1:-1;;;11591:14:0;;;;11570:35;11566:227;;;-1:-1:-1;;;;;11630:23:0;;;;;;:12;:23;;;;;;11656:15;-1:-1:-1;11622:78:0;;;;-1:-1:-1;;;11622:78:0;;14037:2:1;11622:78:0;;;14019:21:1;14076:2;14056:18;;;14049:30;14115:27;14095:18;;;14088:55;14160:18;;11622:78:0;13835:349:1;11622:78:0;11759:20;;11741:38;;-1:-1:-1;;;11759:20:0;;;;11741:15;:38;:::i;:::-;-1:-1:-1;;;;;11715:23:0;;;;;;:12;:23;;;;;:64;11566:227;11805:28;11818:6;11826;11805:12;:28::i;:::-;11851:16;:14;:16::i;:::-;11848:35;;;11870:10;:8;:10::i;:::-;11913:53;;;;;;;;;;;-1:-1:-1;;;11913:53:0;;;;;;;;-1:-1:-1;;;;;11913:17:0;;-1:-1:-1;11913:17:0;;;:9;:17;;;;;;;;:53;;11935:6;;11913:21;:53::i;:::-;-1:-1:-1;;;;;11893:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12005:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;12033:27:0;;;;;;:16;:27;;;;;;;;12005:55;12004:103;;12073:34;12081:6;12089;12097:9;12073:7;:34::i;:::-;12004:103;;;12064:6;12004:103;-1:-1:-1;;;;;12141:20:0;;;;;;:9;:20;;;;;;11979:128;;-1:-1:-1;12141:40:0;;11979:128;12141:24;:40::i;:::-;-1:-1:-1;;;;;12118:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12199:43;;;;;;-1:-1:-1;;;;;;;;;;;12199:43:0;;;12227:14;160:25:1;;148:2;133:18;;14:177;12199:43:0;;;;;;;;-1:-1:-1;12260:4:0;;10562:1710;-1:-1:-1;;;;10562:1710:0:o;4570:250::-;4628:7;4652:1;4657;4652:6;4648:47;;-1:-1:-1;4682:1:0;4675:8;;4648:47;4707:9;4719:5;4723:1;4719;:5;:::i;:::-;4707:17;-1:-1:-1;4752:1:0;4743:5;4747:1;4707:17;4743:5;:::i;:::-;:10;4735:56;;;;-1:-1:-1;;;4735:56:0;;14391:2:1;4735:56:0;;;14373:21:1;14430:2;14410:18;;;14403:30;14469:34;14449:18;;;14442:62;-1:-1:-1;;;14520:18:1;;;14513:31;14561:19;;4735:56:0;14189:397:1;4826:132:0;4884:7;4911:39;4915:1;4918;4911:39;;;;;;;;;;;;;;;;;:3;:39::i;4230:136::-;4288:7;4315:43;4319:1;4322;4315:43;;;;;;;;;;;;;;;;;:3;:43::i;12281:330::-;12411:53;;;;;;;;;;;-1:-1:-1;;;12411:53:0;;;;;;;;-1:-1:-1;;;;;12411:17:0;;12374:4;12411:17;;;:9;:17;;;;;;;:53;;12433:6;;12411:21;:53::i;:::-;-1:-1:-1;;;;;12391:17:0;;;;;;;:9;:17;;;;;;:73;;;;12498:20;;;;;;;:32;;12523:6;12498:24;:32::i;:::-;-1:-1:-1;;;;;12475:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12546:35;;;;;;-1:-1:-1;;;;;;;;;;;12546:35:0;;;12574:6;160:25:1;;148:2;133:18;;14:177;12546:35:0;;;;;;;;-1:-1:-1;12599:4:0;12281:330;;;;;:::o;12619:168::-;12716:12;;12706:6;:22;;:51;;;-1:-1:-1;;;;;;12732:25:0;;;;;;:17;:25;;;;;;;;12706:51;12698:81;;;;-1:-1:-1;;;12698:81:0;;14793:2:1;12698:81:0;;;14775:21:1;14832:2;14812:18;;;14805:30;-1:-1:-1;;;14851:18:1;;;14844:47;14908:18;;12698:81:0;14591:341:1;12698:81:0;12619:168;;:::o;13912:197::-;13999:4;;13961;;-1:-1:-1;;;;;13999:4:0;13985:10;:18;;;;:38;;-1:-1:-1;14017:6:0;;;;14016:7;13985:38;:62;;;;-1:-1:-1;14036:11:0;;;;13985:62;:116;;;;-1:-1:-1;;14088:13:0;;;14078:4;14060:24;;;;:9;:24;;;;;;;;:41;;;13912:197::o;15590:1869::-;7766:6;:13;;-1:-1:-1;;7766:13:0;7775:4;7766:13;;;15685::::1;::::0;15700:24:::1;::::0;7766:6;;15669:56:::1;::::0;:15:::1;:56::i;:::-;:75;;15732:12;;15669:75;;;15728:1;15669:75;15639:105;;15755:23;15781:59;15838:1;15781:52;15824:8;;15781:38;15799:19;15781:13;;:17;;:38;;;;:::i;:59::-;15755:85;;15851:20;15874:34;15892:15;15874:13;;:17;;:34;;;;:::i;:::-;15945:16;::::0;;15959:1:::1;15945:16:::0;;;;;::::1;::::0;;15851:57;;-1:-1:-1;15921:21:0::1;::::0;15945:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15945:16:0::1;15921:40;;15990:4;15972;15977:1;15972:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15972:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16016:4:::1;::::0;16006:7;;16016:4;::::1;::::0;16006;;16016;;16006:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;16006:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16091:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16091:188:0;;16057:21:::1;::::0;16091:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16163:12;;16033:21:::1;::::0;16206:4;;16233::::1;::::0;16253:15:::1;::::0;16091:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16292:17;16312:40;16338:13;16312:21;:25;;:40;;;;:::i;:::-;16292:60:::0;-1:-1:-1;16365:19:0::1;16387:40;16400:26;:19:::0;16424:1:::1;16400:23;:26::i;:::-;16387:8;::::0;;:12:::1;:40::i;:::-;16365:62:::0;-1:-1:-1;16448:26:0::1;16477:58;16533:1;16477:51;16365:62:::0;16477:51;:9;16491:19;16477:13:::1;:34::i;:58::-;16448:87;;16546:26;16575:44;16607:11;16575:27;16589:12;;16575:9;:13;;:27;;;;:::i;:44::-;16546:73;;16630:24;16657:42;16687:11;16657:25;16671:10;;16657:9;:13;;:25;;;;:::i;:42::-;16630:69;;16710:20;16733:38;16759:11;16733:21;16747:6;;16733:9;:13;;:21;;;;:::i;:38::-;16813:20;::::0;16805:65:::1;::::0;16710:61;;-1:-1:-1;16785:15:0::1;::::0;-1:-1:-1;;;;;16813:20:0;;::::1;::::0;16847:18;;16785:15;16805:65;16785:15;16805:65;16847:18;16813:20;16805:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16905:14:0::1;::::0;16897:53:::1;::::0;16784:86;;-1:-1:-1;;;;;;16905:14:0::1;::::0;16933:12;;16897:53:::1;::::0;;;16933:12;16905:14;16897:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16985:18:0::1;::::0;16977:61:::1;::::0;16881:69;;-1:-1:-1;;;;;;16985:18:0::1;::::0;17017:16;;16977:61:::1;::::0;;;17017:16;16985:18;16977:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17072:5:0::1;::::0;-1:-1:-1;;17093:19:0;;;-1:-1:-1;17090:362:0::1;;17128:6;::::0;17302:21:::1;::::0;17128:244:::1;::::0;-1:-1:-1;;;17128:244:0;;17204:4:::1;17128:244;::::0;::::1;16546:51:1::0;16613:18;;;16606:34;;;17128:6:0::1;16656:18:1::0;;;16649:34;;;16699:18;;;16692:34;-1:-1:-1;;;;;17302:21:0;;::::1;16742:19:1::0;;;16735:61;17342:15:0::1;16812:19:1::0;;;16805:35;17128:6:0;::::1;::::0;:22:::1;::::0;17158:18;;16518:19:1;;17128:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17392:48:0::1;::::0;;17486:25:1;;;17542:2;17527:18;;17520:34;;;17392:48:0::1;::::0;-1:-1:-1;17459:18:1;17392:48:0::1;;;;;;;17090:362;-1:-1:-1::0;;7784:6:0;:14;;-1:-1:-1;;7784:14:0;;;-1:-1:-1;;;;;;;;;;15590:1869:0:o;12922:982::-;13056:15;;13098:4;;13008:7;;13056:15;-1:-1:-1;;;;;13098:4:0;;;13085:17;;;;13082:142;;-1:-1:-1;13129:11:0;;13082:142;;;13171:4;;-1:-1:-1;;;;;13171:4:0;;;13161:14;;;;13158:66;;-1:-1:-1;13202:10:0;;13158:66;13236:17;13256:59;13294:14;;13311:3;13294:20;;;;:::i;:::-;13256:33;13281:7;13256:20;13267:8;;13256:6;:10;;:20;;;;:::i;:59::-;13236:79;;13326:18;13347:36;13374:8;;13347:22;13361:7;;13347:9;:13;;:22;;;;:::i;:36::-;13326:57;-1:-1:-1;13394:22:0;13419:25;:9;13326:57;13419:13;:25::i;:::-;13500:4;13482:24;;;;:9;:24;;;;;;13394:50;;-1:-1:-1;13482:44:0;;13394:50;13482:28;:44::i;:::-;13473:4;13455:24;;;;:9;:24;;;;;;:71;;;;13576:15;;-1:-1:-1;;;;;13576:15:0;13566:26;;;;:42;;13597:10;13566:30;:42::i;:::-;13547:15;;-1:-1:-1;;;;;13547:15:0;;;13537:26;;;;:9;:26;;;;;;;;;:71;;;;13624:47;160:25:1;;;13649:4:0;;13624:47;;;;-1:-1:-1;;;;;;;;;;;13624:47:0;133:18:1;13624:47:0;;;;;;;13705:14;;13702:154;;13750:12;;:28;;13767:10;13750:16;:28::i;:::-;13735:12;:43;13798:34;;160:25:1;;;5366:42:0;;-1:-1:-1;;;;;13798:34:0;;;-1:-1:-1;;;;;;;;;;;13798:34:0;148:2:1;133:18;13798:34:0;;;;;;;13702:154;13875:21;:6;13886:9;13875:10;:21::i;:::-;13868:28;12922:982;-1:-1:-1;;;;;;;;12922:982:0:o;4964:189::-;5050:7;5085:12;5078:5;5070:28;;;;-1:-1:-1;;;5070:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5109:9:0;5121:5;5125:1;5121;:5;:::i;196:418:1:-;345:2;334:9;327:21;308:4;377:6;371:13;420:6;415:2;404:9;400:18;393:34;479:6;474:2;466:6;462:15;457:2;446:9;442:18;436:50;535:1;530:2;521:6;510:9;506:22;502:31;495:42;605:2;598;594:7;589:2;581:6;577:15;573:29;562:9;558:45;554:54;546:62;;;196:418;;;;:::o;811:173::-;879:20;;-1:-1:-1;;;;;928:31:1;;918:42;;908:70;;974:1;971;964:12;908:70;811:173;;;:::o;989:300::-;1057:6;1065;1118:2;1106:9;1097:7;1093:23;1089:32;1086:52;;;1134:1;1131;1124:12;1086:52;1157:29;1176:9;1157:29;:::i;:::-;1147:39;1255:2;1240:18;;;;1227:32;;-1:-1:-1;;;989:300:1:o;1294:829::-;1398:6;1406;1414;1422;1430;1438;1491:3;1479:9;1470:7;1466:23;1462:33;1459:53;;;1508:1;1505;1498:12;1459:53;-1:-1:-1;;1553:23:1;;;1673:2;1658:18;;1645:32;;-1:-1:-1;1776:2:1;1761:18;;1748:32;;1879:2;1864:18;;1851:32;;-1:-1:-1;1982:3:1;1967:19;;1954:33;;-1:-1:-1;2086:3:1;2071:19;2058:33;;-1:-1:-1;1294:829:1;-1:-1:-1;1294:829:1:o;2128:374::-;2205:6;2213;2221;2274:2;2262:9;2253:7;2249:23;2245:32;2242:52;;;2290:1;2287;2280:12;2242:52;2313:29;2332:9;2313:29;:::i;:::-;2303:39;;2361:38;2395:2;2384:9;2380:18;2361:38;:::i;:::-;2128:374;;2351:48;;-1:-1:-1;;;2468:2:1;2453:18;;;;2440:32;;2128:374::o;2696:226::-;2755:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:52;;;2824:1;2821;2814:12;2776:52;-1:-1:-1;2869:23:1;;2696:226;-1:-1:-1;2696:226:1:o;2927:118::-;3013:5;3006:13;2999:21;2992:5;2989:32;2979:60;;3035:1;3032;3025:12;3050:361;3115:6;3123;3176:2;3164:9;3155:7;3151:23;3147:32;3144:52;;;3192:1;3189;3182:12;3144:52;3231:9;3218:23;3250:28;3272:5;3250:28;:::i;3416:484::-;3511:6;3519;3527;3535;3543;3596:3;3584:9;3575:7;3571:23;3567:33;3564:53;;;3613:1;3610;3603:12;3564:53;3636:29;3655:9;3636:29;:::i;:::-;3626:39;;3684:38;3718:2;3707:9;3703:18;3684:38;:::i;:::-;3674:48;;3741:38;3775:2;3764:9;3760:18;3741:38;:::i;:::-;3731:48;;3798:38;3832:2;3821:9;3817:18;3798:38;:::i;:::-;3788:48;;3855:39;3889:3;3878:9;3874:19;3855:39;:::i;:::-;3845:49;;3416:484;;;;;;;;:::o;3905:186::-;3964:6;4017:2;4005:9;3996:7;3992:23;3988:32;3985:52;;;4033:1;4030;4023:12;3985:52;4056:29;4075:9;4056:29;:::i;4096:346::-;4164:6;4172;4225:2;4213:9;4204:7;4200:23;4196:32;4193:52;;;4241:1;4238;4231:12;4193:52;-1:-1:-1;;4286:23:1;;;4406:2;4391:18;;;4378:32;;-1:-1:-1;4096:346:1:o;4447:406::-;4510:6;4518;4571:2;4559:9;4550:7;4546:23;4542:32;4539:52;;;4587:1;4584;4577:12;4539:52;4626:9;4613:23;4645:28;4667:5;4645:28;:::i;:::-;4692:5;-1:-1:-1;4749:2:1;4734:18;;4721:32;4797:4;4784:18;;4772:31;;4762:59;;4817:1;4814;4807:12;4762:59;4840:7;4830:17;;;4447:406;;;;;:::o;5066:466::-;5143:6;5151;5159;5212:2;5200:9;5191:7;5187:23;5183:32;5180:52;;;5228:1;5225;5218:12;5180:52;-1:-1:-1;;5273:23:1;;;5393:2;5378:18;;5365:32;;-1:-1:-1;5496:2:1;5481:18;;;5468:32;;5066:466;-1:-1:-1;5066:466:1:o;5537:367::-;5600:8;5610:6;5664:3;5657:4;5649:6;5645:17;5641:27;5631:55;;5682:1;5679;5672:12;5631:55;-1:-1:-1;5705:20:1;;5748:18;5737:30;;5734:50;;;5780:1;5777;5770:12;5734:50;5817:4;5809:6;5805:17;5793:29;;5877:3;5870:4;5860:6;5857:1;5853:14;5845:6;5841:27;5837:38;5834:47;5831:67;;;5894:1;5891;5884:12;5831:67;5537:367;;;;;:::o;5909:842::-;6040:6;6048;6056;6064;6072;6125:2;6113:9;6104:7;6100:23;6096:32;6093:52;;;6141:1;6138;6131:12;6093:52;6164:29;6183:9;6164:29;:::i;:::-;6154:39;;6244:2;6233:9;6229:18;6216:32;6271:18;6263:6;6260:30;6257:50;;;6303:1;6300;6293:12;6257:50;6342:70;6404:7;6395:6;6384:9;6380:22;6342:70;:::i;:::-;6431:8;;-1:-1:-1;6316:96:1;-1:-1:-1;;6519:2:1;6504:18;;6491:32;6548:18;6535:32;;6532:52;;;6580:1;6577;6570:12;6532:52;6619:72;6683:7;6672:8;6661:9;6657:24;6619:72;:::i;:::-;5909:842;;;;-1:-1:-1;5909:842:1;;-1:-1:-1;6710:8:1;;6593:98;5909:842;-1:-1:-1;;;5909:842:1:o;6756:260::-;6824:6;6832;6885:2;6873:9;6864:7;6860:23;6856:32;6853:52;;;6901:1;6898;6891:12;6853:52;6924:29;6943:9;6924:29;:::i;:::-;6914:39;;6972:38;7006:2;6995:9;6991:18;6972:38;:::i;:::-;6962:48;;6756:260;;;;;:::o;7247:356::-;7449:2;7431:21;;;7468:18;;;7461:30;7527:34;7522:2;7507:18;;7500:62;7594:2;7579:18;;7247:356::o;7608:127::-;7669:10;7664:3;7660:20;7657:1;7650:31;7700:4;7697:1;7690:15;7724:4;7721:1;7714:15;7740:217;7780:1;7806;7796:132;;7850:10;7845:3;7841:20;7838:1;7831:31;7885:4;7882:1;7875:15;7913:4;7910:1;7903:15;7796:132;-1:-1:-1;7942:9:1;;7740:217::o;9083:230::-;9153:6;9206:2;9194:9;9185:7;9181:23;9177:32;9174:52;;;9222:1;9219;9212:12;9174:52;-1:-1:-1;9267:16:1;;9083:230;-1:-1:-1;9083:230:1:o;9597:245::-;9664:6;9717:2;9705:9;9696:7;9692:23;9688:32;9685:52;;;9733:1;9730;9723:12;9685:52;9765:9;9759:16;9784:28;9806:5;9784:28;:::i;10670:127::-;10731:10;10726:3;10722:20;10719:1;10712:31;10762:4;10759:1;10752:15;10786:4;10783:1;10776:15;10802:125;10867:9;;;10888:10;;;10885:36;;;10901:18;;:::i;11288:168::-;11361:9;;;11392;;11409:15;;;11403:22;;11389:37;11379:71;;11430:18;;:::i;12569:128::-;12636:9;;;12657:11;;;12654:37;;;12671:18;;:::i;15069:959::-;15331:4;15379:3;15368:9;15364:19;15410:6;15399:9;15392:25;15453:6;15448:2;15437:9;15433:18;15426:34;15496:3;15491:2;15480:9;15476:18;15469:31;15520:6;15555;15549:13;15586:6;15578;15571:22;15624:3;15613:9;15609:19;15602:26;;15663:2;15655:6;15651:15;15637:29;;15684:1;15694:195;15708:6;15705:1;15702:13;15694:195;;;15773:13;;-1:-1:-1;;;;;15769:39:1;15757:52;;15838:2;15864:15;;;;15829:12;;;;15805:1;15723:9;15694:195;;;-1:-1:-1;;;;;;;15945:32:1;;;;15940:2;15925:18;;15918:60;-1:-1:-1;;16009:3:1;15994:19;15987:35;15906:3;15069:959;-1:-1:-1;;;15069:959:1:o;16851:456::-;16939:6;16947;16955;17008:2;16996:9;16987:7;16983:23;16979:32;16976:52;;;17024:1;17021;17014:12;16976:52;-1:-1:-1;;17069:16:1;;17175:2;17160:18;;17154:25;17271:2;17256:18;;;17250:25;17069:16;;17154:25;;-1:-1:-1;17250:25:1;16851:456;-1:-1:-1;16851:456:1:o

Swarm Source

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