ETH Price: $3,686.66 (+2.65%)

Token

ERC-20: Matrix Inu (MATRIX)
 

Overview

Max Total Supply

1,000,000,000 MATRIX

Holders

133

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,154,301.420256059342250878 MATRIX

Value
$0.00
0xa1962da8b3fb1649649e622847af3146a623e43f
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:
MATRIXINU

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-18
*/

/*

Matrix Inu

Escaping the Matrix is a metaphorical idea in which an individual chooses to break away from society's expectations and social conformity and live life with personal freedom. This could involve opting out of economic or political systems, or simply making conscious choices to live differently, such as questioning authority and letting go of outmoded ideas, values and beliefs. It also might involve an individual being more mindful about the ways in which technology and social media can influence behavior. The ultimate aim is to free oneself from the control of external forces that seek to shape our actions, reactions, thoughts and feelings.

4/4 Tax

https://t.me/Matrix_Inu_Erc
https://medium.com/@matrixinu_eth

*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

interface InterfaceLP {
    function sync() external;
}

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

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

    string constant _name = "Matrix Inu";
    string constant _symbol = "MATRIX";
    uint8 constant _decimals = 18; 

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

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

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

    bool public botMode = true;
    mapping (address => bool) public isboted;


    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private devFee          = 0;
    uint256 private ecosystemFee    = 1; 
    uint256 private stakingFee      = 0;
    uint256 public totalFee         = ecosystemFee + marketingFee + liquidityFee + devFee + stakingFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 2400;
    uint256 buyMultiplier = 1300;
    uint256 transferMultiplier = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private ecosystemFeeReceiver;
    address private stakingFeeReceiver;

    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

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

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

        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x85a31735B7d4193f549a7AFa2c82f5bBfc27dF1d;
        devFeeReceiver = msg.sender;
        ecosystemFeeReceiver = msg.sender;
        stakingFeeReceiver = 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 setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

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

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
           }
        
                      
        if(botMode){
            require(!isboted[sender],"boted");    
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != stakingFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

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

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

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

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

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

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

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

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

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

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[stakingFeeReceiver] = _balances[stakingFeeReceiver].add(stakingTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(stakingTokens > 0){
            emit Transfer(sender, stakingFeeReceiver, stakingTokens);    
        }

        return amount.sub(feeAmount);
    }

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

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

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

    function removelimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

    function manualsend() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(devFeeReceiver).transfer(address(this).balance);

    }

    function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

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

    function openTrading() public onlyOwner {
        TradingOpen = true;
    }

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

    function addsniper(bool _status) public onlyOwner {
        botMode = _status;
    }

   
    function manage_sniper(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isboted[addresses[i]] = status;
        }
    }
    
    function setInternal(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
    }

    function setTXExemptOnly(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFeeBreakdown(uint256 _liquidityFee, uint256 _ecosystemFee, uint256 _marketingFee, uint256 _devFee, uint256 _stakingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        ecosystemFee = _ecosystemFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        stakingFee = _stakingFee;
        totalFee = _liquidityFee.add(_ecosystemFee).add(_marketingFee).add(_devFee).add(_stakingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); 
    }

    function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _stakingFeeReceiver, address _ecosystemFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        stakingFeeReceiver = _stakingFeeReceiver;
        ecosystemFeeReceiver = _ecosystemFeeReceiver;
    }

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

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

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

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




event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"addsniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":[],"name":"botMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"configSwapandLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isboted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_sniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":"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":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_ecosystemFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFeeBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setPercentFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExemptOnly","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":"_stakingFeeReceiver","type":"address"},{"internalType":"address","name":"_ecosystemFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a62000713565b6200004290633b9aca0062000724565b6005556200007c6064620000686001600554620004e660201b620012961790919060201c565b6200057a60201b620013151790919060201c565b600655620000a26064620000686001600554620004e660201b620012961790919060201c565b600755600a805460ff19166001908117909155600e8190556002600f8190556000601081905560118390556012819055918291620000e1908262000746565b620000ed919062000746565b620000f9919062000746565b62000105919062000746565b601355606460148190556109606015556105146016556103e86017819055601e601d8190559182556021805461ffff60a01b1916600160a81b179055600554909162000152919062000724565b6200015e919062000761565b6022553480156200016e57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c464891600480820192602092909190829003018186803b1580156200022957600080fd5b505afa1580156200023e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000264919062000784565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b158015620002be57600080fd5b505afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f9919062000784565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200034657600080fd5b505af11580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000381919062000784565b602180546001600160a01b039283166001600160a01b0319918216811783556020805483169091178155306000818152600983526040808220601f54881683528452808220600019905533808352600c8552818320805460ff199081166001908117909255601a80548b1686528486208054831684179055838652600d8852848620805483168417905598548a168552838520805482168317905588548a1685528385208054821683179055601980548b16865284862080548316841790559585528385208054909116909117905560188054871682179055835486167385a31735b7d4193f549a7afa2c82f5bbfc27df1d17909355855485168317909555601b8054851683179055600354601c80549095169616959095179092556005548285526008825283852081905592519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000807565b600082620004f75750600062000574565b600062000505838562000724565b90508262000514858362000761565b14620005715760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200057183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005c460201b60201c565b60008183620005e85760405162461bcd60e51b8152600401620005689190620007af565b506000620005f7848662000761565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006575781600019048211156200063b576200063b62000600565b808516156200064957918102915b93841c93908002906200061b565b509250929050565b600082620006705750600162000574565b816200067f5750600062000574565b8160018114620006985760028114620006a357620006c3565b600191505062000574565b60ff841115620006b757620006b762000600565b50506001821b62000574565b5060208310610133831016604e8410600b8410161715620006e8575081810a62000574565b620006f4838362000616565b80600019048211156200070b576200070b62000600565b029392505050565b60006200057160ff8416836200065f565b600081600019048311821515161562000741576200074162000600565b500290565b600082198211156200075c576200075c62000600565b500190565b6000826200077f57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200079757600080fd5b81516001600160a01b03811681146200057157600080fd5b600060208083528351808285015260005b81811015620007de57858101830151858201604001528201620007c0565b81811115620007f1576000604083870101525b50601f01601f1916929092016040019392505050565b61247d80620008176000396000f3fe6080604052600436106102765760003560e01c80637d1db4a51161014f578063ba25a075116100c1578063dbf3e0ec1161007a578063dbf3e0ec1461076b578063dd62ed3e1461078b578063f0a9e365146107d1578063f2fde38b146107f1578063f785ccd014610811578063f887ea401461083157600080fd5b8063ba25a075146106b6578063c9567bf9146106d6578063cdf0ff7c146106eb578063d51ed1c81461070b578063d78e139d1461072b578063db03a00d1461074b57600080fd5b80638da5cb5b116101135780638da5cb5b146105ef57806395d89b411461060d578063a8aa1b311461063c578063a9059cbb1461065c578063aff971531461067c578063b2bdfa7b1461069657600080fd5b80637d1db4a514610547578063825287911461055d57806382bf293c1461057d578063893d20e81461059d5780638c658a29146105cf57600080fd5b8063395bf982116101e857806366eb3785116101ac57806366eb37851461049b5780636ddd1713146104b05780636fc3eaec146104d157806370a08231146104e6578063715018a61461051c57806378109e541461053157600080fd5b8063395bf982146103f65780635075b57514610416578063571ac8b01461044657806357fd0238146104665780635e4ae81b1461048657600080fd5b806318160ddd1161023a57806318160ddd146103585780631df4ccfc1461036d57806323b872dd146103835780632b112e49146103a3578063313ce567146103b8578063333c39a5146103d457600080fd5b80630445b6671461028257806306fdde03146102ab57806308fd3d05146102e7578063095ea7b3146103185780631161ae391461033857600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029860225481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b5060408051808201909152600a8152694d617472697820496e7560b01b60208201525b6040516102a29190611f2c565b3480156102f357600080fd5b5060215461030890600160a01b900460ff1681565b60405190151581526020016102a2565b34801561032457600080fd5b50610308610333366004611f9d565b610851565b34801561034457600080fd5b50610308610353366004611fc7565b6108be565b34801561036457600080fd5b50600554610298565b34801561037957600080fd5b5061029860135481565b34801561038f57600080fd5b5061030861039e366004611fe9565b6108d2565b3480156103af57600080fd5b50610298610994565b3480156103c457600080fd5b50604051601281526020016102a2565b3480156103e057600080fd5b506103f46103ef366004612025565b6109e6565b005b34801561040257600080fd5b506103f461041136600461203e565b610a58565b34801561042257600080fd5b5061030861043136600461206a565b600b6020526000908152604090205460ff1681565b34801561045257600080fd5b5061030861046136600461206a565b610a93565b34801561047257600080fd5b506103f4610481366004612093565b610aa1565b34801561049257600080fd5b506103f4610ade565b3480156104a757600080fd5b506103f4610b15565b3480156104bc57600080fd5b5060215461030890600160a81b900460ff1681565b3480156104dd57600080fd5b506103f4610b49565b3480156104f257600080fd5b5061029861050136600461206a565b6001600160a01b031660009081526008602052604090205490565b34801561052857600080fd5b506103f4610ba1565b34801561053d57600080fd5b5061029860075481565b34801561055357600080fd5b5061029860065481565b34801561056957600080fd5b506103f46105783660046120b0565b610c15565b34801561058957600080fd5b506103f4610598366004612025565b610c9e565b3480156105a957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b3480156105db57600080fd5b506103f46105ea366004612115565b610d07565b3480156105fb57600080fd5b506000546001600160a01b03166105b7565b34801561061957600080fd5b5060408051808201909152600681526509a82a8a492b60d31b60208201526102da565b34801561064857600080fd5b506021546105b7906001600160a01b031681565b34801561066857600080fd5b50610308610677366004611f9d565b610da6565b34801561068857600080fd5b50600a546103089060ff1681565b3480156106a257600080fd5b506000546105b7906001600160a01b031681565b3480156106c257600080fd5b506103f46106d136600461219b565b610db3565b3480156106e257600080fd5b506103f4610dff565b3480156106f757600080fd5b506103f46107063660046121b9565b610e3e565b34801561071757600080fd5b50610298610726366004612025565b610ea6565b34801561073757600080fd5b506103f4610746366004612025565b610eed565b34801561075757600080fd5b506103f46107663660046121b9565b610f41565b34801561077757600080fd5b506103f46107863660046121f0565b610f96565b34801561079757600080fd5b506102986107a6366004612233565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107dd57600080fd5b506103086107ec366004611f9d565b61105c565b3480156107fd57600080fd5b506103f461080c36600461206a565b611177565b34801561081d57600080fd5b506103f461082c366004611fc7565b611261565b34801561083d57600080fd5b50601f546105b7906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108ac9086815260200190565b60405180910390a35060015b92915050565b6000826108ca83610ea6565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461097f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461095a918490611357565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61098a848484611391565b90505b9392505050565b6004546001600160a01b03166000908152600860205260408120546109e1906003546001600160a01b03166000908152600860205260409020546109db9060055490611753565b90611753565b905090565b6000546001600160a01b03163314610a195760405162461bcd60e51b8152600401610a1090612266565b60405180910390fd5b6103e8600554610a2991906122b1565b6006541015610a3757600080fd5b6103e881600554610a4891906122d3565b610a5291906122b1565b60065550565b6000546001600160a01b03163314610a825760405162461bcd60e51b8152600401610a1090612266565b601591909155601691909155601755565b60006108b882600019610851565b6000546001600160a01b03163314610acb5760405162461bcd60e51b8152600401610a1090612266565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610b085760405162461bcd60e51b8152600401610a1090612266565b6005546007819055600655565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b8152600401610a1090612266565b610b47611795565b565b336000908152600d602052604090205460ff16610b6557600080fd5b601a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610b9e573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610bcb5760405162461bcd60e51b8152600401610a1090612266565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b8152600401610a1090612266565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610cc85760405162461bcd60e51b8152600401610a1090612266565b6103e8600554610cd891906122b1565b6007541015610ce657600080fd5b6103e881600554610cf791906122d3565b610d0191906122b1565b60075550565b6000546001600160a01b03163314610d315760405162461bcd60e51b8152600401610a1090612266565b60005b82811015610da05781600b6000868685818110610d5357610d536122f2565b9050602002016020810190610d68919061206a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d9981612308565b9050610d34565b50505050565b600061098d338484611391565b6000546001600160a01b03163314610ddd5760405162461bcd60e51b8152600401610a1090612266565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b03163314610e295760405162461bcd60e51b8152600401610a1090612266565b6021805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610e685760405162461bcd60e51b8152600401610a1090612266565b6001600160a01b039091166000908152600c60209081526040808320805494151560ff199586168117909155600d9092529091208054909216179055565b60006108b8610eb3610994565b6021546001600160a01b0316600090815260086020526040902054610ee790610ee0906002905b90611296565b8590611296565b90611315565b60195447906001600160a01b03166108fc6064610f0a85856122d3565b610f1491906122b1565b6040518115909202916000818181858888f19350505050158015610f3c573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610f6b5760405162461bcd60e51b8152600401610a1090612266565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610fc05760405162461bcd60e51b8152600401610a1090612266565b600e8690556011859055600f84905560108390556012829055610ff182610feb858188818c8c611b8b565b90611b8b565b60135560148190556110046002826122b1565b601354106110545760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610a10565b505050505050565b336000908152600d602052604081205460ff1661107857600080fd5b816110f7576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b1580156110bc57600080fd5b505afa1580156110d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f49190612323565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b15801561113f57600080fd5b505af1158015611153573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d919061233c565b6000546001600160a01b031633146111a15760405162461bcd60e51b8152600401610a1090612266565b6001600160a01b0381166112065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a10565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461128b5760405162461bcd60e51b8152600401610a1090612266565b601d91909155601e55565b6000826112a5575060006108b8565b60006112b183856122d3565b9050826112be85836122b1565b1461098d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a10565b600061098d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bea565b6000818484111561137b5760405162461bcd60e51b8152600401610a109190611f2c565b5060006113888486612359565b95945050505050565b60235460009060ff16156113b1576113aa848484611c18565b905061098d565b6001600160a01b03841660009081526001602052604090205460ff161580156113f357506001600160a01b03831660009081526001602052604090205460ff16155b1561144857602154600160a01b900460ff166114485760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a10565b600a5460ff16156114a4576001600160a01b0384166000908152600b602052604090205460ff16156114a45760405162461bcd60e51b8152602060048201526005602482015264189bdd195960da1b6044820152606401610a10565b6001600160a01b03841660009081526001602052604090205460ff161580156114d657506001600160a01b0383163014155b80156114f057506003546001600160a01b03848116911614155b801561150a57506021546001600160a01b03848116911614155b80156115245750601c546001600160a01b03848116911614155b801561153e57506019546001600160a01b03848116911614155b801561156357506001600160a01b0383166000908152600d602052604090205460ff16155b15611604576001600160a01b03831660009081526008602052604090205460075461158e8483612370565b11156116025760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610a10565b505b61160e8483611cec565b611616611d59565b1561162357611623611795565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611675918490611357565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806116c257506001600160a01b0384166000908152600c602052604090205460ff165b6116d6576116d1858486611daf565b6116d8565b825b6001600160a01b0385166000908152600860205260409020549091506116fe9082611b8b565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612428833981519152906117409085815260200190565b60405180910390a3506001949350505050565b600061098d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611357565b6023805460ff19166001179055601d54601e546000916117b4916108be565b6117c057600e546117c3565b60005b905060006117e76002610ee7601354610ee78660225461129690919063ffffffff16565b905060006118008260225461175390919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061183a5761183a6122f2565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061186b5761186b6122f2565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac947906118b5908690600090879030904290600401612388565b600060405180830381600087803b1580156118cf57600080fd5b505af11580156118e3573d6000803e3d6000fd5b5050505060006118fc824761175390919063ffffffff16565b9050600061191761190e886002611315565b60135490611753565b9050600061192c6002610ee78481878d611296565b9050600061194983610ee7600f548761129690919063ffffffff16565b9050600061196684610ee76011548861129690919063ffffffff16565b9050600061198385610ee76010548961129690919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146119d5576040519150601f19603f3d011682016040523d82523d6000602084013e6119da565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a2a576040519150601f19603f3d011682016040523d82523d6000602084013e611a2f565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611a7f576040519150601f19603f3d011682016040523d82523d6000602084013e611a84565b606091505b5060009250508b159050611b7357601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b3691906123f9565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611b988385612370565b90508381101561098d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a10565b60008183611c0b5760405162461bcd60e51b8152600401610a109190611f2c565b50600061138884866122b1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c69918490611357565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c989083611b8b565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061242883398151915290611cda9086815260200190565b60405180910390a35060019392505050565b60065481111580611d1557506001600160a01b0382166000908152600d602052604090205460ff165b611d555760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610a10565b5050565b6021546000906001600160a01b03163314801590611d7a575060235460ff16155b8015611d8f5750602154600160a81b900460ff165b80156109e157505060225430600090815260086020526040902054101590565b601754602154600091906001600160a01b0384811691161415611dd55750601554611df0565b6021546001600160a01b0386811691161415611df057506016545b6000611e1d6014546064611e0491906122d3565b610ee784610eda6013548a61129690919063ffffffff16565b90506000611e3c601354610ee76012548561129690919063ffffffff16565b90506000611e4a8383611753565b30600090815260086020526040902054909150611e679082611b8b565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611e959083611b8b565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612428833981519152910160405180910390a38115611f1657601c546040518381526001600160a01b03918216918a16906000805160206124288339815191529060200160405180910390a35b611f208784611753565b98975050505050505050565b600060208083528351808285015260005b81811015611f5957858101830151858201604001528201611f3d565b81811115611f6b576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611f9857600080fd5b919050565b60008060408385031215611fb057600080fd5b611fb983611f81565b946020939093013593505050565b60008060408385031215611fda57600080fd5b50508035926020909101359150565b600080600060608486031215611ffe57600080fd5b61200784611f81565b925061201560208501611f81565b9150604084013590509250925092565b60006020828403121561203757600080fd5b5035919050565b60008060006060848603121561205357600080fd5b505081359360208301359350604090920135919050565b60006020828403121561207c57600080fd5b61098d82611f81565b8015158114610b9e57600080fd5b6000602082840312156120a557600080fd5b813561098d81612085565b600080600080600060a086880312156120c857600080fd5b6120d186611f81565b94506120df60208701611f81565b93506120ed60408701611f81565b92506120fb60608701611f81565b915061210960808701611f81565b90509295509295909350565b60008060006040848603121561212a57600080fd5b833567ffffffffffffffff8082111561214257600080fd5b818601915086601f83011261215657600080fd5b81358181111561216557600080fd5b8760208260051b850101111561217a57600080fd5b6020928301955093505084013561219081612085565b809150509250925092565b600080604083850312156121ae57600080fd5b8235611fb981612085565b600080604083850312156121cc57600080fd5b6121d583611f81565b915060208301356121e581612085565b809150509250929050565b60008060008060008060c0878903121561220957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561224657600080fd5b61224f83611f81565b915061225d60208401611f81565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826122ce57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156122ed576122ed61229b565b500290565b634e487b7160e01b600052603260045260246000fd5b600060001982141561231c5761231c61229b565b5060010190565b60006020828403121561233557600080fd5b5051919050565b60006020828403121561234e57600080fd5b815161098d81612085565b60008282101561236b5761236b61229b565b500390565b600082198211156123835761238361229b565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123d85784516001600160a01b0316835293830193918301916001016123b3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561240e57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209d7b872a9b399c100a5525461e7072f6aeda6dd7444b4d9c0f84ee3727c2a18f64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80637d1db4a51161014f578063ba25a075116100c1578063dbf3e0ec1161007a578063dbf3e0ec1461076b578063dd62ed3e1461078b578063f0a9e365146107d1578063f2fde38b146107f1578063f785ccd014610811578063f887ea401461083157600080fd5b8063ba25a075146106b6578063c9567bf9146106d6578063cdf0ff7c146106eb578063d51ed1c81461070b578063d78e139d1461072b578063db03a00d1461074b57600080fd5b80638da5cb5b116101135780638da5cb5b146105ef57806395d89b411461060d578063a8aa1b311461063c578063a9059cbb1461065c578063aff971531461067c578063b2bdfa7b1461069657600080fd5b80637d1db4a514610547578063825287911461055d57806382bf293c1461057d578063893d20e81461059d5780638c658a29146105cf57600080fd5b8063395bf982116101e857806366eb3785116101ac57806366eb37851461049b5780636ddd1713146104b05780636fc3eaec146104d157806370a08231146104e6578063715018a61461051c57806378109e541461053157600080fd5b8063395bf982146103f65780635075b57514610416578063571ac8b01461044657806357fd0238146104665780635e4ae81b1461048657600080fd5b806318160ddd1161023a57806318160ddd146103585780631df4ccfc1461036d57806323b872dd146103835780632b112e49146103a3578063313ce567146103b8578063333c39a5146103d457600080fd5b80630445b6671461028257806306fdde03146102ab57806308fd3d05146102e7578063095ea7b3146103185780631161ae391461033857600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029860225481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b5060408051808201909152600a8152694d617472697820496e7560b01b60208201525b6040516102a29190611f2c565b3480156102f357600080fd5b5060215461030890600160a01b900460ff1681565b60405190151581526020016102a2565b34801561032457600080fd5b50610308610333366004611f9d565b610851565b34801561034457600080fd5b50610308610353366004611fc7565b6108be565b34801561036457600080fd5b50600554610298565b34801561037957600080fd5b5061029860135481565b34801561038f57600080fd5b5061030861039e366004611fe9565b6108d2565b3480156103af57600080fd5b50610298610994565b3480156103c457600080fd5b50604051601281526020016102a2565b3480156103e057600080fd5b506103f46103ef366004612025565b6109e6565b005b34801561040257600080fd5b506103f461041136600461203e565b610a58565b34801561042257600080fd5b5061030861043136600461206a565b600b6020526000908152604090205460ff1681565b34801561045257600080fd5b5061030861046136600461206a565b610a93565b34801561047257600080fd5b506103f4610481366004612093565b610aa1565b34801561049257600080fd5b506103f4610ade565b3480156104a757600080fd5b506103f4610b15565b3480156104bc57600080fd5b5060215461030890600160a81b900460ff1681565b3480156104dd57600080fd5b506103f4610b49565b3480156104f257600080fd5b5061029861050136600461206a565b6001600160a01b031660009081526008602052604090205490565b34801561052857600080fd5b506103f4610ba1565b34801561053d57600080fd5b5061029860075481565b34801561055357600080fd5b5061029860065481565b34801561056957600080fd5b506103f46105783660046120b0565b610c15565b34801561058957600080fd5b506103f4610598366004612025565b610c9e565b3480156105a957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b3480156105db57600080fd5b506103f46105ea366004612115565b610d07565b3480156105fb57600080fd5b506000546001600160a01b03166105b7565b34801561061957600080fd5b5060408051808201909152600681526509a82a8a492b60d31b60208201526102da565b34801561064857600080fd5b506021546105b7906001600160a01b031681565b34801561066857600080fd5b50610308610677366004611f9d565b610da6565b34801561068857600080fd5b50600a546103089060ff1681565b3480156106a257600080fd5b506000546105b7906001600160a01b031681565b3480156106c257600080fd5b506103f46106d136600461219b565b610db3565b3480156106e257600080fd5b506103f4610dff565b3480156106f757600080fd5b506103f46107063660046121b9565b610e3e565b34801561071757600080fd5b50610298610726366004612025565b610ea6565b34801561073757600080fd5b506103f4610746366004612025565b610eed565b34801561075757600080fd5b506103f46107663660046121b9565b610f41565b34801561077757600080fd5b506103f46107863660046121f0565b610f96565b34801561079757600080fd5b506102986107a6366004612233565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107dd57600080fd5b506103086107ec366004611f9d565b61105c565b3480156107fd57600080fd5b506103f461080c36600461206a565b611177565b34801561081d57600080fd5b506103f461082c366004611fc7565b611261565b34801561083d57600080fd5b50601f546105b7906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108ac9086815260200190565b60405180910390a35060015b92915050565b6000826108ca83610ea6565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461097f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461095a918490611357565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61098a848484611391565b90505b9392505050565b6004546001600160a01b03166000908152600860205260408120546109e1906003546001600160a01b03166000908152600860205260409020546109db9060055490611753565b90611753565b905090565b6000546001600160a01b03163314610a195760405162461bcd60e51b8152600401610a1090612266565b60405180910390fd5b6103e8600554610a2991906122b1565b6006541015610a3757600080fd5b6103e881600554610a4891906122d3565b610a5291906122b1565b60065550565b6000546001600160a01b03163314610a825760405162461bcd60e51b8152600401610a1090612266565b601591909155601691909155601755565b60006108b882600019610851565b6000546001600160a01b03163314610acb5760405162461bcd60e51b8152600401610a1090612266565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610b085760405162461bcd60e51b8152600401610a1090612266565b6005546007819055600655565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b8152600401610a1090612266565b610b47611795565b565b336000908152600d602052604090205460ff16610b6557600080fd5b601a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610b9e573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610bcb5760405162461bcd60e51b8152600401610a1090612266565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b8152600401610a1090612266565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610cc85760405162461bcd60e51b8152600401610a1090612266565b6103e8600554610cd891906122b1565b6007541015610ce657600080fd5b6103e881600554610cf791906122d3565b610d0191906122b1565b60075550565b6000546001600160a01b03163314610d315760405162461bcd60e51b8152600401610a1090612266565b60005b82811015610da05781600b6000868685818110610d5357610d536122f2565b9050602002016020810190610d68919061206a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d9981612308565b9050610d34565b50505050565b600061098d338484611391565b6000546001600160a01b03163314610ddd5760405162461bcd60e51b8152600401610a1090612266565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b03163314610e295760405162461bcd60e51b8152600401610a1090612266565b6021805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610e685760405162461bcd60e51b8152600401610a1090612266565b6001600160a01b039091166000908152600c60209081526040808320805494151560ff199586168117909155600d9092529091208054909216179055565b60006108b8610eb3610994565b6021546001600160a01b0316600090815260086020526040902054610ee790610ee0906002905b90611296565b8590611296565b90611315565b60195447906001600160a01b03166108fc6064610f0a85856122d3565b610f1491906122b1565b6040518115909202916000818181858888f19350505050158015610f3c573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610f6b5760405162461bcd60e51b8152600401610a1090612266565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610fc05760405162461bcd60e51b8152600401610a1090612266565b600e8690556011859055600f84905560108390556012829055610ff182610feb858188818c8c611b8b565b90611b8b565b60135560148190556110046002826122b1565b601354106110545760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610a10565b505050505050565b336000908152600d602052604081205460ff1661107857600080fd5b816110f7576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b1580156110bc57600080fd5b505afa1580156110d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f49190612323565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b15801561113f57600080fd5b505af1158015611153573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d919061233c565b6000546001600160a01b031633146111a15760405162461bcd60e51b8152600401610a1090612266565b6001600160a01b0381166112065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a10565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461128b5760405162461bcd60e51b8152600401610a1090612266565b601d91909155601e55565b6000826112a5575060006108b8565b60006112b183856122d3565b9050826112be85836122b1565b1461098d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a10565b600061098d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bea565b6000818484111561137b5760405162461bcd60e51b8152600401610a109190611f2c565b5060006113888486612359565b95945050505050565b60235460009060ff16156113b1576113aa848484611c18565b905061098d565b6001600160a01b03841660009081526001602052604090205460ff161580156113f357506001600160a01b03831660009081526001602052604090205460ff16155b1561144857602154600160a01b900460ff166114485760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a10565b600a5460ff16156114a4576001600160a01b0384166000908152600b602052604090205460ff16156114a45760405162461bcd60e51b8152602060048201526005602482015264189bdd195960da1b6044820152606401610a10565b6001600160a01b03841660009081526001602052604090205460ff161580156114d657506001600160a01b0383163014155b80156114f057506003546001600160a01b03848116911614155b801561150a57506021546001600160a01b03848116911614155b80156115245750601c546001600160a01b03848116911614155b801561153e57506019546001600160a01b03848116911614155b801561156357506001600160a01b0383166000908152600d602052604090205460ff16155b15611604576001600160a01b03831660009081526008602052604090205460075461158e8483612370565b11156116025760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610a10565b505b61160e8483611cec565b611616611d59565b1561162357611623611795565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611675918490611357565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806116c257506001600160a01b0384166000908152600c602052604090205460ff165b6116d6576116d1858486611daf565b6116d8565b825b6001600160a01b0385166000908152600860205260409020549091506116fe9082611b8b565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612428833981519152906117409085815260200190565b60405180910390a3506001949350505050565b600061098d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611357565b6023805460ff19166001179055601d54601e546000916117b4916108be565b6117c057600e546117c3565b60005b905060006117e76002610ee7601354610ee78660225461129690919063ffffffff16565b905060006118008260225461175390919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061183a5761183a6122f2565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061186b5761186b6122f2565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac947906118b5908690600090879030904290600401612388565b600060405180830381600087803b1580156118cf57600080fd5b505af11580156118e3573d6000803e3d6000fd5b5050505060006118fc824761175390919063ffffffff16565b9050600061191761190e886002611315565b60135490611753565b9050600061192c6002610ee78481878d611296565b9050600061194983610ee7600f548761129690919063ffffffff16565b9050600061196684610ee76011548861129690919063ffffffff16565b9050600061198385610ee76010548961129690919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146119d5576040519150601f19603f3d011682016040523d82523d6000602084013e6119da565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a2a576040519150601f19603f3d011682016040523d82523d6000602084013e611a2f565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611a7f576040519150601f19603f3d011682016040523d82523d6000602084013e611a84565b606091505b5060009250508b159050611b7357601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b3691906123f9565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611b988385612370565b90508381101561098d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a10565b60008183611c0b5760405162461bcd60e51b8152600401610a109190611f2c565b50600061138884866122b1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c69918490611357565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c989083611b8b565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061242883398151915290611cda9086815260200190565b60405180910390a35060019392505050565b60065481111580611d1557506001600160a01b0382166000908152600d602052604090205460ff165b611d555760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610a10565b5050565b6021546000906001600160a01b03163314801590611d7a575060235460ff16155b8015611d8f5750602154600160a81b900460ff165b80156109e157505060225430600090815260086020526040902054101590565b601754602154600091906001600160a01b0384811691161415611dd55750601554611df0565b6021546001600160a01b0386811691161415611df057506016545b6000611e1d6014546064611e0491906122d3565b610ee784610eda6013548a61129690919063ffffffff16565b90506000611e3c601354610ee76012548561129690919063ffffffff16565b90506000611e4a8383611753565b30600090815260086020526040902054909150611e679082611b8b565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611e959083611b8b565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612428833981519152910160405180910390a38115611f1657601c546040518381526001600160a01b03918216918a16906000805160206124288339815191529060200160405180910390a35b611f208784611753565b98975050505050505050565b600060208083528351808285015260005b81811015611f5957858101830151858201604001528201611f3d565b81811115611f6b576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611f9857600080fd5b919050565b60008060408385031215611fb057600080fd5b611fb983611f81565b946020939093013593505050565b60008060408385031215611fda57600080fd5b50508035926020909101359150565b600080600060608486031215611ffe57600080fd5b61200784611f81565b925061201560208501611f81565b9150604084013590509250925092565b60006020828403121561203757600080fd5b5035919050565b60008060006060848603121561205357600080fd5b505081359360208301359350604090920135919050565b60006020828403121561207c57600080fd5b61098d82611f81565b8015158114610b9e57600080fd5b6000602082840312156120a557600080fd5b813561098d81612085565b600080600080600060a086880312156120c857600080fd5b6120d186611f81565b94506120df60208701611f81565b93506120ed60408701611f81565b92506120fb60608701611f81565b915061210960808701611f81565b90509295509295909350565b60008060006040848603121561212a57600080fd5b833567ffffffffffffffff8082111561214257600080fd5b818601915086601f83011261215657600080fd5b81358181111561216557600080fd5b8760208260051b850101111561217a57600080fd5b6020928301955093505084013561219081612085565b809150509250925092565b600080604083850312156121ae57600080fd5b8235611fb981612085565b600080604083850312156121cc57600080fd5b6121d583611f81565b915060208301356121e581612085565b809150509250929050565b60008060008060008060c0878903121561220957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561224657600080fd5b61224f83611f81565b915061225d60208401611f81565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826122ce57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156122ed576122ed61229b565b500290565b634e487b7160e01b600052603260045260246000fd5b600060001982141561231c5761231c61229b565b5060010190565b60006020828403121561233557600080fd5b5051919050565b60006020828403121561234e57600080fd5b815161098d81612085565b60008282101561236b5761236b61229b565b500390565b600082198211156123835761238361229b565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123d85784516001600160a01b0316835293830193918301916001016123b3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561240e57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209d7b872a9b399c100a5525461e7072f6aeda6dd7444b4d9c0f84ee3727c2a18f64736f6c63430008090033

Deployed Bytecode Sourcemap

5734:13991:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7529:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7529:55:0;;;;;;;;9028:80;;;;;;;;;;-1:-1:-1;9100:5:0;;;;;;;;;;;;-1:-1:-1;;;9100:5:0;;;;9028:80;;;;;;;:::i;7448:31::-;;;;;;;;;;-1:-1:-1;7448:31:0;;;;-1:-1:-1;;;7448:31:0;;;;;;;;;963:14:1;;956:22;938:41;;926:2;911:18;7448:31:0;798:187:1;9450:216:0;;;;;;;;;;-1:-1:-1;9450:216:0;;;;;:::i;:::-;;:::i;19501:150::-;;;;;;;;;;-1:-1:-1;19501:150:0;;;;;:::i;:::-;;:::i;8758:88::-;;;;;;;;;;-1:-1:-1;8831:12:0;;8758:88;;6787:98;;;;;;;;;;;;;;;;9968:370;;;;;;;;;;-1:-1:-1;9968:370:0;;;;;:::i;:::-;;:::i;19176:142::-;;;;;;;;;;;;;:::i;8852:80::-;;;;;;;;;;-1:-1:-1;8852:80:0;;6079:2;2155:36:1;;2143:2;2128:18;8852:80:0;2013:184:1;10584:187:0;;;;;;;;;;-1:-1:-1;10584:187:0;;;;;:::i;:::-;;:::i;:::-;;14950:214;;;;;;;;;;-1:-1:-1;14950:214:0;;;;;:::i;:::-;;:::i;6431:40::-;;;;;;;;;;-1:-1:-1;6431:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9674:122;;;;;;;;;;-1:-1:-1;9674:122:0;;;;;:::i;:::-;;:::i;17156:86::-;;;;;;;;;;-1:-1:-1;17156:86:0;;;;;:::i;:::-;;:::i;14328:133::-;;;;;;;;;;;;;:::i;14237:83::-;;;;;;;;;;;;;:::i;7492:30::-;;;;;;;;;;-1:-1:-1;7492:30:0;;;;-1:-1:-1;;;7492:30:0;;;;;;14469:155;;;;;;;;;;;;;:::i;9198:105::-;;;;;;;;;;-1:-1:-1;9198:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9282:18:0;9264:7;9282:18;;;:9;:18;;;;;;;9198:105;3791:148;;;;;;;;;;;;;:::i;6213:61::-;;;;;;;;;;;;;;;;6148:58;;;;;;;;;;;;;;;;18364:456;;;;;;;;;;-1:-1:-1;18364:456:0;;;;;:::i;:::-;;:::i;10350:226::-;;;;;;;;;;-1:-1:-1;10350:226:0;;;;;:::i;:::-;;:::i;9114:78::-;;;;;;;;;;-1:-1:-1;9166:7:0;3642:6;-1:-1:-1;;;;;3642:6:0;9114:78;;;-1:-1:-1;;;;;3921:32:1;;;3903:51;;3891:2;3876:18;9114:78:0;3757:203:1;17255:201:0;;;;;;;;;;-1:-1:-1;17255:201:0;;;;;:::i;:::-;;:::i;3577:79::-;;;;;;;;;;-1:-1:-1;3615:7:0;3642:6;-1:-1:-1;;;;;3642:6:0;3577:79;;8938:84;;;;;;;;;;-1:-1:-1;9012:7:0;;;;;;;;;;;;-1:-1:-1;;;9012:7:0;;;;8938:84;;7416:19;;;;;;;;;;-1:-1:-1;7416:19:0;;;;-1:-1:-1;;;;;7416:19:0;;;9804:156;;;;;;;;;;-1:-1:-1;9804:156:0;;;;;:::i;:::-;;:::i;6398:26::-;;;;;;;;;;-1:-1:-1;6398:26:0;;;;;;;;3197:21;;;;;;;;;;-1:-1:-1;3197:21:0;;;;-1:-1:-1;;;;;3197:21:0;;;18828:156;;;;;;;;;;-1:-1:-1;18828:156:0;;;;;:::i;:::-;;:::i;15172:77::-;;;;;;;;;;;;;:::i;17468:159::-;;;;;;;;;;-1:-1:-1;17468:159:0;;;;;:::i;:::-;;:::i;19326:167::-;;;;;;;;;;-1:-1:-1;19326:167:0;;;;;:::i;:::-;;:::i;14025:203::-;;;;;;;;;;-1:-1:-1;14025:203:0;;;;;:::i;:::-;;:::i;17635:124::-;;;;;;;;;;-1:-1:-1;17635:124:0;;;;;:::i;:::-;;:::i;17767:589::-;;;;;;;;;;-1:-1:-1;17767:589:0;;;;;:::i;:::-;;:::i;9309:133::-;;;;;;;;;;-1:-1:-1;9309:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9411:19:0;;;9393:7;9411:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9309:133;14632:310;;;;;;;;;;-1:-1:-1;14632:310:0;;;;;:::i;:::-;;:::i;3947:244::-;;;;;;;;;;-1:-1:-1;3947:244:0;;;;;:::i;:::-;;:::i;18992:172::-;;;;;;;;;;-1:-1:-1;18992:172:0;;;;;:::i;:::-;;:::i;7346:24::-;;;;;;;;;;-1:-1:-1;7346:24:0;;;;-1:-1:-1;;;;;7346:24:0;;;9450:216;9554:10;9525:4;9542:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9542:32:0;;;;;;;;;;:41;;;9599:37;9525:4;;9542:32;;9599:37;;;;9577:6;160:25:1;;148:2;133:18;;14:177;9599:37:0;;;;;;;;-1:-1:-1;9654:4:0;9450:216;;;;;:::o;19501:150::-;19581:4;19637:6;19605:29;19625:8;19605:19;:29::i;:::-;:38;;19501:150;-1:-1:-1;;;19501:150:0:o;9968:370::-;-1:-1:-1;;;;;10088:19:0;;10068:4;10088:19;;;:11;:19;;;;;;;;10108:10;10088:31;;;;;;;;-1:-1:-1;;10088:52:0;10085:186;;10190:69;;;;;;;;;;;-1:-1:-1;;;10190:69:0;;;;;;;;-1:-1:-1;;;;;10190:19:0;;-1:-1:-1;10190:19:0;;;:11;:19;;;;;10210:10;10190:31;;;;;;;;;;:69;;10226:6;;10190:35;:69::i;:::-;-1:-1:-1;;;;;10156:19:0;;;;;;:11;:19;;;;;;;;10176:10;10156:31;;;;;;;:103;10085:186;10290:40;10304:6;10312:9;10323:6;10290:13;:40::i;:::-;10283:47;;9968:370;;;;;;:::o;19176:142::-;19304:4;;-1:-1:-1;;;;;19304:4:0;19229:7;9282:18;;;:9;:18;;;;;;19256:54;;19283:4;;-1:-1:-1;;;;;19283:4:0;9264:7;9282:18;;;:9;:18;;;;;;19256:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19249:61;;19176:142;:::o;10584:187::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;;;;;;;;;10694:4:::1;10679:12;;:19;;;;:::i;:::-;10663:12;;:35;;10655:44;;;::::0;::::1;;10759:4;10742:12;10727;;:27;;;;:::i;:::-;10726:37;;;;:::i;:::-;10711:12;:52:::0;-1:-1:-1;10584:187:0:o;14950:214::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;15049:14:::1;:22:::0;;;;15082:13:::1;:20:::0;;;;15113:18:::1;:27:::0;14950:214::o;9674:122::-;9729:4;9753:35;9761:7;-1:-1:-1;;9753:7:0;:35::i;17156:86::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;17217:7:::1;:17:::0;;-1:-1:-1;;17217:17:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17156:86::o;14328:133::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;14401:12:::1;::::0;14383:15:::1;:30:::0;;;14424:12:::1;:27:::0;14328:133::o;14237:83::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;14296:10:::1;:8;:10::i;:::-;14237:83::o:0;14469:155::-;14536:10;14520:27;;;;:15;:27;;;;;;;;14512:36;;;;;;14567:14;;14559:55;;-1:-1:-1;;;;;14567:14:0;;;;14592:21;14559:55;;;;;14567:14;14559:55;14567:14;14559:55;14592:21;14567:14;14559:55;;;;;;;;;;;;;;;;;;;;;14469:155::o;3791:148::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;3898:1:::1;3882:6:::0;;3861:40:::1;::::0;-1:-1:-1;;;;;3882:6:0;;::::1;::::0;3861:40:::1;::::0;3898:1;;3861:40:::1;3929:1;3912:19:::0;;-1:-1:-1;;;;;;3912:19:0::1;::::0;;3791:148::o;18364:456::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;18562:21:::1;:46:::0;;-1:-1:-1;;;;;;18562:46:0;;::::1;-1:-1:-1::0;;;;;18562:46:0;;::::1;;::::0;;;18619:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18674:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18717:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18768:20:::1;:44:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18364:456::o;10350:226::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;10476:4:::1;10461:12;;:19;;;;:::i;:::-;10442:15;;:38;;10434:47;;;::::0;::::1;;10546:4;10527:14;10512:12;;:29;;;;:::i;:::-;10511:39;;;;:::i;:::-;10493:15;:57:::0;-1:-1:-1;10350:226:0:o;17255:201::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;17354:9:::1;17349:100;17365:20:::0;;::::1;17349:100;;;17431:6;17407:7;:21;17415:9;;17425:1;17415:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17407:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17407:21:0;:30;;-1:-1:-1;;17407:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17387:3:::1;::::0;::::1;:::i;:::-;;;17349:100;;;;17255:201:::0;;;:::o;9804:156::-;9884:4;9908:44;9922:10;9934:9;9945:6;9908:13;:44::i;18828:156::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;18920:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18920:22:0::1;-1:-1:-1::0;;;;18920:22:0;;::::1;::::0;;;::::1;::::0;;;18953:13:::1;:23:::0;18828:156::o;15172:77::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;15223:11:::1;:18:::0;;-1:-1:-1;;;;15223:18:0::1;-1:-1:-1::0;;;15223:18:0::1;::::0;;15172:77::o;17468:159::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17548:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17548:28:0;;::::1;::::0;::::1;::::0;;;17587:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;17468:159::o;19326:167::-;19394:7;19421:64;19462:22;:20;:22::i;:::-;19444:4;;-1:-1:-1;;;;;19444:4:0;9264:7;9282:18;;;:9;:18;;;;;;19421:36;;19434:22;;19454:1;;19434:15;:19;;:22::i;:::-;19421:8;;:12;:36::i;:::-;:40;;:64::i;14025:203::-;14154:20;;14114:21;;-1:-1:-1;;;;;14154:20:0;14146:74;14216:3;14185:28;14197:16;14114:21;14185:28;:::i;:::-;:34;;;;:::i;:::-;14146:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14083:145;14025:203;:::o;17635:124::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17719:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17719:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17635:124::o;17767:589::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;17954:12:::1;:28:::0;;;17993:12:::1;:28:::0;;;18032:12:::1;:28:::0;;;18071:6:::1;:16:::0;;;18098:10:::1;:24:::0;;;18144:81:::1;18111:11:::0;18144:64:::1;18080:7:::0;18144:64;18047:13;18144:64;17969:13;18008;18144:17:::1;:32::i;:::-;:36:::0;::::1;:51::i;:81::-;18133:8;:92:::0;18236:14:::1;:32:::0;;;18298:16:::1;18313:1;18253:15:::0;18298:16:::1;:::i;:::-;18287:8;;:27;18279:68;;;::::0;-1:-1:-1;;;18279:68:0;;7735:2:1;18279:68:0::1;::::0;::::1;7717:21:1::0;7774:2;7754:18;;;7747:30;7813;7793:18;;;7786:58;7861:18;;18279:68:0::1;7533:352:1::0;18279:68:0::1;17767:589:::0;;;;;;:::o;14632:310::-;14754:10;14713:4;14738:27;;;:15;:27;;;;;;;;14730:36;;;;;;14777:11;14774:95;;14813:44;;-1:-1:-1;;;14813:44:0;;14851:4;14813:44;;;3903:51:1;-1:-1:-1;;;;;14813:29:0;;;;;3876:18:1;;14813:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14804:53;;14774:95;14886:48;;-1:-1:-1;;;14886:48:0;;14915:10;14886:48;;;8253:51:1;8320:18;;;8313:34;;;-1:-1:-1;;;;;14886:28:0;;;;;8226:18:1;;14886:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3947:244::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4036:22:0;::::1;4028:73;;;::::0;-1:-1:-1;;;4028:73:0;;8810:2:1;4028:73:0::1;::::0;::::1;8792:21:1::0;8849:2;8829:18;;;8822:30;8888:34;8868:18;;;8861:62;-1:-1:-1;;;8939:18:1;;;8932:36;8985:19;;4028:73:0::1;8608:402:1::0;4028:73:0::1;4138:6;::::0;;4117:38:::1;::::0;-1:-1:-1;;;;;4117:38:0;;::::1;::::0;4138:6;::::1;::::0;4117:38:::1;::::0;::::1;4166:6;:17:::0;;-1:-1:-1;;;;;;4166:17:0::1;-1:-1:-1::0;;;;;4166:17:0;;;::::1;::::0;;;::::1;::::0;;3947:244::o;18992:172::-;3704:6;;-1:-1:-1;;;;;3704:6:0;3014:10;3704:22;3696:67;;;;-1:-1:-1;;;3696:67:0;;;;;;;:::i;:::-;19079:15:::1;:25:::0;;;;19115:26:::1;:41:::0;18992:172::o;1376:250::-;1434:7;1458:6;1454:47;;-1:-1:-1;1488:1:0;1481:8;;1454:47;1513:9;1525:5;1529:1;1525;:5;:::i;:::-;1513:17;-1:-1:-1;1558:1:0;1549:5;1553:1;1513:17;1549:5;:::i;:::-;:10;1541:56;;;;-1:-1:-1;;;1541:56:0;;9217:2:1;1541:56:0;;;9199:21:1;9256:2;9236:18;;;9229:30;9295:34;9275:18;;;9268:62;-1:-1:-1;;;9346:18:1;;;9339:31;9387:19;;1541:56:0;9015:397:1;1632:132:0;1690:7;1717:39;1721:1;1724;1717:39;;;;;;;;;;;;;;;;;:3;:39::i;1178:192::-;1264:7;1300:12;1292:6;;;;1284:29;;;;-1:-1:-1;;;1284:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1324:9:0;1336:5;1340:1;1336;:5;:::i;:::-;1324:17;1178:192;-1:-1:-1;;;;;1178:192:0:o;10783:1414::-;10895:6;;10875:4;;10895:6;;10892:63;;;10911:41;10926:6;10934:9;10945:6;10911:14;:41::i;:::-;10904:48;;;;10892:63;-1:-1:-1;;;;;10971:22:0;;;;;;:14;:22;;;;;;;;10970:23;:53;;;;-1:-1:-1;;;;;;10998:25:0;;;;;;:14;:25;;;;;;;;10997:26;10970:53;10967:140;;;11047:11;;-1:-1:-1;;;11047:11:0;;;;11039:43;;;;-1:-1:-1;;;11039:43:0;;9749:2:1;11039:43:0;;;9731:21:1;9788:2;9768:18;;;9761:30;-1:-1:-1;;;9807:18:1;;;9800:50;9867:18;;11039:43:0;9547:344:1;11039:43:0;11154:7;;;;11151:75;;;-1:-1:-1;;;;;11186:15:0;;;;;;:7;:15;;;;;;;;11185:16;11177:33;;;;-1:-1:-1;;;11177:33:0;;10098:2:1;11177:33:0;;;10080:21:1;10137:1;10117:18;;;10110:29;-1:-1:-1;;;10155:18:1;;;10148:35;10200:18;;11177:33:0;9896:328:1;11177:33:0;-1:-1:-1;;;;;11243:22:0;;;;;;:14;:22;;;;;;;;11242:23;:53;;;;-1:-1:-1;;;;;;11269:26:0;;11290:4;11269:26;;11242:53;:84;;;;-1:-1:-1;11321:4:0;;-1:-1:-1;;;;;11300:26:0;;;11321:4;;11300:26;;11242:84;:105;;;;-1:-1:-1;11343:4:0;;-1:-1:-1;;;;;11330:17:0;;;11343:4;;11330:17;;11242:105;:140;;;;-1:-1:-1;11364:18:0;;-1:-1:-1;;;;;11351:31:0;;;11364:18;;11351:31;;11242:140;:177;;;;-1:-1:-1;11399:20:0;;-1:-1:-1;;;;;11386:33:0;;;11399:20;;11386:33;;11242:177;:208;;;;-1:-1:-1;;;;;;11424:26:0;;;;;;:15;:26;;;;;;;;11423:27;11242:208;11238:400;;;-1:-1:-1;;;;;9282:18:0;;11466;9282;;;:9;:18;;;;;;11555:15;;11531:19;11544:6;9282:18;11531:19;:::i;:::-;11530:40;;11522:114;;;;-1:-1:-1;;;11522:114:0;;10564:2:1;11522:114:0;;;10546:21:1;10603:2;10583:18;;;10576:30;10642:34;10622:18;;;10615:62;10713:32;10693:18;;;10686:60;10763:19;;11522:114:0;10362:426:1;11522:114:0;11451:187;11238:400;11691:28;11704:6;11712;11691:12;:28::i;:::-;11736:16;:14;:16::i;:::-;11733:35;;;11755:10;:8;:10::i;:::-;11848:53;;;;;;;;;;;-1:-1:-1;;;11848:53:0;;;;;;;;-1:-1:-1;;;;;11848:17:0;;-1:-1:-1;11848:17:0;;;:9;:17;;;;;;;;:53;;11870:6;;11848:21;:53::i;:::-;-1:-1:-1;;;;;11828:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11940:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11963:22:0;;;;;;:11;:22;;;;;;;;11940:45;11939:93;;11998:34;12006:6;12014;12022:9;11998:7;:34::i;:::-;11939:93;;;11989:6;11939:93;-1:-1:-1;;;;;12066:20:0;;;;;;:9;:20;;;;;;11914:118;;-1:-1:-1;12066:40:0;;11914:118;12066:24;:40::i;:::-;-1:-1:-1;;;;;12043:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12124:43;;;;;;-1:-1:-1;;;;;;;;;;;12124:43:0;;;12152:14;160:25:1;;148:2;133:18;;14:177;12124:43:0;;;;;;;;-1:-1:-1;12185:4:0;;10783:1414;-1:-1:-1;;;;10783:1414:0:o;1036:136::-;1094:7;1121:43;1125:1;1128;1121:43;;;;;;;;;;;;;;;;;:3;:43::i;15267:1881::-;7632:6;:13;;-1:-1:-1;;7632:13:0;7641:4;7632:13;;;15362:15:::1;::::0;15379:26:::1;::::0;7632:6;;15346:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15413:12;;15346:79;;;15409:1;15346:79;15316:109;;15436:23;15462:59;15519:1;15462:52;15505:8;;15462:38;15480:19;15462:13;;:17;;:38;;;;:::i;:59::-;15436:85;;15532:20;15555:34;15573:15;15555:13;;:17;;:34;;;;:::i;:::-;15626:16;::::0;;15640:1:::1;15626:16:::0;;;;;::::1;::::0;;15532:57;;-1:-1:-1;15602:21:0::1;::::0;15626:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15626:16:0::1;15602:40;;15671:4;15653;15658:1;15653:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15653:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15697:4:::1;::::0;15687:7;;15697:4;::::1;::::0;15687;;15697;;15687:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15687:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15772:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15772:188:0;;15738:21:::1;::::0;15772:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15844:12;;15714:21:::1;::::0;15887:4;;15914::::1;::::0;15934:15:::1;::::0;15772:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15973:17;15993:40;16019:13;15993:21;:25;;:40;;;;:::i;:::-;15973:60:::0;-1:-1:-1;16046:19:0::1;16068:40;16081:26;:19:::0;16105:1:::1;16081:23;:26::i;:::-;16068:8;::::0;;:12:::1;:40::i;:::-;16046:62:::0;-1:-1:-1;16129:26:0::1;16158:58;16214:1;16158:51;16046:62:::0;16158:51;:9;16172:19;16158:13:::1;:34::i;:58::-;16129:87;;16227:26;16256:44;16288:11;16256:27;16270:12;;16256:9;:13;;:27;;;;:::i;:44::-;16227:73;;16311:26;16340:44;16372:11;16340:27;16354:12;;16340:9;:13;;:27;;;;:::i;:44::-;16311:73;;16395:20;16418:38;16444:11;16418:21;16432:6;;16418:9;:13;;:21;;;;:::i;:38::-;16498:20;::::0;16490:65:::1;::::0;16395:61;;-1:-1:-1;16470:15:0::1;::::0;-1:-1:-1;;;;;16498:20:0;;::::1;::::0;16532:18;;16470:15;16490:65;16470:15;16490:65;16532:18;16498:20;16490:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16590:14:0::1;::::0;16582:53:::1;::::0;16469:86;;-1:-1:-1;;;;;;16590:14:0::1;::::0;16618:12;;16582:53:::1;::::0;;;16618:12;16590:14;16582:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16670:20:0::1;::::0;16662:65:::1;::::0;16566:69;;-1:-1:-1;;;;;;16670:20:0::1;::::0;16704:18;;16662:65:::1;::::0;;;16704:18;16670:20;16662:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16761:5:0::1;::::0;-1:-1:-1;;16782:19:0;;;-1:-1:-1;16779:362:0::1;;16817:6;::::0;16991:21:::1;::::0;16817:244:::1;::::0;-1:-1:-1;;;16817:244:0;;16893:4:::1;16817:244;::::0;::::1;12461:34:1::0;12511:18;;;12504:34;;;16817:6:0::1;12554:18:1::0;;;12547:34;;;12597:18;;;12590:34;-1:-1:-1;;;;;16991:21:0;;::::1;12640:19:1::0;;;12633:44;17031:15:0::1;12693:19:1::0;;;12686:35;16817:6:0;::::1;::::0;:22:::1;::::0;16847:18;;12395:19:1;;16817:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17081:48:0::1;::::0;;13217:25:1;;;13273:2;13258:18;;13251:34;;;17081:48:0::1;::::0;-1:-1:-1;13190:18:1;17081:48:0::1;;;;;;;16779:362;-1:-1:-1::0;;7650:6:0;:14;;-1:-1:-1;;7650:14:0;;;-1:-1:-1;;;;;;;;;;15267:1881:0:o;849:181::-;907:7;;939:5;943:1;939;:5;:::i;:::-;927:17;;968:1;963;:6;;955:46;;;;-1:-1:-1;;;955:46:0;;13498:2:1;955:46:0;;;13480:21:1;13537:2;13517:18;;;13510:30;13576:29;13556:18;;;13549:57;13623:18;;955:46:0;13296:351:1;1770:189:0;1856:7;1891:12;1884:5;1876:28;;;;-1:-1:-1;;;1876:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1915:9:0;1927:5;1931:1;1927;:5;:::i;12209:330::-;12339:53;;;;;;;;;;;-1:-1:-1;;;12339:53:0;;;;;;;;-1:-1:-1;;;;;12339:17:0;;12302:4;12339:17;;;:9;:17;;;;;;;:53;;12361:6;;12339:21;:53::i;:::-;-1:-1:-1;;;;;12319:17:0;;;;;;;:9;:17;;;;;;:73;;;;12426:20;;;;;;;:32;;12451:6;12426:24;:32::i;:::-;-1:-1:-1;;;;;12403:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12474:35;;;;;;-1:-1:-1;;;;;;;;;;;12474:35:0;;;12502:6;160:25:1;;148:2;133:18;;14:177;12474:35:0;;;;;;;;-1:-1:-1;12527:4:0;12209:330;;;;;:::o;12547:166::-;12644:12;;12634:6;:22;;:49;;;-1:-1:-1;;;;;;12660:23:0;;;;;;:15;:23;;;;;;;;12634:49;12626:79;;;;-1:-1:-1;;;12626:79:0;;13854:2:1;12626:79:0;;;13836:21:1;13893:2;13873:18;;;13866:30;-1:-1:-1;;;13912:18:1;;;13905:47;13969:18;;12626:79:0;13652:341:1;12626:79:0;12547:166;;:::o;13820:197::-;13907:4;;13869;;-1:-1:-1;;;;;13907:4:0;13893:10;:18;;;;:38;;-1:-1:-1;13925:6:0;;;;13924:7;13893:38;:62;;;;-1:-1:-1;13944:11:0;;-1:-1:-1;;;13944:11:0;;;;13893:62;:116;;;;-1:-1:-1;;13996:13:0;;13986:4;13968:24;;;;:9;:24;;;;;;:41;;;13820:197::o;12843:969::-;12980:18;;13027:4;;12929:7;;12980:18;-1:-1:-1;;;;;13014:17:0;;;13027:4;;13014:17;13011:154;;;-1:-1:-1;13061:14:0;;13011:154;;;13106:4;;-1:-1:-1;;;;;13096:14:0;;;13106:4;;13096:14;13093:72;;;-1:-1:-1;13140:13:0;;13093:72;13177:17;13197:62;13238:14;;13255:3;13238:20;;;;:::i;:::-;13197:36;13222:10;13197:20;13208:8;;13197:6;:10;;:20;;;;:::i;:62::-;13177:82;;13270:21;13294:39;13324:8;;13294:25;13308:10;;13294:9;:13;;:25;;;;:::i;:39::-;13270:63;-1:-1:-1;13344:22:0;13369:28;:9;13270:63;13369:13;:28::i;:::-;13455:4;13437:24;;;;:9;:24;;;;;;13344:53;;-1:-1:-1;13437:44:0;;13344:53;13437:28;:44::i;:::-;13428:4;13410:24;;;;:9;:24;;;;;;:71;;;;13534:18;;-1:-1:-1;;;;;13534:18:0;13524:29;;;;:48;;13558:13;13524:33;:48::i;:::-;13502:18;;-1:-1:-1;;;;;13502:18:0;;;13492:29;;;;:9;:29;;;;;;;;;:80;;;;13588:47;160:25:1;;;13613:4:0;;13588:47;;;;-1:-1:-1;;;;;;;;;;;13588:47:0;133:18:1;13588:47:0;;;;;;;13659:17;;13656:108;;13714:18;;13697:51;;160:25:1;;;-1:-1:-1;;;;;13714:18:0;;;;13697:51;;;-1:-1:-1;;;;;;;;;;;13697:51:0;148:2:1;133:18;13697:51:0;;;;;;;13656:108;13783:21;:6;13794:9;13783:10;:21::i;:::-;13776:28;12843:969;-1:-1:-1;;;;;;;;12843:969:0:o;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;990:173::-;1058:20;;-1:-1:-1;;;;;1107:31:1;;1097:42;;1087:70;;1153:1;1150;1143:12;1087:70;990:173;;;:::o;1168:254::-;1236:6;1244;1297:2;1285:9;1276:7;1272:23;1268:32;1265:52;;;1313:1;1310;1303:12;1265:52;1336:29;1355:9;1336:29;:::i;:::-;1326:39;1412:2;1397:18;;;;1384:32;;-1:-1:-1;;;1168:254:1:o;1427:248::-;1495:6;1503;1556:2;1544:9;1535:7;1531:23;1527:32;1524:52;;;1572:1;1569;1562:12;1524:52;-1:-1:-1;;1595:23:1;;;1665:2;1650:18;;;1637:32;;-1:-1:-1;1427:248:1:o;1680:328::-;1757:6;1765;1773;1826:2;1814:9;1805:7;1801:23;1797:32;1794:52;;;1842:1;1839;1832:12;1794:52;1865:29;1884:9;1865:29;:::i;:::-;1855:39;;1913:38;1947:2;1936:9;1932:18;1913:38;:::i;:::-;1903:48;;1998:2;1987:9;1983:18;1970:32;1960:42;;1680:328;;;;;:::o;2202:180::-;2261:6;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;-1:-1:-1;2353:23:1;;2202:180;-1:-1:-1;2202:180:1:o;2387:316::-;2464:6;2472;2480;2533:2;2521:9;2512:7;2508:23;2504:32;2501:52;;;2549:1;2546;2539:12;2501:52;-1:-1:-1;;2572:23:1;;;2642:2;2627:18;;2614:32;;-1:-1:-1;2693:2:1;2678:18;;;2665:32;;2387:316;-1:-1:-1;2387:316:1:o;2708:186::-;2767:6;2820:2;2808:9;2799:7;2795:23;2791:32;2788:52;;;2836:1;2833;2826:12;2788:52;2859:29;2878:9;2859:29;:::i;2899:118::-;2985:5;2978:13;2971:21;2964:5;2961:32;2951:60;;3007:1;3004;2997:12;3022:241;3078:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:52;;;3147:1;3144;3137:12;3099:52;3186:9;3173:23;3205:28;3227:5;3205:28;:::i;3268:484::-;3363:6;3371;3379;3387;3395;3448:3;3436:9;3427:7;3423:23;3419:33;3416:53;;;3465:1;3462;3455:12;3416:53;3488:29;3507:9;3488:29;:::i;:::-;3478:39;;3536:38;3570:2;3559:9;3555:18;3536:38;:::i;:::-;3526:48;;3593:38;3627:2;3616:9;3612:18;3593:38;:::i;:::-;3583:48;;3650:38;3684:2;3673:9;3669:18;3650:38;:::i;:::-;3640:48;;3707:39;3741:3;3730:9;3726:19;3707:39;:::i;:::-;3697:49;;3268:484;;;;;;;;:::o;3965:750::-;4057:6;4065;4073;4126:2;4114:9;4105:7;4101:23;4097:32;4094:52;;;4142:1;4139;4132:12;4094:52;4182:9;4169:23;4211:18;4252:2;4244:6;4241:14;4238:34;;;4268:1;4265;4258:12;4238:34;4306:6;4295:9;4291:22;4281:32;;4351:7;4344:4;4340:2;4336:13;4332:27;4322:55;;4373:1;4370;4363:12;4322:55;4413:2;4400:16;4439:2;4431:6;4428:14;4425:34;;;4455:1;4452;4445:12;4425:34;4510:7;4503:4;4493:6;4490:1;4486:14;4482:2;4478:23;4474:34;4471:47;4468:67;;;4531:1;4528;4521:12;4468:67;4562:4;4554:13;;;;-1:-1:-1;4586:6:1;-1:-1:-1;;4627:20:1;;4614:34;4657:28;4614:34;4657:28;:::i;:::-;4704:5;4694:15;;;3965:750;;;;;:::o;4720:309::-;4785:6;4793;4846:2;4834:9;4825:7;4821:23;4817:32;4814:52;;;4862:1;4859;4852:12;4814:52;4901:9;4888:23;4920:28;4942:5;4920:28;:::i;5034:315::-;5099:6;5107;5160:2;5148:9;5139:7;5135:23;5131:32;5128:52;;;5176:1;5173;5166:12;5128:52;5199:29;5218:9;5199:29;:::i;:::-;5189:39;;5278:2;5267:9;5263:18;5250:32;5291:28;5313:5;5291:28;:::i;:::-;5338:5;5328:15;;;5034:315;;;;;:::o;5354:523::-;5458:6;5466;5474;5482;5490;5498;5551:3;5539:9;5530:7;5526:23;5522:33;5519:53;;;5568:1;5565;5558:12;5519:53;-1:-1:-1;;5591:23:1;;;5661:2;5646:18;;5633:32;;-1:-1:-1;5712:2:1;5697:18;;5684:32;;5763:2;5748:18;;5735:32;;-1:-1:-1;5814:3:1;5799:19;;5786:33;;-1:-1:-1;5866:3:1;5851:19;5838:33;;-1:-1:-1;5354:523:1;-1:-1:-1;5354:523:1:o;5882:260::-;5950:6;5958;6011:2;5999:9;5990:7;5986:23;5982:32;5979:52;;;6027:1;6024;6017:12;5979:52;6050:29;6069:9;6050:29;:::i;:::-;6040:39;;6098:38;6132:2;6121:9;6117:18;6098:38;:::i;:::-;6088:48;;5882:260;;;;;:::o;6373:356::-;6575:2;6557:21;;;6594:18;;;6587:30;6653:34;6648:2;6633:18;;6626:62;6720:2;6705:18;;6373:356::o;6734:127::-;6795:10;6790:3;6786:20;6783:1;6776:31;6826:4;6823:1;6816:15;6850:4;6847:1;6840:15;6866:217;6906:1;6932;6922:132;;6976:10;6971:3;6967:20;6964:1;6957:31;7011:4;7008:1;7001:15;7039:4;7036:1;7029:15;6922:132;-1:-1:-1;7068:9:1;;6866:217::o;7088:168::-;7128:7;7194:1;7190;7186:6;7182:14;7179:1;7176:21;7171:1;7164:9;7157:17;7153:45;7150:71;;;7201:18;;:::i;:::-;-1:-1:-1;7241:9:1;;7088:168::o;7261:127::-;7322:10;7317:3;7313:20;7310:1;7303:31;7353:4;7350:1;7343:15;7377:4;7374:1;7367:15;7393:135;7432:3;-1:-1:-1;;7453:17:1;;7450:43;;;7473:18;;:::i;:::-;-1:-1:-1;7520:1:1;7509:13;;7393:135::o;7890:184::-;7960:6;8013:2;8001:9;7992:7;7988:23;7984:32;7981:52;;;8029:1;8026;8019:12;7981:52;-1:-1:-1;8052:16:1;;7890:184;-1:-1:-1;7890:184:1:o;8358:245::-;8425:6;8478:2;8466:9;8457:7;8453:23;8449:32;8446:52;;;8494:1;8491;8484:12;8446:52;8526:9;8520:16;8545:28;8567:5;8545:28;:::i;9417:125::-;9457:4;9485:1;9482;9479:8;9476:34;;;9490:18;;:::i;:::-;-1:-1:-1;9527:9:1;;9417:125::o;10229:128::-;10269:3;10300:1;10296:6;10293:1;10290:13;10287:39;;;10306:18;;:::i;:::-;-1:-1:-1;10342:9:1;;10229:128::o;10925:980::-;11187:4;11235:3;11224:9;11220:19;11266:6;11255:9;11248:25;11292:2;11330:6;11325:2;11314:9;11310:18;11303:34;11373:3;11368:2;11357:9;11353:18;11346:31;11397:6;11432;11426:13;11463:6;11455;11448:22;11501:3;11490:9;11486:19;11479:26;;11540:2;11532:6;11528:15;11514:29;;11561:1;11571:195;11585:6;11582:1;11579:13;11571:195;;;11650:13;;-1:-1:-1;;;;;11646:39:1;11634:52;;11741:15;;;;11706:12;;;;11682:1;11600:9;11571:195;;;-1:-1:-1;;;;;;;11822:32:1;;;;11817:2;11802:18;;11795:60;-1:-1:-1;;;11886:3:1;11871:19;11864:35;11783:3;10925:980;-1:-1:-1;;;10925:980:1:o;12732:306::-;12820:6;12828;12836;12889:2;12877:9;12868:7;12864:23;12860:32;12857:52;;;12905:1;12902;12895:12;12857:52;12934:9;12928:16;12918:26;;12984:2;12973:9;12969:18;12963:25;12953:35;;13028:2;13017:9;13013:18;13007:25;12997:35;;12732:306;;;;;:::o

Swarm Source

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