ETH Price: $3,306.94 (-1.92%)

Token

Alien (👽)
 

Overview

Max Total Supply

500 👽

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000001296 👽

Value
$0.00
0x4fd5489586dd378f7c85c9a1cd34509ccf7f4cb7
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:
Alien

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-21
*/

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

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

    function setFeeTo(address) external;

    function allPairsLength() external view returns (uint256);

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

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

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

interface IERC20 {

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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

interface IERC20Metadata is IERC20 {

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

    function decimals() external view returns (uint8);

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

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 symbol() external view virtual override returns (string memory) {
        return _symbol;
    }

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

    function _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 _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }
}

contract Alien is Ownable, ERC20 {
    mapping(address => uint256) private _balances;

    uint256 private _numTokensSellToAddToSwap = 50 * (10**decimals());
    bool inSwapAndLiquify;

    uint256 public override totalSupply;
    uint256 public buySellLiquidityTax = 5;
    uint256 public sellDevelopmentTax = 40;
    address public developmentWallet = 0xf0f36F9ff99d37E6Da4E4F3600efd9474e0FF513;
    address public constant  DEAD = address(0xdead);// burn LP to dead address    

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    mapping(address => bool) private _isExcludedFromFee;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() ERC20("Alien", unicode"👽") {
        totalSupply = 500 * (10**decimals());
        _mint(msg.sender, totalSupply);

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

        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[developmentWallet] = true;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
    }

    function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
       
        uint256 half = (contractTokenBalance / 2);
        uint256 otherHalf = (contractTokenBalance - half);

        uint256 initialBalance = address(this).balance;

        _swapTokensForEth(half);

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

        _addLiquidity(otherHalf, newBalance);

        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function excludeFromFee (address _user, bool value) external onlyOwner {
        _isExcludedFromFee[_user]= value;
    }

    function updateBuySellLiquidityTax(uint256 newAmount) external onlyOwner {
        buySellLiquidityTax = newAmount;
    }

    function updateSellDevelopmentTax(uint256 newSellAmount ) external onlyOwner {
        sellDevelopmentTax = newSellAmount;
    }

    function swapAndSendToMarketing (uint256 tokens) private lockTheSwap {
        uint256 initialBalance = address(this).balance;
        _swapTokensForEth(tokens);
        uint256 newBalance = address(this).balance - initialBalance;
        payable (developmentWallet).transfer(newBalance);

    }

    function _swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

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

    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            DEAD,
            block.timestamp
        );
    }

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

        uint256 transferAmount;
        if (
            (from == uniswapV2Pair || to == uniswapV2Pair) && !inSwapAndLiquify
        ) {
            // DEX transaction
            if (
                from != uniswapV2Pair &&
                ((balanceOf(address(this))) >= _numTokensSellToAddToSwap)

            ) {
                    uint256 totalfee = 2*(buySellLiquidityTax)+sellDevelopmentTax;
                    _numTokensSellToAddToSwap = balanceOf(address(this));

                    uint256 marketingTokens = _numTokensSellToAddToSwap * sellDevelopmentTax / totalfee;
                    swapAndSendToMarketing(marketingTokens); 

                    uint256 liquidityTokens = _numTokensSellToAddToSwap - marketingTokens;

                // sell transaction with threshold to swap
                _swapAndLiquify(liquidityTokens);
            }
            if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
                // no tax on excluded account
                transferAmount = amount;
            } else {
                // 1% buy tax to LP, 2% sell tax (1% to LP, 1% to dev wallet)
                uint256 liquidityAmount = ((amount * buySellLiquidityTax) /
                    100);
                if (from == uniswapV2Pair) {
                    // buy transaction
                    transferAmount = amount - liquidityAmount;
                } else {
                    // sell transaction
                    uint256 developmentAmount = ((amount * sellDevelopmentTax) /
                        100);

                    transferAmount =
                        amount -
                        liquidityAmount -
                        developmentAmount;
                    super._transfer(from, address(this), developmentAmount); // only on sell transaction
                }
                super._transfer(from, address(this), liquidityAmount); // on buy/sell both transactions
            }
        } else {
            // normal wallet transaction
            transferAmount = amount;
        }
        super._transfer(from, to, transferAmount);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"buySellLiquidityTax","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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevelopmentTax","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateBuySellLiquidityTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellAmount","type":"uint256"}],"name":"updateSellDevelopmentTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052620000126012600a620004fe565b6200001f90603262000516565b6007556005600a556028600b55600c80546001600160a01b03191673f0f36f9ff99d37e6da4e4f3600efd9474e0ff5131790553480156200005f57600080fd5b506040518060400160405280600581526020016420b634b2b760d91b81525060405180604001604052806004815260200163f09f91bd60e01b815250620000b5620000af620002cd60201b60201c565b620002d1565b6004620000c38382620005d5565b506005620000d28282620005d5565b50620000df915050601290565b620000ec90600a620004fe565b620000fa906101f462000516565b60098190556200010c90339062000321565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018a9190620006a1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe9190620006a1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002729190620006a1565b6001600160a01b0390811660a0529081166080819052336000908152600d60205260408082208054600160ff199182168117909255600c549095168352818320805486168217905592825290208054909216179055620006e2565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166200037c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060036000828254620003909190620006cc565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000440578160001904821115620004245762000424620003e9565b808516156200043257918102915b93841c939080029062000404565b509250929050565b6000826200045957506001620004f8565b816200046857506000620004f8565b81600181146200048157600281146200048c57620004ac565b6001915050620004f8565b60ff841115620004a057620004a0620003e9565b50506001821b620004f8565b5060208310610133831016604e8410600b8410161715620004d1575081810a620004f8565b620004dd8383620003ff565b8060001904821115620004f457620004f4620003e9565b0290505b92915050565b60006200050f60ff84168362000448565b9392505050565b8082028115828204841417620004f857620004f8620003e9565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200055b57607f821691505b6020821081036200057c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005d057600081815260208120601f850160051c81016020861015620005ab5750805b601f850160051c820191505b81811015620005cc57828155600101620005b7565b5050505b505050565b81516001600160401b03811115620005f157620005f162000530565b620006098162000602845462000546565b8462000582565b602080601f831160018114620006415760008415620006285750858301515b600019600386901b1c1916600185901b178555620005cc565b600085815260208120601f198616915b82811015620006725788860151825594840194600190910190840162000651565b5085821015620006915787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006b457600080fd5b81516001600160a01b03811681146200050f57600080fd5b80820180821115620004f857620004f8620003e9565b60805160a05161156f620007476000396000818161029b015281816109d701528181610a1201528181610a5c0152610b980152600081816101e701528181610ee701528181610fa001528181610fcf0152818161106101526110be015261156f6000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb146103b3578063ad8052bb146103d3578063c04a5414146103e9578063dd62ed3e14610409578063df8408fe14610429578063f2fde38b1461044957600080fd5b806370a08231146102ff578063715018a614610335578063739822b21461034a5780638da5cb5b1461036057806395d89b411461037e578063a457c2d71461039357600080fd5b806323b872dd1161010857806323b872dd1461022d578063313ce5671461024d578063395093511461026957806349bd5a5e146102895780634dd70f99146102bd5780635661e201146102df57600080fd5b806303fd2a451461015057806306fdde0314610183578063095ea7b3146101a55780631694505e146101d557806318160ddd1461020957600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016661dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561018f57600080fd5b50610198610469565b60405161017a919061113c565b3480156101b157600080fd5b506101c56101c036600461119f565b6104fb565b604051901515815260200161017a565b3480156101e157600080fd5b506101667f000000000000000000000000000000000000000000000000000000000000000081565b34801561021557600080fd5b5061021f60095481565b60405190815260200161017a565b34801561023957600080fd5b506101c56102483660046111cb565b610515565b34801561025957600080fd5b506040516012815260200161017a565b34801561027557600080fd5b506101c561028436600461119f565b610539565b34801561029557600080fd5b506101667f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c957600080fd5b506102dd6102d836600461120c565b61055b565b005b3480156102eb57600080fd5b506102dd6102fa36600461120c565b610593565b34801561030b57600080fd5b5061021f61031a366004611225565b6001600160a01b031660009081526001602052604090205490565b34801561034157600080fd5b506102dd6105c2565b34801561035657600080fd5b5061021f600a5481565b34801561036c57600080fd5b506000546001600160a01b0316610166565b34801561038a57600080fd5b506101986105f8565b34801561039f57600080fd5b506101c56103ae36600461119f565b610607565b3480156103bf57600080fd5b506101c56103ce36600461119f565b610682565b3480156103df57600080fd5b5061021f600b5481565b3480156103f557600080fd5b50600c54610166906001600160a01b031681565b34801561041557600080fd5b5061021f610424366004611249565b610690565b34801561043557600080fd5b506102dd610444366004611282565b6106bb565b34801561045557600080fd5b506102dd610464366004611225565b610710565b606060048054610478906112b5565b80601f01602080910402602001604051908101604052809291908181526020018280546104a4906112b5565b80156104f15780601f106104c6576101008083540402835291602001916104f1565b820191906000526020600020905b8154815290600101906020018083116104d457829003601f168201915b5050505050905090565b6000336105098185856107ab565b60019150505b92915050565b6000336105238582856108cf565b61052e858585610949565b506001949350505050565b60003361050981858561054c8383610690565b6105569190611305565b6107ab565b6000546001600160a01b0316331461058e5760405162461bcd60e51b815260040161058590611318565b60405180910390fd5b600a55565b6000546001600160a01b031633146105bd5760405162461bcd60e51b815260040161058590611318565b600b55565b6000546001600160a01b031633146105ec5760405162461bcd60e51b815260040161058590611318565b6105f66000610c41565b565b606060058054610478906112b5565b600033816106158286610690565b9050838110156106755760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610585565b61052e82868684036107ab565b600033610509818585610949565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146106e55760405162461bcd60e51b815260040161058590611318565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461073a5760405162461bcd60e51b815260040161058590611318565b6001600160a01b03811661079f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610585565b6107a881610c41565b50565b6001600160a01b03831661080d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610585565b6001600160a01b03821661086e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610585565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108db8484610690565b9050600019811461094357818110156109365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610585565b61094384848484036107ab565b50505050565b6001600160a01b03831661096f5760405162461bcd60e51b81526004016105859061134d565b6001600160a01b0382166109955760405162461bcd60e51b815260040161058590611392565b806109b5846001600160a01b031660009081526001602052604090205490565b10156109d35760405162461bcd60e51b8152600401610585906113d5565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161480610a4657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b8015610a55575060085460ff16155b15610c33577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614158015610aad57506007543060009081526001602052604090205410155b15610b2d576000600b54600a546002610ac6919061141b565b610ad09190611305565b306000908152600160205260409020549091506007819055600b546000918391610af99161141b565b610b039190611432565b9050610b0e81610c91565b600081600754610b1e9190611454565b9050610b2981610cff565b5050505b6001600160a01b0384166000908152600d602052604090205460ff1680610b6c57506001600160a01b0383166000908152600d602052604090205460ff165b15610b78575080610c36565b60006064600a5484610b8a919061141b565b610b949190611432565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603610be057610bd98184611454565b9150610c22565b60006064600b5485610bf2919061141b565b610bfc9190611432565b905080610c098386611454565b610c139190611454565b9250610c20863083610d9d565b505b610c2d853083610d9d565b50610c36565b50805b610943848483610d9d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805460ff1916600117905547610ca882610e90565b6000610cb48247611454565b600c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610cef573d6000803e3d6000fd5b50506008805460ff191690555050565b6008805460ff191660011790556000610d19600283611432565b90506000610d278284611454565b905047610d3383610e90565b6000610d3f8247611454565b9050610d4b838261105b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506008805460ff19169055505050565b6001600160a01b038316610dc35760405162461bcd60e51b81526004016105859061134d565b6001600160a01b038216610de95760405162461bcd60e51b815260040161058590611392565b6001600160a01b03831660009081526001602052604090205481811015610e225760405162461bcd60e51b8152600401610585906113d5565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e829086815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610ec557610ec5611467565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f67919061147d565b81600181518110610f7a57610f7a611467565b60200260200101906001600160a01b031690816001600160a01b031681525050610fc5307f0000000000000000000000000000000000000000000000000000000000000000846107ab565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac94783600084306110054261012c611305565b6040518663ffffffff1660e01b815260040161102595949392919061149a565b600060405180830381600087803b15801561103f57600080fd5b505af1158015611053573d6000803e3d6000fd5b505050505050565b611086307f0000000000000000000000000000000000000000000000000000000000000000846107ab565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611110573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611135919061150b565b5050505050565b600060208083528351808285015260005b818110156111695785810183015185820160400152820161114d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a857600080fd5b600080604083850312156111b257600080fd5b82356111bd8161118a565b946020939093013593505050565b6000806000606084860312156111e057600080fd5b83356111eb8161118a565b925060208401356111fb8161118a565b929592945050506040919091013590565b60006020828403121561121e57600080fd5b5035919050565b60006020828403121561123757600080fd5b81356112428161118a565b9392505050565b6000806040838503121561125c57600080fd5b82356112678161118a565b915060208301356112778161118a565b809150509250929050565b6000806040838503121561129557600080fd5b82356112a08161118a565b91506020830135801515811461127757600080fd5b600181811c908216806112c957607f821691505b6020821081036112e957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050f5761050f6112ef565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808202811582820484141761050f5761050f6112ef565b60008261144f57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561050f5761050f6112ef565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561148f57600080fd5b81516112428161118a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114ea5784516001600160a01b0316835293830193918301916001016114c5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561152057600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122017904b9356651d3f5e170e9904cafdf3a63a3fb29e1ef4a2c4dcf65cdc41f10564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb146103b3578063ad8052bb146103d3578063c04a5414146103e9578063dd62ed3e14610409578063df8408fe14610429578063f2fde38b1461044957600080fd5b806370a08231146102ff578063715018a614610335578063739822b21461034a5780638da5cb5b1461036057806395d89b411461037e578063a457c2d71461039357600080fd5b806323b872dd1161010857806323b872dd1461022d578063313ce5671461024d578063395093511461026957806349bd5a5e146102895780634dd70f99146102bd5780635661e201146102df57600080fd5b806303fd2a451461015057806306fdde0314610183578063095ea7b3146101a55780631694505e146101d557806318160ddd1461020957600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016661dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561018f57600080fd5b50610198610469565b60405161017a919061113c565b3480156101b157600080fd5b506101c56101c036600461119f565b6104fb565b604051901515815260200161017a565b3480156101e157600080fd5b506101667f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561021557600080fd5b5061021f60095481565b60405190815260200161017a565b34801561023957600080fd5b506101c56102483660046111cb565b610515565b34801561025957600080fd5b506040516012815260200161017a565b34801561027557600080fd5b506101c561028436600461119f565b610539565b34801561029557600080fd5b506101667f000000000000000000000000b79f05a176cfe4c1c2bfadf660885526f418194a81565b3480156102c957600080fd5b506102dd6102d836600461120c565b61055b565b005b3480156102eb57600080fd5b506102dd6102fa36600461120c565b610593565b34801561030b57600080fd5b5061021f61031a366004611225565b6001600160a01b031660009081526001602052604090205490565b34801561034157600080fd5b506102dd6105c2565b34801561035657600080fd5b5061021f600a5481565b34801561036c57600080fd5b506000546001600160a01b0316610166565b34801561038a57600080fd5b506101986105f8565b34801561039f57600080fd5b506101c56103ae36600461119f565b610607565b3480156103bf57600080fd5b506101c56103ce36600461119f565b610682565b3480156103df57600080fd5b5061021f600b5481565b3480156103f557600080fd5b50600c54610166906001600160a01b031681565b34801561041557600080fd5b5061021f610424366004611249565b610690565b34801561043557600080fd5b506102dd610444366004611282565b6106bb565b34801561045557600080fd5b506102dd610464366004611225565b610710565b606060048054610478906112b5565b80601f01602080910402602001604051908101604052809291908181526020018280546104a4906112b5565b80156104f15780601f106104c6576101008083540402835291602001916104f1565b820191906000526020600020905b8154815290600101906020018083116104d457829003601f168201915b5050505050905090565b6000336105098185856107ab565b60019150505b92915050565b6000336105238582856108cf565b61052e858585610949565b506001949350505050565b60003361050981858561054c8383610690565b6105569190611305565b6107ab565b6000546001600160a01b0316331461058e5760405162461bcd60e51b815260040161058590611318565b60405180910390fd5b600a55565b6000546001600160a01b031633146105bd5760405162461bcd60e51b815260040161058590611318565b600b55565b6000546001600160a01b031633146105ec5760405162461bcd60e51b815260040161058590611318565b6105f66000610c41565b565b606060058054610478906112b5565b600033816106158286610690565b9050838110156106755760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610585565b61052e82868684036107ab565b600033610509818585610949565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146106e55760405162461bcd60e51b815260040161058590611318565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461073a5760405162461bcd60e51b815260040161058590611318565b6001600160a01b03811661079f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610585565b6107a881610c41565b50565b6001600160a01b03831661080d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610585565b6001600160a01b03821661086e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610585565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108db8484610690565b9050600019811461094357818110156109365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610585565b61094384848484036107ab565b50505050565b6001600160a01b03831661096f5760405162461bcd60e51b81526004016105859061134d565b6001600160a01b0382166109955760405162461bcd60e51b815260040161058590611392565b806109b5846001600160a01b031660009081526001602052604090205490565b10156109d35760405162461bcd60e51b8152600401610585906113d5565b60007f000000000000000000000000b79f05a176cfe4c1c2bfadf660885526f418194a6001600160a01b0316846001600160a01b03161480610a4657507f000000000000000000000000b79f05a176cfe4c1c2bfadf660885526f418194a6001600160a01b0316836001600160a01b0316145b8015610a55575060085460ff16155b15610c33577f000000000000000000000000b79f05a176cfe4c1c2bfadf660885526f418194a6001600160a01b0316846001600160a01b031614158015610aad57506007543060009081526001602052604090205410155b15610b2d576000600b54600a546002610ac6919061141b565b610ad09190611305565b306000908152600160205260409020549091506007819055600b546000918391610af99161141b565b610b039190611432565b9050610b0e81610c91565b600081600754610b1e9190611454565b9050610b2981610cff565b5050505b6001600160a01b0384166000908152600d602052604090205460ff1680610b6c57506001600160a01b0383166000908152600d602052604090205460ff165b15610b78575080610c36565b60006064600a5484610b8a919061141b565b610b949190611432565b90507f000000000000000000000000b79f05a176cfe4c1c2bfadf660885526f418194a6001600160a01b0316856001600160a01b031603610be057610bd98184611454565b9150610c22565b60006064600b5485610bf2919061141b565b610bfc9190611432565b905080610c098386611454565b610c139190611454565b9250610c20863083610d9d565b505b610c2d853083610d9d565b50610c36565b50805b610943848483610d9d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805460ff1916600117905547610ca882610e90565b6000610cb48247611454565b600c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610cef573d6000803e3d6000fd5b50506008805460ff191690555050565b6008805460ff191660011790556000610d19600283611432565b90506000610d278284611454565b905047610d3383610e90565b6000610d3f8247611454565b9050610d4b838261105b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506008805460ff19169055505050565b6001600160a01b038316610dc35760405162461bcd60e51b81526004016105859061134d565b6001600160a01b038216610de95760405162461bcd60e51b815260040161058590611392565b6001600160a01b03831660009081526001602052604090205481811015610e225760405162461bcd60e51b8152600401610585906113d5565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e829086815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610ec557610ec5611467565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f67919061147d565b81600181518110610f7a57610f7a611467565b60200260200101906001600160a01b031690816001600160a01b031681525050610fc5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846107ab565b6001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac94783600084306110054261012c611305565b6040518663ffffffff1660e01b815260040161102595949392919061149a565b600060405180830381600087803b15801561103f57600080fd5b505af1158015611053573d6000803e3d6000fd5b505050505050565b611086307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846107ab565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611110573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611135919061150b565b5050505050565b600060208083528351808285015260005b818110156111695785810183015185820160400152820161114d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a857600080fd5b600080604083850312156111b257600080fd5b82356111bd8161118a565b946020939093013593505050565b6000806000606084860312156111e057600080fd5b83356111eb8161118a565b925060208401356111fb8161118a565b929592945050506040919091013590565b60006020828403121561121e57600080fd5b5035919050565b60006020828403121561123757600080fd5b81356112428161118a565b9392505050565b6000806040838503121561125c57600080fd5b82356112678161118a565b915060208301356112778161118a565b809150509250929050565b6000806040838503121561129557600080fd5b82356112a08161118a565b91506020830135801515811461127757600080fd5b600181811c908216806112c957607f821691505b6020821081036112e957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050f5761050f6112ef565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808202811582820484141761050f5761050f6112ef565b60008261144f57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561050f5761050f6112ef565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561148f57600080fd5b81516112428161118a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114ea5784516001600160a01b0316835293830193918301916001016114c5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561152057600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122017904b9356651d3f5e170e9904cafdf3a63a3fb29e1ef4a2c4dcf65cdc41f10564736f6c63430008120033

Deployed Bytecode Sourcemap

17142:6164:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17554:47;;;;;;;;;;;;17594:6;17554:47;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;17554:47:0;;;;;;;;12149:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13116:244::-;;;;;;;;;;-1:-1:-1;13116:244:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;13116:244:0;1231:187:1;17640:51:0;;;;;;;;;;;;;;;17338:35;;;;;;;;;;;;;;;;;;;1803:25:1;;;1791:2;1776:18;17338:35:0;1657:177:1;13368:297:0;;;;;;;;;;-1:-1:-1;13368:297:0;;;;;:::i;:::-;;:::i;12562:93::-;;;;;;;;;;-1:-1:-1;12562:93:0;;12645:2;2442:36:1;;2430:2;2415:18;12562:93:0;2300:184:1;13673:272:0;;;;;;;;;;-1:-1:-1;13673:272:0;;;;;:::i;:::-;;:::i;17698:38::-;;;;;;;;;;;;;;;19313:123;;;;;;;;;;-1:-1:-1;19313:123:0;;;;;:::i;:::-;;:::i;:::-;;19444:130;;;;;;;;;;-1:-1:-1;19444:130:0;;;;;:::i;:::-;;:::i;12377:177::-;;;;;;;;;;-1:-1:-1;12377:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;12528:18:0;12496:7;12528:18;;;:9;:18;;;;;;;12377:177;771:103;;;;;;;;;;;;;:::i;17380:38::-;;;;;;;;;;;;;;;;548:87;;;;;;;;;;-1:-1:-1;594:7:0;621:6;-1:-1:-1;;;;;621:6:0;548:87;;12035:106;;;;;;;;;;;;;:::i;13953:507::-;;;;;;;;;;-1:-1:-1;13953:507:0;;;;;:::i;:::-;;:::i;12872:236::-;;;;;;;;;;-1:-1:-1;12872:236:0;;;;;:::i;:::-;;:::i;17425:38::-;;;;;;;;;;;;;;;;17470:77;;;;;;;;;;-1:-1:-1;17470:77:0;;;;-1:-1:-1;;;;;17470:77:0;;;12663:201;;;;;;;;;;-1:-1:-1;12663:201:0;;;;;:::i;:::-;;:::i;19183:122::-;;;;;;;;;;-1:-1:-1;19183:122:0;;;;;:::i;:::-;;:::i;882:201::-;;;;;;;;;;-1:-1:-1;882:201:0;;;;;:::i;:::-;;:::i;12149:102::-;12205:13;12238:5;12231:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12149:102;:::o;13116:244::-;13237:4;174:10;13298:32;174:10;13314:7;13323:6;13298:8;:32::i;:::-;13348:4;13341:11;;;13116:244;;;;;:::o;13368:297::-;13501:4;174:10;13559:38;13575:4;174:10;13590:6;13559:15;:38::i;:::-;13608:27;13618:4;13624:2;13628:6;13608:9;:27::i;:::-;-1:-1:-1;13653:4:0;;13368:297;-1:-1:-1;;;;13368:297:0:o;13673:272::-;13790:4;174:10;13851:64;174:10;13867:7;13904:10;13876:25;174:10;13867:7;13876:9;:25::i;:::-;:38;;;;:::i;:::-;13851:8;:64::i;19313:123::-;594:7;621:6;-1:-1:-1;;;;;621:6:0;174:10;683:23;675:68;;;;-1:-1:-1;;;675:68:0;;;;;;;:::i;:::-;;;;;;;;;19397:19:::1;:31:::0;19313:123::o;19444:130::-;594:7;621:6;-1:-1:-1;;;;;621:6:0;174:10;683:23;675:68;;;;-1:-1:-1;;;675:68:0;;;;;;;:::i;:::-;19532:18:::1;:34:::0;19444:130::o;771:103::-;594:7;621:6;-1:-1:-1;;;;;621:6:0;174:10;683:23;675:68;;;;-1:-1:-1;;;675:68:0;;;;;;;:::i;:::-;836:30:::1;863:1;836:18;:30::i;:::-;771:103::o:0;12035:106::-;12093:13;12126:7;12119:14;;;;;:::i;13953:507::-;14075:4;174:10;14075:4;14163:25;174:10;14180:7;14163:9;:25::i;:::-;14136:52;;14241:15;14221:16;:35;;14199:122;;;;-1:-1:-1;;;14199:122:0;;4950:2:1;14199:122:0;;;4932:21:1;4989:2;4969:18;;;4962:30;5028:34;5008:18;;;5001:62;-1:-1:-1;;;5079:18:1;;;5072:35;5124:19;;14199:122:0;4748:401:1;14199:122:0;14357:60;14366:5;14373:7;14401:15;14382:16;:34;14357:8;:60::i;12872:236::-;12989:4;174:10;13050:28;174:10;13067:2;13071:6;13050:9;:28::i;12663:201::-;-1:-1:-1;;;;;12829:18:0;;;12797:7;12829:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12663:201::o;19183:122::-;594:7;621:6;-1:-1:-1;;;;;621:6:0;174:10;683:23;675:68;;;;-1:-1:-1;;;675:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19265:25:0;;;::::1;;::::0;;;:18:::1;:25;::::0;;;;:32;;-1:-1:-1;;19265:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19183:122::o;882:201::-;594:7;621:6;-1:-1:-1;;;;;621:6:0;174:10;683:23;675:68;;;;-1:-1:-1;;;675:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:22:0;::::1;963:73;;;::::0;-1:-1:-1;;;963:73:0;;5356:2:1;963:73:0::1;::::0;::::1;5338:21:1::0;5395:2;5375:18;;;5368:30;5434:34;5414:18;;;5407:62;-1:-1:-1;;;5485:18:1;;;5478:36;5531:19;;963:73:0::1;5154:402:1::0;963:73:0::1;1047:28;1066:8;1047:18;:28::i;:::-;882:201:::0;:::o;15971:380::-;-1:-1:-1;;;;;16107:19:0;;16099:68;;;;-1:-1:-1;;;16099:68:0;;5763:2:1;16099:68:0;;;5745:21:1;5802:2;5782:18;;;5775:30;5841:34;5821:18;;;5814:62;-1:-1:-1;;;5892:18:1;;;5885:34;5936:19;;16099:68:0;5561:400:1;16099:68:0;-1:-1:-1;;;;;16186:21:0;;16178:68;;;;-1:-1:-1;;;16178:68:0;;6168:2:1;16178:68:0;;;6150:21:1;6207:2;6187:18;;;6180:30;6246:34;6226:18;;;6219:62;-1:-1:-1;;;6297:18:1;;;6290:32;6339:19;;16178:68:0;5966:398:1;16178:68:0;-1:-1:-1;;;;;16259:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16311:32;;1803:25:1;;;16311:32:0;;1776:18:1;16311:32:0;;;;;;;15971:380;;;:::o;15461:502::-;15596:24;15623:25;15633:5;15640:7;15623:9;:25::i;:::-;15596:52;;-1:-1:-1;;15663:16:0;:37;15659:297;;15763:6;15743:16;:26;;15717:117;;;;-1:-1:-1;;;15717:117:0;;6571:2:1;15717:117:0;;;6553:21:1;6610:2;6590:18;;;6583:30;6649:31;6629:18;;;6622:59;6698:18;;15717:117:0;6369:353:1;15717:117:0;15878:51;15887:5;15894:7;15922:6;15903:16;:25;15878:8;:51::i;:::-;15585:378;15461:502;;;:::o;20751:2515::-;-1:-1:-1;;;;;20883:18:0;;20875:68;;;;-1:-1:-1;;;20875:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20962:16:0;;20954:64;;;;-1:-1:-1;;;20954:64:0;;;;;;;:::i;:::-;21056:6;21037:15;21047:4;-1:-1:-1;;;;;12528:18:0;12496:7;12528:18;;;:9;:18;;;;;;;12377:177;21037:15;:25;;21029:86;;;;-1:-1:-1;;;21029:86:0;;;;;;;:::i;:::-;21128:22;21188:13;-1:-1:-1;;;;;21180:21:0;:4;-1:-1:-1;;;;;21180:21:0;;:44;;;;21211:13;-1:-1:-1;;;;;21205:19:0;:2;-1:-1:-1;;;;;21205:19:0;;21180:44;21179:67;;;;-1:-1:-1;21230:16:0;;;;21229:17;21179:67;21161:2046;;;21335:13;-1:-1:-1;;;;;21327:21:0;:4;-1:-1:-1;;;;;21327:21:0;;;:99;;;;-1:-1:-1;21400:25:0;;21389:4;12496:7;12528:18;;;:9;:18;;;;;;21370:55;;21327:99;21305:692;;;21467:16;21510:18;;21489:19;;21486:1;:23;;;;:::i;:::-;:42;;;;:::i;:::-;21597:4;12496:7;12528:18;;;:9;:18;;;;;;21467:61;;-1:-1:-1;21551:25:0;:52;;;21682:18;;21628:23;;21703:8;;21654:46;;;:::i;:::-;:57;;;;:::i;:::-;21628:83;;21734:39;21757:15;21734:22;:39::i;:::-;21799:23;21853:15;21825:25;;:43;;;;:::i;:::-;21799:69;;21949:32;21965:15;21949;:32::i;:::-;21444:553;;;21305:692;-1:-1:-1;;;;;22015:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;22043:22:0;;;;;;:18;:22;;;;;;;;22015:50;22011:1087;;;-1:-1:-1;22150:6:0;21161:2046;;22011:1087;22276:23;22357:3;22313:19;;22304:6;:28;;;;:::i;:::-;22303:57;;;;:::i;:::-;22276:85;;22392:13;-1:-1:-1;;;;;22384:21:0;:4;-1:-1:-1;;;;;22384:21:0;;22380:598;;22487:24;22496:15;22487:6;:24;:::i;:::-;22470:41;;22380:598;;;22601:25;22687:3;22640:18;;22631:6;:27;;;;:::i;:::-;22630:60;;;;:::i;:::-;22601:90;-1:-1:-1;22601:90:0;22758:49;22792:15;22758:6;:49;:::i;:::-;:94;;;;:::i;:::-;22716:136;;22875:55;22891:4;22905;22912:17;22875:15;:55::i;:::-;22537:441;22380:598;22996:53;23012:4;23026;23033:15;22996;:53::i;:::-;22178:920;21161:2046;;;-1:-1:-1;23189:6:0;21161:2046;23217:41;23233:4;23239:2;23243:14;23217:15;:41::i;1091:191::-;1165:16;1184:6;;-1:-1:-1;;;;;1201:17:0;;;-1:-1:-1;;;;;;1201:17:0;;;;;;1234:40;;1184:6;;;;;;;1234:40;;1165:16;1234:40;1154:128;1091:191;:::o;19582:301::-;17972:16;:23;;-1:-1:-1;;17972:23:0;17991:4;17972:23;;;19687:21:::1;19719:25;19737:6:::0;19719:17:::1;:25::i;:::-;19755:18;19776:38;19800:14:::0;19776:21:::1;:38;:::i;:::-;19834:17;::::0;19825:48:::1;::::0;19755:59;;-1:-1:-1;;;;;;19834:17:0::1;::::0;19825:48;::::1;;;::::0;19755:59;;19834:17:::1;19825:48:::0;19834:17;19825:48;19755:59;19834:17;19825:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18018:16:0;:24;;-1:-1:-1;;18018:24:0;;;-1:-1:-1;;19582:301:0:o;18692:483::-;17972:16;:23;;-1:-1:-1;;17972:23:0;17991:4;17972:23;;;:16;18803:24:::1;18826:1;18803:20:::0;:24:::1;:::i;:::-;18787:41:::0;-1:-1:-1;18839:17:0::1;18860:27;18787:41:::0;18860:20;:27:::1;:::i;:::-;18839:49:::0;-1:-1:-1;18926:21:0::1;18960:23;18978:4:::0;18960:17:::1;:23::i;:::-;18996:18;19018:38;19042:14:::0;19018:21:::1;:38;:::i;:::-;18996:61;;19070:36;19084:9;19095:10;19070:13;:36::i;:::-;19124:43;::::0;;8674:25:1;;;8730:2;8715:18;;8708:34;;;8758:18;;;8751:34;;;19124:43:0::1;::::0;8662:2:1;8647:18;19124:43:0::1;;;;;;;-1:-1:-1::0;;18018:16:0;:24;;-1:-1:-1;;18018:24:0;;;-1:-1:-1;;;18692:483:0:o;16359:776::-;-1:-1:-1;;;;;16490:18:0;;16482:68;;;;-1:-1:-1;;;16482:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16569:16:0;;16561:64;;;;-1:-1:-1;;;16561:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16660:15:0;;16638:19;16660:15;;;:9;:15;;;;;;16708:21;;;;16686:109;;;;-1:-1:-1;;;16686:109:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16831:15:0;;;;;;;:9;:15;;;;;;16849:20;;;16831:38;;17049:13;;;;;;;;;;:23;;;;;;17101:26;;;;;;16863:6;1803:25:1;;1791:2;1776:18;;1657:177;17101:26:0;;;;;;;;16471:664;16359:776;;;:::o;19891:484::-;19982:16;;;19996:1;19982:16;;;;;;;;19958:21;;19982:16;;;;;;;;;;-1:-1:-1;19982:16:0;19958:40;;20027:4;20009;20014:1;20009:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20009:23:0;;;-1:-1:-1;;;;;20009:23:0;;;;;20053:15;-1:-1:-1;;;;;20053:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20043:4;20048:1;20043:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;20043:32:0;;;-1:-1:-1;;;;;20043:32:0;;;;;20088:62;20105:4;20120:15;20138:11;20088:8;:62::i;:::-;-1:-1:-1;;;;;20163:15:0;:66;;20244:11;20270:1;20286:4;20313;20334:21;:15;20352:3;20334:21;:::i;:::-;20163:204;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19947:428;19891:484;:::o;20383:360::-;20465:62;20482:4;20497:15;20515:11;20465:8;:62::i;:::-;20540:195;;-1:-1:-1;;;20540:195:0;;20612:4;20540:195;;;10642:34:1;10692:18;;;10685:34;;;20658:1:0;10735:18:1;;;10728:34;;;10778:18;;;10771:34;17594:6:0;10821:19:1;;;10814:44;20709:15:0;10874:19:1;;;10867:35;20540:15:0;-1:-1:-1;;;;;20540:31:0;;;;20579:9;;10576:19:1;;20540:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20383:360;;:::o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1839:456::-;1916:6;1924;1932;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;2040:9;2027:23;2059:31;2084:5;2059:31;:::i;:::-;2109:5;-1:-1:-1;2166:2:1;2151:18;;2138:32;2179:33;2138:32;2179:33;:::i;:::-;1839:456;;2231:7;;-1:-1:-1;;;2285:2:1;2270:18;;;;2257:32;;1839:456::o;2489:180::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;-1:-1:-1;2640:23:1;;2489:180;-1:-1:-1;2489:180:1:o;2674:247::-;2733:6;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2841:9;2828:23;2860:31;2885:5;2860:31;:::i;:::-;2910:5;2674:247;-1:-1:-1;;;2674:247:1:o;2926:388::-;2994:6;3002;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;3110:9;3097:23;3129:31;3154:5;3129:31;:::i;:::-;3179:5;-1:-1:-1;3236:2:1;3221:18;;3208:32;3249:33;3208:32;3249:33;:::i;:::-;3301:7;3291:17;;;2926:388;;;;;:::o;3319:416::-;3384:6;3392;3445:2;3433:9;3424:7;3420:23;3416:32;3413:52;;;3461:1;3458;3451:12;3413:52;3500:9;3487:23;3519:31;3544:5;3519:31;:::i;:::-;3569:5;-1:-1:-1;3626:2:1;3611:18;;3598:32;3668:15;;3661:23;3649:36;;3639:64;;3699:1;3696;3689:12;3740:380;3819:1;3815:12;;;;3862;;;3883:61;;3937:4;3929:6;3925:17;3915:27;;3883:61;3990:2;3982:6;3979:14;3959:18;3956:38;3953:161;;4036:10;4031:3;4027:20;4024:1;4017:31;4071:4;4068:1;4061:15;4099:4;4096:1;4089:15;3953:161;;3740:380;;;:::o;4125:127::-;4186:10;4181:3;4177:20;4174:1;4167:31;4217:4;4214:1;4207:15;4241:4;4238:1;4231:15;4257:125;4322:9;;;4343:10;;;4340:36;;;4356:18;;:::i;4387:356::-;4589:2;4571:21;;;4608:18;;;4601:30;4667:34;4662:2;4647:18;;4640:62;4734:2;4719:18;;4387:356::o;6727:401::-;6929:2;6911:21;;;6968:2;6948:18;;;6941:30;7007:34;7002:2;6987:18;;6980:62;-1:-1:-1;;;7073:2:1;7058:18;;7051:35;7118:3;7103:19;;6727:401::o;7133:399::-;7335:2;7317:21;;;7374:2;7354:18;;;7347:30;7413:34;7408:2;7393:18;;7386:62;-1:-1:-1;;;7479:2:1;7464:18;;7457:33;7522:3;7507:19;;7133:399::o;7537:402::-;7739:2;7721:21;;;7778:2;7758:18;;;7751:30;7817:34;7812:2;7797:18;;7790:62;-1:-1:-1;;;7883:2:1;7868:18;;7861:36;7929:3;7914:19;;7537:402::o;7944:168::-;8017:9;;;8048;;8065:15;;;8059:22;;8045:37;8035:71;;8086:18;;:::i;8117:217::-;8157:1;8183;8173:132;;8227:10;8222:3;8218:20;8215:1;8208:31;8262:4;8259:1;8252:15;8290:4;8287:1;8280:15;8173:132;-1:-1:-1;8319:9:1;;8117:217::o;8339:128::-;8406:9;;;8427:11;;;8424:37;;;8441:18;;:::i;8928:127::-;8989:10;8984:3;8980:20;8977:1;8970:31;9020:4;9017:1;9010:15;9044:4;9041:1;9034:15;9060:251;9130:6;9183:2;9171:9;9162:7;9158:23;9154:32;9151:52;;;9199:1;9196;9189:12;9151:52;9231:9;9225:16;9250:31;9275:5;9250:31;:::i;9316:980::-;9578:4;9626:3;9615:9;9611:19;9657:6;9646:9;9639:25;9683:2;9721:6;9716:2;9705:9;9701:18;9694:34;9764:3;9759:2;9748:9;9744:18;9737:31;9788:6;9823;9817:13;9854:6;9846;9839:22;9892:3;9881:9;9877:19;9870:26;;9931:2;9923:6;9919:15;9905:29;;9952:1;9962:195;9976:6;9973:1;9970:13;9962:195;;;10041:13;;-1:-1:-1;;;;;10037:39:1;10025:52;;10132:15;;;;10097:12;;;;10073:1;9991:9;9962:195;;;-1:-1:-1;;;;;;;10213:32:1;;;;10208:2;10193:18;;10186:60;-1:-1:-1;;;10277:3:1;10262:19;10255:35;10174:3;9316:980;-1:-1:-1;;;9316:980:1:o;10913:306::-;11001:6;11009;11017;11070:2;11058:9;11049:7;11045:23;11041:32;11038:52;;;11086:1;11083;11076:12;11038:52;11115:9;11109:16;11099:26;;11165:2;11154:9;11150:18;11144:25;11134:35;;11209:2;11198:9;11194:18;11188:25;11178:35;;10913:306;;;;;:::o

Swarm Source

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