ETH Price: $3,487.79 (+2.02%)
Gas: 11 Gwei

Token

SnakeEyes (SnakeEyes)
 

Overview

Max Total Supply

100,000,000 SnakeEyes

Holders

116

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
23,880.656706440343758437 SnakeEyes

Value
$0.00
0x458f04589344d39507707443b5e321be869fb055
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:
SnakeEyes

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-11
*/

// SPDX-License-Identifier: UNLICENSED



pragma solidity 0.8.7;

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(address(msg.sender));
    }

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

}  


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

interface IRewards {
    function deposit() external payable;
    function setShare(address shareholder, uint256 amount) external;
}

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

    uint256 private protection = 2; 
    uint256 public launchBlock;
    uint256 private protectionBlock;

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

    string constant private _name = "SnakeEyes";
    string constant private _symbol = "SnakeEyes";
    uint8 constant private _decimals = 18;

    uint256 private _totalSupply = 100000000* 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 100;
    uint256 public _maxWalletAmount = _totalSupply / 100;
    uint256 public _maxFee = 6;

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

    address[] public _markerPairs;
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMaxWalletExempt;

    //Fees
    uint256 private totalBuyFee = 6;
    uint256 private liquidityFee = 30;
    uint256 private marketingFee = 30;
    uint256 private btcRewardsFee = 40;

    uint256 private totalSellFee = 5;

    uint256 private transferFee = 4;

    uint256 private constant feeDenominator  = 100;

    address private marketingFeeReceiver = 0x75aEB75457144357C38aA6c750cbC6500Ca0BFa5;
    address private btcRewardsCA = 0xbBA44684508D01989f27b8b4240DF6F91cA8B9D6;

    IDEXRouter public router;
    address public pair;

    bool public tradingEnabled = false;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 5000;

    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        setAutomatedMarketMakerPair(pair, true);

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
        isMaxWalletExempt[msg.sender] = true;

               
        isFeeExempt[address(this)] = true; 
        isTxLimitExempt[address(this)] = true;
        isMaxWalletExempt[address(this)] = true;

        isMaxWalletExempt[pair] = true;


        _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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(tradingEnabled,"Trading not open yet");
        }

        if(shouldSwapBack()){ swapBack(); }

        uint256 amountReceived = amount; 

        if(automatedMarketMakerPairs[sender]) { //buy
            if(!isFeeExempt[recipient]) {
                require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded");
                require(amount <= _maxTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded");
                amountReceived = takeBuyFee(sender, amount);
            }

        } else if(automatedMarketMakerPairs[recipient]) { //sell
            if(!isFeeExempt[sender]) {
                require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
                amountReceived = takeSellFee(sender, amount);

            }
        } else {	
            if (!isFeeExempt[sender]) {	
                require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded");
                require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
                amountReceived = takeTransferFee(sender, amount);

            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        try IRewards(btcRewardsCA).setShare(sender, _balances[sender]) {} catch {}
        try IRewards(btcRewardsCA).setShare(recipient, _balances[recipient]) {} catch {}
        

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

    // Fees
    function takeBuyFee(address sender, uint256 amount) internal returns (uint256){
        uint256 _realFee = totalBuyFee;
        if (block.number < protectionBlock) {
                _realFee = 20;
            }

        uint256 feeAmount = amount.mul(_realFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function takeSellFee(address sender, uint256 amount) internal returns (uint256){
        uint256 _realFee = totalSellFee;
        if (block.number < protectionBlock) {
                _realFee = 40;
            }

        uint256 feeAmount = amount.mul(_realFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
            
    }

    function takeTransferFee(address sender, uint256 amount) internal returns (uint256){
        uint256 feeAmount = amount.mul(transferFee).div(feeDenominator);
        
        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);	
            emit Transfer(sender, address(this), feeAmount); 
        }
            	
        return amount.sub(feeAmount);	
    }    

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

    // switch Trading
    function enableTrading() external onlyOwner {
        tradingEnabled = true;
        launchBlock = block.number;
        protectionBlock = block.number.add(protection);
    }

    function swapBack() internal swapping {
        uint256 swapLiquidityFee = liquidityFee;
        uint256 realTotalFee =liquidityFee.add(marketingFee).add(btcRewardsFee);

        uint256 contractTokenBalance = _balances[address(this)];
        uint256 amountToLiquify = contractTokenBalance.mul(swapLiquidityFee).div(realTotalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        uint256 balanceBefore = address(this).balance;

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

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

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

        uint256 totalETHFee = realTotalFee.sub(swapLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHRewards = amountETH.sub(amountETHLiquidity).sub(amountETHMarketing);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        try IRewards(btcRewardsCA).deposit{value: amountETHRewards}() {} catch {}
        
        tmpSuccess = false;

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

    }

    // Admin Functions
    function setAutomatedMarketMakerPair(address _pair, bool _value) internal {
            require(automatedMarketMakerPairs[_pair] != _value, "Value already set");

            automatedMarketMakerPairs[_pair] = _value;

            if(_value){
                _markerPairs.push(_pair);
            }else{
                require(_markerPairs.length > 1, "Required 1 pair");
                for (uint256 i = 0; i < _markerPairs.length; i++) {
                    if (_markerPairs[i] == _pair) {
                        _markerPairs[i] = _markerPairs[_markerPairs.length - 1];
                        _markerPairs.pop();
                        break;
                    }
                }
            }
        }

    function updateRouter(address _address) external onlyOwner{
        router = IDEXRouter(_address);
    }

    function setMaxWallet(uint256 _newMaxWallet) external onlyOwner {
        require(_newMaxWallet > _totalSupply.div(1000), "Can't limit trading");
        _maxWalletAmount = _newMaxWallet;
    }

        function setMaxTX(uint256 _newMaxTX) external onlyOwner {
        require(_newMaxTX > _totalSupply.div(1000), "Can't limit trading");
        _maxTxAmount = _newMaxTX;
    }

    function setBuyTaxes(uint256 _buyTax, uint256 _liquidityPercentage, uint256 _marketingPercentage, uint256 _btcRewardsPercentage) external onlyOwner {
        require(_buyTax <= _maxFee, "Fee can't be higher than 6%");
        totalBuyFee = _buyTax;
        liquidityFee = _liquidityPercentage;
        marketingFee = _marketingPercentage;
        btcRewardsFee = _btcRewardsPercentage;        
    }

    function setSellTaxes(uint256 _sellTax) external onlyOwner {
        require(_sellTax <= _maxFee, "Fee can't be higher than 6%");
        totalSellFee = _sellTax;       
    }

    function setTransferTax(uint256 _transferTax) external onlyOwner {
        require(_transferTax <= _maxFee, "Fee can't be higher than 6%");
        transferFee = _transferTax;
    }

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

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

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

    function setAddresses(address _marketingWallet, address _rewardsCA) external onlyOwner {
        require(_marketingWallet != address(0) && _rewardsCA != address(0) , "Zero Address validation" );
        marketingFeeReceiver = _marketingWallet;
        btcRewardsCA = _rewardsCA;
    }

    function clearStuckBalance() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner returns (bool) {
        return ERC20(tokenAddress).transfer(msg.sender, amount);
    }

}

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":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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_markerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_rewardsCA","type":"address"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_liquidityPercentage","type":"uint256"},{"internalType":"uint256","name":"_marketingPercentage","type":"uint256"},{"internalType":"uint256","name":"_btcRewardsPercentage","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxTX","type":"uint256"}],"name":"setMaxTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"setTransferTax","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260028055600680546001600160a01b031990811661dead17909155600780549091169055620000366012600a62000723565b62000046906305f5e100620007e4565b60085560646008546200005a9190620006b7565b60095560646008546200006e9190620006b7565b600a556006600b819055601355601e6014819055601555602860165560056017556004601855601980546001600160a01b03199081167375aeb75457144357c38aa6c750cbc6500ca0bfa517909155601a805490911673bba44684508d01989f27b8b4240df6f91ca8b9d6179055601c805461ffff60a01b1916600160a81b1790556008546113889062000104906001620007e4565b620001109190620006b7565b601d553480156200012057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c464891600480820192602092909190829003018186803b158015620001c257600080fd5b505afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd919062000685565b600580546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200025757600080fd5b505afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000292919062000685565b6005546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b158015620002df57600080fd5b505af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a919062000685565b601c80546001600160a01b0319166001600160a01b039290921691821790556200034690600162000436565b306000818152600d60209081526040808320601b546001600160a01b03908116855290835281842060001990553380855260108085528386208054600160ff199182168117909255601180885286892080548316841790556012808952878a208054841685179055998952928752858820805482168317905591865284872080548316821790559685528386208054821688179055601c54909216855282852080549092169095179055600854848452600c835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000880565b6001600160a01b0382166000908152600f602052604090205460ff16151581151514156200049f5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064015b60405180910390fd5b6001600160a01b0382166000908152600f60205260409020805460ff191682158015919091179091556200051e57600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0384166001600160a01b03199091161790555050565b600e54600110620005645760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b604482015260640162000496565b60005b600e548110156200068057826001600160a01b0316600e82815481106200059257620005926200086a565b6000918252602090912001546001600160a01b031614156200066b57600e8054620005c09060019062000806565b81548110620005d357620005d36200086a565b600091825260209091200154600e80546001600160a01b0390921691839081106200060257620006026200086a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600e80548062000644576200064462000854565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b80620006778162000820565b91505062000567565b505050565b6000602082840312156200069857600080fd5b81516001600160a01b0381168114620006b057600080fd5b9392505050565b600082620006d557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200071b578160001904821115620006ff57620006ff6200083e565b808516156200070d57918102915b93841c9390800290620006df565b509250929050565b6000620006b060ff8416836000826200073f57506001620007de565b816200074e57506000620007de565b8160018114620007675760028114620007725762000792565b6001915050620007de565b60ff8411156200078657620007866200083e565b50506001821b620007de565b5060208310610133831016604e8410600b8410161715620007b7575081810a620007de565b620007c38383620006da565b8060001904821115620007da57620007da6200083e565b0290505b92915050565b60008160001904831182151516156200080157620008016200083e565b500290565b6000828210156200081b576200081b6200083e565b500390565b60006000198214156200083757620008376200083e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b61201580620008906000396000f3fe60806040526004361061024a5760003560e01c80637d1db4a511610139578063a9059cbb116100b6578063d4bafb1a1161007a578063d4bafb1a146106d8578063dd62ed3e146106ee578063e1d5584c14610734578063e4bf1bed14610754578063f84ba65d14610774578063f887ea401461079457600080fd5b8063a9059cbb14610632578063b62496f514610652578063c04a78ad14610682578063c851cc32146106a2578063d00efb2f146106c257600080fd5b80638cd4426d116100fd5780638cd4426d146105b45780638da5cb5b146105d457806390107afe146105f257806395d89b411461027f578063a8aa1b311461061257600080fd5b80637d1db4a514610507578063893d20e81461051d5780638a8c523c1461054f5780638b42507f146105645780638b5259031461059457600080fd5b8063364333f4116101c7578063658d4b7f1161018b578063658d4b7f146104655780636c0a24eb146104855780636ddd17131461049b57806370a08231146104bc578063715018a6146104f257600080fd5b8063364333f4146103bf5780633f4218e0146103d45780634ada218b14610404578063571ac8b0146104255780635d0044ca1461044557600080fd5b806318160ddd1161020e57806318160ddd1461033957806323b872dd1461034e5780632b112e491461036e578063313ce56714610383578063333c39a51461039f57600080fd5b80630445b6671461025657806306fdde031461027f5780630940bbc7146102b7578063095ea7b3146102d95780630bd11f8a1461030957600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c601d5481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506040805180820182526009815268536e616b654579657360b81b602082015290516102769190611db8565b3480156102c357600080fd5b506102d76102d2366004611d3f565b6107b4565b005b3480156102e557600080fd5b506102f96102f4366004611cf8565b61080e565b6040519015158152602001610276565b34801561031557600080fd5b506102f9610324366004611c37565b60126020526000908152604090205460ff1681565b34801561034557600080fd5b5060085461026c565b34801561035a57600080fd5b506102f9610369366004611c85565b61087b565b34801561037a57600080fd5b5061026c61093d565b34801561038f57600080fd5b5060405160128152602001610276565b3480156103ab57600080fd5b506102d76103ba366004611d3f565b61098f565b3480156103cb57600080fd5b506102d7610a11565b3480156103e057600080fd5b506102f96103ef366004611c37565b60106020526000908152604090205460ff1681565b34801561041057600080fd5b50601c546102f990600160a01b900460ff1681565b34801561043157600080fd5b506102f9610440366004611c37565b610a6a565b34801561045157600080fd5b506102d7610460366004611d3f565b610a78565b34801561047157600080fd5b506102d7610480366004611cc1565b610afa565b34801561049157600080fd5b5061026c600a5481565b3480156104a757600080fd5b50601c546102f990600160a81b900460ff1681565b3480156104c857600080fd5b5061026c6104d7366004611c37565b6001600160a01b03166000908152600c602052604090205490565b3480156104fe57600080fd5b506102d7610b4f565b34801561051357600080fd5b5061026c60095481565b34801561052957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561055b57600080fd5b506102d7610bc3565b34801561057057600080fd5b506102f961057f366004611c37565b60116020526000908152604090205460ff1681565b3480156105a057600080fd5b506102d76105af366004611d3f565b610c18565b3480156105c057600080fd5b506102f96105cf366004611cf8565b610c69565b3480156105e057600080fd5b506000546001600160a01b0316610537565b3480156105fe57600080fd5b506102d761060d366004611c52565b610d14565b34801561061e57600080fd5b50601c54610537906001600160a01b031681565b34801561063e57600080fd5b506102f961064d366004611cf8565b610dd8565b34801561065e57600080fd5b506102f961066d366004611c37565b600f6020526000908152604090205460ff1681565b34801561068e57600080fd5b506102d761069d366004611cc1565b610de5565b3480156106ae57600080fd5b506102d76106bd366004611c37565b610e3a565b3480156106ce57600080fd5b5061026c60035481565b3480156106e457600080fd5b5061026c600b5481565b3480156106fa57600080fd5b5061026c610709366004611c52565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561074057600080fd5b5061053761074f366004611d3f565b610e86565b34801561076057600080fd5b506102d761076f366004611d86565b610eb0565b34801561078057600080fd5b506102d761078f366004611cc1565b610f10565b3480156107a057600080fd5b50601b54610537906001600160a01b031681565b6000546001600160a01b031633146107e75760405162461bcd60e51b81526004016107de90611e6f565b60405180910390fd5b600b548111156108095760405162461bcd60e51b81526004016107de90611e0d565b601755565b336000818152600d602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108699086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600d6020908152604080832033845290915281205460001914610928576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600d82528381203382529091529190912054610903918490610f65565b6001600160a01b0385166000908152600d602090815260408083203384529091529020555b610933848484610f9f565b90505b9392505050565b6007546001600160a01b03166000908152600c602052604081205461098a906006546001600160a01b03166000908152600c602052604090205461098490600854906114bd565b906114bd565b905090565b6000546001600160a01b031633146109b95760405162461bcd60e51b81526004016107de90611e6f565b6008546109c8906103e86114ff565b8111610a0c5760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b60448201526064016107de565b600955565b6000546001600160a01b03163314610a3b5760405162461bcd60e51b81526004016107de90611e6f565b60405133904780156108fc02916000818181858888f19350505050158015610a67573d6000803e3d6000fd5b50565b60006108758260001961080e565b6000546001600160a01b03163314610aa25760405162461bcd60e51b81526004016107de90611e6f565b600854610ab1906103e86114ff565b8111610af55760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b60448201526064016107de565b600a55565b6000546001600160a01b03163314610b245760405162461bcd60e51b81526004016107de90611e6f565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b795760405162461bcd60e51b81526004016107de90611e6f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016107de90611e6f565b601c805460ff60a01b1916600160a01b179055436003819055600254610c139190611541565b600455565b6000546001600160a01b03163314610c425760405162461bcd60e51b81526004016107de90611e6f565b600b54811115610c645760405162461bcd60e51b81526004016107de90611e0d565b601855565b600080546001600160a01b03163314610c945760405162461bcd60e51b81526004016107de90611e6f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610cdc57600080fd5b505af1158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109369190611d22565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b81526004016107de90611e6f565b6001600160a01b03821615801590610d5e57506001600160a01b03811615155b610daa5760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e00000000000000000060448201526064016107de565b601980546001600160a01b039384166001600160a01b031991821617909155601a8054929093169116179055565b6000610936338484610f9f565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b81526004016107de90611e6f565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e645760405162461bcd60e51b81526004016107de90611e6f565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b600e8181548110610e9657600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610eda5760405162461bcd60e51b81526004016107de90611e6f565b600b54841115610efc5760405162461bcd60e51b81526004016107de90611e0d565b601393909355601491909155601555601655565b6000546001600160a01b03163314610f3a5760405162461bcd60e51b81526004016107de90611e6f565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b60008184841115610f895760405162461bcd60e51b81526004016107de9190611db8565b506000610f968486611f6e565b95945050505050565b601e5460009060ff1615610fbf57610fb88484846115a0565b9050610936565b6001600160a01b03841660009081526010602052604090205460ff1615801561100157506001600160a01b03831660009081526010602052604090205460ff16155b1561105657601c54600160a01b900460ff166110565760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107de565b61105e611674565b1561106b5761106b6116cc565b6001600160a01b0384166000908152600f6020526040902054829060ff161561119c576001600160a01b03841660009081526010602052604090205460ff1661119757600a546001600160a01b0385166000908152600c60205260409020546110d49085611541565b1115806110f957506001600160a01b03841660009081526012602052604090205460ff165b6111455760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016107de565b6009548311158061116e57506001600160a01b03841660009081526011602052604090205460ff165b61118a5760405162461bcd60e51b81526004016107de90611e44565b6111948584611a1c565b90505b611335565b6001600160a01b0384166000908152600f602052604090205460ff161561122c576001600160a01b03851660009081526010602052604090205460ff16611197576009548311158061120657506001600160a01b03851660009081526011602052604090205460ff165b6112225760405162461bcd60e51b81526004016107de90611e44565b6111948584611ab0565b6001600160a01b03851660009081526010602052604090205460ff1661133557600a546001600160a01b0385166000908152600c60205260409020546112729085611541565b11158061129757506001600160a01b03841660009081526012602052604090205460ff165b6112e35760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016107de565b6009548311158061130c57506001600160a01b03851660009081526011602052604090205460ff165b6113285760405162461bcd60e51b81526004016107de90611e44565b6113328584611ad5565b90505b6001600160a01b0385166000908152600c602052604090205461135890846114bd565b6001600160a01b038087166000908152600c602052604080822093909355908616815220546113879082611541565b6001600160a01b038581166000908152600c602052604080822093909355601a5488831680835291849020549351630a5b654b60e11b8152600481019290925260248201939093529116906314b6ca9690604401600060405180830381600087803b1580156113f557600080fd5b505af1925050508015611406575060015b50601a546001600160a01b038581166000818152600c602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561146557600080fd5b505af1925050508015611476575060015b50836001600160a01b0316856001600160a01b0316600080516020611fc0833981519152836040516114aa91815260200190565b60405180910390a3506001949350505050565b600061093683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f65565b600061093683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b6e565b60008061154e8385611f15565b9050838110156109365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107de565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600c909152918220546115f1918490610f65565b6001600160a01b038086166000908152600c602052604080822093909355908516815220546116209083611541565b6001600160a01b038085166000818152600c60205260409081902093909355915190861690600080516020611fc0833981519152906116629086815260200190565b60405180910390a35060019392505050565b336000908152600f602052604081205460ff161580156116975750601e5460ff16155b80156116ac5750601c54600160a81b900460ff165b801561098a575050601d54306000908152600c6020526040902054101590565b601e805460ff191660011790556014546016546015546000916116fa916116f4908590611541565b90611541565b306000908152600c6020526040812054919250611724600261171e85818689611b9c565b906114ff565b9050600061173283836114bd565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061176c5761176c611f9b565b6001600160a01b03928316602091820292909201015260055482519116908290600190811061179d5761179d611f9b565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac947906117e3908690600090869030904290600401611ea4565b600060405180830381600087803b1580156117fd57600080fd5b505af1158015611811573d6000803e3d6000fd5b50505050600061182a83476114bd90919063ffffffff16565b9050600061184361183c8a60026114ff565b89906114bd565b90506000611865600261171e8461171e60145488611b9c90919063ffffffff16565b905060006118828361171e60155487611b9c90919063ffffffff16565b905060006118948261098487866114bd565b6019546040519192506000916001600160a01b039091169084908381818185875af1925050503d80600081146118e6576040519150601f19603f3d011682016040523d82523d6000602084013e6118eb565b606091505b50509050601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561193f57600080fd5b505af193505050508015611951575060015b505060008915611a0357601b5460065460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b1580156119c657600080fd5b505af11580156119da573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ff9190611d58565b5050505b5050601e805460ff191690555050505050505050505050565b60135460045460009190431015611a31575060145b6000611a42606461171e8685611b9c565b306000908152600c6020526040902054909150611a5f9082611541565b306000818152600c6020526040908190209290925590516001600160a01b03871690600080516020611fc083398151915290611a9e9085815260200190565b60405180910390a3610f9684826114bd565b60175460045460009190431015611a31575060286000611a42606461171e8685611b9c565b600080611af2606461171e60185486611b9c90919063ffffffff16565b90508015611b5c57306000908152600c6020526040902054611b149082611541565b306000818152600c6020526040908190209290925590516001600160a01b03861690600080516020611fc083398151915290611b539085815260200190565b60405180910390a35b611b6683826114bd565b949350505050565b60008183611b8f5760405162461bcd60e51b81526004016107de9190611db8565b506000610f968486611f2d565b600082611bab57506000610875565b6000611bb78385611f4f565b905082611bc48583611f2d565b146109365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107de565b80356001600160a01b0381168114611c3257600080fd5b919050565b600060208284031215611c4957600080fd5b61093682611c1b565b60008060408385031215611c6557600080fd5b611c6e83611c1b565b9150611c7c60208401611c1b565b90509250929050565b600080600060608486031215611c9a57600080fd5b611ca384611c1b565b9250611cb160208501611c1b565b9150604084013590509250925092565b60008060408385031215611cd457600080fd5b611cdd83611c1b565b91506020830135611ced81611fb1565b809150509250929050565b60008060408385031215611d0b57600080fd5b611d1483611c1b565b946020939093013593505050565b600060208284031215611d3457600080fd5b815161093681611fb1565b600060208284031215611d5157600080fd5b5035919050565b600080600060608486031215611d6d57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611d9c57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015611de557858101830151858201604001528201611dc9565b81811115611df7576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f4665652063616e277420626520686967686572207468616e2036250000000000604082015260600190565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ef45784516001600160a01b031683529383019391830191600101611ecf565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f2857611f28611f85565b500190565b600082611f4a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f6957611f69611f85565b500290565b600082821015611f8057611f80611f85565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8015158114610a6757600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122098e25019ee5c3ec30596adddb3aae1803ef4c952f9e8b44562e83f6dabe28e0c64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c80637d1db4a511610139578063a9059cbb116100b6578063d4bafb1a1161007a578063d4bafb1a146106d8578063dd62ed3e146106ee578063e1d5584c14610734578063e4bf1bed14610754578063f84ba65d14610774578063f887ea401461079457600080fd5b8063a9059cbb14610632578063b62496f514610652578063c04a78ad14610682578063c851cc32146106a2578063d00efb2f146106c257600080fd5b80638cd4426d116100fd5780638cd4426d146105b45780638da5cb5b146105d457806390107afe146105f257806395d89b411461027f578063a8aa1b311461061257600080fd5b80637d1db4a514610507578063893d20e81461051d5780638a8c523c1461054f5780638b42507f146105645780638b5259031461059457600080fd5b8063364333f4116101c7578063658d4b7f1161018b578063658d4b7f146104655780636c0a24eb146104855780636ddd17131461049b57806370a08231146104bc578063715018a6146104f257600080fd5b8063364333f4146103bf5780633f4218e0146103d45780634ada218b14610404578063571ac8b0146104255780635d0044ca1461044557600080fd5b806318160ddd1161020e57806318160ddd1461033957806323b872dd1461034e5780632b112e491461036e578063313ce56714610383578063333c39a51461039f57600080fd5b80630445b6671461025657806306fdde031461027f5780630940bbc7146102b7578063095ea7b3146102d95780630bd11f8a1461030957600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c601d5481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506040805180820182526009815268536e616b654579657360b81b602082015290516102769190611db8565b3480156102c357600080fd5b506102d76102d2366004611d3f565b6107b4565b005b3480156102e557600080fd5b506102f96102f4366004611cf8565b61080e565b6040519015158152602001610276565b34801561031557600080fd5b506102f9610324366004611c37565b60126020526000908152604090205460ff1681565b34801561034557600080fd5b5060085461026c565b34801561035a57600080fd5b506102f9610369366004611c85565b61087b565b34801561037a57600080fd5b5061026c61093d565b34801561038f57600080fd5b5060405160128152602001610276565b3480156103ab57600080fd5b506102d76103ba366004611d3f565b61098f565b3480156103cb57600080fd5b506102d7610a11565b3480156103e057600080fd5b506102f96103ef366004611c37565b60106020526000908152604090205460ff1681565b34801561041057600080fd5b50601c546102f990600160a01b900460ff1681565b34801561043157600080fd5b506102f9610440366004611c37565b610a6a565b34801561045157600080fd5b506102d7610460366004611d3f565b610a78565b34801561047157600080fd5b506102d7610480366004611cc1565b610afa565b34801561049157600080fd5b5061026c600a5481565b3480156104a757600080fd5b50601c546102f990600160a81b900460ff1681565b3480156104c857600080fd5b5061026c6104d7366004611c37565b6001600160a01b03166000908152600c602052604090205490565b3480156104fe57600080fd5b506102d7610b4f565b34801561051357600080fd5b5061026c60095481565b34801561052957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561055b57600080fd5b506102d7610bc3565b34801561057057600080fd5b506102f961057f366004611c37565b60116020526000908152604090205460ff1681565b3480156105a057600080fd5b506102d76105af366004611d3f565b610c18565b3480156105c057600080fd5b506102f96105cf366004611cf8565b610c69565b3480156105e057600080fd5b506000546001600160a01b0316610537565b3480156105fe57600080fd5b506102d761060d366004611c52565b610d14565b34801561061e57600080fd5b50601c54610537906001600160a01b031681565b34801561063e57600080fd5b506102f961064d366004611cf8565b610dd8565b34801561065e57600080fd5b506102f961066d366004611c37565b600f6020526000908152604090205460ff1681565b34801561068e57600080fd5b506102d761069d366004611cc1565b610de5565b3480156106ae57600080fd5b506102d76106bd366004611c37565b610e3a565b3480156106ce57600080fd5b5061026c60035481565b3480156106e457600080fd5b5061026c600b5481565b3480156106fa57600080fd5b5061026c610709366004611c52565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561074057600080fd5b5061053761074f366004611d3f565b610e86565b34801561076057600080fd5b506102d761076f366004611d86565b610eb0565b34801561078057600080fd5b506102d761078f366004611cc1565b610f10565b3480156107a057600080fd5b50601b54610537906001600160a01b031681565b6000546001600160a01b031633146107e75760405162461bcd60e51b81526004016107de90611e6f565b60405180910390fd5b600b548111156108095760405162461bcd60e51b81526004016107de90611e0d565b601755565b336000818152600d602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108699086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600d6020908152604080832033845290915281205460001914610928576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600d82528381203382529091529190912054610903918490610f65565b6001600160a01b0385166000908152600d602090815260408083203384529091529020555b610933848484610f9f565b90505b9392505050565b6007546001600160a01b03166000908152600c602052604081205461098a906006546001600160a01b03166000908152600c602052604090205461098490600854906114bd565b906114bd565b905090565b6000546001600160a01b031633146109b95760405162461bcd60e51b81526004016107de90611e6f565b6008546109c8906103e86114ff565b8111610a0c5760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b60448201526064016107de565b600955565b6000546001600160a01b03163314610a3b5760405162461bcd60e51b81526004016107de90611e6f565b60405133904780156108fc02916000818181858888f19350505050158015610a67573d6000803e3d6000fd5b50565b60006108758260001961080e565b6000546001600160a01b03163314610aa25760405162461bcd60e51b81526004016107de90611e6f565b600854610ab1906103e86114ff565b8111610af55760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b60448201526064016107de565b600a55565b6000546001600160a01b03163314610b245760405162461bcd60e51b81526004016107de90611e6f565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b795760405162461bcd60e51b81526004016107de90611e6f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016107de90611e6f565b601c805460ff60a01b1916600160a01b179055436003819055600254610c139190611541565b600455565b6000546001600160a01b03163314610c425760405162461bcd60e51b81526004016107de90611e6f565b600b54811115610c645760405162461bcd60e51b81526004016107de90611e0d565b601855565b600080546001600160a01b03163314610c945760405162461bcd60e51b81526004016107de90611e6f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610cdc57600080fd5b505af1158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109369190611d22565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b81526004016107de90611e6f565b6001600160a01b03821615801590610d5e57506001600160a01b03811615155b610daa5760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e00000000000000000060448201526064016107de565b601980546001600160a01b039384166001600160a01b031991821617909155601a8054929093169116179055565b6000610936338484610f9f565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b81526004016107de90611e6f565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e645760405162461bcd60e51b81526004016107de90611e6f565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b600e8181548110610e9657600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610eda5760405162461bcd60e51b81526004016107de90611e6f565b600b54841115610efc5760405162461bcd60e51b81526004016107de90611e0d565b601393909355601491909155601555601655565b6000546001600160a01b03163314610f3a5760405162461bcd60e51b81526004016107de90611e6f565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b60008184841115610f895760405162461bcd60e51b81526004016107de9190611db8565b506000610f968486611f6e565b95945050505050565b601e5460009060ff1615610fbf57610fb88484846115a0565b9050610936565b6001600160a01b03841660009081526010602052604090205460ff1615801561100157506001600160a01b03831660009081526010602052604090205460ff16155b1561105657601c54600160a01b900460ff166110565760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107de565b61105e611674565b1561106b5761106b6116cc565b6001600160a01b0384166000908152600f6020526040902054829060ff161561119c576001600160a01b03841660009081526010602052604090205460ff1661119757600a546001600160a01b0385166000908152600c60205260409020546110d49085611541565b1115806110f957506001600160a01b03841660009081526012602052604090205460ff165b6111455760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016107de565b6009548311158061116e57506001600160a01b03841660009081526011602052604090205460ff165b61118a5760405162461bcd60e51b81526004016107de90611e44565b6111948584611a1c565b90505b611335565b6001600160a01b0384166000908152600f602052604090205460ff161561122c576001600160a01b03851660009081526010602052604090205460ff16611197576009548311158061120657506001600160a01b03851660009081526011602052604090205460ff165b6112225760405162461bcd60e51b81526004016107de90611e44565b6111948584611ab0565b6001600160a01b03851660009081526010602052604090205460ff1661133557600a546001600160a01b0385166000908152600c60205260409020546112729085611541565b11158061129757506001600160a01b03841660009081526012602052604090205460ff165b6112e35760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016107de565b6009548311158061130c57506001600160a01b03851660009081526011602052604090205460ff165b6113285760405162461bcd60e51b81526004016107de90611e44565b6113328584611ad5565b90505b6001600160a01b0385166000908152600c602052604090205461135890846114bd565b6001600160a01b038087166000908152600c602052604080822093909355908616815220546113879082611541565b6001600160a01b038581166000908152600c602052604080822093909355601a5488831680835291849020549351630a5b654b60e11b8152600481019290925260248201939093529116906314b6ca9690604401600060405180830381600087803b1580156113f557600080fd5b505af1925050508015611406575060015b50601a546001600160a01b038581166000818152600c602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561146557600080fd5b505af1925050508015611476575060015b50836001600160a01b0316856001600160a01b0316600080516020611fc0833981519152836040516114aa91815260200190565b60405180910390a3506001949350505050565b600061093683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f65565b600061093683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b6e565b60008061154e8385611f15565b9050838110156109365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107de565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600c909152918220546115f1918490610f65565b6001600160a01b038086166000908152600c602052604080822093909355908516815220546116209083611541565b6001600160a01b038085166000818152600c60205260409081902093909355915190861690600080516020611fc0833981519152906116629086815260200190565b60405180910390a35060019392505050565b336000908152600f602052604081205460ff161580156116975750601e5460ff16155b80156116ac5750601c54600160a81b900460ff165b801561098a575050601d54306000908152600c6020526040902054101590565b601e805460ff191660011790556014546016546015546000916116fa916116f4908590611541565b90611541565b306000908152600c6020526040812054919250611724600261171e85818689611b9c565b906114ff565b9050600061173283836114bd565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061176c5761176c611f9b565b6001600160a01b03928316602091820292909201015260055482519116908290600190811061179d5761179d611f9b565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac947906117e3908690600090869030904290600401611ea4565b600060405180830381600087803b1580156117fd57600080fd5b505af1158015611811573d6000803e3d6000fd5b50505050600061182a83476114bd90919063ffffffff16565b9050600061184361183c8a60026114ff565b89906114bd565b90506000611865600261171e8461171e60145488611b9c90919063ffffffff16565b905060006118828361171e60155487611b9c90919063ffffffff16565b905060006118948261098487866114bd565b6019546040519192506000916001600160a01b039091169084908381818185875af1925050503d80600081146118e6576040519150601f19603f3d011682016040523d82523d6000602084013e6118eb565b606091505b50509050601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561193f57600080fd5b505af193505050508015611951575060015b505060008915611a0357601b5460065460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b1580156119c657600080fd5b505af11580156119da573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ff9190611d58565b5050505b5050601e805460ff191690555050505050505050505050565b60135460045460009190431015611a31575060145b6000611a42606461171e8685611b9c565b306000908152600c6020526040902054909150611a5f9082611541565b306000818152600c6020526040908190209290925590516001600160a01b03871690600080516020611fc083398151915290611a9e9085815260200190565b60405180910390a3610f9684826114bd565b60175460045460009190431015611a31575060286000611a42606461171e8685611b9c565b600080611af2606461171e60185486611b9c90919063ffffffff16565b90508015611b5c57306000908152600c6020526040902054611b149082611541565b306000818152600c6020526040908190209290925590516001600160a01b03861690600080516020611fc083398151915290611b539085815260200190565b60405180910390a35b611b6683826114bd565b949350505050565b60008183611b8f5760405162461bcd60e51b81526004016107de9190611db8565b506000610f968486611f2d565b600082611bab57506000610875565b6000611bb78385611f4f565b905082611bc48583611f2d565b146109365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107de565b80356001600160a01b0381168114611c3257600080fd5b919050565b600060208284031215611c4957600080fd5b61093682611c1b565b60008060408385031215611c6557600080fd5b611c6e83611c1b565b9150611c7c60208401611c1b565b90509250929050565b600080600060608486031215611c9a57600080fd5b611ca384611c1b565b9250611cb160208501611c1b565b9150604084013590509250925092565b60008060408385031215611cd457600080fd5b611cdd83611c1b565b91506020830135611ced81611fb1565b809150509250929050565b60008060408385031215611d0b57600080fd5b611d1483611c1b565b946020939093013593505050565b600060208284031215611d3457600080fd5b815161093681611fb1565b600060208284031215611d5157600080fd5b5035919050565b600080600060608486031215611d6d57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611d9c57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015611de557858101830151858201604001528201611dc9565b81811115611df7576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f4665652063616e277420626520686967686572207468616e2036250000000000604082015260600190565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ef45784516001600160a01b031683529383019391830191600101611ecf565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f2857611f28611f85565b500190565b600082611f4a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f6957611f69611f85565b500290565b600082821015611f8057611f80611f85565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8015158114610a6757600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122098e25019ee5c3ec30596adddb3aae1803ef4c952f9e8b44562e83f6dabe28e0c64736f6c63430008070033

Deployed Bytecode Sourcemap

4936:13402:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6673:54;;;;;;;;;;;;;;;;;;;8401:25:1;;;8389:2;8374:18;6673:54:0;;;;;;;;7932:80;;;;;;;;;;-1:-1:-1;8004:5:0;;;;;;;;;;;-1:-1:-1;;;8004:5:0;;;;7932:80;;;;8004:5;7932:80;:::i;16965:178::-;;;;;;;;;;-1:-1:-1;16965:178:0;;;;;:::i;:::-;;:::i;:::-;;8510:216;;;;;;;;;;-1:-1:-1;8510:216:0;;;;;:::i;:::-;;:::i;:::-;;;4170:14:1;;4163:22;4145:41;;4133:2;4118:18;8510:216:0;4005:187:1;5998:50:0;;;;;;;;;;-1:-1:-1;5998:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7662:88;;;;;;;;;;-1:-1:-1;7735:12:0;;7662:88;;9028:370;;;;;;;;;;-1:-1:-1;9028:370:0;;;;;:::i;:::-;;:::i;8360:142::-;;;;;;;;;;;;;:::i;7756:80::-;;;;;;;;;;-1:-1:-1;7756:80:0;;5436:2;9564:36:1;;9552:2;9537:18;7756:80:0;9422:184:1;16368:176:0;;;;;;;;;;-1:-1:-1;16368:176:0;;;;;:::i;:::-;;:::i;18040:118::-;;;;;;;;;;;;;:::i;5892:44::-;;;;;;;;;;-1:-1:-1;5892:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6595:34;;;;;;;;;;-1:-1:-1;6595:34:0;;;;-1:-1:-1;;;6595:34:0;;;;;;8734:122;;;;;;;;;;-1:-1:-1;8734:122:0;;;;;:::i;:::-;;:::i;16160:196::-;;;;;;;;;;-1:-1:-1;16160:196:0;;;;;:::i;:::-;;:::i;17343:119::-;;;;;;;;;;-1:-1:-1;17343:119:0;;;;;:::i;:::-;;:::i;5566:52::-;;;;;;;;;;;;;;;;6636:30;;;;;;;;;;-1:-1:-1;6636:30:0;;;;-1:-1:-1;;;6636:30:0;;;;;;8104:105;;;;;;;;;;-1:-1:-1;8104:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8188:18:0;8170:7;8188:18;;;:9;:18;;;;;;;8104:105;3100:148;;;;;;;;;;;;;:::i;5511:48::-;;;;;;;;;;;;;;;;8018:80;;;;;;;;;;-1:-1:-1;8070:7:0;2951:6;-1:-1:-1;;;;;2951:6:0;8018:80;;;-1:-1:-1;;;;;3070:32:1;;;3052:51;;3040:2;3025:18;8018:80:0;2906:203:1;13354:178:0;;;;;;;;;;;;;:::i;5943:48::-;;;;;;;;;;-1:-1:-1;5943:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17151:184;;;;;;;;;;-1:-1:-1;17151:184:0;;;;;:::i;:::-;;:::i;18166:167::-;;;;;;;;;;-1:-1:-1;18166:167:0;;;;;:::i;:::-;;:::i;2886:79::-;;;;;;;;;;-1:-1:-1;2924:7:0;2951:6;-1:-1:-1;;;;;2951:6:0;2886:79;;17744:288;;;;;;;;;;-1:-1:-1;17744:288:0;;;;;:::i;:::-;;:::i;6567:19::-;;;;;;;;;;-1:-1:-1;6567:19:0;;;;-1:-1:-1;;;;;6567:19:0;;;8864:156;;;;;;;;;;-1:-1:-1;8864:156:0;;;;;:::i;:::-;;:::i;5827:58::-;;;;;;;;;;-1:-1:-1;5827:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17605:131;;;;;;;;;;-1:-1:-1;17605:131:0;;;;;:::i;:::-;;:::i;16046:106::-;;;;;;;;;;-1:-1:-1;16046:106:0;;;;;:::i;:::-;;:::i;5053:26::-;;;;;;;;;;;;;;;;5625;;;;;;;;;;;;;;;;8215:133;;;;;;;;;;-1:-1:-1;8215:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8317:19:0;;;8299:7;8317:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8215:133;5791:29;;;;;;;;;;-1:-1:-1;5791:29:0;;;;;:::i;:::-;;:::i;16552:405::-;;;;;;;;;;-1:-1:-1;16552:405:0;;;;;:::i;:::-;;:::i;17470:127::-;;;;;;;;;;-1:-1:-1;17470:127:0;;;;;:::i;:::-;;:::i;6536:24::-;;;;;;;;;;-1:-1:-1;6536:24:0;;;;-1:-1:-1;;;;;6536:24:0;;;16965:178;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;;;;;;;;;17055:7:::1;;17043:8;:19;;17035:59;;;;-1:-1:-1::0;;;17035:59:0::1;;;;;;;:::i;:::-;17105:12;:23:::0;16965:178::o;8510:216::-;8614:10;8585:4;8602:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8602:32:0;;;;;;;;;;:41;;;8659:37;8585:4;;8602:32;;8659:37;;;;8637:6;8401:25:1;;8389:2;8374:18;;8255:177;8659:37:0;;;;;;;;-1:-1:-1;8714:4:0;8510:216;;;;;:::o;9028:370::-;-1:-1:-1;;;;;9148:19:0;;9128:4;9148:19;;;:11;:19;;;;;;;;9168:10;9148:31;;;;;;;;-1:-1:-1;;9148:52:0;9145:186;;9250:69;;;;;;;;;;;-1:-1:-1;;;9250:69:0;;;;;;;;-1:-1:-1;;;;;9250:19:0;;-1:-1:-1;9250:19:0;;;:11;:19;;;;;9270:10;9250:31;;;;;;;;;;:69;;9286:6;;9250:35;:69::i;:::-;-1:-1:-1;;;;;9216:19:0;;;;;;:11;:19;;;;;;;;9236:10;9216:31;;;;;;;:103;9145:186;9350:40;9364:6;9372:9;9383:6;9350:13;:40::i;:::-;9343:47;;9028:370;;;;;;:::o;8360:142::-;8488:4;;-1:-1:-1;;;;;8488:4:0;8413:7;8188:18;;;:9;:18;;;;;;8440:54;;8467:4;;-1:-1:-1;;;;;8467:4:0;8170:7;8188:18;;;:9;:18;;;;;;8440:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;8433:61;;8360:142;:::o;16368:176::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;16455:12:::1;::::0;:22:::1;::::0;16472:4:::1;16455:16;:22::i;:::-;16443:9;:34;16435:66;;;::::0;-1:-1:-1;;;16435:66:0;;6645:2:1;16435:66:0::1;::::0;::::1;6627:21:1::0;6684:2;6664:18;;;6657:30;-1:-1:-1;;;6703:18:1;;;6696:49;6762:18;;16435:66:0::1;6443:343:1::0;16435:66:0::1;16512:12;:24:::0;16368:176::o;18040:118::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;18099:51:::1;::::0;18107:10:::1;::::0;18128:21:::1;18099:51:::0;::::1;;;::::0;::::1;::::0;;;18128:21;18107:10;18099:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18040:118::o:0;8734:122::-;8789:4;8813:35;8821:7;-1:-1:-1;;8813:7:0;:35::i;16160:196::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;16259:12:::1;::::0;:22:::1;::::0;16276:4:::1;16259:16;:22::i;:::-;16243:13;:38;16235:70;;;::::0;-1:-1:-1;;;16235:70:0;;6645:2:1;16235:70:0::1;::::0;::::1;6627:21:1::0;6684:2;6664:18;;;6657:30;-1:-1:-1;;;6703:18:1;;;6696:49;6762:18;;16235:70:0::1;6443:343:1::0;16235:70:0::1;16316:16;:32:::0;16160:196::o;17343:119::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17426:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17426:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17343:119::o;3100:148::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;3207:1:::1;3191:6:::0;;3170:40:::1;::::0;-1:-1:-1;;;;;3191:6:0;;::::1;::::0;3170:40:::1;::::0;3207:1;;3170:40:::1;3238:1;3221:19:::0;;-1:-1:-1;;;;;;3221:19:0::1;::::0;;3100:148::o;13354:178::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;13409:14:::1;:21:::0;;-1:-1:-1;;;;13409:21:0::1;-1:-1:-1::0;;;13409:21:0::1;::::0;;13455:12:::1;13441:11;:26:::0;;;13513:10:::1;::::0;13496:28:::1;::::0;13455:12;13496:16:::1;:28::i;:::-;13478:15;:46:::0;13354:178::o;17151:184::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;17251:7:::1;;17235:12;:23;;17227:63;;;;-1:-1:-1::0;;;17227:63:0::1;;;;;;;:::i;:::-;17301:11;:26:::0;17151:184::o;18166:167::-;18253:4;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;18277:48:::1;::::0;-1:-1:-1;;;18277:48:0;;18306:10:::1;18277:48;::::0;::::1;3288:51:1::0;3355:18;;;3348:34;;;-1:-1:-1;;;;;18277:28:0;::::1;::::0;::::1;::::0;3261:18:1;;18277:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17744:288::-:0;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17850:30:0;::::1;::::0;;::::1;::::0;:58:::1;;-1:-1:-1::0;;;;;;17884:24:0;::::1;::::0;::::1;17850:58;17842:96;;;::::0;-1:-1:-1;;;17842:96:0;;6993:2:1;17842:96:0::1;::::0;::::1;6975:21:1::0;7032:2;7012:18;;;7005:30;7071:25;7051:18;;;7044:53;7114:18;;17842:96:0::1;6791:347:1::0;17842:96:0::1;17949:20;:39:::0;;-1:-1:-1;;;;;17949:39:0;;::::1;-1:-1:-1::0;;;;;;17949:39:0;;::::1;;::::0;;;17999:12:::1;:25:::0;;;;;::::1;::::0;::::1;;::::0;;17744:288::o;8864:156::-;8944:4;8968:44;8982:10;8994:9;9005:6;8968:13;:44::i;17605:131::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17694:25:0;;;::::1;;::::0;;;:17:::1;:25;::::0;;;;:34;;-1:-1:-1;;17694:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17605:131::o;16046:106::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;16115:6:::1;:29:::0;;-1:-1:-1;;;;;;16115:29:0::1;-1:-1:-1::0;;;;;16115:29:0;;;::::1;::::0;;;::::1;::::0;;16046:106::o;5791:29::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5791:29:0;;-1:-1:-1;5791:29:0;:::o;16552:405::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;16730:7:::1;;16719;:18;;16711:58;;;;-1:-1:-1::0;;;16711:58:0::1;;;;;;;:::i;:::-;16780:11;:21:::0;;;;16812:12:::1;:35:::0;;;;16858:12:::1;:35:::0;16904:13:::1;:37:::0;16552:405::o;17470:127::-;3013:6;;-1:-1:-1;;;;;3013:6:0;2263:10;3013:22;3005:67;;;;-1:-1:-1;;;3005:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17557:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17557:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17470:127::o;425:192::-;511:7;547:12;539:6;;;;531:29;;;;-1:-1:-1;;;531:29:0;;;;;;;;:::i;:::-;-1:-1:-1;571:9:0;583:5;587:1;583;:5;:::i;:::-;571:17;425:192;-1:-1:-1;;;;;425:192:0:o;9406:1924::-;9518:6;;9498:4;;9518:6;;9515:63;;;9534:41;9549:6;9557:9;9568:6;9534:14;:41::i;:::-;9527:48;;;;9515:63;-1:-1:-1;;;;;9594:19:0;;;;;;:11;:19;;;;;;;;9593:20;:47;;;;-1:-1:-1;;;;;;9618:22:0;;;;;;:11;:22;;;;;;;;9617:23;9593:47;9590:124;;;9664:14;;-1:-1:-1;;;9664:14:0;;;;9656:46;;;;-1:-1:-1;;;9656:46:0;;7345:2:1;9656:46:0;;;7327:21:1;7384:2;7364:18;;;7357:30;-1:-1:-1;;;7403:18:1;;;7396:50;7463:18;;9656:46:0;7143:344:1;9656:46:0;9729:16;:14;:16::i;:::-;9726:35;;;9748:10;:8;:10::i;:::-;-1:-1:-1;;;;;9821:33:0;;9773:22;9821:33;;;:25;:33;;;;;;9798:6;;9821:33;;9818:1100;;;-1:-1:-1;;;;;9881:22:0;;;;;;:11;:22;;;;;;;;9877:354;;9968:16;;-1:-1:-1;;;;;9932:20:0;;;;;;:9;:20;;;;;;:32;;9957:6;9932:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;9988:28:0;;;;;;:17;:28;;;;;;;;9932:84;9924:128;;;;-1:-1:-1;;;9924:128:0;;5929:2:1;9924:128:0;;;5911:21:1;5968:2;5948:18;;;5941:30;6007:33;5987:18;;;5980:61;6058:18;;9924:128:0;5727:355:1;9924:128:0;10089:12;;10079:6;:22;;:52;;;-1:-1:-1;;;;;;10105:26:0;;;;;;:15;:26;;;;;;;;10079:52;10071:82;;;;-1:-1:-1;;;10071:82:0;;;;;;;:::i;:::-;10189:26;10200:6;10208;10189:10;:26::i;:::-;10172:43;;9877:354;9818:1100;;;-1:-1:-1;;;;;10253:36:0;;;;;;:25;:36;;;;;;;;10250:668;;;-1:-1:-1;;;;;10317:19:0;;;;;;:11;:19;;;;;;;;10313:204;;10375:12;;10365:6;:22;;:49;;;-1:-1:-1;;;;;;10391:23:0;;;;;;:15;:23;;;;;;;;10365:49;10357:79;;;;-1:-1:-1;;;10357:79:0;;;;;;;:::i;:::-;10472:27;10484:6;10492;10472:11;:27::i;10250:668::-;-1:-1:-1;;;;;10555:19:0;;;;;;:11;:19;;;;;;;;10550:357;;10640:16;;-1:-1:-1;;;;;10604:20:0;;;;;;:9;:20;;;;;;:32;;10629:6;10604:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10660:28:0;;;;;;:17;:28;;;;;;;;10604:84;10596:128;;;;-1:-1:-1;;;10596:128:0;;5929:2:1;10596:128:0;;;5911:21:1;5968:2;5948:18;;;5941:30;6007:33;5987:18;;;5980:61;6058:18;;10596:128:0;5727:355:1;10596:128:0;10761:12;;10751:6;:22;;:49;;;-1:-1:-1;;;;;;10777:23:0;;;;;;:15;:23;;;;;;;;10751:49;10743:79;;;;-1:-1:-1;;;10743:79:0;;;;;;;:::i;:::-;10858:31;10874:6;10882;10858:15;:31::i;:::-;10841:48;;10550:357;-1:-1:-1;;;;;10950:17:0;;;;;;:9;:17;;;;;;:29;;10972:6;10950:21;:29::i;:::-;-1:-1:-1;;;;;10930:17:0;;;;;;;:9;:17;;;;;;:49;;;;11013:20;;;;;;;:40;;11038:14;11013:24;:40::i;:::-;-1:-1:-1;;;;;10990:20:0;;;;;;;:9;:20;;;;;;:63;;;;11079:12;;11110:17;;;;;;;;;;;11070:58;;-1:-1:-1;;;11070:58:0;;;;;3288:51:1;;;;3355:18;;;3348:34;;;;11079:12:0;;;11070:31;;3261:18:1;;11070:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11066:74;11163:12;;-1:-1:-1;;;;;11197:20:0;;;11163:12;11197:20;;;:9;:20;;;;;;;;11154:64;;-1:-1:-1;;;11154:64:0;;;;;3288:51:1;;;;3355:18;;;3348:34;11163:12:0;;;11154:31;;3261:18:1;;11154:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11150:80;11274:9;-1:-1:-1;;;;;11257:43:0;11266:6;-1:-1:-1;;;;;11257:43:0;-1:-1:-1;;;;;;;;;;;11285:14:0;11257:43;;;;8401:25:1;;8389:2;8374:18;;8255:177;11257:43:0;;;;;;;;-1:-1:-1;11318:4:0;;9406:1924;-1:-1:-1;;;;9406:1924:0:o;283:136::-;341:7;368:43;372:1;375;368:43;;;;;;;;;;;;;;;;;:3;:43::i;879:132::-;937:7;964:39;968:1;971;964:39;;;;;;;;;;;;;;;;;:3;:39::i;96:181::-;154:7;;186:5;190:1;186;:5;:::i;:::-;174:17;;215:1;210;:6;;202:46;;;;-1:-1:-1;;;202:46:0;;6289:2:1;202:46:0;;;6271:21:1;6328:2;6308:18;;;6301:30;6367:29;6347:18;;;6340:57;6414:18;;202:46:0;6087:351:1;11342:330:0;11472:53;;;;;;;;;;;-1:-1:-1;;;11472:53:0;;;;;;;;-1:-1:-1;;;;;11472:17:0;;11435:4;11472:17;;;:9;:17;;;;;;;:53;;11494:6;;11472:21;:53::i;:::-;-1:-1:-1;;;;;11452:17:0;;;;;;;:9;:17;;;;;;:73;;;;11559:20;;;;;;;:32;;11584:6;11559:24;:32::i;:::-;-1:-1:-1;;;;;11536:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11607:35;;;;;;-1:-1:-1;;;;;;;;;;;11607:35:0;;;11635:6;8401:25:1;;8389:2;8374:18;;8255:177;11607:35:0;;;;;;;;-1:-1:-1;11660:4:0;11342:330;;;;;:::o;13097:226::-;13206:10;13146:4;13180:37;;;:25;:37;;;;;;;;13179:38;:58;;;;-1:-1:-1;13231:6:0;;;;13230:7;13179:58;:82;;;;-1:-1:-1;13250:11:0;;-1:-1:-1;;;13250:11:0;;;;13179:82;:136;;;;-1:-1:-1;;13302:13:0;;13292:4;13274:24;;;;:9;:24;;;;;;:41;;;13097:226::o;13540:1737::-;6784:6;:13;;-1:-1:-1;;6784:13:0;6793:4;6784:13;;;13616:12:::1;::::0;13696:13:::1;::::0;13678:12:::1;::::0;6784:6;;13661:49:::1;::::0;:30:::1;::::0;13616:12;;13661:16:::1;:30::i;:::-;:34:::0;::::1;:49::i;:::-;13772:4;13723:28;13754:24:::0;;;:9:::1;:24;::::0;;;;;13639:71;;-1:-1:-1;13815:67:0::1;13880:1;13815:60;13639:71:::0;13815:60;13754:24;13840:16;13815:24:::1;:42::i;:::-;:46:::0;::::1;:60::i;:67::-;13789:93:::0;-1:-1:-1;13893:20:0::1;13916:41;:20:::0;13789:93;13916:24:::1;:41::i;:::-;14052:16;::::0;;14066:1:::1;14052:16:::0;;;;;::::1;::::0;;13893:64;;-1:-1:-1;13994:21:0::1;::::0;13970::::1;::::0;14052:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14052:16:0::1;14028:40;;14097:4;14079;14084:1;14079:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14079:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14123:4:::1;::::0;14113:7;;14123:4;::::1;::::0;14113;;14123;;14113:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14113:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14140:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14140:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14212:12;;14140:6:::1;::::0;14255:4;;14282::::1;::::0;14302:15:::1;::::0;14140:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14341:17;14361:40;14387:13;14361:21;:25;;:40;;;;:::i;:::-;14341:60:::0;-1:-1:-1;14414:19:0::1;14436:41;14453:23;:16:::0;14474:1:::1;14453:20;:23::i;:::-;14436:12:::0;;:16:::1;:41::i;:::-;14414:63;;14498:26;14527:51;14576:1;14527:44;14559:11;14527:27;14541:12;;14527:9;:13;;:27;;;;:::i;:51::-;14498:80;;14589:26;14618:44;14650:11;14618:27;14632:12;;14618:9;:13;;:27;;;;:::i;:44::-;14589:73:::0;-1:-1:-1;14673:24:0::1;14700:57;14589:73:::0;14700:33:::1;:9:::0;14714:18;14700:13:::1;:33::i;:57::-;14799:20;::::0;14791:65:::1;::::0;14673:84;;-1:-1:-1;14771:15:0::1;::::0;-1:-1:-1;;;;;14799:20:0;;::::1;::::0;14833:18;;14771:15;14791:65;14771:15;14791:65;14833:18;14799:20;14791:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14770:86;;;14880:12;;;;;;;;;-1:-1:-1::0;;;;;14880:12:0::1;-1:-1:-1::0;;;;;14871:30:0::1;;14909:16;14871:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;14867:73:::0;-1:-1:-1;14973:5:0::1;14994:19:::0;;14991:277:::1;;15029:6;::::0;15203:4:::1;::::0;15029:227:::1;::::0;-1:-1:-1;;;15029:227:0;;15105:4:::1;15029:227;::::0;::::1;3734:34:1::0;3784:18;;;3777:34;;;15029:6:0::1;3827:18:1::0;;;3820:34;;;3870:18;;;3863:34;-1:-1:-1;;;;;15203:4:0;;::::1;3913:19:1::0;;;3906:44;15226:15:0::1;3966:19:1::0;;;3959:35;15029:6:0;::::1;::::0;:22:::1;::::0;15059:18;;3668:19:1;;15029:227:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14991:277;-1:-1:-1::0;;6802:6:0;:14;;-1:-1:-1;;6802:14:0;;;-1:-1:-1;;;;;;;;;;;13540:1737:0:o;11693:472::-;11801:11;;11842:15;;11763:7;;11801:11;11827:12;:30;11823:84;;;-1:-1:-1;11889:2:0;11823:84;11919:17;11939:40;6354:3;11939:20;:6;11950:8;11939:10;:20::i;:40::-;12037:4;12019:24;;;;:9;:24;;;;;;11919:60;;-1:-1:-1;12019:39:0;;11919:60;12019:28;:39::i;:::-;12010:4;11992:24;;;;:9;:24;;;;;;;:66;;;;12074:42;;-1:-1:-1;;;;;12074:42:0;;;-1:-1:-1;;;;;;;;;;;12074:42:0;;;12106:9;8401:25:1;;8389:2;8374:18;;8255:177;12074:42:0;;;;;;;;12136:21;:6;12147:9;12136:10;:21::i;12173:488::-;12282:12;;12324:15;;12244:7;;12282:12;12309;:30;12305:84;;;-1:-1:-1;12371:2:0;12401:17;12421:40;6354:3;12421:20;:6;12432:8;12421:10;:20::i;12669:416::-;12744:7;12763:17;12783:43;6354:3;12783:23;12794:11;;12783:6;:10;;:23;;;;:::i;:43::-;12763:63;-1:-1:-1;12851:13:0;;12847:176;;12926:4;12908:24;;;;:9;:24;;;;;;:39;;12937:9;12908:28;:39::i;:::-;12899:4;12881:24;;;;:9;:24;;;;;;;:66;;;;12968:42;;-1:-1:-1;;;;;12968:42:0;;;-1:-1:-1;;;;;;;;;;;12968:42:0;;;13000:9;8401:25:1;;8389:2;8374:18;;8255:177;12968:42:0;;;;;;;;12847:176;13055:21;:6;13066:9;13055:10;:21::i;:::-;13048:28;12669:416;-1:-1:-1;;;;12669:416:0:o;1017:189::-;1103:7;1138:12;1131:5;1123:28;;;;-1:-1:-1;;;1123:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1162:9:0;1174:5;1178:1;1174;:5;:::i;623:250::-;681:7;705:6;701:47;;-1:-1:-1;735:1:0;728:8;;701:47;760:9;772:5;776:1;772;:5;:::i;:::-;760:17;-1:-1:-1;805:1:0;796:5;800:1;760:17;796:5;:::i;:::-;:10;788:56;;;;-1:-1:-1;;;788:56:0;;7694:2:1;788:56:0;;;7676:21:1;7733:2;7713:18;;;7706:30;7772:34;7752:18;;;7745:62;-1:-1:-1;;;7823:18:1;;;7816:31;7864:19;;788:56:0;7492:397:1;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:52;;;810:1;807;800:12;762:52;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;648:328;;;;;:::o;981:315::-;1046:6;1054;1107:2;1095:9;1086:7;1082:23;1078:32;1075:52;;;1123:1;1120;1113:12;1075:52;1146:29;1165:9;1146:29;:::i;:::-;1136:39;;1225:2;1214:9;1210:18;1197:32;1238:28;1260:5;1238:28;:::i;:::-;1285:5;1275:15;;;981:315;;;;;:::o;1301:254::-;1369:6;1377;1430:2;1418:9;1409:7;1405:23;1401:32;1398:52;;;1446:1;1443;1436:12;1398:52;1469:29;1488:9;1469:29;:::i;:::-;1459:39;1545:2;1530:18;;;;1517:32;;-1:-1:-1;;;1301:254:1:o;1560:245::-;1627:6;1680:2;1668:9;1659:7;1655:23;1651:32;1648:52;;;1696:1;1693;1686:12;1648:52;1728:9;1722:16;1747:28;1769:5;1747:28;:::i;1810:180::-;1869:6;1922:2;1910:9;1901:7;1897:23;1893:32;1890:52;;;1938:1;1935;1928:12;1890:52;-1:-1:-1;1961:23:1;;1810:180;-1:-1:-1;1810:180:1:o;1995:306::-;2083:6;2091;2099;2152:2;2140:9;2131:7;2127:23;2123:32;2120:52;;;2168:1;2165;2158:12;2120:52;2197:9;2191:16;2181:26;;2247:2;2236:9;2232:18;2226:25;2216:35;;2291:2;2280:9;2276:18;2270:25;2260:35;;1995:306;;;;;:::o;2306:385::-;2392:6;2400;2408;2416;2469:3;2457:9;2448:7;2444:23;2440:33;2437:53;;;2486:1;2483;2476:12;2437:53;-1:-1:-1;;2509:23:1;;;2579:2;2564:18;;2551:32;;-1:-1:-1;2630:2:1;2615:18;;2602:32;;2681:2;2666:18;2653:32;;-1:-1:-1;2306:385:1;-1:-1:-1;2306:385:1:o;4423:597::-;4535:4;4564:2;4593;4582:9;4575:21;4625:6;4619:13;4668:6;4663:2;4652:9;4648:18;4641:34;4693:1;4703:140;4717:6;4714:1;4711:13;4703:140;;;4812:14;;;4808:23;;4802:30;4778:17;;;4797:2;4774:26;4767:66;4732:10;;4703:140;;;4861:6;4858:1;4855:13;4852:91;;;4931:1;4926:2;4917:6;4906:9;4902:22;4898:31;4891:42;4852:91;-1:-1:-1;5004:2:1;4983:15;-1:-1:-1;;4979:29:1;4964:45;;;;5011:2;4960:54;;4423:597;-1:-1:-1;;;4423:597:1:o;5025:351::-;5227:2;5209:21;;;5266:2;5246:18;;;5239:30;5305:29;5300:2;5285:18;;5278:57;5367:2;5352:18;;5025:351::o;5381:341::-;5583:2;5565:21;;;5622:2;5602:18;;;5595:30;-1:-1:-1;;;5656:2:1;5641:18;;5634:47;5713:2;5698:18;;5381:341::o;7894:356::-;8096:2;8078:21;;;8115:18;;;8108:30;8174:34;8169:2;8154:18;;8147:62;8241:2;8226:18;;7894:356::o;8437:980::-;8699:4;8747:3;8736:9;8732:19;8778:6;8767:9;8760:25;8804:2;8842:6;8837:2;8826:9;8822:18;8815:34;8885:3;8880:2;8869:9;8865:18;8858:31;8909:6;8944;8938:13;8975:6;8967;8960:22;9013:3;9002:9;8998:19;8991:26;;9052:2;9044:6;9040:15;9026:29;;9073:1;9083:195;9097:6;9094:1;9091:13;9083:195;;;9162:13;;-1:-1:-1;;;;;9158:39:1;9146:52;;9253:15;;;;9218:12;;;;9194:1;9112:9;9083:195;;;-1:-1:-1;;;;;;;9334:32:1;;;;9329:2;9314:18;;9307:60;-1:-1:-1;;;9398:3:1;9383:19;9376:35;9295:3;8437:980;-1:-1:-1;;;8437:980:1:o;9611:128::-;9651:3;9682:1;9678:6;9675:1;9672:13;9669:39;;;9688:18;;:::i;:::-;-1:-1:-1;9724:9:1;;9611:128::o;9744:217::-;9784:1;9810;9800:132;;9854:10;9849:3;9845:20;9842:1;9835:31;9889:4;9886:1;9879:15;9917:4;9914:1;9907:15;9800:132;-1:-1:-1;9946:9:1;;9744:217::o;9966:168::-;10006:7;10072:1;10068;10064:6;10060:14;10057:1;10054:21;10049:1;10042:9;10035:17;10031:45;10028:71;;;10079:18;;:::i;:::-;-1:-1:-1;10119:9:1;;9966:168::o;10139:125::-;10179:4;10207:1;10204;10201:8;10198:34;;;10212:18;;:::i;:::-;-1:-1:-1;10249:9:1;;10139:125::o;10269:127::-;10330:10;10325:3;10321:20;10318:1;10311:31;10361:4;10358:1;10351:15;10385:4;10382:1;10375:15;10401:127;10462:10;10457:3;10453:20;10450:1;10443:31;10493:4;10490:1;10483:15;10517:4;10514:1;10507:15;10665:118;10751:5;10744:13;10737:21;10730:5;10727:32;10717:60;;10773:1;10770;10763:12

Swarm Source

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