ETH Price: $2,437.44 (-1.51%)
 

Overview

Max Total Supply

47,000,000,000 CPT

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 CPT

Value
$0.00
0xc2bfa0c686ecc6481e84433322359b241ddacccf
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:
CPT

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-07
*/

/**
https://t.me/cryptopresidentrump

https://cryptopresi.xyz/

https://x.com/cpresidentcoin

https://x.com/watcherguru/status/1799149332064772138
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
pragma experimental ABIEncoderV2;

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

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

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
    external
    view
    returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
    external
    returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

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

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
    external
    view
    returns (
        uint112 reserve0,
        uint112 reserve1,
        uint32 blockTimestampLast
    );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private devWallet;
    address private constant deadAddress = address(0xdead);

    uint8 private constant _decimals = 9;
    uint256 public initialTotalSupply = 47000000000 * 10**_decimals;

    // max wallet 1%
    uint256 public maxWallet = (initialTotalSupply * 10)/1000;
    uint256 public maxTransactionAmount = maxWallet;

    bool private swapping;
    
    uint256 public swapTokensAtAmount = (initialTotalSupply * 2)/1000;

    uint256 public buyFee = 20;
    uint256 public sellFee = 25;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("Crypto President Trump", "CPT"){
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        devWallet = payable(_msgSender());

        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(_msgSender()), true);
        excludeFromMaxTransaction(devWallet, true);
        excludeFromFees(address(_msgSender()), true);
        excludeFromFees(devWallet, true);
        // mint
        _mint(devWallet, initialTotalSupply);
    }

    receive() external payable {}

    function addLP() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            0xCC0E58E03b3bEa809331Ea63ed5B9b601a16fCF8,
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
    }

    function openTrading() external onlyOwner() {
        swapEnabled = true;
        tradingOpen = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
    public
    onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                // buy
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                // sell
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            }
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        // swap tokens for eth marketing
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance > swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to];

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[from]) {
                fees = amount.mul(buyFee).div(100);
            }
            else if(automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            devWallet,
            block.timestamp
        );
    }

    function removeLimit() external onlyOwner {
        maxTransactionAmount = initialTotalSupply;
        maxWallet = initialTotalSupply;
    }

    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function manualSwapToken(uint256 percent) external {
        require(_msgSender() == devWallet);
        uint256 contractBalance = balanceOf(address(this));
        uint256 swapAmount = contractBalance * percent / 100;
        swapTokensForEth(swapAmount);
    }

    function removeStuckTokens() external {
        require(address(this).balance > 0, "Token: no ETH in the contract");
        require(_msgSender() == devWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }
        uint256 tokensToSwap = contractBalance;

        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }
        swapTokensForEth(tokensToSwap);
    }
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052620000126009600a6200052a565b6200002390640af16b160062000541565b6008556103e8600854600a6200003a919062000541565b6200004691906200055b565b600955600954600a556103e8600854600262000063919062000541565b6200006f91906200055b565b600c556014600d556019600e55600f805461ffff1916905534801562000093575f80fd5b506040518060400160405280601681526020017f43727970746f20507265736964656e74205472756d70000000000000000000008152506040518060400160405280600381526020016210d41560ea1b8152508160039081620000f791906200061a565b5060046200010682826200061a565b505050620001236200011d6200020260201b60201c565b62000206565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600780546001600160a01b031916331790556200015a30600162000257565b6200016961dead600162000257565b60805162000179906001620002bf565b62000186306001620002bf565b6200019561dead6001620002bf565b620001a2336001620002bf565b600754620001bb906001600160a01b03166001620002bf565b620001c833600162000257565b600754620001e1906001600160a01b0316600162000257565b600754600854620001fc916001600160a01b031690620002f3565b620006f8565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b62000261620003b8565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620002c9620003b8565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6001600160a01b0382166200034f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620003629190620006e2565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620004145760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000346565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200046f57815f19048211156200045357620004536200041b565b808516156200046157918102915b93841c939080029062000434565b509250929050565b5f82620004875750600162000524565b816200049557505f62000524565b8160018114620004ae5760028114620004b957620004d9565b600191505062000524565b60ff841115620004cd57620004cd6200041b565b50506001821b62000524565b5060208310610133831016604e8410600b8410161715620004fe575081810a62000524565b6200050a83836200042f565b805f19048211156200052057620005206200041b565b0290505b92915050565b5f6200053a60ff84168362000477565b9392505050565b80820281158282048414176200052457620005246200041b565b5f826200057657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005a457607f821691505b602082108103620005c357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000416575f81815260208120601f850160051c81016020861015620005f15750805b601f850160051c820191505b818110156200061257828155600101620005fd565b505050505050565b81516001600160401b038111156200063657620006366200057b565b6200064e816200064784546200058f565b84620005c9565b602080601f83116001811462000684575f84156200066c5750858301515b5f19600386901b1c1916600185901b17855562000612565b5f85815260208120601f198616915b82811015620006b45788860151825594840194600190910190840162000693565b5085821015620006d257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200052457620005246200041b565b608051611ec5620007495f395f81816103d801528181610a1801528181610aa701528181610bda01528181610c0301528181610cf1015281816117c20152818161187901526118b80152611ec55ff3fe6080604052600436106101ff575f3560e01c8063715018a611610113578063bc37e1a31161009d578063dd62ed3e1161006d578063dd62ed3e1461059b578063e2f45605146105ba578063f2fde38b146105cf578063f8b45b05146105ee578063ffb54a9914610603575f80fd5b8063bc37e1a31461053f578063c024666814610553578063c8c8ebe414610572578063c9567bf914610587575f80fd5b806393718976116100e357806393718976146104ba57806395d89b41146104ce5780639a7a23d6146104e2578063a457c2d714610501578063a9059cbb14610520575f80fd5b8063715018a61461044b57806371f5f01a1461045f5780637571336a1461047e5780638da5cb5b1461049d575f80fd5b806342966c681161019457806352f7c9881161016457806352f7c988146103a8578063583e0568146103c757806362256589146103fa5780636ddd17131461040e57806370a082311461042c575f80fd5b806342966c6814610304578063470624021461032557806349bd5a5e1461033a5780634fbee19314610371575f80fd5b80632b14ca56116101cf5780632b14ca56146102a0578063311028af146102b5578063313ce567146102ca57806339509351146102e5575f80fd5b806306fdde031461020a578063095ea7b31461023457806318160ddd1461026357806323b872dd14610281575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61061c565b60405161022b9190611af2565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611b51565b6106ac565b604051901515815260200161022b565b34801561026e575f80fd5b506002545b60405190815260200161022b565b34801561028c575f80fd5b5061025361029b366004611b7b565b6106c5565b3480156102ab575f80fd5b50610273600e5481565b3480156102c0575f80fd5b5061027360085481565b3480156102d5575f80fd5b506040516009815260200161022b565b3480156102f0575f80fd5b506102536102ff366004611b51565b6106e8565b34801561030f575f80fd5b5061032361031e366004611bb9565b610709565b005b348015610330575f80fd5b50610273600d5481565b348015610345575f80fd5b50600654610359906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b34801561037c575f80fd5b5061025361038b366004611bd0565b6001600160a01b03165f9081526010602052604090205460ff1690565b3480156103b3575f80fd5b506103236103c2366004611beb565b610716565b3480156103d2575f80fd5b506103597f000000000000000000000000000000000000000000000000000000000000000081565b348015610405575f80fd5b50610323610729565b348015610419575f80fd5b50600f5461025390610100900460ff1681565b348015610437575f80fd5b50610273610446366004611bd0565b61073e565b348015610456575f80fd5b50610323610758565b34801561046a575f80fd5b50610323610479366004611bb9565b61076b565b348015610489575f80fd5b50610323610498366004611c18565b6107bd565b3480156104a8575f80fd5b506005546001600160a01b0316610359565b3480156104c5575f80fd5b506103236107ef565b3480156104d9575f80fd5b5061021e61088b565b3480156104ed575f80fd5b506103236104fc366004611c18565b61089a565b34801561050c575f80fd5b5061025361051b366004611b51565b610934565b34801561052b575f80fd5b5061025361053a366004611b51565b6109ae565b34801561054a575f80fd5b506103236109bb565b34801561055e575f80fd5b5061032361056d366004611c18565b610d6c565b34801561057d575f80fd5b50610273600a5481565b348015610592575f80fd5b50610323610dd2565b3480156105a6575f80fd5b506102736105b5366004611c4f565b610deb565b3480156105c5575f80fd5b50610273600c5481565b3480156105da575f80fd5b506103236105e9366004611bd0565b610e15565b3480156105f9575f80fd5b5061027360095481565b34801561060e575f80fd5b50600f546102539060ff1681565b60606003805461062b90611c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611c7b565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f336106b9818585610e8b565b60019150505b92915050565b5f336106d2858285610fae565b6106dd858585611026565b506001949350505050565b5f336106b98185856106fa8383610deb565b6107049190611cc7565b610e8b565b6107133382611592565b50565b61071e6116c2565b600d91909155600e55565b6107316116c2565b600854600a819055600955565b6001600160a01b03165f9081526020819052604090205490565b6107606116c2565b6107695f61171c565b565b6007546001600160a01b0316336001600160a01b03161461078a575f80fd5b5f6107943061073e565b90505f60646107a38484611cda565b6107ad9190611cf1565b90506107b88161176d565b505050565b6107c56116c2565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b5f47116108435760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064015b60405180910390fd5b6007546001600160a01b0316336001600160a01b031614610862575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610713573d5f803e3d5ffd5b60606004805461062b90611c7b565b6108a26116c2565b6006546001600160a01b03908116908316036109265760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161083a565b610930828261192a565b5050565b5f33816109418286610deb565b9050838110156109a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161083a565b6106dd8286868403610e8b565b5f336106b9818585611026565b6109c36116c2565b600f5460ff1615610a165760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161083a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a969190611d10565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b259190611d10565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b939190611d10565b600680546001600160a01b0319166001600160a01b03929092169182179055610bbd9060016107bd565b600654610bd4906001600160a01b0316600161192a565b610c01307f0000000000000000000000000000000000000000000000000000000000000000600854610e8b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610c3b3061073e565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015273cc0e58e03b3bea809331ea63ed5b9b601a16fcf860848201524260a482015260c40160606040518083038185885af1158015610cb0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cd59190611d2b565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107139190611d56565b610d746116c2565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610dda6116c2565b600f805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610e1d6116c2565b6001600160a01b038116610e825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083a565b6107138161171c565b6001600160a01b038316610eed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083a565b6001600160a01b038216610f4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083a565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610fb98484610deb565b90505f19811461102057818110156110135760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161083a565b6110208484848403610e8b565b50505050565b6001600160a01b03831661104c5760405162461bcd60e51b815260040161083a90611d71565b6001600160a01b0382166110725760405162461bcd60e51b815260040161083a90611db6565b805f03611084576107b883835f61197d565b6005546001600160a01b038481169116148015906110b057506005546001600160a01b03838116911614155b80156110c457506001600160a01b03821615155b80156110db57506001600160a01b03821661dead14155b80156110ea5750600b5460ff16155b156113bc57600f5460ff1661117b576001600160a01b0383165f9081526010602052604090205460ff168061113657506001600160a01b0382165f9081526010602052604090205460ff165b61117b5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161083a565b6001600160a01b0383165f9081526012602052604090205460ff1680156111ba57506001600160a01b0382165f9081526011602052604090205460ff16155b1561128e57600a5481111561122f5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161083a565b60095461123b8361073e565b6112459083611cc7565b11156112895760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083a565b6113bc565b6001600160a01b0382165f9081526012602052604090205460ff1680156112cd57506001600160a01b0383165f9081526011602052604090205460ff16155b1561134357600a548111156112895760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161083a565b6001600160a01b0382165f9081526011602052604090205460ff166113bc5760095461136e8361073e565b6113789083611cc7565b11156113bc5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083a565b5f6113c63061073e565b600c5490915081118080156113e25750600f54610100900460ff165b80156113f15750600b5460ff16155b801561141557506001600160a01b0385165f9081526012602052604090205460ff16155b801561143957506001600160a01b0385165f9081526010602052604090205460ff16155b801561145d57506001600160a01b0384165f9081526010602052604090205460ff16155b1561148257600b805460ff19166001179055611477611aa5565b600b805460ff191690555b600b545f9060ff161580156114af57506001600160a01b0386165f9081526010602052604090205460ff16155b80156114d357506001600160a01b0385165f9081526010602052604090205460ff16155b90505f811561157e576001600160a01b0387165f9081526012602052604090205460ff16156115235761151c6064611516600d5488611ad590919063ffffffff16565b90611ae7565b9050611560565b6001600160a01b0386165f9081526012602052604090205460ff16156115605761155d6064611516600e5488611ad590919063ffffffff16565b90505b80156115715761157187308361197d565b61157b8186611df9565b94505b61158987878761197d565b50505050505050565b6001600160a01b0382166115f25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161083a565b6001600160a01b0382165f90815260208190526040902054818110156116655760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161083a565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6005546001600160a01b031633146107695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083a565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106117a0576117a0611e0c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118409190611d10565b8160018151811061185357611853611e0c565b60200260200101906001600160a01b031690816001600160a01b03168152505061189e307f000000000000000000000000000000000000000000000000000000000000000084610e8b565b60075460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac947926118f99287925f92889291909116904290600401611e20565b5f604051808303815f87803b158015611910575f80fd5b505af1158015611922573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166119a35760405162461bcd60e51b815260040161083a90611d71565b6001600160a01b0382166119c95760405162461bcd60e51b815260040161083a90611db6565b6001600160a01b0383165f9081526020819052604090205481811015611a405760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161083a565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611020565b5f611aaf3061073e565b9050805f03611abb5750565b600c548190811115611acc5750600c545b6109308161176d565b5f611ae08284611cda565b9392505050565b5f611ae08284611cf1565b5f6020808352835180828501525f5b81811015611b1d57858101830151858201604001528201611b01565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610713575f80fd5b5f8060408385031215611b62575f80fd5b8235611b6d81611b3d565b946020939093013593505050565b5f805f60608486031215611b8d575f80fd5b8335611b9881611b3d565b92506020840135611ba881611b3d565b929592945050506040919091013590565b5f60208284031215611bc9575f80fd5b5035919050565b5f60208284031215611be0575f80fd5b8135611ae081611b3d565b5f8060408385031215611bfc575f80fd5b50508035926020909101359150565b8015158114610713575f80fd5b5f8060408385031215611c29575f80fd5b8235611c3481611b3d565b91506020830135611c4481611c0b565b809150509250929050565b5f8060408385031215611c60575f80fd5b8235611c6b81611b3d565b91506020830135611c4481611b3d565b600181811c90821680611c8f57607f821691505b602082108103611cad57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106bf576106bf611cb3565b80820281158282048414176106bf576106bf611cb3565b5f82611d0b57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611d20575f80fd5b8151611ae081611b3d565b5f805f60608486031215611d3d575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611d66575f80fd5b8151611ae081611c0b565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106bf576106bf611cb3565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611e6e5784516001600160a01b031683529383019391830191600101611e49565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122004a6805987140d97c07c79f0a83de9617c6ffe784271643ad291a9fa3417b8a464736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101ff575f3560e01c8063715018a611610113578063bc37e1a31161009d578063dd62ed3e1161006d578063dd62ed3e1461059b578063e2f45605146105ba578063f2fde38b146105cf578063f8b45b05146105ee578063ffb54a9914610603575f80fd5b8063bc37e1a31461053f578063c024666814610553578063c8c8ebe414610572578063c9567bf914610587575f80fd5b806393718976116100e357806393718976146104ba57806395d89b41146104ce5780639a7a23d6146104e2578063a457c2d714610501578063a9059cbb14610520575f80fd5b8063715018a61461044b57806371f5f01a1461045f5780637571336a1461047e5780638da5cb5b1461049d575f80fd5b806342966c681161019457806352f7c9881161016457806352f7c988146103a8578063583e0568146103c757806362256589146103fa5780636ddd17131461040e57806370a082311461042c575f80fd5b806342966c6814610304578063470624021461032557806349bd5a5e1461033a5780634fbee19314610371575f80fd5b80632b14ca56116101cf5780632b14ca56146102a0578063311028af146102b5578063313ce567146102ca57806339509351146102e5575f80fd5b806306fdde031461020a578063095ea7b31461023457806318160ddd1461026357806323b872dd14610281575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61061c565b60405161022b9190611af2565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611b51565b6106ac565b604051901515815260200161022b565b34801561026e575f80fd5b506002545b60405190815260200161022b565b34801561028c575f80fd5b5061025361029b366004611b7b565b6106c5565b3480156102ab575f80fd5b50610273600e5481565b3480156102c0575f80fd5b5061027360085481565b3480156102d5575f80fd5b506040516009815260200161022b565b3480156102f0575f80fd5b506102536102ff366004611b51565b6106e8565b34801561030f575f80fd5b5061032361031e366004611bb9565b610709565b005b348015610330575f80fd5b50610273600d5481565b348015610345575f80fd5b50600654610359906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b34801561037c575f80fd5b5061025361038b366004611bd0565b6001600160a01b03165f9081526010602052604090205460ff1690565b3480156103b3575f80fd5b506103236103c2366004611beb565b610716565b3480156103d2575f80fd5b506103597f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610405575f80fd5b50610323610729565b348015610419575f80fd5b50600f5461025390610100900460ff1681565b348015610437575f80fd5b50610273610446366004611bd0565b61073e565b348015610456575f80fd5b50610323610758565b34801561046a575f80fd5b50610323610479366004611bb9565b61076b565b348015610489575f80fd5b50610323610498366004611c18565b6107bd565b3480156104a8575f80fd5b506005546001600160a01b0316610359565b3480156104c5575f80fd5b506103236107ef565b3480156104d9575f80fd5b5061021e61088b565b3480156104ed575f80fd5b506103236104fc366004611c18565b61089a565b34801561050c575f80fd5b5061025361051b366004611b51565b610934565b34801561052b575f80fd5b5061025361053a366004611b51565b6109ae565b34801561054a575f80fd5b506103236109bb565b34801561055e575f80fd5b5061032361056d366004611c18565b610d6c565b34801561057d575f80fd5b50610273600a5481565b348015610592575f80fd5b50610323610dd2565b3480156105a6575f80fd5b506102736105b5366004611c4f565b610deb565b3480156105c5575f80fd5b50610273600c5481565b3480156105da575f80fd5b506103236105e9366004611bd0565b610e15565b3480156105f9575f80fd5b5061027360095481565b34801561060e575f80fd5b50600f546102539060ff1681565b60606003805461062b90611c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611c7b565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f336106b9818585610e8b565b60019150505b92915050565b5f336106d2858285610fae565b6106dd858585611026565b506001949350505050565b5f336106b98185856106fa8383610deb565b6107049190611cc7565b610e8b565b6107133382611592565b50565b61071e6116c2565b600d91909155600e55565b6107316116c2565b600854600a819055600955565b6001600160a01b03165f9081526020819052604090205490565b6107606116c2565b6107695f61171c565b565b6007546001600160a01b0316336001600160a01b03161461078a575f80fd5b5f6107943061073e565b90505f60646107a38484611cda565b6107ad9190611cf1565b90506107b88161176d565b505050565b6107c56116c2565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b5f47116108435760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064015b60405180910390fd5b6007546001600160a01b0316336001600160a01b031614610862575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610713573d5f803e3d5ffd5b60606004805461062b90611c7b565b6108a26116c2565b6006546001600160a01b03908116908316036109265760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161083a565b610930828261192a565b5050565b5f33816109418286610deb565b9050838110156109a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161083a565b6106dd8286868403610e8b565b5f336106b9818585611026565b6109c36116c2565b600f5460ff1615610a165760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161083a565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a969190611d10565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b259190611d10565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b939190611d10565b600680546001600160a01b0319166001600160a01b03929092169182179055610bbd9060016107bd565b600654610bd4906001600160a01b0316600161192a565b610c01307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600854610e8b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610c3b3061073e565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015273cc0e58e03b3bea809331ea63ed5b9b601a16fcf860848201524260a482015260c40160606040518083038185885af1158015610cb0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cd59190611d2b565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107139190611d56565b610d746116c2565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610dda6116c2565b600f805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610e1d6116c2565b6001600160a01b038116610e825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083a565b6107138161171c565b6001600160a01b038316610eed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083a565b6001600160a01b038216610f4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083a565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610fb98484610deb565b90505f19811461102057818110156110135760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161083a565b6110208484848403610e8b565b50505050565b6001600160a01b03831661104c5760405162461bcd60e51b815260040161083a90611d71565b6001600160a01b0382166110725760405162461bcd60e51b815260040161083a90611db6565b805f03611084576107b883835f61197d565b6005546001600160a01b038481169116148015906110b057506005546001600160a01b03838116911614155b80156110c457506001600160a01b03821615155b80156110db57506001600160a01b03821661dead14155b80156110ea5750600b5460ff16155b156113bc57600f5460ff1661117b576001600160a01b0383165f9081526010602052604090205460ff168061113657506001600160a01b0382165f9081526010602052604090205460ff165b61117b5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161083a565b6001600160a01b0383165f9081526012602052604090205460ff1680156111ba57506001600160a01b0382165f9081526011602052604090205460ff16155b1561128e57600a5481111561122f5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161083a565b60095461123b8361073e565b6112459083611cc7565b11156112895760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083a565b6113bc565b6001600160a01b0382165f9081526012602052604090205460ff1680156112cd57506001600160a01b0383165f9081526011602052604090205460ff16155b1561134357600a548111156112895760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161083a565b6001600160a01b0382165f9081526011602052604090205460ff166113bc5760095461136e8361073e565b6113789083611cc7565b11156113bc5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083a565b5f6113c63061073e565b600c5490915081118080156113e25750600f54610100900460ff165b80156113f15750600b5460ff16155b801561141557506001600160a01b0385165f9081526012602052604090205460ff16155b801561143957506001600160a01b0385165f9081526010602052604090205460ff16155b801561145d57506001600160a01b0384165f9081526010602052604090205460ff16155b1561148257600b805460ff19166001179055611477611aa5565b600b805460ff191690555b600b545f9060ff161580156114af57506001600160a01b0386165f9081526010602052604090205460ff16155b80156114d357506001600160a01b0385165f9081526010602052604090205460ff16155b90505f811561157e576001600160a01b0387165f9081526012602052604090205460ff16156115235761151c6064611516600d5488611ad590919063ffffffff16565b90611ae7565b9050611560565b6001600160a01b0386165f9081526012602052604090205460ff16156115605761155d6064611516600e5488611ad590919063ffffffff16565b90505b80156115715761157187308361197d565b61157b8186611df9565b94505b61158987878761197d565b50505050505050565b6001600160a01b0382166115f25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161083a565b6001600160a01b0382165f90815260208190526040902054818110156116655760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161083a565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6005546001600160a01b031633146107695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083a565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106117a0576117a0611e0c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118409190611d10565b8160018151811061185357611853611e0c565b60200260200101906001600160a01b031690816001600160a01b03168152505061189e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610e8b565b60075460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac947926118f99287925f92889291909116904290600401611e20565b5f604051808303815f87803b158015611910575f80fd5b505af1158015611922573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166119a35760405162461bcd60e51b815260040161083a90611d71565b6001600160a01b0382166119c95760405162461bcd60e51b815260040161083a90611db6565b6001600160a01b0383165f9081526020819052604090205481811015611a405760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161083a565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611020565b5f611aaf3061073e565b9050805f03611abb5750565b600c548190811115611acc5750600c545b6109308161176d565b5f611ae08284611cda565b9392505050565b5f611ae08284611cf1565b5f6020808352835180828501525f5b81811015611b1d57858101830151858201604001528201611b01565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610713575f80fd5b5f8060408385031215611b62575f80fd5b8235611b6d81611b3d565b946020939093013593505050565b5f805f60608486031215611b8d575f80fd5b8335611b9881611b3d565b92506020840135611ba881611b3d565b929592945050506040919091013590565b5f60208284031215611bc9575f80fd5b5035919050565b5f60208284031215611be0575f80fd5b8135611ae081611b3d565b5f8060408385031215611bfc575f80fd5b50508035926020909101359150565b8015158114610713575f80fd5b5f8060408385031215611c29575f80fd5b8235611c3481611b3d565b91506020830135611c4481611c0b565b809150509250929050565b5f8060408385031215611c60575f80fd5b8235611c6b81611b3d565b91506020830135611c4481611b3d565b600181811c90821680611c8f57607f821691505b602082108103611cad57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106bf576106bf611cb3565b80820281158282048414176106bf576106bf611cb3565b5f82611d0b57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611d20575f80fd5b8151611ae081611b3d565b5f805f60608486031215611d3d575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611d66575f80fd5b8151611ae081611c0b565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106bf576106bf611cb3565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611e6e5784516001600160a01b031683529383019391830191600101611e49565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122004a6805987140d97c07c79f0a83de9617c6ffe784271643ad291a9fa3417b8a464736f6c63430008140033

Deployed Bytecode Sourcemap

14614:7912:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2745:201;;;;;;;;;;-1:-1:-1;2745:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;2745:201:0;1023:187:1;2134:108:0;;;;;;;;;;-1:-1:-1;2222:12:0;;2134:108;;;1361:25:1;;;1349:2;1334:18;2134:108:0;1215:177:1;2954:261:0;;;;;;;;;;-1:-1:-1;2954:261:0;;;;;:::i;:::-;;:::i;15274:27::-;;;;;;;;;;;;;;;;14919:63;;;;;;;;;;;;;;;;2034:92;;;;;;;;;;-1:-1:-1;2034:92:0;;2117:1;2000:36:1;;1988:2;1973:18;2034:92:0;1858:184:1;3223:238:0;;;;;;;;;;-1:-1:-1;3223:238:0;;;;;:::i;:::-;;:::i;17617:85::-;;;;;;;;;;-1:-1:-1;17617:85:0;;;;;:::i;:::-;;:::i;:::-;;15241:26;;;;;;;;;;;;;;;;14746:28;;;;;;;;;;-1:-1:-1;14746:28:0;;;;-1:-1:-1;;;;;14746:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;14746:28:0;2232:203:1;18359:126:0;;;;;;;;;;-1:-1:-1;18359:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18449:28:0;18425:4;18449:28;;;:19;:28;;;;;;;;;18359:126;21500:134;;;;;;;;;;-1:-1:-1;21500:134:0;;;;;:::i;:::-;;:::i;14687:52::-;;;;;;;;;;;;;;;21349:143;;;;;;;;;;;;;:::i;15348:31::-;;;;;;;;;;-1:-1:-1;15348:31:0;;;;;;;;;;;2250:127;;;;;;;;;;-1:-1:-1;2250:127:0;;;;;:::i;:::-;;:::i;7133:103::-;;;;;;;;;;;;;:::i;21642:267::-;;;;;;;;;;-1:-1:-1;21642:267:0;;;;;:::i;:::-;;:::i;17465:144::-;;;;;;;;;;-1:-1:-1;17465:144:0;;;;;:::i;:::-;;:::i;6898:87::-;;;;;;;;;;-1:-1:-1;6971:6:0;;-1:-1:-1;;;;;6971:6:0;6898:87;;21917:231;;;;;;;;;;;;;:::i;1922:104::-;;;;;;;;;;;;;:::i;17900:257::-;;;;;;;;;;-1:-1:-1;17900:257:0;;;;;:::i;:::-;;:::i;3469:436::-;;;;;;;;;;-1:-1:-1;3469:436:0;;;;;:::i;:::-;;:::i;2385:193::-;;;;;;;;;;-1:-1:-1;2385:193:0;;;;;:::i;:::-;;:::i;16543:796::-;;;;;;;;;;;;;:::i;17710:182::-;;;;;;;;;;-1:-1:-1;17710:182:0;;;;;:::i;:::-;;:::i;15077:47::-;;;;;;;;;;;;;;;;17347:110;;;;;;;;;;;;;:::i;2586:151::-;;;;;;;;;;-1:-1:-1;2586:151:0;;;;;:::i;:::-;;:::i;15167:65::-;;;;;;;;;;;;;;;;7244:201;;;;;;;;;;-1:-1:-1;7244:201:0;;;;;:::i;:::-;;:::i;15013:57::-;;;;;;;;;;;;;;;;15310:31;;;;;;;;;;-1:-1:-1;15310:31:0;;;;;;;;1814:100;1868:13;1901:5;1894:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:100;:::o;2745:201::-;2828:4;370:10;2884:32;370:10;2900:7;2909:6;2884:8;:32::i;:::-;2934:4;2927:11;;;2745:201;;;;;:::o;2954:261::-;3051:4;370:10;3109:38;3125:4;370:10;3140:6;3109:15;:38::i;:::-;3158:27;3168:4;3174:2;3178:6;3158:9;:27::i;:::-;-1:-1:-1;3203:4:0;;2954:261;-1:-1:-1;;;;2954:261:0:o;3223:238::-;3311:4;370:10;3367:64;370:10;3383:7;3420:10;3392:25;370:10;3383:7;3392:9;:25::i;:::-;:38;;;;:::i;:::-;3367:8;:64::i;17617:85::-;17667:27;370:10;17687:6;17667:5;:27::i;:::-;17617:85;:::o;21500:134::-;6857:13;:11;:13::i;:::-;21581:6:::1;:16:::0;;;;21608:7:::1;:18:::0;21500:134::o;21349:143::-;6857:13;:11;:13::i;:::-;21425:18:::1;::::0;21402:20:::1;:41:::0;;;21454:9:::1;:30:::0;21349:143::o;2250:127::-;-1:-1:-1;;;;;2351:18:0;2324:7;2351:18;;;;;;;;;;;;2250:127::o;7133:103::-;6857:13;:11;:13::i;:::-;7198:30:::1;7225:1;7198:18;:30::i;:::-;7133:103::o:0;21642:267::-;21728:9;;-1:-1:-1;;;;;21728:9:0;370:10;-1:-1:-1;;;;;21712:25:0;;21704:34;;;;;;21749:23;21775:24;21793:4;21775:9;:24::i;:::-;21749:50;-1:-1:-1;21810:18:0;21859:3;21831:25;21849:7;21749:50;21831:25;:::i;:::-;:31;;;;:::i;:::-;21810:52;;21873:28;21890:10;21873:16;:28::i;:::-;21693:216;;21642:267;:::o;17465:144::-;6857:13;:11;:13::i;:::-;-1:-1:-1;;;;;17555:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;17555:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17465:144::o;21917:231::-;21998:1;21974:21;:25;21966:67;;;;-1:-1:-1;;;21966:67:0;;5327:2:1;21966:67:0;;;5309:21:1;5366:2;5346:18;;;5339:30;5405:31;5385:18;;;5378:59;5454:18;;21966:67:0;;;;;;;;;22068:9;;-1:-1:-1;;;;;22068:9:0;370:10;-1:-1:-1;;;;;22052:25:0;;22044:34;;;;;;22089:51;;22097:10;;22118:21;22089:51;;;;;;;;;22118:21;22097:10;22089:51;;;;;;;;;;;;;;;;;;;1922:104;1978:13;2011:7;2004:14;;;;;:::i;17900:257::-;6857:13;:11;:13::i;:::-;18022::::1;::::0;-1:-1:-1;;;;;18022:13:0;;::::1;18014:21:::0;;::::1;::::0;18006:91:::1;;;::::0;-1:-1:-1;;;18006:91:0;;5685:2:1;18006:91:0::1;::::0;::::1;5667:21:1::0;5724:2;5704:18;;;5697:30;5763:34;5743:18;;;5736:62;5834:27;5814:18;;;5807:55;5879:19;;18006:91:0::1;5483:421:1::0;18006:91:0::1;18108:41;18137:4;18143:5;18108:28;:41::i;:::-;17900:257:::0;;:::o;3469:436::-;3562:4;370:10;3562:4;3645:25;370:10;3662:7;3645:9;:25::i;:::-;3618:52;;3709:15;3689:16;:35;;3681:85;;;;-1:-1:-1;;;3681:85:0;;6111:2:1;3681:85:0;;;6093:21:1;6150:2;6130:18;;;6123:30;6189:34;6169:18;;;6162:62;-1:-1:-1;;;6240:18:1;;;6233:35;6285:19;;3681:85:0;5909:401:1;3681:85:0;3802:60;3811:5;3818:7;3846:15;3827:16;:34;3802:8;:60::i;2385:193::-;2464:4;370:10;2520:28;370:10;2537:2;2541:6;2520:9;:28::i;16543:796::-;6857:13;:11;:13::i;:::-;16601:11:::1;::::0;::::1;;16600:12;16592:47;;;::::0;-1:-1:-1;;;16592:47:0;;6517:2:1;16592:47:0::1;::::0;::::1;6499:21:1::0;6556:2;6536:18;;;6529:30;6595:25;6575:18;;;6568:53;6638:18;;16592:47:0::1;6315:347:1::0;16592:47:0::1;16684:16;-1:-1:-1::0;;;;;16684:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16666:56:0::1;;16731:4;16738:16;-1:-1:-1::0;;;;;16738:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16666:96;::::0;-1:-1:-1;;;;;;16666:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7153:15:1;;;16666:96:0::1;::::0;::::1;7135:34:1::0;7205:15;;7185:18;;;7178:43;7070:18;;16666:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16650:13;:112:::0;;-1:-1:-1;;;;;;16650:112:0::1;-1:-1:-1::0;;;;;16650:112:0;;;::::1;::::0;;::::1;::::0;;16773:55:::1;::::0;-1:-1:-1;16773:25:0::1;:55::i;:::-;16876:13;::::0;16839:58:::1;::::0;-1:-1:-1;;;;;16876:13:0::1;::::0;16839:28:::1;:58::i;:::-;16908:70;16925:4;16940:16;16959:18;;16908:8;:70::i;:::-;16989:16;-1:-1:-1::0;;;;;16989:32:0::1;;17029:21;17074:4;17094:24;17112:4;17094:9;:24::i;:::-;16989:259;::::0;-1:-1:-1;;;;;;16989:259:0::1;::::0;;;;;;-1:-1:-1;;;;;7591:15:1;;;16989:259:0::1;::::0;::::1;7573:34:1::0;7623:18;;;7616:34;17133:1:0::1;7666:18:1::0;;;7659:34;;;7709:18;;;7702:34;17165:42:0::1;7752:19:1::0;;;7745:44;17222:15:0::1;7805:19:1::0;;;7798:35;7507:19;;16989:259:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17266:13:0::1;::::0;17259:72:::1;::::0;-1:-1:-1;;;17259:72:0;;-1:-1:-1;;;;;17297:16:0::1;8347:32:1::0;;17259:72:0::1;::::0;::::1;8329:51:1::0;-1:-1:-1;;8396:18:1;;;8389:34;17266:13:0;;::::1;::::0;-1:-1:-1;17259:29:0::1;::::0;8302:18:1;;17259:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17710:182::-:0;6857:13;:11;:13::i;:::-;-1:-1:-1;;;;;17795:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17795:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17850:34;;1163:41:1;;;17850:34:0::1;::::0;1136:18:1;17850:34:0::1;;;;;;;17710:182:::0;;:::o;17347:110::-;6857:13;:11;:13::i;:::-;17402:11:::1;:18:::0;;-1:-1:-1;;17431:18:0;;;;;17347:110::o;2586:151::-;-1:-1:-1;;;;;2702:18:0;;;2675:7;2702:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2586:151::o;7244:201::-;6857:13;:11;:13::i;:::-;-1:-1:-1;;;;;7333:22:0;::::1;7325:73;;;::::0;-1:-1:-1;;;7325:73:0;;8886:2:1;7325:73:0::1;::::0;::::1;8868:21:1::0;8925:2;8905:18;;;8898:30;8964:34;8944:18;;;8937:62;-1:-1:-1;;;9015:18:1;;;9008:36;9061:19;;7325:73:0::1;8684:402:1::0;7325:73:0::1;7409:28;7428:8;7409:18;:28::i;5608:346::-:0;-1:-1:-1;;;;;5710:19:0;;5702:68;;;;-1:-1:-1;;;5702:68:0;;9293:2:1;5702:68:0;;;9275:21:1;9332:2;9312:18;;;9305:30;9371:34;9351:18;;;9344:62;-1:-1:-1;;;9422:18:1;;;9415:34;9466:19;;5702:68:0;9091:400:1;5702:68:0;-1:-1:-1;;;;;5789:21:0;;5781:68;;;;-1:-1:-1;;;5781:68:0;;9698:2:1;5781:68:0;;;9680:21:1;9737:2;9717:18;;;9710:30;9776:34;9756:18;;;9749:62;-1:-1:-1;;;9827:18:1;;;9820:32;9869:19;;5781:68:0;9496:398:1;5781:68:0;-1:-1:-1;;;;;5862:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5914:32;;1361:25:1;;;5914:32:0;;1334:18:1;5914:32:0;;;;;;;5608:346;;;:::o;5962:419::-;6063:24;6090:25;6100:5;6107:7;6090:9;:25::i;:::-;6063:52;;-1:-1:-1;;6130:16:0;:37;6126:248;;6212:6;6192:16;:26;;6184:68;;;;-1:-1:-1;;;6184:68:0;;10101:2:1;6184:68:0;;;10083:21:1;10140:2;10120:18;;;10113:30;10179:31;10159:18;;;10152:59;10228:18;;6184:68:0;9899:353:1;6184:68:0;6296:51;6305:5;6312:7;6340:6;6321:16;:25;6296:8;:51::i;:::-;6052:329;5962:419;;;:::o;18493:2370::-;-1:-1:-1;;;;;18591:18:0;;18583:68;;;;-1:-1:-1;;;18583:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18670:16:0;;18662:64;;;;-1:-1:-1;;;18662:64:0;;;;;;;:::i;:::-;18743:6;18753:1;18743:11;18739:93;;18771:28;18787:4;18793:2;18797:1;18771:15;:28::i;18739:93::-;6971:6;;-1:-1:-1;;;;;18848:15:0;;;6971:6;;18848:15;;;;:32;;-1:-1:-1;6971:6:0;;-1:-1:-1;;;;;18867:13:0;;;6971:6;;18867:13;;18848:32;:52;;;;-1:-1:-1;;;;;;18884:16:0;;;;18848:52;:77;;;;-1:-1:-1;;;;;;18904:21:0;;18918:6;18904:21;;18848:77;:90;;;;-1:-1:-1;18930:8:0;;;;18929:9;18848:90;18844:1012;;;18960:11;;;;18955:140;;-1:-1:-1;;;;;19000:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19029:23:0;;;;;;:19;:23;;;;;;;;19000:52;18992:87;;;;-1:-1:-1;;;18992:87:0;;11269:2:1;18992:87:0;;;11251:21:1;11308:2;11288:18;;;11281:30;-1:-1:-1;;;11327:18:1;;;11320:52;11389:18;;18992:87:0;11067:346:1;18992:87:0;-1:-1:-1;;;;;19115:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19151:35:0;;;;;;:31;:35;;;;;;;;19150:36;19115:71;19111:734;;;19249:20;;19239:6;:30;;19231:96;;;;-1:-1:-1;;;19231:96:0;;11620:2:1;19231:96:0;;;11602:21:1;11659:2;11639:18;;;11632:30;11698:34;11678:18;;;11671:62;-1:-1:-1;;;11749:18:1;;;11742:51;11810:19;;19231:96:0;11418:417:1;19231:96:0;19380:9;;19363:13;19373:2;19363:9;:13::i;:::-;19354:22;;:6;:22;:::i;:::-;:35;;19346:67;;;;-1:-1:-1;;;19346:67:0;;12042:2:1;19346:67:0;;;12024:21:1;12081:2;12061:18;;;12054:30;-1:-1:-1;;;12100:18:1;;;12093:49;12159:18;;19346:67:0;11840:343:1;19346:67:0;19111:734;;;-1:-1:-1;;;;;19452:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19486:37:0;;;;;;:31;:37;;;;;;;;19485:38;19452:71;19448:397;;;19587:20;;19577:6;:30;;19569:97;;;;-1:-1:-1;;;19569:97:0;;12390:2:1;19569:97:0;;;12372:21:1;12429:2;12409:18;;;12402:30;12468:34;12448:18;;;12441:62;-1:-1:-1;;;12519:18:1;;;12512:52;12581:19;;19569:97:0;12188:418:1;19448:397:0;-1:-1:-1;;;;;19706:35:0;;;;;;:31;:35;;;;;;;;19701:144;;19796:9;;19779:13;19789:2;19779:9;:13::i;:::-;19770:22;;:6;:22;:::i;:::-;:35;;19762:67;;;;-1:-1:-1;;;19762:67:0;;12042:2:1;19762:67:0;;;12024:21:1;12081:2;12061:18;;;12054:30;-1:-1:-1;;;12100:18:1;;;12093:49;12159:18;;19762:67:0;11840:343:1;19762:67:0;19910:28;19941:24;19959:4;19941:9;:24::i;:::-;20014:18;;19910:55;;-1:-1:-1;19991:41:0;;;20047:22;;;;-1:-1:-1;20058:11:0;;;;;;;20047:22;:35;;;;-1:-1:-1;20074:8:0;;;;20073:9;20047:35;:71;;;;-1:-1:-1;;;;;;20087:31:0;;;;;;:25;:31;;;;;;;;20086:32;20047:71;:101;;;;-1:-1:-1;;;;;;20123:25:0;;;;;;:19;:25;;;;;;;;20122:26;20047:101;:129;;;;-1:-1:-1;;;;;;20153:23:0;;;;;;:19;:23;;;;;;;;20152:24;20047:129;20043:233;;;20193:8;:15;;-1:-1:-1;;20193:15:0;20204:4;20193:15;;;20223:10;:8;:10::i;:::-;20248:8;:16;;-1:-1:-1;;20248:16:0;;;20043:233;20304:8;;20288:12;;20304:8;;20303:9;:39;;;;-1:-1:-1;;;;;;20317:25:0;;;;;;:19;:25;;;;;;;;20316:26;20303:39;:67;;;;-1:-1:-1;;;;;;20347:23:0;;;;;;:19;:23;;;;;;;;20346:24;20303:67;20288:82;;20383:12;20414:7;20410:402;;;-1:-1:-1;;;;;20442:31:0;;;;;;:25;:31;;;;;;;;20438:229;;;20501:27;20524:3;20501:18;20512:6;;20501;:10;;:18;;;;:::i;:::-;:22;;:27::i;:::-;20494:34;;20438:229;;;-1:-1:-1;;;;;20566:29:0;;;;;;:25;:29;;;;;;;;20563:104;;;20623:28;20647:3;20623:19;20634:7;;20623:6;:10;;:19;;;;:::i;:28::-;20616:35;;20563:104;20685:8;;20681:91;;20714:42;20730:4;20744;20751;20714:15;:42::i;:::-;20786:14;20796:4;20786:14;;:::i;:::-;;;20410:402;20822:33;20838:4;20844:2;20848:6;20822:15;:33::i;:::-;18572:2291;;;;18493:2370;;;:::o;5005:595::-;-1:-1:-1;;;;;5089:21:0;;5081:67;;;;-1:-1:-1;;;5081:67:0;;12946:2:1;5081:67:0;;;12928:21:1;12985:2;12965:18;;;12958:30;13024:34;13004:18;;;12997:62;-1:-1:-1;;;13075:18:1;;;13068:31;13116:19;;5081:67:0;12744:397:1;5081:67:0;-1:-1:-1;;;;;5248:18:0;;5223:22;5248:18;;;;;;;;;;;5285:24;;;;5277:71;;;;-1:-1:-1;;;5277:71:0;;13348:2:1;5277:71:0;;;13330:21:1;13387:2;13367:18;;;13360:30;13426:34;13406:18;;;13399:62;-1:-1:-1;;;13477:18:1;;;13470:32;13519:19;;5277:71:0;13146:398:1;5277:71:0;-1:-1:-1;;;;;5384:18:0;;:9;:18;;;;;;;;;;;5405:23;;;5384:44;;5443:12;:22;;;;;;;5494:37;1361:25:1;;;5384:9:0;;:18;5494:37;;1334:18:1;5494:37:0;;;;;;;21693:216;;21642:267;:::o;6993:132::-;6971:6;;-1:-1:-1;;;;;6971:6:0;370:10;7057:23;7049:68;;;;-1:-1:-1;;;7049:68:0;;13751:2:1;7049:68:0;;;13733:21:1;;;13770:18;;;13763:30;13829:34;13809:18;;;13802:62;13881:18;;7049:68:0;13549:356:1;7453:191:0;7546:6;;;-1:-1:-1;;;;;7563:17:0;;;-1:-1:-1;;;;;;7563:17:0;;;;;;;7596:40;;7546:6;;;7563:17;7546:6;;7596:40;;7527:16;;7596:40;7516:128;7453:191;:::o;20871:470::-;20961:16;;;20975:1;20961:16;;;;;;;;20937:21;;20961:16;;;;;;;;;;-1:-1:-1;20961:16:0;20937:40;;21006:4;20988;20993:1;20988:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20988:23:0;;;-1:-1:-1;;;;;20988:23:0;;;;;21032:16;-1:-1:-1;;;;;21032:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21022:4;21027:1;21022:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;21022:33:0;;;-1:-1:-1;;;;;21022:33:0;;;;;21066:63;21083:4;21098:16;21117:11;21066:8;:63::i;:::-;21283:9;;21140:193;;-1:-1:-1;;;21140:193:0;;-1:-1:-1;;;;;21140:16:0;:67;;;;;:193;;21222:11;;21248:1;;21264:4;;21283:9;;;;;21307:15;;21140:193;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20926:415;20871:470;:::o;18165:186::-;-1:-1:-1;;;;;18248:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18248:39:0;;;;;;;;;;18303:40;;18248:39;;:31;18303:40;;;18165:186;;:::o;3913:641::-;-1:-1:-1;;;;;4010:18:0;;4002:68;;;;-1:-1:-1;;;4002:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4089:16:0;;4081:64;;;;-1:-1:-1;;;4081:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4231:15:0;;4209:19;4231:15;;;;;;;;;;;4265:21;;;;4257:72;;;;-1:-1:-1;;;4257:72:0;;15361:2:1;4257:72:0;;;15343:21:1;15400:2;15380:18;;;15373:30;15439:34;15419:18;;;15412:62;-1:-1:-1;;;15490:18:1;;;15483:36;15536:19;;4257:72:0;15159:402:1;4257:72:0;-1:-1:-1;;;;;4365:15:0;;;:9;:15;;;;;;;;;;;4383:20;;;4365:38;;4418:13;;;;;;;;;;:23;;;;;;4470:26;;1361:25:1;;;4418:13:0;;4470:26;;1334:18:1;4470:26:0;;;;;;;4509:37;21642:267;22156:367;22195:23;22221:24;22239:4;22221:9;:24::i;:::-;22195:50;;22260:15;22279:1;22260:20;22256:59;;22297:7;22156:367::o;22256:59::-;22395:18;;22348:15;;22380:33;;22376:99;;;-1:-1:-1;22445:18:0;;22376:99;22485:30;22502:12;22485:16;:30::i;13477:98::-;13535:7;13562:5;13566:1;13562;:5;:::i;:::-;13555:12;13477:98;-1:-1:-1;;;13477:98:0:o;13583:::-;13641:7;13668:5;13672:1;13668;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;3180:118::-;3266:5;3259:13;3252:21;3245:5;3242:32;3232:60;;3288:1;3285;3278:12;3303:382;3368:6;3376;3429:2;3417:9;3408:7;3404:23;3400:32;3397:52;;;3445:1;3442;3435:12;3397:52;3484:9;3471:23;3503:31;3528:5;3503:31;:::i;:::-;3553:5;-1:-1:-1;3610:2:1;3595:18;;3582:32;3623:30;3582:32;3623:30;:::i;:::-;3672:7;3662:17;;;3303:382;;;;;:::o;3690:388::-;3758:6;3766;3819:2;3807:9;3798:7;3794:23;3790:32;3787:52;;;3835:1;3832;3825:12;3787:52;3874:9;3861:23;3893:31;3918:5;3893:31;:::i;:::-;3943:5;-1:-1:-1;4000:2:1;3985:18;;3972:32;4013:33;3972:32;4013:33;:::i;4083:380::-;4162:1;4158:12;;;;4205;;;4226:61;;4280:4;4272:6;4268:17;4258:27;;4226:61;4333:2;4325:6;4322:14;4302:18;4299:38;4296:161;;4379:10;4374:3;4370:20;4367:1;4360:31;4414:4;4411:1;4404:15;4442:4;4439:1;4432:15;4296:161;;4083:380;;;:::o;4468:127::-;4529:10;4524:3;4520:20;4517:1;4510:31;4560:4;4557:1;4550:15;4584:4;4581:1;4574:15;4600:125;4665:9;;;4686:10;;;4683:36;;;4699:18;;:::i;4730:168::-;4803:9;;;4834;;4851:15;;;4845:22;;4831:37;4821:71;;4872:18;;:::i;4903:217::-;4943:1;4969;4959:132;;5013:10;5008:3;5004:20;5001:1;4994:31;5048:4;5045:1;5038:15;5076:4;5073:1;5066:15;4959:132;-1:-1:-1;5105:9:1;;4903:217::o;6667:251::-;6737:6;6790:2;6778:9;6769:7;6765:23;6761:32;6758:52;;;6806:1;6803;6796:12;6758:52;6838:9;6832:16;6857:31;6882:5;6857:31;:::i;7844:306::-;7932:6;7940;7948;8001:2;7989:9;7980:7;7976:23;7972:32;7969:52;;;8017:1;8014;8007:12;7969:52;8046:9;8040:16;8030:26;;8096:2;8085:9;8081:18;8075:25;8065:35;;8140:2;8129:9;8125:18;8119:25;8109:35;;7844:306;;;;;:::o;8434:245::-;8501:6;8554:2;8542:9;8533:7;8529:23;8525:32;8522:52;;;8570:1;8567;8560:12;8522:52;8602:9;8596:16;8621:28;8643:5;8621:28;:::i;10257:401::-;10459:2;10441:21;;;10498:2;10478:18;;;10471:30;10537:34;10532:2;10517:18;;10510:62;-1:-1:-1;;;10603:2:1;10588:18;;10581:35;10648:3;10633:19;;10257:401::o;10663:399::-;10865:2;10847:21;;;10904:2;10884:18;;;10877:30;10943:34;10938:2;10923:18;;10916:62;-1:-1:-1;;;11009:2:1;10994:18;;10987:33;11052:3;11037:19;;10663:399::o;12611:128::-;12678:9;;;12699:11;;;12696:37;;;12713:18;;:::i;14042:127::-;14103:10;14098:3;14094:20;14091:1;14084:31;14134:4;14131:1;14124:15;14158:4;14155:1;14148:15;14174:980;14436:4;14484:3;14473:9;14469:19;14515:6;14504:9;14497:25;14541:2;14579:6;14574:2;14563:9;14559:18;14552:34;14622:3;14617:2;14606:9;14602:18;14595:31;14646:6;14681;14675:13;14712:6;14704;14697:22;14750:3;14739:9;14735:19;14728:26;;14789:2;14781:6;14777:15;14763:29;;14810:1;14820:195;14834:6;14831:1;14828:13;14820:195;;;14899:13;;-1:-1:-1;;;;;14895:39:1;14883:52;;14990:15;;;;14955:12;;;;14931:1;14849:9;14820:195;;;-1:-1:-1;;;;;;;15071:32:1;;;;15066:2;15051:18;;15044:60;-1:-1:-1;;;15135:3:1;15120:19;15113:35;15032:3;14174:980;-1:-1:-1;;;14174:980:1:o

Swarm Source

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