ETH Price: $2,435.12 (+6.11%)

Token

CODEX (CODEX)
 

Overview

Max Total Supply

100,000,000 CODEX

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*探偵スナイパー.eth
Balance
2,889.547947992 CODEX

Value
$0.00
0x345f365Fb2f72466C150d6fcB09e873981404b6C
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:
Codex

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-22
*/

/*
    https://t.me/codex_coin
    https://twitter.com/codex_token
    https://www.instagram.com/codextoken/
    https://codextoken.com/
    https://t.me/Codex_AIBot
    https://t.me/CodexServiceBot
    https://docs.codextoken.com/
*/
pragma solidity 0.8.23;

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

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal returns(bool){
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        return success;
    }
}

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

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

abstract 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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

contract Codex is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public  feeOnBuy;
    uint256 public  feeOnSell;

    address public  marketingWallet;

    uint256 public  swapTokensAtAmount;
    bool    private swapping;

    bool    public swapEnabled;

    bool public tradingEnabled;

    constructor () ERC20("CODEX", "CODEX") 
    {   
        address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        feeOnBuy  = 15;
        feeOnSell = 15;

        marketingWallet = msg.sender;
        maxWalletLimitEnabled = true;

        _isExcludedFromMaxWalletLimit[owner()] = true;
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[router] = true;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[router] = true;

        _mint(owner(), 100e6 * (10 ** decimals()));
        swapTokensAtAmount = totalSupply() / 5_000;

        maxWalletAmount = totalSupply() / 100;

        swapEnabled = false;
    }

    receive() external payable {}

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        require(_isExcludedFromFees[account] != excluded,"Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = excluded;
    }

    function updateFees(uint256 _feeOnSell, uint256 _feeOnBuy) external onlyOwner {
        require(_feeOnSell <= 20, "Fee cannot exceed 20%.");
        require(_feeOnBuy <= 20, "Fee cannot exceed 20%.");

        feeOnSell = _feeOnSell;
        feeOnBuy = _feeOnBuy;

    }

    function updateMarketingWallet(address _newAddress) external onlyOwner{
        marketingWallet = _newAddress;
    }

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

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading not yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == uniswapV2Pair &&
            swapEnabled
        ) {
            swapping = true;
            swapAndSend(contractTokenBalance);     
            swapping = false;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = feeOnBuy;
        } else if (to == uniswapV2Pair) {
            _totalFees = feeOnSell;
        } else {
            _totalFees = 0;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        if (maxWalletLimitEnabled) 
        {
            if (!_isExcludedFromMaxWalletLimit[from] && 
                !_isExcludedFromMaxWalletLimit[to] &&
                to != uniswapV2Pair
            ) {
                require(
                    balanceOf(to) + amount <= maxWalletAmount, 
                    "MaxWallet: Recipient exceeds the maxWalletAmount"
                );
            }
        }

        super._transfer(from, to, amount);
    }

    function setSwapEnabled(bool _enabled) external onlyOwner{
        require(swapEnabled != _enabled, "swapEnabled already at this state.");
        swapEnabled = _enabled;
    }

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{
        require(newAmount > totalSupply() / 1_000_000, "SwapTokensAtAmount must be greater than 0.0001% of total supply");
        swapTokensAtAmount = newAmount;
    }

    function swapAndSend(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);

        uint256 newBalance = address(this).balance - initialBalance;

        payable(marketingWallet).sendValue(newBalance);

    }

    mapping(address => bool) private _isExcludedFromMaxWalletLimit;
    bool    public maxWalletLimitEnabled;
    uint256 public maxWalletAmount;

    function setEnableMaxWalletLimit(bool enable) external onlyOwner {
        maxWalletLimitEnabled = enable;
    }

    function setMaxWalletAmount(uint256 _maxWalletAmount) external onlyOwner {
        require(_maxWalletAmount >= (totalSupply() / (10 ** decimals())) / 100, "Max wallet percentage cannot be lower than 1%");
        maxWalletAmount = _maxWalletAmount * (10 ** decimals());
    }

    function excludeFromMaxWallet(address account, bool exclude) external onlyOwner {
        _isExcludedFromMaxWalletLimit[account] = exclude;
    }

    function isExcludedFromMaxWalletLimit(address account) public view returns(bool) {
        return _isExcludedFromMaxWalletLimit[account];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"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":"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","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":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"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"},{"inputs":[{"internalType":"uint256","name":"_feeOnSell","type":"uint256"},{"internalType":"uint256","name":"_feeOnBuy","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801562000010575f80fd5b506040805180820182526005808252640869e888ab60db1b60208084018290528451808601909552918452908301529060036200004e83826200069b565b5060046200005d82826200069b565b5050505f62000071620003e860201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8190505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000118573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200013e919062000767565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b0919062000767565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000221919062000767565b600680546001600160a01b038086166001600160a01b031992831681179093556007805491851691909216179055909150620002619030905f19620003ec565b600f6009819055600a819055600b80546001600160a01b03191633179055805460ff19166001908117909155600e5f620002a36005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600e9093528183208054851660019081179091559087168352908220805490931681179092556008906200030f6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260089093528183208054851660019081179091559087168352912080549092161790556200039d620003796005546001600160a01b031690565b620003876009600a620008a5565b62000397906305f5e100620008b5565b62000517565b611388620003aa60025490565b620003b69190620008cf565b600c556064620003c560025490565b620003d19190620008cf565b6010555050600d805461ff00191690555062000905565b3390565b6001600160a01b038316620004545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620004b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200044b565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166200056f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200044b565b8060025f828254620005829190620008ef565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005b0908490620008ef565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200062757607f821691505b6020821081036200064657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005f957805f5260205f20601f840160051c81016020851015620006735750805b601f840160051c820191505b8181101562000694575f81556001016200067f565b5050505050565b81516001600160401b03811115620006b757620006b7620005fe565b620006cf81620006c8845462000612565b846200064c565b602080601f83116001811462000705575f8415620006ed5750858301515b5f19600386901b1c1916600185901b1785556200075f565b5f85815260208120601f198616915b82811015620007355788860151825594840194600190910190840162000714565b50858210156200075357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000778575f80fd5b81516001600160a01b03811681146200078f575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620007ea57815f1904821115620007ce57620007ce62000796565b80851615620007dc57918102915b93841c9390800290620007af565b509250929050565b5f8262000802575060016200089f565b816200081057505f6200089f565b8160018114620008295760028114620008345762000854565b60019150506200089f565b60ff84111562000848576200084862000796565b50506001821b6200089f565b5060208310610133831016604e8410600b841016171562000879575081810a6200089f565b620008858383620007aa565b805f19048211156200089b576200089b62000796565b0290505b92915050565b5f6200078f60ff841683620007f2565b80820281158282048414176200089f576200089f62000796565b5f82620008ea57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200089f576200089f62000796565b611ab880620009135f395ff3fe6080604052600436106101e9575f3560e01c806375f0a87411610108578063aacebbe31161009d578063d2fcc0011161006d578063d2fcc00114610578578063dd62ed3e14610597578063e01af92c146105db578063e2f45605146105fa578063f2fde38b1461060f575f80fd5b8063aacebbe314610506578063afa4f3b214610525578063bb8c3ee014610544578063c024666814610559575f80fd5b8063a457c2d7116100d8578063a457c2d71461047c578063a8a69b9d1461049b578063a9059cbb146104d2578063aa4bde28146104f1575f80fd5b806375f0a874146104185780638a8c523c146104375780638da5cb5b1461044b57806395d89b4114610468575f80fd5b8063313ce5671161017e57806365048d081161014e57806365048d08146103925780636db79437146103a75780636ddd1713146103c657806370a08231146103e4575f80fd5b8063313ce5671461031a578063395093511461033557806349bd5a5e146103545780634ada218b14610373575f80fd5b806321a9d82a116101b957806321a9d82a146102a257806323b872dd146102bb57806327a14fc2146102da5780632a6c7dba146102fb575f80fd5b806306fdde03146101f4578063095ea7b31461021e5780631694505e1461024d57806318160ddd14610284575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b5061020861062e565b604051610215919061165c565b60405180910390f35b348015610229575f80fd5b5061023d6102383660046116bf565b6106be565b6040519015158152602001610215565b348015610258575f80fd5b5060065461026c906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561028f575f80fd5b506002545b604051908152602001610215565b3480156102ad575f80fd5b50600f5461023d9060ff1681565b3480156102c6575f80fd5b5061023d6102d53660046116e9565b6106d4565b3480156102e5575f80fd5b506102f96102f4366004611727565b610788565b005b348015610306575f80fd5b506102f9610315366004611752565b610858565b348015610325575f80fd5b5060405160098152602001610215565b348015610340575f80fd5b5061023d61034f3660046116bf565b610895565b34801561035f575f80fd5b5060075461026c906001600160a01b031681565b34801561037e575f80fd5b50600d5461023d9062010000900460ff1681565b34801561039d575f80fd5b50610294600a5481565b3480156103b2575f80fd5b506102f96103c1366004611772565b6108d0565b3480156103d1575f80fd5b50600d5461023d90610100900460ff1681565b3480156103ef575f80fd5b506102946103fe366004611792565b6001600160a01b03165f9081526020819052604090205490565b348015610423575f80fd5b50600b5461026c906001600160a01b031681565b348015610442575f80fd5b506102f9610999565b348015610456575f80fd5b506005546001600160a01b031661026c565b348015610473575f80fd5b506102086109d6565b348015610487575f80fd5b5061023d6104963660046116bf565b6109e5565b3480156104a6575f80fd5b5061023d6104b5366004611792565b6001600160a01b03165f908152600e602052604090205460ff1690565b3480156104dd575f80fd5b5061023d6104ec3660046116bf565b610a7d565b3480156104fc575f80fd5b5061029460105481565b348015610511575f80fd5b506102f9610520366004611792565b610a89565b348015610530575f80fd5b506102f961053f366004611727565b610ad5565b34801561054f575f80fd5b5061029460095481565b348015610564575f80fd5b506102f96105733660046117ad565b610b8f565b348015610583575f80fd5b506102f96105923660046117ad565b610c65565b3480156105a2575f80fd5b506102946105b13660046117e0565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156105e6575f80fd5b506102f96105f5366004611752565b610cb9565b348015610605575f80fd5b50610294600c5481565b34801561061a575f80fd5b506102f9610629366004611792565b610d6a565b60606003805461063d90611817565b80601f016020809104026020016040519081016040528092919081815260200182805461066990611817565b80156106b45780601f1061068b576101008083540402835291602001916106b4565b820191905f5260205f20905b81548152906001019060200180831161069757829003601f168201915b5050505050905090565b5f6106ca338484610e54565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19811461077257828110156107655760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107728533858403610e54565b61077d858585610f77565b506001949350505050565b6005546001600160a01b031633146107b25760405162461bcd60e51b815260040161075c9061184f565b60646107c06009600a611978565b6002546107cd9190611986565b6107d79190611986565b81101561083c5760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060448201526c6c6f776572207468616e20312560981b606482015260840161075c565b6108486009600a611978565b61085290826119a5565b60105550565b6005546001600160a01b031633146108825760405162461bcd60e51b815260040161075c9061184f565b600f805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106ca9185906108cb9086906119bc565b610e54565b6005546001600160a01b031633146108fa5760405162461bcd60e51b815260040161075c9061184f565b60148211156109445760405162461bcd60e51b81526020600482015260166024820152752332b29031b0b73737ba1032bc31b2b2b2101918129760511b604482015260640161075c565b601481111561098e5760405162461bcd60e51b81526020600482015260166024820152752332b29031b0b73737ba1032bc31b2b2b2101918129760511b604482015260640161075c565b600a91909155600955565b6005546001600160a01b031633146109c35760405162461bcd60e51b815260040161075c9061184f565b600d805462ffff00191662010100179055565b60606004805461063d90611817565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610a665760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161075c565b610a733385858403610e54565b5060019392505050565b5f6106ca338484610f77565b6005546001600160a01b03163314610ab35760405162461bcd60e51b815260040161075c9061184f565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610aff5760405162461bcd60e51b815260040161075c9061184f565b620f4240610b0c60025490565b610b169190611986565b8111610b8a5760405162461bcd60e51b815260206004820152603f60248201527f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460448201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900606482015260840161075c565b600c55565b6005546001600160a01b03163314610bb95760405162461bcd60e51b815260040161075c9061184f565b6001600160a01b0382165f9081526008602052604090205481151560ff909116151503610c3b5760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b606482015260840161075c565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610c8f5760405162461bcd60e51b815260040161075c9061184f565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ce35760405162461bcd60e51b815260040161075c9061184f565b801515600d60019054906101000a900460ff16151503610d505760405162461bcd60e51b815260206004820152602260248201527f73776170456e61626c656420616c726561647920617420746869732073746174604482015261329760f11b606482015260840161075c565b600d80549115156101000261ff0019909216919091179055565b6005546001600160a01b03163314610d945760405162461bcd60e51b815260040161075c9061184f565b6001600160a01b038116610df95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610eb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075c565b6001600160a01b038216610f175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600d5462010000900460ff1680610fa557506001600160a01b0383165f9081526008602052604090205460ff165b80610fc757506001600160a01b0382165f9081526008602052604090205460ff165b6110135760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604482015260640161075c565b805f0361102a5761102583835f611281565b505050565b305f90815260208190526040902054600c54811080159081906110505750600d5460ff16155b801561106957506007546001600160a01b038581169116145b801561107c5750600d54610100900460ff165b156110a257600d805460ff191660011790556110978261144e565b600d805460ff191690555b6001600160a01b0385165f9081526008602052604081205460ff16806110df57506001600160a01b0385165f9081526008602052604090205460ff165b806110ec5750600d5460ff165b156110f857505f611139565b6007546001600160a01b03908116908716036111175750600954611139565b6007546001600160a01b03908116908616036111365750600a54611139565b505f5b8015611171575f606461114c83876119a5565b6111569190611986565b905061116281866119cf565b945061116f873083611281565b505b600f5460ff161561126e576001600160a01b0386165f908152600e602052604090205460ff161580156111bc57506001600160a01b0385165f908152600e602052604090205460ff16155b80156111d657506007546001600160a01b03868116911614155b1561126e57601054846111fd876001600160a01b03165f9081526020819052604090205490565b61120791906119bc565b111561126e5760405162461bcd60e51b815260206004820152603060248201527f4d617857616c6c65743a20526563697069656e7420657863656564732074686560448201526f081b585e15d85b1b195d105b5bdd5b9d60821b606482015260840161075c565b611279868686611281565b505050505050565b6001600160a01b0383166112e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075c565b6001600160a01b0382166113475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075c565b6001600160a01b0383165f90815260208190526040902054818110156113be5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161075c565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906113f49084906119bc565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161144091815260200190565b60405180910390a350505050565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f81518110611485576114856119e2565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114dc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150091906119f6565b81600181518110611513576115136119e2565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906115589086905f90869030904290600401611a11565b5f604051808303815f87803b15801561156f575f80fd5b505af1158015611581573d5f803e3d5ffd5b505050505f824761159291906119cf565b600b549091506115ab906001600160a01b0316826115b2565b5050505050565b5f814710156116035760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161075c565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f811461164c576040519150601f19603f3d011682016040523d82523d5f602084013e611651565b606091505b509095945050505050565b5f602080835283518060208501525f5b818110156116885785810183015185820160400152820161166c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116bc575f80fd5b50565b5f80604083850312156116d0575f80fd5b82356116db816116a8565b946020939093013593505050565b5f805f606084860312156116fb575f80fd5b8335611706816116a8565b92506020840135611716816116a8565b929592945050506040919091013590565b5f60208284031215611737575f80fd5b5035919050565b8035801515811461174d575f80fd5b919050565b5f60208284031215611762575f80fd5b61176b8261173e565b9392505050565b5f8060408385031215611783575f80fd5b50508035926020909101359150565b5f602082840312156117a2575f80fd5b813561176b816116a8565b5f80604083850312156117be575f80fd5b82356117c9816116a8565b91506117d76020840161173e565b90509250929050565b5f80604083850312156117f1575f80fd5b82356117fc816116a8565b9150602083013561180c816116a8565b809150509250929050565b600181811c9082168061182b57607f821691505b60208210810361184957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118d257815f19048211156118b8576118b8611884565b808516156118c557918102915b93841c939080029061189d565b509250929050565b5f826118e8575060016106ce565b816118f457505f6106ce565b816001811461190a576002811461191457611930565b60019150506106ce565b60ff84111561192557611925611884565b50506001821b6106ce565b5060208310610133831016604e8410600b8410161715611953575081810a6106ce565b61195d8383611898565b805f190482111561197057611970611884565b029392505050565b5f61176b60ff8416836118da565b5f826119a057634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106ce576106ce611884565b808201808211156106ce576106ce611884565b818103818111156106ce576106ce611884565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a06575f80fd5b815161176b816116a8565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a615784516001600160a01b031683529383019391830191600101611a3c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c641cc8cf53c115e4ec2362e6f384827d1db62f447a17d50b7760aae608f6dcb64736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101e9575f3560e01c806375f0a87411610108578063aacebbe31161009d578063d2fcc0011161006d578063d2fcc00114610578578063dd62ed3e14610597578063e01af92c146105db578063e2f45605146105fa578063f2fde38b1461060f575f80fd5b8063aacebbe314610506578063afa4f3b214610525578063bb8c3ee014610544578063c024666814610559575f80fd5b8063a457c2d7116100d8578063a457c2d71461047c578063a8a69b9d1461049b578063a9059cbb146104d2578063aa4bde28146104f1575f80fd5b806375f0a874146104185780638a8c523c146104375780638da5cb5b1461044b57806395d89b4114610468575f80fd5b8063313ce5671161017e57806365048d081161014e57806365048d08146103925780636db79437146103a75780636ddd1713146103c657806370a08231146103e4575f80fd5b8063313ce5671461031a578063395093511461033557806349bd5a5e146103545780634ada218b14610373575f80fd5b806321a9d82a116101b957806321a9d82a146102a257806323b872dd146102bb57806327a14fc2146102da5780632a6c7dba146102fb575f80fd5b806306fdde03146101f4578063095ea7b31461021e5780631694505e1461024d57806318160ddd14610284575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b5061020861062e565b604051610215919061165c565b60405180910390f35b348015610229575f80fd5b5061023d6102383660046116bf565b6106be565b6040519015158152602001610215565b348015610258575f80fd5b5060065461026c906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561028f575f80fd5b506002545b604051908152602001610215565b3480156102ad575f80fd5b50600f5461023d9060ff1681565b3480156102c6575f80fd5b5061023d6102d53660046116e9565b6106d4565b3480156102e5575f80fd5b506102f96102f4366004611727565b610788565b005b348015610306575f80fd5b506102f9610315366004611752565b610858565b348015610325575f80fd5b5060405160098152602001610215565b348015610340575f80fd5b5061023d61034f3660046116bf565b610895565b34801561035f575f80fd5b5060075461026c906001600160a01b031681565b34801561037e575f80fd5b50600d5461023d9062010000900460ff1681565b34801561039d575f80fd5b50610294600a5481565b3480156103b2575f80fd5b506102f96103c1366004611772565b6108d0565b3480156103d1575f80fd5b50600d5461023d90610100900460ff1681565b3480156103ef575f80fd5b506102946103fe366004611792565b6001600160a01b03165f9081526020819052604090205490565b348015610423575f80fd5b50600b5461026c906001600160a01b031681565b348015610442575f80fd5b506102f9610999565b348015610456575f80fd5b506005546001600160a01b031661026c565b348015610473575f80fd5b506102086109d6565b348015610487575f80fd5b5061023d6104963660046116bf565b6109e5565b3480156104a6575f80fd5b5061023d6104b5366004611792565b6001600160a01b03165f908152600e602052604090205460ff1690565b3480156104dd575f80fd5b5061023d6104ec3660046116bf565b610a7d565b3480156104fc575f80fd5b5061029460105481565b348015610511575f80fd5b506102f9610520366004611792565b610a89565b348015610530575f80fd5b506102f961053f366004611727565b610ad5565b34801561054f575f80fd5b5061029460095481565b348015610564575f80fd5b506102f96105733660046117ad565b610b8f565b348015610583575f80fd5b506102f96105923660046117ad565b610c65565b3480156105a2575f80fd5b506102946105b13660046117e0565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156105e6575f80fd5b506102f96105f5366004611752565b610cb9565b348015610605575f80fd5b50610294600c5481565b34801561061a575f80fd5b506102f9610629366004611792565b610d6a565b60606003805461063d90611817565b80601f016020809104026020016040519081016040528092919081815260200182805461066990611817565b80156106b45780601f1061068b576101008083540402835291602001916106b4565b820191905f5260205f20905b81548152906001019060200180831161069757829003601f168201915b5050505050905090565b5f6106ca338484610e54565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19811461077257828110156107655760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107728533858403610e54565b61077d858585610f77565b506001949350505050565b6005546001600160a01b031633146107b25760405162461bcd60e51b815260040161075c9061184f565b60646107c06009600a611978565b6002546107cd9190611986565b6107d79190611986565b81101561083c5760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060448201526c6c6f776572207468616e20312560981b606482015260840161075c565b6108486009600a611978565b61085290826119a5565b60105550565b6005546001600160a01b031633146108825760405162461bcd60e51b815260040161075c9061184f565b600f805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106ca9185906108cb9086906119bc565b610e54565b6005546001600160a01b031633146108fa5760405162461bcd60e51b815260040161075c9061184f565b60148211156109445760405162461bcd60e51b81526020600482015260166024820152752332b29031b0b73737ba1032bc31b2b2b2101918129760511b604482015260640161075c565b601481111561098e5760405162461bcd60e51b81526020600482015260166024820152752332b29031b0b73737ba1032bc31b2b2b2101918129760511b604482015260640161075c565b600a91909155600955565b6005546001600160a01b031633146109c35760405162461bcd60e51b815260040161075c9061184f565b600d805462ffff00191662010100179055565b60606004805461063d90611817565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610a665760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161075c565b610a733385858403610e54565b5060019392505050565b5f6106ca338484610f77565b6005546001600160a01b03163314610ab35760405162461bcd60e51b815260040161075c9061184f565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610aff5760405162461bcd60e51b815260040161075c9061184f565b620f4240610b0c60025490565b610b169190611986565b8111610b8a5760405162461bcd60e51b815260206004820152603f60248201527f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460448201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900606482015260840161075c565b600c55565b6005546001600160a01b03163314610bb95760405162461bcd60e51b815260040161075c9061184f565b6001600160a01b0382165f9081526008602052604090205481151560ff909116151503610c3b5760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b606482015260840161075c565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610c8f5760405162461bcd60e51b815260040161075c9061184f565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ce35760405162461bcd60e51b815260040161075c9061184f565b801515600d60019054906101000a900460ff16151503610d505760405162461bcd60e51b815260206004820152602260248201527f73776170456e61626c656420616c726561647920617420746869732073746174604482015261329760f11b606482015260840161075c565b600d80549115156101000261ff0019909216919091179055565b6005546001600160a01b03163314610d945760405162461bcd60e51b815260040161075c9061184f565b6001600160a01b038116610df95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610eb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075c565b6001600160a01b038216610f175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600d5462010000900460ff1680610fa557506001600160a01b0383165f9081526008602052604090205460ff165b80610fc757506001600160a01b0382165f9081526008602052604090205460ff165b6110135760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604482015260640161075c565b805f0361102a5761102583835f611281565b505050565b305f90815260208190526040902054600c54811080159081906110505750600d5460ff16155b801561106957506007546001600160a01b038581169116145b801561107c5750600d54610100900460ff165b156110a257600d805460ff191660011790556110978261144e565b600d805460ff191690555b6001600160a01b0385165f9081526008602052604081205460ff16806110df57506001600160a01b0385165f9081526008602052604090205460ff165b806110ec5750600d5460ff165b156110f857505f611139565b6007546001600160a01b03908116908716036111175750600954611139565b6007546001600160a01b03908116908616036111365750600a54611139565b505f5b8015611171575f606461114c83876119a5565b6111569190611986565b905061116281866119cf565b945061116f873083611281565b505b600f5460ff161561126e576001600160a01b0386165f908152600e602052604090205460ff161580156111bc57506001600160a01b0385165f908152600e602052604090205460ff16155b80156111d657506007546001600160a01b03868116911614155b1561126e57601054846111fd876001600160a01b03165f9081526020819052604090205490565b61120791906119bc565b111561126e5760405162461bcd60e51b815260206004820152603060248201527f4d617857616c6c65743a20526563697069656e7420657863656564732074686560448201526f081b585e15d85b1b195d105b5bdd5b9d60821b606482015260840161075c565b611279868686611281565b505050505050565b6001600160a01b0383166112e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075c565b6001600160a01b0382166113475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075c565b6001600160a01b0383165f90815260208190526040902054818110156113be5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161075c565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906113f49084906119bc565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161144091815260200190565b60405180910390a350505050565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f81518110611485576114856119e2565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114dc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150091906119f6565b81600181518110611513576115136119e2565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906115589086905f90869030904290600401611a11565b5f604051808303815f87803b15801561156f575f80fd5b505af1158015611581573d5f803e3d5ffd5b505050505f824761159291906119cf565b600b549091506115ab906001600160a01b0316826115b2565b5050505050565b5f814710156116035760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161075c565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f811461164c576040519150601f19603f3d011682016040523d82523d5f602084013e611651565b606091505b509095945050505050565b5f602080835283518060208501525f5b818110156116885785810183015185820160400152820161166c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116bc575f80fd5b50565b5f80604083850312156116d0575f80fd5b82356116db816116a8565b946020939093013593505050565b5f805f606084860312156116fb575f80fd5b8335611706816116a8565b92506020840135611716816116a8565b929592945050506040919091013590565b5f60208284031215611737575f80fd5b5035919050565b8035801515811461174d575f80fd5b919050565b5f60208284031215611762575f80fd5b61176b8261173e565b9392505050565b5f8060408385031215611783575f80fd5b50508035926020909101359150565b5f602082840312156117a2575f80fd5b813561176b816116a8565b5f80604083850312156117be575f80fd5b82356117c9816116a8565b91506117d76020840161173e565b90509250929050565b5f80604083850312156117f1575f80fd5b82356117fc816116a8565b9150602083013561180c816116a8565b809150509250929050565b600181811c9082168061182b57607f821691505b60208210810361184957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118d257815f19048211156118b8576118b8611884565b808516156118c557918102915b93841c939080029061189d565b509250929050565b5f826118e8575060016106ce565b816118f457505f6106ce565b816001811461190a576002811461191457611930565b60019150506106ce565b60ff84111561192557611925611884565b50506001821b6106ce565b5060208310610133831016604e8410600b8410161715611953575081810a6106ce565b61195d8383611898565b805f190482111561197057611970611884565b029392505050565b5f61176b60ff8416836118da565b5f826119a057634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106ce576106ce611884565b808201808211156106ce576106ce611884565b818103818111156106ce576106ce611884565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a06575f80fd5b815161176b816116a8565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a615784516001600160a01b031683529383019391830191600101611a3c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c641cc8cf53c115e4ec2362e6f384827d1db62f447a17d50b7760aae608f6dcb64736f6c63430008170033

Deployed Bytecode Sourcemap

15756:6078:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11042:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11955:169;;;;;;;;;;-1:-1:-1;11955:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11955:169:0;1023:187:1;15838:41:0;;;;;;;;;;-1:-1:-1;15838:41:0;;;;-1:-1:-1;;;;;15838:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;15838:41:0;1215:229:1;11362:108:0;;;;;;;;;;-1:-1:-1;11450:12:0;;11362:108;;;1595:25:1;;;1583:2;1568:18;11362:108:0;1449:177:1;21041:36:0;;;;;;;;;;-1:-1:-1;21041:36:0;;;;;;;;12132:573;;;;;;;;;;-1:-1:-1;12132:573:0;;;;;:::i;:::-;;:::i;21245:278::-;;;;;;;;;;-1:-1:-1;21245:278:0;;;;;:::i;:::-;;:::i;:::-;;21123:114;;;;;;;;;;-1:-1:-1;21123:114:0;;;;;:::i;:::-;;:::i;11262:92::-;;;;;;;;;;-1:-1:-1;11262:92:0;;11345:1;2769:36:1;;2757:2;2742:18;11262:92:0;2627:184:1;12713:215:0;;;;;;;;;;-1:-1:-1;12713:215:0;;;;;:::i;:::-;;:::i;15886:29::-;;;;;;;;;;-1:-1:-1;15886:29:0;;;;-1:-1:-1;;;;;15886:29:0;;;16200:26;;;;;;;;;;-1:-1:-1;16200:26:0;;;;;;;;;;;16017:25;;;;;;;;;;;;;;;;17686:277;;;;;;;;;;-1:-1:-1;17686:277:0;;;;;:::i;:::-;;:::i;16165:26::-;;;;;;;;;;-1:-1:-1;16165:26:0;;;;;;;;;;;11478:127;;;;;;;;;;-1:-1:-1;11478:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11579:18:0;11552:7;11579:18;;;;;;;;;;;;11478:127;16051:31;;;;;;;;;;-1:-1:-1;16051:31:0;;;;-1:-1:-1;;;;;16051:31:0;;;18097:112;;;;;;;;;;;;;:::i;10171:79::-;;;;;;;;;;-1:-1:-1;10236:6:0;;-1:-1:-1;;;;;10236:6:0;10171:79;;11150:104;;;;;;;;;;;;;:::i;12936:413::-;;;;;;;;;;-1:-1:-1;12936:413:0;;;;;:::i;:::-;;:::i;21686:145::-;;;;;;;;;;-1:-1:-1;21686:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;21785:38:0;21761:4;21785:38;;;:29;:38;;;;;;;;;21686:145;11613:175;;;;;;;;;;-1:-1:-1;11613:175:0;;;;;:::i;:::-;;:::i;21084:30::-;;;;;;;;;;;;;;;;17971:118;;;;;;;;;;-1:-1:-1;17971:118:0;;;;;:::i;:::-;;:::i;20138:241::-;;;;;;;;;;-1:-1:-1;20138:241:0;;;;;:::i;:::-;;:::i;15986:24::-;;;;;;;;;;;;;;;;17440:238;;;;;;;;;;-1:-1:-1;17440:238:0;;;;;:::i;:::-;;:::i;21531:147::-;;;;;;;;;;-1:-1:-1;21531:147:0;;;;;:::i;:::-;;:::i;11796:151::-;;;;;;;;;;-1:-1:-1;11796:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;11912:18:0;;;11885:7;11912:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11796:151;19951:179;;;;;;;;;;-1:-1:-1;19951:179:0;;;;;:::i;:::-;;:::i;16091:34::-;;;;;;;;;;;;;;;;10385:244;;;;;;;;;;-1:-1:-1;10385:244:0;;;;;:::i;:::-;;:::i;11042:100::-;11096:13;11129:5;11122:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11042:100;:::o;11955:169::-;12038:4;12055:39;9574:10;12078:7;12087:6;12055:8;:39::i;:::-;-1:-1:-1;12112:4:0;11955:169;;;;;:::o;12132:573::-;-1:-1:-1;;;;;12316:19:0;;12272:4;12316:19;;;:11;:19;;;;;;;;9574:10;12316:33;;;;;;;;-1:-1:-1;;12364:37:0;;12360:265;;12446:6;12426:16;:26;;12418:79;;;;-1:-1:-1;;;12418:79:0;;4829:2:1;12418:79:0;;;4811:21:1;4868:2;4848:18;;;4841:30;4907:34;4887:18;;;4880:62;-1:-1:-1;;;4958:18:1;;;4951:38;5006:19;;12418:79:0;;;;;;;;;12541:57;12550:6;9574:10;12591:6;12572:16;:25;12541:8;:57::i;:::-;12637:36;12647:6;12655:9;12666:6;12637:9;:36::i;:::-;-1:-1:-1;12693:4:0;;12132:573;-1:-1:-1;;;;12132:573:0:o;21245:278::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;21396:3:::1;21375:16;11345:1:::0;21375:2:::1;:16;:::i;:::-;11450:12:::0;;21358:34:::1;;;;:::i;:::-;21357:42;;;;:::i;:::-;21337:16;:62;;21329:120;;;::::0;-1:-1:-1;;;21329:120:0;;7330:2:1;21329:120:0::1;::::0;::::1;7312:21:1::0;7369:2;7349:18;;;7342:30;7408:34;7388:18;;;7381:62;-1:-1:-1;;;7459:18:1;;;7452:43;7512:19;;21329:120:0::1;7128:409:1::0;21329:120:0::1;21498:16;11345:1:::0;21498:2:::1;:16;:::i;:::-;21478:37;::::0;:16;:37:::1;:::i;:::-;21460:15;:55:::0;-1:-1:-1;21245:278:0:o;21123:114::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;21199:21:::1;:30:::0;;-1:-1:-1;;21199:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21123:114::o;12713:215::-;9574:10;12801:4;12850:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12850:34:0;;;;;;;;;;12801:4;;12818:80;;12841:7;;12850:47;;12887:10;;12850:47;:::i;:::-;12818:8;:80::i;17686:277::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;17797:2:::1;17783:10;:16;;17775:51;;;::::0;-1:-1:-1;;;17775:51:0;;8047:2:1;17775:51:0::1;::::0;::::1;8029:21:1::0;8086:2;8066:18;;;8059:30;-1:-1:-1;;;8105:18:1;;;8098:52;8167:18;;17775:51:0::1;7845:346:1::0;17775:51:0::1;17858:2;17845:9;:15;;17837:50;;;::::0;-1:-1:-1;;;17837:50:0;;8047:2:1;17837:50:0::1;::::0;::::1;8029:21:1::0;8086:2;8066:18;;;8059:30;-1:-1:-1;;;8105:18:1;;;8098:52;8167:18;;17837:50:0::1;7845:346:1::0;17837:50:0::1;17900:9;:22:::0;;;;17933:8:::1;:20:::0;17686:277::o;18097:112::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;18151:14:::1;:21:::0;;-1:-1:-1;;18183:18:0;;;;;18097:112::o;11150:104::-;11206:13;11239:7;11232:14;;;;;:::i;12936:413::-;9574:10;13029:4;13073:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13073:34:0;;;;;;;;;;13126:35;;;;13118:85;;;;-1:-1:-1;;;13118:85:0;;8398:2:1;13118:85:0;;;8380:21:1;8437:2;8417:18;;;8410:30;8476:34;8456:18;;;8449:62;-1:-1:-1;;;8527:18:1;;;8520:35;8572:19;;13118:85:0;8196:401:1;13118:85:0;13239:67;9574:10;13262:7;13290:15;13271:16;:34;13239:8;:67::i;:::-;-1:-1:-1;13337:4:0;;12936:413;-1:-1:-1;;;12936:413:0:o;11613:175::-;11699:4;11716:42;9574:10;11740:9;11751:6;11716:9;:42::i;17971:118::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;18052:15:::1;:29:::0;;-1:-1:-1;;;;;;18052:29:0::1;-1:-1:-1::0;;;;;18052:29:0;;;::::1;::::0;;;::::1;::::0;;17971:118::o;20138:241::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;20253:9:::1;20237:13;11450:12:::0;;;11362:108;20237:13:::1;:25;;;;:::i;:::-;20225:9;:37;20217:113;;;::::0;-1:-1:-1;;;20217:113:0;;8804:2:1;20217:113:0::1;::::0;::::1;8786:21:1::0;8843:2;8823:18;;;8816:30;8882:34;8862:18;;;8855:62;8953:33;8933:18;;;8926:61;9004:19;;20217:113:0::1;8602:427:1::0;20217:113:0::1;20341:18;:30:::0;20138:241::o;17440:238::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17534:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:40;::::1;;:28;::::0;;::::1;:40;;::::0;17526:94:::1;;;::::0;-1:-1:-1;;;17526:94:0;;9236:2:1;17526:94:0::1;::::0;::::1;9218:21:1::0;9275:2;9255:18;;;9248:30;9314:34;9294:18;;;9287:62;-1:-1:-1;;;9365:18:1;;;9358:40;9415:19;;17526:94:0::1;9034:406:1::0;17526:94:0::1;-1:-1:-1::0;;;;;17631:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;17631:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17440:238::o;21531:147::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21622:38:0;;;::::1;;::::0;;;:29:::1;:38;::::0;;;;:48;;-1:-1:-1;;21622:48:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21531:147::o;19951:179::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;20042:8:::1;20027:23;;:11;;;;;;;;;;;:23;;::::0;20019:70:::1;;;::::0;-1:-1:-1;;;20019:70:0;;9647:2:1;20019:70:0::1;::::0;::::1;9629:21:1::0;9686:2;9666:18;;;9659:30;9725:34;9705:18;;;9698:62;-1:-1:-1;;;9776:18:1;;;9769:32;9818:19;;20019:70:0::1;9445:398:1::0;20019:70:0::1;20100:11;:22:::0;;;::::1;;;;-1:-1:-1::0;;20100:22:0;;::::1;::::0;;;::::1;::::0;;19951:179::o;10385:244::-;10298:6;;-1:-1:-1;;;;;10298:6:0;9574:10;10298:22;10290:67;;;;-1:-1:-1;;;10290:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10474:22:0;::::1;10466:73;;;::::0;-1:-1:-1;;;10466:73:0;;10050:2:1;10466:73:0::1;::::0;::::1;10032:21:1::0;10089:2;10069:18;;;10062:30;10128:34;10108:18;;;10101:62;-1:-1:-1;;;10179:18:1;;;10172:36;10225:19;;10466:73:0::1;9848:402:1::0;10466:73:0::1;10576:6;::::0;10555:38:::1;::::0;-1:-1:-1;;;;;10555:38:0;;::::1;::::0;10576:6:::1;::::0;10555:38:::1;::::0;10576:6:::1;::::0;10555:38:::1;10604:6;:17:::0;;-1:-1:-1;;;;;;10604:17:0::1;-1:-1:-1::0;;;;;10604:17:0;;;::::1;::::0;;;::::1;::::0;;10385:244::o;15104:380::-;-1:-1:-1;;;;;15240:19:0;;15232:68;;;;-1:-1:-1;;;15232:68:0;;10457:2:1;15232:68:0;;;10439:21:1;10496:2;10476:18;;;10469:30;10535:34;10515:18;;;10508:62;-1:-1:-1;;;10586:18:1;;;10579:34;10630:19;;15232:68:0;10255:400:1;15232:68:0;-1:-1:-1;;;;;15319:21:0;;15311:68;;;;-1:-1:-1;;;15311:68:0;;10862:2:1;15311:68:0;;;10844:21:1;10901:2;10881:18;;;10874:30;10940:34;10920:18;;;10913:62;-1:-1:-1;;;10991:18:1;;;10984:32;11033:19;;15311:68:0;10660:398:1;15311:68:0;-1:-1:-1;;;;;15392:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15444:32;;1595:25:1;;;15444:32:0;;1568:18:1;15444:32:0;;;;;;;15104:380;;;:::o;18217:1726::-;18314:14;;;;;;;;:43;;-1:-1:-1;;;;;;18332:25:0;;;;;;:19;:25;;;;;;;;18314:43;:70;;;-1:-1:-1;;;;;;18361:23:0;;;;;;:19;:23;;;;;;;;18314:70;18306:107;;;;-1:-1:-1;;;18306:107:0;;11265:2:1;18306:107:0;;;11247:21:1;11304:2;11284:18;;;11277:30;11343:26;11323:18;;;11316:54;11387:18;;18306:107:0;11063:348:1;18306:107:0;18437:6;18447:1;18437:11;18433:93;;18465:28;18481:4;18487:2;18491:1;18465:15;:28::i;:::-;18217:1726;;;:::o;18433:93::-;18581:4;18532:28;11579:18;;;;;;;;;;;18639;;18615:42;;;;;;;18674:33;;-1:-1:-1;18699:8:0;;;;18698:9;18674:33;:69;;;;-1:-1:-1;18730:13:0;;-1:-1:-1;;;;;18724:19:0;;;18730:13;;18724:19;18674:69;:97;;;;-1:-1:-1;18760:11:0;;;;;;;18674:97;18670:239;;;18798:8;:15;;-1:-1:-1;;18798:15:0;18809:4;18798:15;;;18828:33;18840:20;18828:11;:33::i;:::-;18881:8;:16;;-1:-1:-1;;18881:16:0;;;18670:239;-1:-1:-1;;;;;18954:25:0;;18921:18;18954:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18983:23:0;;;;;;:19;:23;;;;;;;;18954:52;:64;;;-1:-1:-1;19010:8:0;;;;18954:64;18950:319;;;-1:-1:-1;19048:1:0;18950:319;;;19079:13;;-1:-1:-1;;;;;19079:13:0;;;19071:21;;;;19067:202;;-1:-1:-1;19122:8:0;;19067:202;;;19158:13;;-1:-1:-1;;;;;19158:13:0;;;19152:19;;;;19148:121;;-1:-1:-1;19201:9:0;;19148:121;;;-1:-1:-1;19256:1:0;19148:121;19285:14;;19281:183;;19316:12;19355:3;19332:19;19341:10;19332:6;:19;:::i;:::-;19331:27;;;;:::i;:::-;19316:42;-1:-1:-1;19382:13:0;19316:42;19382:6;:13;:::i;:::-;19373:22;;19410:42;19426:4;19440;19447;19410:15;:42::i;:::-;19301:163;19281:183;19480:21;;;;19476:414;;;-1:-1:-1;;;;;19533:35:0;;;;;;:29;:35;;;;;;;;19532:36;:92;;;;-1:-1:-1;;;;;;19591:33:0;;;;;;:29;:33;;;;;;;;19590:34;19532:92;:132;;;;-1:-1:-1;19651:13:0;;-1:-1:-1;;;;;19645:19:0;;;19651:13;;19645:19;;19532:132;19528:351;;;19755:15;;19745:6;19729:13;19739:2;-1:-1:-1;;;;;11579:18:0;11552:7;11579:18;;;;;;;;;;;;11478:127;19729:13;:22;;;;:::i;:::-;:41;;19699:164;;;;-1:-1:-1;;;19699:164:0;;11751:2:1;19699:164:0;;;11733:21:1;11790:2;11770:18;;;11763:30;11829:34;11809:18;;;11802:62;-1:-1:-1;;;11880:18:1;;;11873:46;11936:19;;19699:164:0;11549:412:1;19699:164:0;19902:33;19918:4;19924:2;19928:6;19902:15;:33::i;:::-;18295:1648;;;18217:1726;;;:::o;13357:733::-;-1:-1:-1;;;;;13497:20:0;;13489:70;;;;-1:-1:-1;;;13489:70:0;;12168:2:1;13489:70:0;;;12150:21:1;12207:2;12187:18;;;12180:30;12246:34;12226:18;;;12219:62;-1:-1:-1;;;12297:18:1;;;12290:35;12342:19;;13489:70:0;11966:401:1;13489:70:0;-1:-1:-1;;;;;13578:23:0;;13570:71;;;;-1:-1:-1;;;13570:71:0;;12574:2:1;13570:71:0;;;12556:21:1;12613:2;12593:18;;;12586:30;12652:34;12632:18;;;12625:62;-1:-1:-1;;;12703:18:1;;;12696:33;12746:19;;13570:71:0;12372:399:1;13570:71:0;-1:-1:-1;;;;;13738:17:0;;13714:21;13738:17;;;;;;;;;;;13774:23;;;;13766:74;;;;-1:-1:-1;;;13766:74:0;;12978:2:1;13766:74:0;;;12960:21:1;13017:2;12997:18;;;12990:30;13056:34;13036:18;;;13029:62;-1:-1:-1;;;13107:18:1;;;13100:36;13153:19;;13766:74:0;12776:402:1;13766:74:0;-1:-1:-1;;;;;13876:17:0;;;:9;:17;;;;;;;;;;;13896:22;;;13876:42;;13940:20;;;;;;;;:30;;13912:6;;13876:9;13940:30;;13912:6;;13940:30;:::i;:::-;;;;;;;;14005:9;-1:-1:-1;;;;;13988:35:0;13997:6;-1:-1:-1;;;;;13988:35:0;;14016:6;13988:35;;;;1595:25:1;;1583:2;1568:18;;1449:177;13988:35:0;;;;;;;;13478:612;13357:733;;;:::o;20387:577::-;20531:16;;;20545:1;20531:16;;;;;;;;20473:21;;20448:22;;20531:16;20545:1;20531:16;;;;;;;;;;-1:-1:-1;20531:16:0;20507:40;;20576:4;20558;20563:1;20558:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20558:23:0;;;:7;;;;;;;;;;:23;;;;20602:15;;:22;;;-1:-1:-1;;;20602:22:0;;;;:15;;;;;:20;;:22;;;;;20558:7;;20602:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20592:4;20597:1;20592:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20592:32:0;;;:7;;;;;;;;;:32;20637:15;;:186;;-1:-1:-1;;;20637:186:0;;:15;;;:66;;:186;;20718:11;;20637:15;;20760:4;;20787;;20807:15;;20637:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20836:18;20881:14;20857:21;:38;;;;:::i;:::-;20916:15;;20836:59;;-1:-1:-1;20908:46:0;;-1:-1:-1;;;;;20916:15:0;20836:59;20908:34;:46::i;:::-;;20437:527;;;20387:577;:::o;9188:266::-;9267:4;9316:6;9291:21;:31;;9283:73;;;;-1:-1:-1;;;9283:73:0;;14890:2:1;9283:73:0;;;14872:21:1;14929:2;14909:18;;;14902:30;14968:31;14948:18;;;14941:59;15017:18;;9283:73:0;14688:353:1;9283:73:0;9370:12;9388:9;-1:-1:-1;;;;;9388:14:0;9410:6;9388:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9369:52:0;;9188:266;-1:-1:-1;;;;;9188:266:0: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;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2092:180::-;2151:6;2204:2;2192:9;2183:7;2179:23;2175:32;2172:52;;;2220:1;2217;2210:12;2172:52;-1:-1:-1;2243:23:1;;2092:180;-1:-1:-1;2092:180:1:o;2277:160::-;2342:20;;2398:13;;2391:21;2381:32;;2371:60;;2427:1;2424;2417:12;2371:60;2277:160;;;:::o;2442:180::-;2498:6;2551:2;2539:9;2530:7;2526:23;2522:32;2519:52;;;2567:1;2564;2557:12;2519:52;2590:26;2606:9;2590:26;:::i;:::-;2580:36;2442:180;-1:-1:-1;;;2442:180:1:o;3024:248::-;3092:6;3100;3153:2;3141:9;3132:7;3128:23;3124:32;3121:52;;;3169:1;3166;3159:12;3121:52;-1:-1:-1;;3192:23:1;;;3262:2;3247:18;;;3234:32;;-1:-1:-1;3024:248:1:o;3277:247::-;3336:6;3389:2;3377:9;3368:7;3364:23;3360:32;3357:52;;;3405:1;3402;3395:12;3357:52;3444:9;3431:23;3463:31;3488:5;3463:31;:::i;3529:315::-;3594:6;3602;3655:2;3643:9;3634:7;3630:23;3626:32;3623:52;;;3671:1;3668;3661:12;3623:52;3710:9;3697:23;3729:31;3754:5;3729:31;:::i;:::-;3779:5;-1:-1:-1;3803:35:1;3834:2;3819:18;;3803:35;:::i;:::-;3793:45;;3529:315;;;;;:::o;3849:388::-;3917:6;3925;3978:2;3966:9;3957:7;3953:23;3949:32;3946:52;;;3994:1;3991;3984:12;3946:52;4033:9;4020:23;4052:31;4077:5;4052:31;:::i;:::-;4102:5;-1:-1:-1;4159:2:1;4144:18;;4131:32;4172:33;4131:32;4172:33;:::i;:::-;4224:7;4214:17;;;3849:388;;;;;:::o;4242:380::-;4321:1;4317:12;;;;4364;;;4385:61;;4439:4;4431:6;4427:17;4417:27;;4385:61;4492:2;4484:6;4481:14;4461:18;4458:38;4455:161;;4538:10;4533:3;4529:20;4526:1;4519:31;4573:4;4570:1;4563:15;4601:4;4598:1;4591:15;4455:161;;4242:380;;;:::o;5036:356::-;5238:2;5220:21;;;5257:18;;;5250:30;5316:34;5311:2;5296:18;;5289:62;5383:2;5368:18;;5036:356::o;5397:127::-;5458:10;5453:3;5449:20;5446:1;5439:31;5489:4;5486:1;5479:15;5513:4;5510:1;5503:15;5529:416;5618:1;5655:5;5618:1;5669:270;5690:7;5680:8;5677:21;5669:270;;;5749:4;5745:1;5741:6;5737:17;5731:4;5728:27;5725:53;;;5758:18;;:::i;:::-;5808:7;5798:8;5794:22;5791:55;;;5828:16;;;;5791:55;5907:22;;;;5867:15;;;;5669:270;;;5673:3;5529:416;;;;;:::o;5950:806::-;5999:5;6029:8;6019:80;;-1:-1:-1;6070:1:1;6084:5;;6019:80;6118:4;6108:76;;-1:-1:-1;6155:1:1;6169:5;;6108:76;6200:4;6218:1;6213:59;;;;6286:1;6281:130;;;;6193:218;;6213:59;6243:1;6234:10;;6257:5;;;6281:130;6318:3;6308:8;6305:17;6302:43;;;6325:18;;:::i;:::-;-1:-1:-1;;6381:1:1;6367:16;;6396:5;;6193:218;;6495:2;6485:8;6482:16;6476:3;6470:4;6467:13;6463:36;6457:2;6447:8;6444:16;6439:2;6433:4;6430:12;6426:35;6423:77;6420:159;;;-1:-1:-1;6532:19:1;;;6564:5;;6420:159;6611:34;6636:8;6630:4;6611:34;:::i;:::-;6681:6;6677:1;6673:6;6669:19;6660:7;6657:32;6654:58;;;6692:18;;:::i;:::-;6730:20;;5950:806;-1:-1:-1;;;5950:806:1:o;6761:140::-;6819:5;6848:47;6889:4;6879:8;6875:19;6869:4;6848:47;:::i;6906:217::-;6946:1;6972;6962:132;;7016:10;7011:3;7007:20;7004:1;6997:31;7051:4;7048:1;7041:15;7079:4;7076:1;7069:15;6962:132;-1:-1:-1;7108:9:1;;6906:217::o;7542:168::-;7615:9;;;7646;;7663:15;;;7657:22;;7643:37;7633:71;;7684:18;;:::i;7715:125::-;7780:9;;;7801:10;;;7798:36;;;7814:18;;:::i;11416:128::-;11483:9;;;11504:11;;;11501:37;;;11518:18;;:::i;13315:127::-;13376:10;13371:3;13367:20;13364:1;13357:31;13407:4;13404:1;13397:15;13431:4;13428:1;13421:15;13447:251;13517:6;13570:2;13558:9;13549:7;13545:23;13541:32;13538:52;;;13586:1;13583;13576:12;13538:52;13618:9;13612:16;13637:31;13662:5;13637:31;:::i;13703:980::-;13965:4;14013:3;14002:9;13998:19;14044:6;14033:9;14026:25;14070:2;14108:6;14103:2;14092:9;14088:18;14081:34;14151:3;14146:2;14135:9;14131:18;14124:31;14175:6;14210;14204:13;14241:6;14233;14226:22;14279:3;14268:9;14264:19;14257:26;;14318:2;14310:6;14306:15;14292:29;;14339:1;14349:195;14363:6;14360:1;14357:13;14349:195;;;14428:13;;-1:-1:-1;;;;;14424:39:1;14412:52;;14519:15;;;;14484:12;;;;14460:1;14378:9;14349:195;;;-1:-1:-1;;;;;;;14600:32:1;;;;14595:2;14580:18;;14573:60;-1:-1:-1;;;14664:3:1;14649:19;14642:35;14561:3;13703:980;-1:-1:-1;;;13703:980:1:o

Swarm Source

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