ETH Price: $2,868.00 (-9.40%)
Gas: 17 Gwei

Token

COIN (COIN)
 

Overview

Max Total Supply

100,000,000,000 COIN

Holders

216

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.012304322 COIN

Value
$0.00
0x1787642dcdd5bb5f5323b4439f939c2d41243e60
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:
COIN

Compiler Version
v0.8.19+commit.7dd6d404

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-23
*/

//SPDX-License-Identifier: MIT

/*

https://t.me/TheOnlyCoin

https://twitter.com/TheOnlyETHCoin

https://theonlyethcoin.com/
  
*/

pragma solidity 0.8.19;


interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */

    function allowance(address owner, address spender) external view returns (uint256);

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

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

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

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

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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

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

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

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

interface IPancakePair {
    function sync() external;
}

interface IDEXRouter {

    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

}

contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
     /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract COIN is IERC20, Ownable {
    using SafeMath for uint256;
    
    address WETH;
    address constant DEAD          = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO          = 0x0000000000000000000000000000000000000000;

    string _name = "COIN";
    string _symbol = "COIN";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000000 * 10**_decimals;
    uint256 public _maxTxAmount = (_totalSupply * 1) / 100;
    uint256 public _maxWalletSize = (_totalSupply * 1) / 100;   

    mapping (address => uint256) public _rOwned;
    uint256 public _totalProportion = _totalSupply;

    mapping (address => mapping (address => uint256)) _allowances;   
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
 
    uint256 liquidityFeeBuy = 5; 
    uint256 liquidityFeeSell = 7;
    uint256 TeamFeeBuy = 5;  
    uint256 TeamFeeSell = 8;  
    uint256 marketingFeeBuy = 15;   
    uint256 marketingFeeSell = 25;   
    uint256 reflectionFeeBuy = 2;   
    uint256 reflectionFeeSell = 2;   
    uint256 totalFeeBuy = marketingFeeBuy + liquidityFeeBuy + TeamFeeBuy + reflectionFeeBuy;     
    uint256 totalFeeSell = marketingFeeSell + liquidityFeeSell + TeamFeeSell + reflectionFeeSell; 
    uint256 feeDenominator = 100; 
       
    address autoLiquidityReceiver;
    address marketingFeeReceiver;
    address TeamFeeReceiver;

    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = false;
    
    bool public claimingFees = true; 
    bool alternateSwaps = true;
    uint256 smallSwapThreshold = _totalSupply * 11 / 100;
    uint256 largeSwapThreshold = _totalSupply * 3 / 100;

    uint256 public swapThreshold = smallSwapThreshold;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {

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

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

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(router)] = true;
	    isTxLimitExempt[pair] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isFeeExempt[msg.sender] = true;

        autoLiquidityReceiver = msg.sender; 
        TeamFeeReceiver = msg.sender;
        marketingFeeReceiver = 0x008a609001dC7aBa874e242313A505aBc185a9d9;

        _rOwned[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 returns (uint8) { return _decimals; }
    function name() external view returns (string memory) { return _name; }
    function symbol() external view returns (string memory) { return _symbol; }
    function getOwner() external view returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (recipient != pair && recipient != DEAD && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]) {
            require(balanceOf(recipient) + amount <= _maxWalletSize, "Max Wallet Exceeded");

        }

        if(!isTxLimitExempt[sender]) {
            require(amount <= _maxTxAmount, "Transaction Amount Exceeded");
        }
     
        if (recipient != pair && recipient != DEAD && !isTxLimitExempt[recipient]) {
            require(tradingOpen,"Trading not open yet");
        
        }

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

        uint256 proportionAmount = tokensToProportion(amount);

        _rOwned[sender] = _rOwned[sender].sub(proportionAmount, "Insufficient Balance");

        uint256 proportionReceived = shouldTakeFee(sender) && shouldTakeFee(recipient) ? takeFeeInProportions(sender == pair? true : false, sender, recipient, proportionAmount) : proportionAmount;
        _rOwned[recipient] = _rOwned[recipient].add(proportionReceived);

        emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
        return true;
    }

    function tokensToProportion(uint256 tokens) public view returns (uint256) {
        return tokens.mul(_totalProportion).div(_totalSupply);
    }

    function tokenFromReflection(uint256 proportion) public view returns (uint256) {
        return proportion.mul(_totalSupply).div(_totalProportion);
    }

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

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

    }

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

    function getTotalFeeBuy(bool) public view returns (uint256) {
        return totalFeeBuy;
    }

    function getTotalFeeSell(bool) public view returns (uint256) {
        return totalFeeSell;
    }

    function takeFeeInProportions(bool buying, address sender, address receiver, uint256 proportionAmount) internal returns (uint256) {
        uint256 proportionFeeAmount = buying == true? proportionAmount.mul(getTotalFeeBuy(receiver == pair)).div(feeDenominator) :
        proportionAmount.mul(getTotalFeeSell(receiver == pair)).div(feeDenominator);

        // reflect
        uint256 proportionReflected = buying == true? proportionFeeAmount.mul(reflectionFeeBuy).div(totalFeeBuy) :
        proportionFeeAmount.mul(reflectionFeeSell).div(totalFeeSell);

        _totalProportion = _totalProportion.sub(proportionReflected);

        // take fees
        uint256 _proportionToContract = proportionFeeAmount.sub(proportionReflected);
        _rOwned[address(this)] = _rOwned[address(this)].add(_proportionToContract);

        emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
        emit Reflect(proportionReflected, _totalProportion);
        return proportionAmount.sub(proportionFeeAmount);
    }

    function process() external {
        (bool success,) = payable(autoLiquidityReceiver).call{value: address(this).balance, gas: 30000}("");
        require(success);
       
    }

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

  
      function setNoLimits() external onlyOwner { 
        _maxWalletSize = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

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

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFeeSell;
        uint256 _totalFee = totalFeeSell.sub(reflectionFeeSell);
        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(liquidityFeeSell).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFeeSell).div(totalETHFee);
        uint256 amountETHTeam = amountETH.mul(TeamFeeSell).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(TeamFeeReceiver).call{value: amountETHTeam, gas: 30000}("");
        
        

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

        swapThreshold = !alternateSwaps ? swapThreshold : swapThreshold == smallSwapThreshold ? largeSwapThreshold : smallSwapThreshold;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amountS, uint256 _amountL, bool _alternate) external onlyOwner {
        alternateSwaps = _alternate;
        claimingFees = _enabled;
        smallSwapThreshold = _amountS;
        largeSwapThreshold = _amountL;
        swapThreshold = smallSwapThreshold;
    }
   
    function openTrading() public onlyOwner {
        tradingOpen = true;
    
    }

    function setTax(uint256 _liquidityFeeBuy, uint256 _reflectionFeeBuy, uint256 _marketingFeeBuy, uint256 _TeamFeeBuy, uint256 _feeDenominator,
    uint256 _liquidityFeeSell, uint256 _reflectionFeeSell, uint256 _marketingFeeSell, uint256 _TeamFeeSell) external onlyOwner {
        liquidityFeeBuy = _liquidityFeeBuy;
        reflectionFeeBuy = _reflectionFeeBuy;
        marketingFeeBuy = _marketingFeeBuy;
        TeamFeeBuy = _TeamFeeBuy;
        totalFeeBuy = liquidityFeeBuy.add(reflectionFeeBuy).add(marketingFeeBuy).add(TeamFeeBuy);

        liquidityFeeSell = _liquidityFeeSell;
        reflectionFeeSell = _reflectionFeeSell;
        marketingFeeSell = _marketingFeeSell;
        TeamFeeSell = _TeamFeeSell;
        totalFeeSell = liquidityFeeSell.add(reflectionFeeSell).add(marketingFeeSell).add(TeamFeeSell);

        feeDenominator = _feeDenominator;
        
     }

    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 amountToken);
    event Reflect(uint256 amountReflected, uint256 newTotalProportion);
}

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":"amountToken","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":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearERC20Token","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"bool","name":"","type":"bool"}],"name":"getTotalFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"","type":"bool"}],"name":"getTotalFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"process","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":[],"name":"setNoLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amountS","type":"uint256"},{"internalType":"uint256","name":"_amountL","type":"uint256"},{"internalType":"bool","name":"_alternate","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_reflectionFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_marketingFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_TeamFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"},{"internalType":"uint256","name":"_liquidityFeeSell","type":"uint256"},{"internalType":"uint256","name":"_reflectionFeeSell","type":"uint256"},{"internalType":"uint256","name":"_marketingFeeSell","type":"uint256"},{"internalType":"uint256","name":"_TeamFeeSell","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","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":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600460809081526321a7a4a760e11b60a0526002906200002590826200056e565b5060408051808201909152600481526321a7a4a760e11b60208201526003906200005090826200056e565b506200005f6009600a6200074f565b620000709064174876e80062000767565b6004556064600454600162000086919062000767565b62000092919062000781565b60055560646004546001620000a8919062000767565b620000b4919062000781565b6006556004546008556005600c556007600d556005600e556008600f55600f601055601960115560026012556002601355601254600e54600c54601054620000fd9190620007a4565b620001099190620007a4565b620001159190620007a4565b601455601354600f54600d54601154620001309190620007a4565b6200013c9190620007a4565b620001489190620007a4565b60155560646016819055601e601a55601b819055601d805462ffffff60a01b191661010160a81b1790556004546200018290600b62000767565b6200018e919062000781565b601e5560646004546003620001a4919062000767565b620001b0919062000781565b601f55601e54602055348015620001c657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200026d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002939190620007ba565b600180546001600160a01b0319166001600160a01b03928316179055601c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003189190620007ba565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200036a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003909190620007ba565b601d80546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601c805489168552908352818420600019908190553380865283862091909155948452600b8352818420805460ff1990811660019081179092559154891685528285208054831682179055965488168452818420805482168817905584845281842080548216881790556018805490981684528184208054821688179055848452600a8352818420805490911690961790955560178054851684179055601980548516841790558554909316728a609001dc7aba874e242313a505abc185a9d91790945560045460078352838520819055925192835292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007e5565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004f457607f821691505b6020821081036200051557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200056957600081815260208120601f850160051c81016020861015620005445750805b601f850160051c820191505b81811015620005655782815560010162000550565b5050505b505050565b81516001600160401b038111156200058a576200058a620004c9565b620005a2816200059b8454620004df565b846200051b565b602080601f831160018114620005da5760008415620005c15750858301515b600019600386901b1c1916600185901b17855562000565565b600085815260208120601f198616915b828110156200060b57888601518255948401946001909101908401620005ea565b50858210156200062a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006915781600019048211156200067557620006756200063a565b808516156200068357918102915b93841c939080029062000655565b509250929050565b600082620006aa5750600162000749565b81620006b95750600062000749565b8160018114620006d25760028114620006dd57620006fd565b600191505062000749565b60ff841115620006f157620006f16200063a565b50506001821b62000749565b5060208310610133831016604e8410600b841016171562000722575081810a62000749565b6200072e838362000650565b80600019048211156200074557620007456200063a565b0290505b92915050565b60006200076060ff84168362000699565b9392505050565b80820281158282048414176200074957620007496200063a565b6000826200079f57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200074957620007496200063a565b600060208284031215620007cd57600080fd5b81516001600160a01b03811681146200076057600080fd5b611dd080620007f56000396000f3fe6080604052600436106102135760003560e01c80638285ef9111610118578063b0f7ec38116100a0578063dd62ed3e1161006f578063dd62ed3e146105da578063eeae4c7814610620578063f2fde38b14610635578063f887ea4014610655578063ffb54a991461067557600080fd5b8063b0f7ec381461056f578063c33fb87714610590578063c9567bf9146105a5578063d51ed1c8146105ba57600080fd5b80638da5cb5b116100e75780638da5cb5b146104e65780638f9a55c01461050457806395d89b411461051a578063a8aa1b311461052f578063a9059cbb1461054f57600080fd5b80638285ef9114610452578063832790fe14610472578063893d20e81461049457806389c2e7a2146104c657600080fd5b80632d44c9311161019b578063571ac8b01161016a578063571ac8b0146103c55780636308fb98146103e557806370a0823114610407578063715018a6146104275780637d1db4a51461043c57600080fd5b80632d44c931146103475780632d83811914610369578063313ce5671461038957806345ce5365146103a557600080fd5b80631161ae39116101e25780631161ae39146102c757806317800287146102e757806318160ddd146102fd57806323b872dd146103125780632b112e491461033257600080fd5b80630445b6671461021f57806306fdde0314610248578063095ea7b31461026a5780630cfc15f91461029a57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023560205481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b5061025d610696565b60405161023f919061199e565b34801561027657600080fd5b5061028a610285366004611a08565b610728565b604051901515815260200161023f565b3480156102a657600080fd5b506102356102b5366004611a32565b60076020526000908152604090205481565b3480156102d357600080fd5b5061028a6102e2366004611a4d565b610795565b3480156102f357600080fd5b5061023560085481565b34801561030957600080fd5b50600454610235565b34801561031e57600080fd5b5061028a61032d366004611a6f565b6107a9565b34801561033e57600080fd5b5061023561086b565b34801561035357600080fd5b50610235610362366004611ab9565b5060155490565b34801561037557600080fd5b50610235610384366004611ad6565b61089c565b34801561039557600080fd5b506040516009815260200161023f565b3480156103b157600080fd5b506102356103c0366004611ad6565b6108bf565b3480156103d157600080fd5b5061028a6103e0366004611a32565b6108dc565b3480156103f157600080fd5b50610405610400366004611aef565b6108ea565b005b34801561041357600080fd5b50610235610422366004611a32565b61095f565b34801561043357600080fd5b50610405610981565b34801561044857600080fd5b5061023560055481565b34801561045e57600080fd5b5061028a61046d366004611a08565b6109f5565b34801561047e57600080fd5b5061023561048d366004611ab9565b5060145490565b3480156104a057600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b3480156104d257600080fd5b506104056104e1366004611b39565b610af5565b3480156104f257600080fd5b506000546001600160a01b03166104ae565b34801561051057600080fd5b5061023560065481565b34801561052657600080fd5b5061025d610b83565b34801561053b57600080fd5b50601d546104ae906001600160a01b031681565b34801561055b57600080fd5b5061028a61056a366004611a08565b610b92565b34801561057b57600080fd5b50601d5461028a90600160a81b900460ff1681565b34801561059c57600080fd5b50610405610b9f565b3480156105b157600080fd5b50610405610c07565b3480156105c657600080fd5b506102356105d5366004611ad6565b610c46565b3480156105e657600080fd5b506102356105f5366004611b98565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561062c57600080fd5b50610405610c80565b34801561064157600080fd5b50610405610650366004611a32565b610cb7565b34801561066157600080fd5b50601c546104ae906001600160a01b031681565b34801561068157600080fd5b50601d5461028a90600160a01b900460ff1681565b6060600280546106a590611bcb565b80601f01602080910402602001604051908101604052809291908181526020018280546106d190611bcb565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107839086815260200190565b60405180910390a35060015b92915050565b6000826107a183610c46565b119392505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610856576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610831918490610da1565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610861848484610ddb565b90505b9392505050565b600061089761087a600061095f565b61089161088861dead61095f565b60045490611171565b90611171565b905090565b600061078f6008546108b9600454856111b390919063ffffffff16565b90611235565b600061078f6004546108b9600854856111b390919063ffffffff16565b600061078f82600019610728565b6000546001600160a01b0316331461091d5760405162461bcd60e51b815260040161091490611c05565b60405180910390fd5b601d8054941515600160a81b0260ff60a81b19921515600160b01b029290921661ffff60a81b199095169490941717909255601e819055601f91909155602055565b6001600160a01b03811660009081526007602052604081205461078f9061089c565b6000546001600160a01b031633146109ab5760405162461bcd60e51b815260040161091490611c05565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610a1157600080fd5b81600003610a84576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a819190611c3a565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108649190611c53565b6000546001600160a01b03163314610b1f5760405162461bcd60e51b815260040161091490611c05565b600c89905560128890556010879055600e869055610b4986610b4389818d8d611277565b90611277565b601455600d84905560138390556011829055600f819055610b7081610b4384818888611277565b6015555050506016919091555050505050565b6060600380546106a590611bcb565b6000610864338484610ddb565b6017546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610bf1576040519150601f19603f3d011682016040523d82523d6000602084013e610bf6565b606091505b5050905080610c0457600080fd5b50565b6000546001600160a01b03163314610c315760405162461bcd60e51b815260040161091490611c05565b601d805460ff60a01b1916600160a01b179055565b600061078f610c5361086b565b601d546108b990610c7990600290610c73906001600160a01b031661095f565b906111b3565b85906111b3565b6000546001600160a01b03163314610caa5760405162461bcd60e51b815260040161091490611c05565b6004546006819055600555565b6000546001600160a01b03163314610ce15760405162461bcd60e51b815260040161091490611c05565b6001600160a01b038116610d465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610914565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610dc55760405162461bcd60e51b8152600401610914919061199e565b506000610dd28486611c86565b95945050505050565b60215460009060ff1615610dfb57610df48484846112d6565b9050610864565b601d546001600160a01b03848116911614801590610e2457506001600160a01b03831661dead14155b8015610e3e57506018546001600160a01b03848116911614155b8015610e6357506001600160a01b0383166000908152600b602052604090205460ff16155b15610ec35760065482610e758561095f565b610e7f9190611c99565b1115610ec35760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610914565b6001600160a01b0384166000908152600b602052604090205460ff16610f3557600554821115610f355760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e20416d6f756e7420457863656564656400000000006044820152606401610914565b601d546001600160a01b03848116911614801590610f5e57506001600160a01b03831661dead14155b8015610f8357506001600160a01b0383166000908152600b602052604090205460ff16155b15610fd857601d54600160a01b900460ff16610fd85760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610914565b610fe06113e0565b15610fed57610fed611430565b6000610ff8836108bf565b90506110608160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060076000896001600160a01b03166001600160a01b0316815260200190815260200160002054610da19092919063ffffffff16565b6001600160a01b038616600090815260076020908152604080832093909355600a90529081205460ff161580156110b057506001600160a01b0385166000908152600a602052604090205460ff16155b6110ba57816110e5565b601d546110e5906001600160a01b038881169116146110da5760006110dd565b60015b878785611803565b6001600160a01b03861660009081526007602052604090205490915061110b9082611277565b6001600160a01b0380871660008181526007602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111548461089c565b60405190815260200160405180910390a350600195945050505050565b600061086483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da1565b6000826000036111c55750600061078f565b60006111d18385611cac565b9050826111de8583611cc3565b146108645760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610914565b600061086483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611970565b6000806112848385611c99565b9050838110156108645760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610914565b6000806112e2836108bf565b905061134a8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060076000896001600160a01b03166001600160a01b0316815260200190815260200160002054610da19092919063ffffffff16565b6001600160a01b0380871660009081526007602052604080822093909355908616815220546113799082611277565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113cd9087815260200190565b60405180910390a3506001949350505050565b601d546000906001600160a01b03163314801590611401575060215460ff16155b80156114165750601d54600160a81b900460ff165b801561089757506020546114293061095f565b1015905090565b6021805460ff19166001179055601a54601b5460009161144f91610795565b61145b57600d5461145e565b60005b9050600061147960135460155461117190919063ffffffff16565b9050600061149b60026108b9846108b9876020546111b390919063ffffffff16565b905060006114b48260205461117190919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114ee576114ee611ce5565b6001600160a01b039283166020918202929092010152600180548351921691839190811061151e5761151e611ce5565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac94790611568908690600090879030904290600401611cfb565b600060405180830381600087803b15801561158257600080fd5b505af1158015611596573d6000803e3d6000fd5b5050505060006115af824761117190919063ffffffff16565b905060006115c86115c1896002611235565b8890611171565b905060006115ea60026108b9846108b9600d54886111b390919063ffffffff16565b90506000611607836108b9601154876111b390919063ffffffff16565b90506000611624846108b9600f54886111b390919063ffffffff16565b6018546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d806000811461167b576040519150601f19603f3d011682016040523d82523d6000602084013e611680565b606091505b50506019546040519192506001600160a01b0316906175309084906000818181858888f193505050503d80600081146116d5576040519150601f19603f3d011682016040523d82523d6000602084013e6116da565b606091505b509091505089156117b757601c5460175460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611755573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177a9190611d6c565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b601d54600160b01b900460ff16156117e457601e54602054146117dc57601e546117e8565b601f546117e8565b6020545b60205550506021805460ff1916905550505050505050505050565b60008060018615151461182c5760165460155461182791906108b9905b86906111b3565b611840565b60165460145461184091906108b990611820565b9050600060018715151461186e576118696015546108b9601354856111b390919063ffffffff16565b611889565b6118896014546108b9601254856111b390919063ffffffff16565b6008549091506118999082611171565b60085560006118a88383611171565b306000908152600760205260409020549091506118c59082611277565b306000818152600760205260409020919091556001600160a01b0388167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61190c8461089c565b60405190815260200160405180910390a36008546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a16119648584611171565b98975050505050505050565b600081836119915760405162461bcd60e51b8152600401610914919061199e565b506000610dd28486611cc3565b600060208083528351808285015260005b818110156119cb578581018301518582016040015282016119af565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611a0357600080fd5b919050565b60008060408385031215611a1b57600080fd5b611a24836119ec565b946020939093013593505050565b600060208284031215611a4457600080fd5b610864826119ec565b60008060408385031215611a6057600080fd5b50508035926020909101359150565b600080600060608486031215611a8457600080fd5b611a8d846119ec565b9250611a9b602085016119ec565b9150604084013590509250925092565b8015158114610c0457600080fd5b600060208284031215611acb57600080fd5b813561086481611aab565b600060208284031215611ae857600080fd5b5035919050565b60008060008060808587031215611b0557600080fd5b8435611b1081611aab565b935060208501359250604085013591506060850135611b2e81611aab565b939692955090935050565b60008060008060008060008060006101208a8c031215611b5857600080fd5b505087359960208901359950604089013598606081013598506080810135975060a0810135965060c0810135955060e08101359450610100013592509050565b60008060408385031215611bab57600080fd5b611bb4836119ec565b9150611bc2602084016119ec565b90509250929050565b600181811c90821680611bdf57607f821691505b602082108103611bff57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611c4c57600080fd5b5051919050565b600060208284031215611c6557600080fd5b815161086481611aab565b634e487b7160e01b600052601160045260246000fd5b8181038181111561078f5761078f611c70565b8082018082111561078f5761078f611c70565b808202811582820484141761078f5761078f611c70565b600082611ce057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d4b5784516001600160a01b031683529383019391830191600101611d26565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d8157600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208d251afb06387eac8e1e7fdbe783feabfc225d3901c304b582893bf01ac5e86964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80638285ef9111610118578063b0f7ec38116100a0578063dd62ed3e1161006f578063dd62ed3e146105da578063eeae4c7814610620578063f2fde38b14610635578063f887ea4014610655578063ffb54a991461067557600080fd5b8063b0f7ec381461056f578063c33fb87714610590578063c9567bf9146105a5578063d51ed1c8146105ba57600080fd5b80638da5cb5b116100e75780638da5cb5b146104e65780638f9a55c01461050457806395d89b411461051a578063a8aa1b311461052f578063a9059cbb1461054f57600080fd5b80638285ef9114610452578063832790fe14610472578063893d20e81461049457806389c2e7a2146104c657600080fd5b80632d44c9311161019b578063571ac8b01161016a578063571ac8b0146103c55780636308fb98146103e557806370a0823114610407578063715018a6146104275780637d1db4a51461043c57600080fd5b80632d44c931146103475780632d83811914610369578063313ce5671461038957806345ce5365146103a557600080fd5b80631161ae39116101e25780631161ae39146102c757806317800287146102e757806318160ddd146102fd57806323b872dd146103125780632b112e491461033257600080fd5b80630445b6671461021f57806306fdde0314610248578063095ea7b31461026a5780630cfc15f91461029a57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023560205481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b5061025d610696565b60405161023f919061199e565b34801561027657600080fd5b5061028a610285366004611a08565b610728565b604051901515815260200161023f565b3480156102a657600080fd5b506102356102b5366004611a32565b60076020526000908152604090205481565b3480156102d357600080fd5b5061028a6102e2366004611a4d565b610795565b3480156102f357600080fd5b5061023560085481565b34801561030957600080fd5b50600454610235565b34801561031e57600080fd5b5061028a61032d366004611a6f565b6107a9565b34801561033e57600080fd5b5061023561086b565b34801561035357600080fd5b50610235610362366004611ab9565b5060155490565b34801561037557600080fd5b50610235610384366004611ad6565b61089c565b34801561039557600080fd5b506040516009815260200161023f565b3480156103b157600080fd5b506102356103c0366004611ad6565b6108bf565b3480156103d157600080fd5b5061028a6103e0366004611a32565b6108dc565b3480156103f157600080fd5b50610405610400366004611aef565b6108ea565b005b34801561041357600080fd5b50610235610422366004611a32565b61095f565b34801561043357600080fd5b50610405610981565b34801561044857600080fd5b5061023560055481565b34801561045e57600080fd5b5061028a61046d366004611a08565b6109f5565b34801561047e57600080fd5b5061023561048d366004611ab9565b5060145490565b3480156104a057600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b3480156104d257600080fd5b506104056104e1366004611b39565b610af5565b3480156104f257600080fd5b506000546001600160a01b03166104ae565b34801561051057600080fd5b5061023560065481565b34801561052657600080fd5b5061025d610b83565b34801561053b57600080fd5b50601d546104ae906001600160a01b031681565b34801561055b57600080fd5b5061028a61056a366004611a08565b610b92565b34801561057b57600080fd5b50601d5461028a90600160a81b900460ff1681565b34801561059c57600080fd5b50610405610b9f565b3480156105b157600080fd5b50610405610c07565b3480156105c657600080fd5b506102356105d5366004611ad6565b610c46565b3480156105e657600080fd5b506102356105f5366004611b98565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561062c57600080fd5b50610405610c80565b34801561064157600080fd5b50610405610650366004611a32565b610cb7565b34801561066157600080fd5b50601c546104ae906001600160a01b031681565b34801561068157600080fd5b50601d5461028a90600160a01b900460ff1681565b6060600280546106a590611bcb565b80601f01602080910402602001604051908101604052809291908181526020018280546106d190611bcb565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107839086815260200190565b60405180910390a35060015b92915050565b6000826107a183610c46565b119392505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610856576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610831918490610da1565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610861848484610ddb565b90505b9392505050565b600061089761087a600061095f565b61089161088861dead61095f565b60045490611171565b90611171565b905090565b600061078f6008546108b9600454856111b390919063ffffffff16565b90611235565b600061078f6004546108b9600854856111b390919063ffffffff16565b600061078f82600019610728565b6000546001600160a01b0316331461091d5760405162461bcd60e51b815260040161091490611c05565b60405180910390fd5b601d8054941515600160a81b0260ff60a81b19921515600160b01b029290921661ffff60a81b199095169490941717909255601e819055601f91909155602055565b6001600160a01b03811660009081526007602052604081205461078f9061089c565b6000546001600160a01b031633146109ab5760405162461bcd60e51b815260040161091490611c05565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610a1157600080fd5b81600003610a84576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a819190611c3a565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108649190611c53565b6000546001600160a01b03163314610b1f5760405162461bcd60e51b815260040161091490611c05565b600c89905560128890556010879055600e869055610b4986610b4389818d8d611277565b90611277565b601455600d84905560138390556011829055600f819055610b7081610b4384818888611277565b6015555050506016919091555050505050565b6060600380546106a590611bcb565b6000610864338484610ddb565b6017546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610bf1576040519150601f19603f3d011682016040523d82523d6000602084013e610bf6565b606091505b5050905080610c0457600080fd5b50565b6000546001600160a01b03163314610c315760405162461bcd60e51b815260040161091490611c05565b601d805460ff60a01b1916600160a01b179055565b600061078f610c5361086b565b601d546108b990610c7990600290610c73906001600160a01b031661095f565b906111b3565b85906111b3565b6000546001600160a01b03163314610caa5760405162461bcd60e51b815260040161091490611c05565b6004546006819055600555565b6000546001600160a01b03163314610ce15760405162461bcd60e51b815260040161091490611c05565b6001600160a01b038116610d465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610914565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610dc55760405162461bcd60e51b8152600401610914919061199e565b506000610dd28486611c86565b95945050505050565b60215460009060ff1615610dfb57610df48484846112d6565b9050610864565b601d546001600160a01b03848116911614801590610e2457506001600160a01b03831661dead14155b8015610e3e57506018546001600160a01b03848116911614155b8015610e6357506001600160a01b0383166000908152600b602052604090205460ff16155b15610ec35760065482610e758561095f565b610e7f9190611c99565b1115610ec35760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610914565b6001600160a01b0384166000908152600b602052604090205460ff16610f3557600554821115610f355760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e20416d6f756e7420457863656564656400000000006044820152606401610914565b601d546001600160a01b03848116911614801590610f5e57506001600160a01b03831661dead14155b8015610f8357506001600160a01b0383166000908152600b602052604090205460ff16155b15610fd857601d54600160a01b900460ff16610fd85760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610914565b610fe06113e0565b15610fed57610fed611430565b6000610ff8836108bf565b90506110608160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060076000896001600160a01b03166001600160a01b0316815260200190815260200160002054610da19092919063ffffffff16565b6001600160a01b038616600090815260076020908152604080832093909355600a90529081205460ff161580156110b057506001600160a01b0385166000908152600a602052604090205460ff16155b6110ba57816110e5565b601d546110e5906001600160a01b038881169116146110da5760006110dd565b60015b878785611803565b6001600160a01b03861660009081526007602052604090205490915061110b9082611277565b6001600160a01b0380871660008181526007602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111548461089c565b60405190815260200160405180910390a350600195945050505050565b600061086483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da1565b6000826000036111c55750600061078f565b60006111d18385611cac565b9050826111de8583611cc3565b146108645760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610914565b600061086483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611970565b6000806112848385611c99565b9050838110156108645760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610914565b6000806112e2836108bf565b905061134a8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060076000896001600160a01b03166001600160a01b0316815260200190815260200160002054610da19092919063ffffffff16565b6001600160a01b0380871660009081526007602052604080822093909355908616815220546113799082611277565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113cd9087815260200190565b60405180910390a3506001949350505050565b601d546000906001600160a01b03163314801590611401575060215460ff16155b80156114165750601d54600160a81b900460ff165b801561089757506020546114293061095f565b1015905090565b6021805460ff19166001179055601a54601b5460009161144f91610795565b61145b57600d5461145e565b60005b9050600061147960135460155461117190919063ffffffff16565b9050600061149b60026108b9846108b9876020546111b390919063ffffffff16565b905060006114b48260205461117190919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114ee576114ee611ce5565b6001600160a01b039283166020918202929092010152600180548351921691839190811061151e5761151e611ce5565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac94790611568908690600090879030904290600401611cfb565b600060405180830381600087803b15801561158257600080fd5b505af1158015611596573d6000803e3d6000fd5b5050505060006115af824761117190919063ffffffff16565b905060006115c86115c1896002611235565b8890611171565b905060006115ea60026108b9846108b9600d54886111b390919063ffffffff16565b90506000611607836108b9601154876111b390919063ffffffff16565b90506000611624846108b9600f54886111b390919063ffffffff16565b6018546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d806000811461167b576040519150601f19603f3d011682016040523d82523d6000602084013e611680565b606091505b50506019546040519192506001600160a01b0316906175309084906000818181858888f193505050503d80600081146116d5576040519150601f19603f3d011682016040523d82523d6000602084013e6116da565b606091505b509091505089156117b757601c5460175460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611755573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177a9190611d6c565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b601d54600160b01b900460ff16156117e457601e54602054146117dc57601e546117e8565b601f546117e8565b6020545b60205550506021805460ff1916905550505050505050505050565b60008060018615151461182c5760165460155461182791906108b9905b86906111b3565b611840565b60165460145461184091906108b990611820565b9050600060018715151461186e576118696015546108b9601354856111b390919063ffffffff16565b611889565b6118896014546108b9601254856111b390919063ffffffff16565b6008549091506118999082611171565b60085560006118a88383611171565b306000908152600760205260409020549091506118c59082611277565b306000818152600760205260409020919091556001600160a01b0388167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61190c8461089c565b60405190815260200160405180910390a36008546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a16119648584611171565b98975050505050505050565b600081836119915760405162461bcd60e51b8152600401610914919061199e565b506000610dd28486611cc3565b600060208083528351808285015260005b818110156119cb578581018301518582016040015282016119af565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611a0357600080fd5b919050565b60008060408385031215611a1b57600080fd5b611a24836119ec565b946020939093013593505050565b600060208284031215611a4457600080fd5b610864826119ec565b60008060408385031215611a6057600080fd5b50508035926020909101359150565b600080600060608486031215611a8457600080fd5b611a8d846119ec565b9250611a9b602085016119ec565b9150604084013590509250925092565b8015158114610c0457600080fd5b600060208284031215611acb57600080fd5b813561086481611aab565b600060208284031215611ae857600080fd5b5035919050565b60008060008060808587031215611b0557600080fd5b8435611b1081611aab565b935060208501359250604085013591506060850135611b2e81611aab565b939692955090935050565b60008060008060008060008060006101208a8c031215611b5857600080fd5b505087359960208901359950604089013598606081013598506080810135975060a0810135965060c0810135955060e08101359450610100013592509050565b60008060408385031215611bab57600080fd5b611bb4836119ec565b9150611bc2602084016119ec565b90509250929050565b600181811c90821680611bdf57607f821691505b602082108103611bff57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611c4c57600080fd5b5051919050565b600060208284031215611c6557600080fd5b815161086481611aab565b634e487b7160e01b600052601160045260246000fd5b8181038181111561078f5761078f611c70565b8082018082111561078f5761078f611c70565b808202811582820484141761078f5761078f611c70565b600082611ce057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d4b5784516001600160a01b031683529383019391830191600101611d26565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d8157600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208d251afb06387eac8e1e7fdbe783feabfc225d3901c304b582893bf01ac5e86964736f6c63430008130033

Deployed Bytecode Sourcemap

6925:12844:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8754:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8754:49:0;;;;;;;;10013:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10531:216::-;;;;;;;;;;-1:-1:-1;10531:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;10531:216:0;1186:187:1;7471:43:0;;;;;;;;;;-1:-1:-1;7471:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;19471:156;;;;;;;;;;-1:-1:-1;19471:156:0;;;;;:::i;:::-;;:::i;7521:46::-;;;;;;;;;;;;;;;;9842:88;;;;;;;;;;-1:-1:-1;9915:12:0;;9842:88;;11049:370;;;;;;;;;;-1:-1:-1;11049:370:0;;;;;:::i;:::-;;:::i;19144:142::-;;;;;;;;;;;;;:::i;13870:99::-;;;;;;;;;;-1:-1:-1;13870:99:0;;;;;:::i;:::-;-1:-1:-1;13949:12:0;;;13870:99;12889:155;;;;;;;;;;-1:-1:-1;12889:155:0;;;;;:::i;:::-;;:::i;9936:71::-;;;;;;;;;;-1:-1:-1;9936:71:0;;7274:1;2851:36:1;;2839:2;2824:18;9936:71:0;2709:184:1;12735:146:0;;;;;;;;;;-1:-1:-1;12735:146:0;;;;;:::i;:::-;;:::i;10755:122::-;;;;;;;;;;-1:-1:-1;10755:122:0;;;;;:::i;:::-;;:::i;17823:321::-;;;;;;;;;;-1:-1:-1;17823:321:0;;;;;:::i;:::-;;:::i;:::-;;10248:124;;;;;;;;;;-1:-1:-1;10248:124:0;;;;;:::i;:::-;;:::i;6371:148::-;;;;;;;;;;;;;:::i;7342:54::-;;;;;;;;;;;;;;;;15224:310;;;;;;;;;;-1:-1:-1;15224:310:0;;;;;:::i;:::-;;:::i;13765:97::-;;;;;;;;;;-1:-1:-1;13765:97:0;;;;;:::i;:::-;-1:-1:-1;13843:11:0;;;13765:97;10171:71;;;;;;;;;;-1:-1:-1;10214:7:0;5795:6;-1:-1:-1;;;;;5795:6:0;10171:71;;;-1:-1:-1;;;;;3580:32:1;;;3562:51;;3550:2;3535:18;10171:71:0;3416:203:1;18246:890:0;;;;;;;;;;-1:-1:-1;18246:890:0;;;;;:::i;:::-;;:::i;5730:79::-;;;;;;;;;;-1:-1:-1;5768:7:0;5795:6;-1:-1:-1;;;;;5795:6:0;5730:79;;7403:56;;;;;;;;;;;;;;;;10090:75;;;;;;;;;;;;;:::i;8491:19::-;;;;;;;;;;-1:-1:-1;8491:19:0;;;;-1:-1:-1;;;;;8491:19:0;;;10885:156;;;;;;;;;;-1:-1:-1;10885:156:0;;;;;:::i;:::-;;:::i;8563:31::-;;;;;;;;;;-1:-1:-1;8563:31:0;;;;-1:-1:-1;;;8563:31:0;;;;;;15033:182;;;;;;;;;;;;;:::i;18155:83::-;;;;;;;;;;;;;:::i;19294:169::-;;;;;;;;;;-1:-1:-1;19294:169:0;;;;;:::i;:::-;;:::i;10378:133::-;;;;;;;;;;-1:-1:-1;10378:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10480:19:0;;;10462:7;10480:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10378:133;15548:131;;;;;;;;;;;;;:::i;6674:244::-;;;;;;;;;;-1:-1:-1;6674:244:0;;;;;:::i;:::-;;:::i;8460:24::-;;;;;;;;;;-1:-1:-1;8460:24:0;;;;-1:-1:-1;;;;;8460:24:0;;;8519:31;;;;;;;;;;-1:-1:-1;8519:31:0;;;;-1:-1:-1;;;8519:31:0;;;;;;10013:71;10052:13;10076:5;10069:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10013:71;:::o;10531:216::-;10635:10;10606:4;10623:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10623:32:0;;;;;;;;;;:41;;;10680:37;10606:4;;10623:32;;10680:37;;;;10658:6;160:25:1;;148:2;133:18;;14:177;10680:37:0;;;;;;;;-1:-1:-1;10735:4:0;10531:216;;;;;:::o;19471:156::-;19551:4;19607:6;19575:29;19595:8;19575:19;:29::i;:::-;:38;;19471:156;-1:-1:-1;;;19471:156:0:o;11049:370::-;-1:-1:-1;;;;;11169:19:0;;11149:4;11169:19;;;:11;:19;;;;;;;;11189:10;11169:31;;;;;;;;-1:-1:-1;;11169:52:0;11166:186;;11271:69;;;;;;;;;;;-1:-1:-1;;;11271:69:0;;;;;;;;-1:-1:-1;;;;;11271:19:0;;-1:-1:-1;11271:19:0;;;:11;:19;;;;;11291:10;11271:31;;;;;;;;;;:69;;11307:6;;11271:35;:69::i;:::-;-1:-1:-1;;;;;11237:19:0;;;;;;:11;:19;;;;;;;;11257:10;11237:31;;;;;;;:103;11166:186;11371:40;11385:6;11393:9;11404:6;11371:13;:40::i;:::-;11364:47;;11049:370;;;;;;:::o;19144:142::-;19197:7;19224:54;19262:15;7138:42;19262:9;:15::i;:::-;19224:33;19241:15;7056:42;19241:9;:15::i;:::-;19224:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19217:61;;19144:142;:::o;12889:155::-;12959:7;12986:50;13019:16;;12986:28;13001:12;;12986:10;:14;;:28;;;;:::i;:::-;:32;;:50::i;12735:146::-;12800:7;12827:46;12860:12;;12827:28;12838:16;;12827:6;:10;;:28;;;;:::i;10755:122::-;10810:4;10834:35;10842:7;-1:-1:-1;;10834:7:0;:35::i;17823:321::-;5942:6;;-1:-1:-1;;;;;5942:6:0;4161:10;5942:22;5934:67;;;;-1:-1:-1;;;5934:67:0;;;;;;;:::i;:::-;;;;;;;;;17950:14:::1;:27:::0;;17988:23;::::1;;-1:-1:-1::0;;;17988:23:0::1;-1:-1:-1::0;;;;17950:27:0;::::1;;-1:-1:-1::0;;;17950:27:0::1;17988:23:::0;;;;-1:-1:-1;;;;17988:23:0;;;;;;;::::1;::::0;;;18022:18:::1;:29:::0;;;18062:18:::1;:29:::0;;;;18102:13:::1;:34:::0;17823:321::o;10248:124::-;-1:-1:-1;;;;;10352:16:0;;10314:7;10352:16;;;:7;:16;;;;;;10332:37;;:19;:37::i;6371:148::-;5942:6;;-1:-1:-1;;;;;5942:6:0;4161:10;5942:22;5934:67;;;;-1:-1:-1;;;5934:67:0;;;;;;;:::i;:::-;6478:1:::1;6462:6:::0;;6441:40:::1;::::0;-1:-1:-1;;;;;6462:6:0;;::::1;::::0;6441:40:::1;::::0;6478:1;;6441:40:::1;6509:1;6492:19:::0;;-1:-1:-1;;;;;;6492:19:0::1;::::0;;6371:148::o;15224:310::-;15344:10;15303:4;15328:27;;;:15;:27;;;;;;;;15320:36;;;;;;15367:6;15377:1;15367:11;15364:96;;15403:45;;-1:-1:-1;;;15403:45:0;;15442:4;15403:45;;;3562:51:1;-1:-1:-1;;;;;15403:30:0;;;;;3535:18:1;;15403:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15394:54;;15364:96;15477:49;;-1:-1:-1;;;15477:49:0;;15507:10;15477:49;;;5959:51:1;6026:18;;;6019:34;;;-1:-1:-1;;;;;15477:29:0;;;;;5932:18:1;;15477:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18246:890::-;5942:6;;-1:-1:-1;;;;;5942:6:0;4161:10;5942:22;5934:67;;;;-1:-1:-1;;;5934:67:0;;;;;;;:::i;:::-;18526:15:::1;:34:::0;;;18571:16:::1;:36:::0;;;18618:15:::1;:34:::0;;;18663:10:::1;:24:::0;;;18712:74:::1;18676:11:::0;18712:58:::1;18636:16:::0;18712:58;18544:16;18590:17;18712:19:::1;:37::i;:::-;:41:::0;::::1;:58::i;:74::-;18698:11;:88:::0;18799:16:::1;:36:::0;;;18846:17:::1;:38:::0;;;18895:16:::1;:36:::0;;;18942:11:::1;:26:::0;;;18994:78:::1;18956:12:::0;18994:61:::1;18914:17:::0;18994:61;18818:17;18866:18;18994:20:::1;:39::i;:78::-;18979:12;:93:::0;-1:-1:-1;;;19085:14:0::1;:32:::0;;;;-1:-1:-1;;;;;18246:890:0:o;10090:75::-;10131:13;10155:7;10148:14;;;;;:::i;10885:156::-;10965:4;10989:44;11003:10;11015:9;11026:6;10989:13;:44::i;15033:182::-;15098:21;;15090:81;;15073:12;;-1:-1:-1;;;;;15098:21:0;;15161:5;;15133:21;;15073:12;15090:81;15073:12;15090:81;15133:21;15098;15161:5;15090:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15072:99;;;15190:7;15182:16;;;;;;15061:154;15033:182::o;18155:83::-;5942:6;;-1:-1:-1;;;;;5942:6:0;4161:10;5942:22;5934:67;;;;-1:-1:-1;;;5934:67:0;;;;;;;:::i;:::-;18206:11:::1;:18:::0;;-1:-1:-1;;;;18206:18:0::1;-1:-1:-1::0;;;18206:18:0::1;::::0;;18155:83::o;19294:169::-;19362:7;19389:64;19430:22;:20;:22::i;:::-;19412:4;;19389:36;;19402:22;;19422:1;;19402:15;;-1:-1:-1;;;;;19412:4:0;19402:9;:15::i;:::-;:19;;:22::i;:::-;19389:8;;:12;:36::i;15548:131::-;5942:6;;-1:-1:-1;;;;;5942:6:0;4161:10;5942:22;5934:67;;;;-1:-1:-1;;;5934:67:0;;;;;;;:::i;:::-;15619:12:::1;::::0;15602:14:::1;:29:::0;;;15642:12:::1;:27:::0;15548:131::o;6674:244::-;5942:6;;-1:-1:-1;;;;;5942:6:0;4161:10;5942:22;5934:67;;;;-1:-1:-1;;;5934:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6763:22:0;::::1;6755:73;;;::::0;-1:-1:-1;;;6755:73:0;;6726:2:1;6755:73:0::1;::::0;::::1;6708:21:1::0;6765:2;6745:18;;;6738:30;6804:34;6784:18;;;6777:62;-1:-1:-1;;;6855:18:1;;;6848:36;6901:19;;6755:73:0::1;6524:402:1::0;6755:73:0::1;6865:6;::::0;;6844:38:::1;::::0;-1:-1:-1;;;;;6844:38:0;;::::1;::::0;6865:6;::::1;::::0;6844:38:::1;::::0;::::1;6893:6;:17:::0;;-1:-1:-1;;;;;;6893:17:0::1;-1:-1:-1::0;;;;;6893:17:0;;;::::1;::::0;;;::::1;::::0;;6674:244::o;3096:192::-;3182:7;3218:12;3210:6;;;;3202:29;;;;-1:-1:-1;;;3202:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3242:9:0;3254:5;3258:1;3254;:5;:::i;:::-;3242:17;3096:192;-1:-1:-1;;;;;3096:192:0:o;11427:1300::-;11539:6;;11519:4;;11539:6;;11536:63;;;11555:41;11570:6;11578:9;11589:6;11555:14;:41::i;:::-;11548:48;;;;11536:63;11628:4;;-1:-1:-1;;;;;11615:17:0;;;11628:4;;11615:17;;;;:38;;-1:-1:-1;;;;;;11636:17:0;;7056:42;11636:17;;11615:38;:75;;;;-1:-1:-1;11670:20:0;;-1:-1:-1;;;;;11657:33:0;;;11670:20;;11657:33;;11615:75;:106;;;;-1:-1:-1;;;;;;11695:26:0;;;;;;:15;:26;;;;;;;;11694:27;11615:106;11611:220;;;11779:14;;11769:6;11746:20;11756:9;11746;:20::i;:::-;:29;;;;:::i;:::-;:47;;11738:79;;;;-1:-1:-1;;;11738:79:0;;7528:2:1;11738:79:0;;;7510:21:1;7567:2;7547:18;;;7540:30;-1:-1:-1;;;7586:18:1;;;7579:49;7645:18;;11738:79:0;7326:343:1;11738:79:0;-1:-1:-1;;;;;11847:23:0;;;;;;:15;:23;;;;;;;;11843:118;;11905:12;;11895:6;:22;;11887:62;;;;-1:-1:-1;;;11887:62:0;;7876:2:1;11887:62:0;;;7858:21:1;7915:2;7895:18;;;7888:30;7954:29;7934:18;;;7927:57;8001:18;;11887:62:0;7674:351:1;11887:62:0;11995:4;;-1:-1:-1;;;;;11982:17:0;;;11995:4;;11982:17;;;;:38;;-1:-1:-1;;;;;;12003:17:0;;7056:42;12003:17;;11982:38;:69;;;;-1:-1:-1;;;;;;12025:26:0;;;;;;:15;:26;;;;;;;;12024:27;11982:69;11978:155;;;12076:11;;-1:-1:-1;;;12076:11:0;;;;12068:43;;;;-1:-1:-1;;;12068:43:0;;8232:2:1;12068:43:0;;;8214:21:1;8271:2;8251:18;;;8244:30;-1:-1:-1;;;8290:18:1;;;8283:50;8350:18;;12068:43:0;8030:344:1;12068:43:0;12148:16;:14;:16::i;:::-;12145:35;;;12167:10;:8;:10::i;:::-;12192:24;12219:26;12238:6;12219:18;:26::i;:::-;12192:53;;12276:61;12296:16;12276:61;;;;;;;;;;;;;-1:-1:-1;;;12276:61:0;;;:7;:15;12284:6;-1:-1:-1;;;;;12276:15:0;-1:-1:-1;;;;;12276:15:0;;;;;;;;;;;;;:19;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;12258:15:0;;;;;;:7;:15;;;;;;;;:79;;;;13553:11;:19;;;;;;;;13552:20;12379:49;;;;-1:-1:-1;;;;;;13553:19:0;;13528:4;13553:19;;;:11;:19;;;;;;;;13552:20;12404:24;12379:158;;12521:16;12379:158;;;12462:4;;12431:87;;-1:-1:-1;;;;;12452:14:0;;;12462:4;;12452:14;:28;;12475:5;12452:28;;;12468:4;12452:28;12482:6;12490:9;12501:16;12431:20;:87::i;:::-;-1:-1:-1;;;;;12569:18:0;;;;;;:7;:18;;;;;;12350:187;;-1:-1:-1;12569:42:0;;12350:187;12569:22;:42::i;:::-;-1:-1:-1;;;;;12548:18:0;;;;;;;:7;:18;;;;;:63;;;;12629:68;;;12657:39;12677:18;12657:19;:39::i;:::-;12629:68;;160:25:1;;;148:2;133:18;12629:68:0;;;;;;;-1:-1:-1;12715:4:0;;11427:1300;-1:-1:-1;;;;;11427:1300:0:o;2954:136::-;3012:7;3039:43;3043:1;3046;3039:43;;;;;;;;;;;;;;;;;:3;:43::i;3294:250::-;3352:7;3376:1;3381;3376:6;3372:47;;-1:-1:-1;3406:1:0;3399:8;;3372:47;3431:9;3443:5;3447:1;3443;:5;:::i;:::-;3431:17;-1:-1:-1;3476:1:0;3467:5;3471:1;3431:17;3467:5;:::i;:::-;:10;3459:56;;;;-1:-1:-1;;;3459:56:0;;8976:2:1;3459:56:0;;;8958:21:1;9015:2;8995:18;;;8988:30;9054:34;9034:18;;;9027:62;-1:-1:-1;;;9105:18:1;;;9098:31;9146:19;;3459:56:0;8774:397:1;3550:132:0;3608:7;3635:39;3639:1;3642;3635:39;;;;;;;;;;;;;;;;;:3;:39::i;2767:181::-;2825:7;;2857:5;2861:1;2857;:5;:::i;:::-;2845:17;;2886:1;2881;:6;;2873:46;;;;-1:-1:-1;;;2873:46:0;;9378:2:1;2873:46:0;;;9360:21:1;9417:2;9397:18;;;9390:30;9456:29;9436:18;;;9429:57;9503:18;;2873:46:0;9176:351:1;13052:406:0;13145:4;13162:24;13189:26;13208:6;13189:18;:26::i;:::-;13162:53;;13244:61;13264:16;13244:61;;;;;;;;;;;;;-1:-1:-1;;;13244:61:0;;;:7;:15;13252:6;-1:-1:-1;;;;;13244:15:0;-1:-1:-1;;;;;13244:15:0;;;;;;;;;;;;;:19;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;13226:15:0;;;;;;;:7;:15;;;;;;:79;;;;13337:18;;;;;;;:40;;13360:16;13337:22;:40::i;:::-;-1:-1:-1;;;;;13316:18:0;;;;;;;:7;:18;;;;;;;:61;;;;13393:35;;;;;;;;;;13421:6;160:25:1;;148:2;133:18;;14:177;13393:35:0;;;;;;;;-1:-1:-1;13446:4:0;;13052:406;-1:-1:-1;;;;13052:406:0:o;15687:198::-;15774:4;;15736;;-1:-1:-1;;;;;15774:4:0;15760:10;:18;;;;:38;;-1:-1:-1;15792:6:0;;;;15791:7;15760:38;:63;;;;-1:-1:-1;15811:12:0;;-1:-1:-1;;;15811:12:0;;;;15760:63;:117;;;;;15864:13;;15836:24;15854:4;15836:9;:24::i;:::-;:41;;15753:124;;15687:198;:::o;15893:1922::-;8850:6;:13;;-1:-1:-1;;8850:13:0;8859:4;8850:13;;;15988:15:::1;::::0;16005:26:::1;::::0;8850:6;;15972:60:::1;::::0;:15:::1;:60::i;:::-;:83;;16039:16;;15972:83;;;16035:1;15972:83;15942:113;;16066:17;16086:35;16103:17;;16086:12;;:16;;:35;;;;:::i;:::-;16066:55;;16132:23;16158:60;16216:1;16158:53;16201:9;16158:38;16176:19;16158:13;;:17;;:38;;;;:::i;:60::-;16132:86;;16229:20;16252:34;16270:15;16252:13;;:17;;:34;;;;:::i;:::-;16323:16;::::0;;16337:1:::1;16323:16:::0;;;;;::::1;::::0;;16229:57;;-1:-1:-1;16299:21:0::1;::::0;16323:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16323:16:0::1;16299:40;;16368:4;16350;16355:1;16350:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16350:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16394:4:::1;::::0;;16384:7;;16394:4;::::1;::::0;16384;;16394;16384:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;16384:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16469:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16469:188:0;;16435:21:::1;::::0;16469:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16541:12;;16411:21:::1;::::0;16584:4;;16611::::1;::::0;16631:15:::1;::::0;16469:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16670:17;16690:40;16716:13;16690:21;:25;;:40;;;;:::i;:::-;16670:60:::0;-1:-1:-1;16743:19:0::1;16765:41;16779:26;:19:::0;16803:1:::1;16779:23;:26::i;:::-;16765:9:::0;;:13:::1;:41::i;:::-;16743:63;;16817:26;16846:55;16899:1;16846:48;16882:11;16846:31;16860:16;;16846:9;:13;;:31;;;;:::i;:55::-;16817:84;;16912:26;16941:48;16977:11;16941:31;16955:16;;16941:9;:13;;:31;;;;:::i;:48::-;16912:77;;17000:21;17024:43;17055:11;17024:26;17038:11;;17024:9;:13;;:26;;;;:::i;:43::-;17109:20;::::0;17101:77:::1;::::0;17000:67;;-1:-1:-1;17081:15:0::1;::::0;-1:-1:-1;;;;;17109:20:0;;::::1;::::0;17168:5:::1;::::0;17143:18;;17081:15;17101:77;17081:15;17101:77;17143:18;17109:20;17168:5;17101:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17213:15:0::1;::::0;17205:67:::1;::::0;17080:98;;-1:-1:-1;;;;;;17213:15:0::1;::::0;17262:5:::1;::::0;17242:13;;17205:67:::1;::::0;;;17242:13;17213:15;17262:5;17205:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17189:83:0;;-1:-1:-1;;17308:19:0;;17305:363:::1;;17344:6;::::0;17518:21:::1;::::0;17344:244:::1;::::0;-1:-1:-1;;;17344:244:0;;17420:4:::1;17344:244;::::0;::::1;11122:34:1::0;11172:18;;;11165:34;;;17344:6:0::1;11215:18:1::0;;;11208:34;;;11258:18;;;11251:34;-1:-1:-1;;;;;17518:21:0;;::::1;11301:19:1::0;;;11294:44;17558:15:0::1;11354:19:1::0;;;11347:35;17344:6:0;::::1;::::0;:22:::1;::::0;17374:18;;11056:19:1;;17344:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17608:48:0::1;::::0;;11878:25:1;;;11934:2;11919:18;;11912:34;;;17608:48:0::1;::::0;-1:-1:-1;11851:18:1;17608:48:0::1;;;;;;;17305:363;17697:14;::::0;-1:-1:-1;;;17697:14:0;::::1;;;17696:15;:111;;17747:18;;17730:13;;:35;:77;;17789:18;;17696:111;;17730:77;17768:18;;17696:111;;;17714:13;;17696:111;17680:13;:127:::0;-1:-1:-1;;8868:6:0;:14;;-1:-1:-1;;8868:14:0;;;-1:-1:-1;;;;;;;;;;15893:1922:0:o;13977:1048::-;14098:7;;14158:4;14148:14;;;;:177;;14310:14;;13949:12;;14250:75;;14310:14;14250:55;;14271:33;14250:16;;:20;:55::i;:75::-;14148:177;;;14223:14;;13843:11;;14164:74;;14223:14;14164:54;;14185:32;13765:97;14164:74;14118:207;-1:-1:-1;14358:27:0;14398:4;14388:14;;;;:146;;14474:60;14521:12;;14474:42;14498:17;;14474:19;:23;;:42;;;;:::i;:60::-;14388:146;;;14404:58;14450:11;;14404:41;14428:16;;14404:19;:23;;:41;;;;:::i;:58::-;14566:16;;14358:176;;-1:-1:-1;14566:41:0;;14358:176;14566:20;:41::i;:::-;14547:16;:60;14642:29;14674:44;:19;14698;14674:23;:44::i;:::-;14770:4;14754:22;;;;:7;:22;;;;;;14642:76;;-1:-1:-1;14754:49:0;;14642:76;14754:26;:49::i;:::-;14745:4;14729:22;;;;:7;:22;;;;;:74;;;;-1:-1:-1;;;;;14821:75:0;;;14853:42;14873:21;14853:19;:42::i;:::-;14821:75;;160:25:1;;;148:2;133:18;14821:75:0;;;;;;;14941:16;;14912:46;;;11878:25:1;;;11934:2;11919:18;;11912:34;;;;14912:46:0;;11851:18:1;14912:46:0;;;;;;;14976:41;:16;14997:19;14976:20;:41::i;:::-;14969:48;13977:1048;-1:-1:-1;;;;;;;;13977:1048:0:o;3688:345::-;3774:7;3876:12;3869:5;3861:28;;;;-1:-1:-1;;;3861:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3900:9:0;3912:5;3916:1;3912;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:186::-;1437:6;1490:2;1478:9;1469:7;1465:23;1461:32;1458:52;;;1506:1;1503;1496:12;1458:52;1529:29;1548:9;1529:29;:::i;1569:248::-;1637:6;1645;1698:2;1686:9;1677:7;1673:23;1669:32;1666:52;;;1714:1;1711;1704:12;1666:52;-1:-1:-1;;1737:23:1;;;1807:2;1792:18;;;1779:32;;-1:-1:-1;1569:248:1:o;1822:328::-;1899:6;1907;1915;1968:2;1956:9;1947:7;1943:23;1939:32;1936:52;;;1984:1;1981;1974:12;1936:52;2007:29;2026:9;2007:29;:::i;:::-;1997:39;;2055:38;2089:2;2078:9;2074:18;2055:38;:::i;:::-;2045:48;;2140:2;2129:9;2125:18;2112:32;2102:42;;1822:328;;;;;:::o;2155:118::-;2241:5;2234:13;2227:21;2220:5;2217:32;2207:60;;2263:1;2260;2253:12;2278:241;2334:6;2387:2;2375:9;2366:7;2362:23;2358:32;2355:52;;;2403:1;2400;2393:12;2355:52;2442:9;2429:23;2461:28;2483:5;2461:28;:::i;2524:180::-;2583:6;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;2675:23:1;;2524:180;-1:-1:-1;2524:180:1:o;2898:513::-;2978:6;2986;2994;3002;3055:3;3043:9;3034:7;3030:23;3026:33;3023:53;;;3072:1;3069;3062:12;3023:53;3111:9;3098:23;3130:28;3152:5;3130:28;:::i;:::-;3177:5;-1:-1:-1;3229:2:1;3214:18;;3201:32;;-1:-1:-1;3280:2:1;3265:18;;3252:32;;-1:-1:-1;3336:2:1;3321:18;;3308:32;3349:30;3308:32;3349:30;:::i;:::-;2898:513;;;;-1:-1:-1;2898:513:1;;-1:-1:-1;;2898:513:1:o;3624:730::-;3755:6;3763;3771;3779;3787;3795;3803;3811;3819;3872:3;3860:9;3851:7;3847:23;3843:33;3840:53;;;3889:1;3886;3879:12;3840:53;-1:-1:-1;;3912:23:1;;;3982:2;3967:18;;3954:32;;-1:-1:-1;4033:2:1;4018:18;;4005:32;;4084:2;4069:18;;4056:32;;-1:-1:-1;4135:3:1;4120:19;;4107:33;;-1:-1:-1;4187:3:1;4172:19;;4159:33;;-1:-1:-1;4239:3:1;4224:19;;4211:33;;-1:-1:-1;4291:3:1;4276:19;;4263:33;;-1:-1:-1;4343:3:1;4328:19;4315:33;;-1:-1:-1;3624:730:1;-1:-1:-1;3624:730:1:o;4359:260::-;4427:6;4435;4488:2;4476:9;4467:7;4463:23;4459:32;4456:52;;;4504:1;4501;4494:12;4456:52;4527:29;4546:9;4527:29;:::i;:::-;4517:39;;4575:38;4609:2;4598:9;4594:18;4575:38;:::i;:::-;4565:48;;4359:260;;;;;:::o;4850:380::-;4929:1;4925:12;;;;4972;;;4993:61;;5047:4;5039:6;5035:17;5025:27;;4993:61;5100:2;5092:6;5089:14;5069:18;5066:38;5063:161;;5146:10;5141:3;5137:20;5134:1;5127:31;5181:4;5178:1;5171:15;5209:4;5206:1;5199:15;5063:161;;4850:380;;;:::o;5235:356::-;5437:2;5419:21;;;5456:18;;;5449:30;5515:34;5510:2;5495:18;;5488:62;5582:2;5567:18;;5235:356::o;5596:184::-;5666:6;5719:2;5707:9;5698:7;5694:23;5690:32;5687:52;;;5735:1;5732;5725:12;5687:52;-1:-1:-1;5758:16:1;;5596:184;-1:-1:-1;5596:184:1:o;6064:245::-;6131:6;6184:2;6172:9;6163:7;6159:23;6155:32;6152:52;;;6200:1;6197;6190:12;6152:52;6232:9;6226:16;6251:28;6273:5;6251:28;:::i;6931:127::-;6992:10;6987:3;6983:20;6980:1;6973:31;7023:4;7020:1;7013:15;7047:4;7044:1;7037:15;7063:128;7130:9;;;7151:11;;;7148:37;;;7165:18;;:::i;7196:125::-;7261:9;;;7282:10;;;7279:36;;;7295:18;;:::i;8379:168::-;8452:9;;;8483;;8500:15;;;8494:22;;8480:37;8470:71;;8521:18;;:::i;8552:217::-;8592:1;8618;8608:132;;8662:10;8657:3;8653:20;8650:1;8643:31;8697:4;8694:1;8687:15;8725:4;8722:1;8715:15;8608:132;-1:-1:-1;8754:9:1;;8552:217::o;9664:127::-;9725:10;9720:3;9716:20;9713:1;9706:31;9756:4;9753:1;9746:15;9780:4;9777:1;9770:15;9796:980;10058:4;10106:3;10095:9;10091:19;10137:6;10126:9;10119:25;10163:2;10201:6;10196:2;10185:9;10181:18;10174:34;10244:3;10239:2;10228:9;10224:18;10217:31;10268:6;10303;10297:13;10334:6;10326;10319:22;10372:3;10361:9;10357:19;10350:26;;10411:2;10403:6;10399:15;10385:29;;10432:1;10442:195;10456:6;10453:1;10450:13;10442:195;;;10521:13;;-1:-1:-1;;;;;10517:39:1;10505:52;;10612:15;;;;10577:12;;;;10553:1;10471:9;10442:195;;;-1:-1:-1;;;;;;;10693:32:1;;;;10688:2;10673:18;;10666:60;-1:-1:-1;;;10757:3:1;10742:19;10735:35;10654:3;9796:980;-1:-1:-1;;;9796:980:1:o;11393:306::-;11481:6;11489;11497;11550:2;11538:9;11529:7;11525:23;11521:32;11518:52;;;11566:1;11563;11556:12;11518:52;11595:9;11589:16;11579:26;;11645:2;11634:9;11630:18;11624:25;11614:35;;11689:2;11678:9;11674:18;11668:25;11658:35;;11393:306;;;;;:::o

Swarm Source

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