ETH Price: $3,370.22 (+2.79%)

Token

Justice for Victor (VICTOR)
 

Overview

Max Total Supply

100,000,000 VICTOR

Holders

96

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,273,821.111247294 VICTOR

Value
$0.00
0x80c2df750973885b1e48f6ed74182c51e5a0f5a6
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:
VICTOR

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-08
*/

/**
https://t.me/justiceforvictoreth

https://x.com/VictorBearETH

https://mammothbears.com/victors-story

In memory of Victor - Living forever on ETH 💕🐻 #VICTOR 🐻💕
 */

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IERC20 {

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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

interface IERC20Metadata is IERC20 {

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

library SafeMath {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 public buyFee = 23;
    uint256 public sellFee = 25;

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

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

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

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

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

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

    constructor() ERC20("Justice for Victor", "VICTOR"){
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(0x52AF58e7f071880ceCcCb1fA43DcA25C0bde0499);
        devWallet = payable(_msgSender());

        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(_msgSender()), true);
        excludeFromMaxTransaction(devWallet, true);
        excludeFromMaxTransaction(marketingWallet, true);
        excludeFromFees(address(_msgSender()), true);
        excludeFromFees(devWallet, true);
        excludeFromFees(marketingWallet, true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        // mint
        _mint(devWallet, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            0x52AF58e7f071880ceCcCb1fA43DcA25C0bde0499,
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTheLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setNewFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405260176009556019600a556009600a6200001e919062000773565b6200002e906305f5e1006200078a565b600b556103e8600b54600a6200004591906200078a565b620000519190620007a4565b600c55600c54600d556103e8600b5460036200006e91906200078a565b6200007a9190620007a4565b600f556010805461ffff1916905534801562000094575f80fd5b5060405180604001604052806012815260200171253ab9ba34b1b2903337b9102b34b1ba37b960711b815250604051806040016040528060068152602001652b24a1aa27a960d11b8152508160039081620000f0919062000863565b506004620000ff828262000863565b5050506200011c62000116620003f860201b60201c565b620003fc565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600880546001600160a01b0319167352af58e7f071880cecccb1fa43dca25c0bde0499179055620001623390565b600780546001600160a01b0319166001600160a01b03929092169190911790556200018f3060016200044d565b6200019e61dead60016200044d565b608051620001ae906001620004b5565b620001bb306001620004b5565b620001ca61dead6001620004b5565b620001d7336001620004b5565b600754620001f0906001600160a01b03166001620004b5565b60085462000209906001600160a01b03166001620004b5565b620002163360016200044d565b6007546200022f906001600160a01b031660016200044d565b60085462000248906001600160a01b031660016200044d565b6080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000287573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ad91906200092b565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032191906200092b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200036c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200039291906200092b565b600680546001600160a01b0319166001600160a01b03929092169182179055620003be906001620004b5565b600654620003d7906001600160a01b03166001620004e9565b600754600b54620003f2916001600160a01b0316906200053c565b62000969565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6200045762000601565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620004bf62000601565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620005985760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620005ab919062000953565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b031633146200065d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200058f565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006b857815f19048211156200069c576200069c62000664565b80851615620006aa57918102915b93841c93908002906200067d565b509250929050565b5f82620006d0575060016200076d565b81620006de57505f6200076d565b8160018114620006f75760028114620007025762000722565b60019150506200076d565b60ff84111562000716576200071662000664565b50506001821b6200076d565b5060208310610133831016604e8410600b841016171562000747575081810a6200076d565b62000753838362000678565b805f190482111562000769576200076962000664565b0290505b92915050565b5f6200078360ff841683620006c0565b9392505050565b80820281158282048414176200076d576200076d62000664565b5f82620007bf57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620007ed57607f821691505b6020821081036200080c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200065f575f81815260208120601f850160051c810160208610156200083a5750805b601f850160051c820191505b818110156200085b5782815560010162000846565b505050505050565b81516001600160401b038111156200087f576200087f620007c4565b6200089781620008908454620007d8565b8462000812565b602080601f831160018114620008cd575f8415620008b55750858301515b5f19600386901b1c1916600185901b1785556200085b565b5f85815260208120601f198616915b82811015620008fd57888601518255948401946001909101908401620008dc565b50858210156200091b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200093c575f80fd5b81516001600160a01b038116811462000783575f80fd5b808201808211156200076d576200076d62000664565b608051611cde620009ac5f395f81816103e101528181610a0e01528181610a3701528181610b250152818161162e015281816116e501526117240152611cde5ff3fe6080604052600436106101f4575f3560e01c8063715018a611610108578063c02466681161009d578063e2f456051161006d578063e2f456051461057c578063eaa4460514610591578063f2fde38b146105b0578063f8b45b05146105cf578063ffb54a99146105e4575f80fd5b8063c024666814610515578063c8c8ebe414610534578063c9567bf914610549578063dd62ed3e1461055d575f80fd5b80639a7a23d6116100d85780639a7a23d6146104a4578063a457c2d7146104c3578063a9059cbb146104e2578063bcdb446b14610501575f80fd5b8063715018a6146104405780637571336a146104545780638da5cb5b1461047357806395d89b4114610490575f80fd5b8063395093511161018957806349bd5a5e1161015957806349bd5a5e146103625780634fbee19314610399578063583e0568146103d05780636ddd17131461040357806370a0823114610421575f80fd5b806339509351146102f057806340aa6b921461030f57806342966c681461032e578063470624021461034d575f80fd5b806323b872dd116101c457806323b872dd1461028c5780632b14ca56146102ab578063311028af146102c0578063313ce567146102d5575f80fd5b806306fdde03146101ff578063095ea7b314610229578063139864a81461025857806318160ddd1461026e575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b506102136105fd565b604051610220919061190b565b60405180910390f35b348015610234575f80fd5b5061024861024336600461196a565b61068d565b6040519015158152602001610220565b348015610263575f80fd5b5061026c6106a6565b005b348015610279575f80fd5b506002545b604051908152602001610220565b348015610297575f80fd5b506102486102a6366004611994565b6106bb565b3480156102b6575f80fd5b5061027e600a5481565b3480156102cb575f80fd5b5061027e600b5481565b3480156102e0575f80fd5b5060405160098152602001610220565b3480156102fb575f80fd5b5061024861030a36600461196a565b6106de565b34801561031a575f80fd5b5061026c6103293660046119d2565b6106ff565b348015610339575f80fd5b5061026c6103483660046119f2565b61070f565b348015610358575f80fd5b5061027e60095481565b34801561036d575f80fd5b50600654610381906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156103a4575f80fd5b506102486103b3366004611a09565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156103db575f80fd5b506103817f000000000000000000000000000000000000000000000000000000000000000081565b34801561040e575f80fd5b5060105461024890610100900460ff1681565b34801561042c575f80fd5b5061027e61043b366004611a09565b61071c565b34801561044b575f80fd5b5061026c610736565b34801561045f575f80fd5b5061026c61046e366004611a31565b610749565b34801561047e575f80fd5b506005546001600160a01b0316610381565b34801561049b575f80fd5b5061021361077b565b3480156104af575f80fd5b5061026c6104be366004611a31565b61078a565b3480156104ce575f80fd5b506102486104dd36600461196a565b610829565b3480156104ed575f80fd5b506102486104fc36600461196a565b6108a3565b34801561050c575f80fd5b5061026c6108b0565b348015610520575f80fd5b5061026c61052f366004611a31565b610947565b34801561053f575f80fd5b5061027e600d5481565b348015610554575f80fd5b5061026c6109ad565b348015610568575f80fd5b5061027e610577366004611a68565b610bb2565b348015610587575f80fd5b5061027e600f5481565b34801561059c575f80fd5b5061026c6105ab3660046119f2565b610bdc565b3480156105bb575f80fd5b5061026c6105ca366004611a09565b610c2e565b3480156105da575f80fd5b5061027e600c5481565b3480156105ef575f80fd5b506010546102489060ff1681565b60606003805461060c90611a94565b80601f016020809104026020016040519081016040528092919081815260200182805461063890611a94565b80156106835780601f1061065a57610100808354040283529160200191610683565b820191905f5260205f20905b81548152906001019060200180831161066657829003601f168201915b5050505050905090565b5f3361069a818585610ca4565b60019150505b92915050565b6106ae610dc7565b600b54600d819055600c55565b5f336106c8858285610e21565b6106d3858585610e99565b506001949350505050565b5f3361069a8185856106f08383610bb2565b6106fa9190611ae0565b610ca4565b610707610dc7565b600a55600955565b6107193382611405565b50565b6001600160a01b03165f9081526020819052604090205490565b61073e610dc7565b6107475f611535565b565b610751610dc7565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b60606004805461060c90611a94565b610792610dc7565b6006546001600160a01b039081169083160361081b5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b6108258282611586565b5050565b5f33816108368286610bb2565b9050838110156108965760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610812565b6106d38286868403610ca4565b5f3361069a818585610e99565b5f47116108ff5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000006044820152606401610812565b6007546001600160a01b0316336001600160a01b03161461091e575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610719573d5f803e3d5ffd5b61094f610dc7565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6109b5610dc7565b60105460ff1615610a085760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610812565b610a35307f0000000000000000000000000000000000000000000000000000000000000000600b54610ca4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610a6f3061071c565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201527352af58e7f071880cecccb1fa43dca25c0bde049960848201524260a482015260c40160606040518083038185885af1158015610ae4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b099190611af3565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610b7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba09190611b1e565b506010805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6008546001600160a01b0316336001600160a01b031614610bfb575f80fd5b5f610c053061071c565b90505f6064610c148484611b39565b610c1e9190611b50565b9050610c29816115d9565b505050565b610c36610dc7565b6001600160a01b038116610c9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610812565b61071981611535565b6001600160a01b038316610d065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610812565b6001600160a01b038216610d675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610812565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610812565b5f610e2c8484610bb2565b90505f198114610e935781811015610e865760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610812565b610e938484848403610ca4565b50505050565b6001600160a01b038316610ebf5760405162461bcd60e51b815260040161081290611b6f565b6001600160a01b038216610ee55760405162461bcd60e51b815260040161081290611bb4565b805f03610ef757610c2983835f611796565b6005546001600160a01b03848116911614801590610f2357506005546001600160a01b03838116911614155b8015610f3757506001600160a01b03821615155b8015610f4e57506001600160a01b03821661dead14155b8015610f5d5750600e5460ff16155b1561122f5760105460ff16610fee576001600160a01b0383165f9081526011602052604090205460ff1680610fa957506001600160a01b0382165f9081526011602052604090205460ff165b610fee5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610812565b6001600160a01b0383165f9081526013602052604090205460ff16801561102d57506001600160a01b0382165f9081526012602052604090205460ff16155b1561110157600d548111156110a25760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610812565b600c546110ae8361071c565b6110b89083611ae0565b11156110fc5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610812565b61122f565b6001600160a01b0382165f9081526013602052604090205460ff16801561114057506001600160a01b0383165f9081526012602052604090205460ff16155b156111b657600d548111156110fc5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610812565b6001600160a01b0382165f9081526012602052604090205460ff1661122f57600c546111e18361071c565b6111eb9083611ae0565b111561122f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610812565b5f6112393061071c565b600f5490915081118080156112555750601054610100900460ff165b80156112645750600e5460ff16155b801561128857506001600160a01b0385165f9081526013602052604090205460ff16155b80156112ac57506001600160a01b0385165f9081526011602052604090205460ff16155b80156112d057506001600160a01b0384165f9081526011602052604090205460ff16155b156112f557600e805460ff191660011790556112ea6118be565b600e805460ff191690555b600e545f9060ff1615801561132257506001600160a01b0386165f9081526011602052604090205460ff16155b801561134657506001600160a01b0385165f9081526011602052604090205460ff16155b90505f81156113f1576001600160a01b0386165f9081526013602052604090205460ff16156113965761138f6064611389600a54886118ee90919063ffffffff16565b90611900565b90506113d3565b6001600160a01b0387165f9081526013602052604090205460ff16156113d3576113d06064611389600954886118ee90919063ffffffff16565b90505b80156113e4576113e4873083611796565b6113ee8186611bf7565b94505b6113fc878787611796565b50505050505050565b6001600160a01b0382166114655760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610812565b6001600160a01b0382165f90815260208190526040902054818110156114d85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610812565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061160c5761160c611c0a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611688573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ac9190611c1e565b816001815181106116bf576116bf611c0a565b60200260200101906001600160a01b031690816001600160a01b03168152505061170a307f000000000000000000000000000000000000000000000000000000000000000084610ca4565b60085460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac947926117659287925f92889291909116904290600401611c39565b5f604051808303815f87803b15801561177c575f80fd5b505af115801561178e573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166117bc5760405162461bcd60e51b815260040161081290611b6f565b6001600160a01b0382166117e25760405162461bcd60e51b815260040161081290611bb4565b6001600160a01b0383165f90815260208190526040902054818110156118595760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610812565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e93565b5f6118c83061071c565b9050805f036118d45750565b600f5481908111156118e55750600f545b610825816115d9565b5f6118f98284611b39565b9392505050565b5f6118f98284611b50565b5f6020808352835180828501525f5b818110156119365785810183015185820160400152820161191a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610719575f80fd5b5f806040838503121561197b575f80fd5b823561198681611956565b946020939093013593505050565b5f805f606084860312156119a6575f80fd5b83356119b181611956565b925060208401356119c181611956565b929592945050506040919091013590565b5f80604083850312156119e3575f80fd5b50508035926020909101359150565b5f60208284031215611a02575f80fd5b5035919050565b5f60208284031215611a19575f80fd5b81356118f981611956565b8015158114610719575f80fd5b5f8060408385031215611a42575f80fd5b8235611a4d81611956565b91506020830135611a5d81611a24565b809150509250929050565b5f8060408385031215611a79575f80fd5b8235611a8481611956565b91506020830135611a5d81611956565b600181811c90821680611aa857607f821691505b602082108103611ac657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106a0576106a0611acc565b5f805f60608486031215611b05575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b2e575f80fd5b81516118f981611a24565b80820281158282048414176106a0576106a0611acc565b5f82611b6a57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106a0576106a0611acc565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c2e575f80fd5b81516118f981611956565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c875784516001600160a01b031683529383019391830191600101611c62565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122044971065205d178ba2741ce9f067adc38e70fdd0343e73a5d7aa272d3993ead764736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101f4575f3560e01c8063715018a611610108578063c02466681161009d578063e2f456051161006d578063e2f456051461057c578063eaa4460514610591578063f2fde38b146105b0578063f8b45b05146105cf578063ffb54a99146105e4575f80fd5b8063c024666814610515578063c8c8ebe414610534578063c9567bf914610549578063dd62ed3e1461055d575f80fd5b80639a7a23d6116100d85780639a7a23d6146104a4578063a457c2d7146104c3578063a9059cbb146104e2578063bcdb446b14610501575f80fd5b8063715018a6146104405780637571336a146104545780638da5cb5b1461047357806395d89b4114610490575f80fd5b8063395093511161018957806349bd5a5e1161015957806349bd5a5e146103625780634fbee19314610399578063583e0568146103d05780636ddd17131461040357806370a0823114610421575f80fd5b806339509351146102f057806340aa6b921461030f57806342966c681461032e578063470624021461034d575f80fd5b806323b872dd116101c457806323b872dd1461028c5780632b14ca56146102ab578063311028af146102c0578063313ce567146102d5575f80fd5b806306fdde03146101ff578063095ea7b314610229578063139864a81461025857806318160ddd1461026e575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b506102136105fd565b604051610220919061190b565b60405180910390f35b348015610234575f80fd5b5061024861024336600461196a565b61068d565b6040519015158152602001610220565b348015610263575f80fd5b5061026c6106a6565b005b348015610279575f80fd5b506002545b604051908152602001610220565b348015610297575f80fd5b506102486102a6366004611994565b6106bb565b3480156102b6575f80fd5b5061027e600a5481565b3480156102cb575f80fd5b5061027e600b5481565b3480156102e0575f80fd5b5060405160098152602001610220565b3480156102fb575f80fd5b5061024861030a36600461196a565b6106de565b34801561031a575f80fd5b5061026c6103293660046119d2565b6106ff565b348015610339575f80fd5b5061026c6103483660046119f2565b61070f565b348015610358575f80fd5b5061027e60095481565b34801561036d575f80fd5b50600654610381906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156103a4575f80fd5b506102486103b3366004611a09565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156103db575f80fd5b506103817f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561040e575f80fd5b5060105461024890610100900460ff1681565b34801561042c575f80fd5b5061027e61043b366004611a09565b61071c565b34801561044b575f80fd5b5061026c610736565b34801561045f575f80fd5b5061026c61046e366004611a31565b610749565b34801561047e575f80fd5b506005546001600160a01b0316610381565b34801561049b575f80fd5b5061021361077b565b3480156104af575f80fd5b5061026c6104be366004611a31565b61078a565b3480156104ce575f80fd5b506102486104dd36600461196a565b610829565b3480156104ed575f80fd5b506102486104fc36600461196a565b6108a3565b34801561050c575f80fd5b5061026c6108b0565b348015610520575f80fd5b5061026c61052f366004611a31565b610947565b34801561053f575f80fd5b5061027e600d5481565b348015610554575f80fd5b5061026c6109ad565b348015610568575f80fd5b5061027e610577366004611a68565b610bb2565b348015610587575f80fd5b5061027e600f5481565b34801561059c575f80fd5b5061026c6105ab3660046119f2565b610bdc565b3480156105bb575f80fd5b5061026c6105ca366004611a09565b610c2e565b3480156105da575f80fd5b5061027e600c5481565b3480156105ef575f80fd5b506010546102489060ff1681565b60606003805461060c90611a94565b80601f016020809104026020016040519081016040528092919081815260200182805461063890611a94565b80156106835780601f1061065a57610100808354040283529160200191610683565b820191905f5260205f20905b81548152906001019060200180831161066657829003601f168201915b5050505050905090565b5f3361069a818585610ca4565b60019150505b92915050565b6106ae610dc7565b600b54600d819055600c55565b5f336106c8858285610e21565b6106d3858585610e99565b506001949350505050565b5f3361069a8185856106f08383610bb2565b6106fa9190611ae0565b610ca4565b610707610dc7565b600a55600955565b6107193382611405565b50565b6001600160a01b03165f9081526020819052604090205490565b61073e610dc7565b6107475f611535565b565b610751610dc7565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b60606004805461060c90611a94565b610792610dc7565b6006546001600160a01b039081169083160361081b5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b6108258282611586565b5050565b5f33816108368286610bb2565b9050838110156108965760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610812565b6106d38286868403610ca4565b5f3361069a818585610e99565b5f47116108ff5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000006044820152606401610812565b6007546001600160a01b0316336001600160a01b03161461091e575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610719573d5f803e3d5ffd5b61094f610dc7565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6109b5610dc7565b60105460ff1615610a085760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610812565b610a35307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600b54610ca4565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610a6f3061071c565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201527352af58e7f071880cecccb1fa43dca25c0bde049960848201524260a482015260c40160606040518083038185885af1158015610ae4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b099190611af3565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610b7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba09190611b1e565b506010805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6008546001600160a01b0316336001600160a01b031614610bfb575f80fd5b5f610c053061071c565b90505f6064610c148484611b39565b610c1e9190611b50565b9050610c29816115d9565b505050565b610c36610dc7565b6001600160a01b038116610c9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610812565b61071981611535565b6001600160a01b038316610d065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610812565b6001600160a01b038216610d675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610812565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610812565b5f610e2c8484610bb2565b90505f198114610e935781811015610e865760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610812565b610e938484848403610ca4565b50505050565b6001600160a01b038316610ebf5760405162461bcd60e51b815260040161081290611b6f565b6001600160a01b038216610ee55760405162461bcd60e51b815260040161081290611bb4565b805f03610ef757610c2983835f611796565b6005546001600160a01b03848116911614801590610f2357506005546001600160a01b03838116911614155b8015610f3757506001600160a01b03821615155b8015610f4e57506001600160a01b03821661dead14155b8015610f5d5750600e5460ff16155b1561122f5760105460ff16610fee576001600160a01b0383165f9081526011602052604090205460ff1680610fa957506001600160a01b0382165f9081526011602052604090205460ff165b610fee5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610812565b6001600160a01b0383165f9081526013602052604090205460ff16801561102d57506001600160a01b0382165f9081526012602052604090205460ff16155b1561110157600d548111156110a25760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610812565b600c546110ae8361071c565b6110b89083611ae0565b11156110fc5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610812565b61122f565b6001600160a01b0382165f9081526013602052604090205460ff16801561114057506001600160a01b0383165f9081526012602052604090205460ff16155b156111b657600d548111156110fc5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610812565b6001600160a01b0382165f9081526012602052604090205460ff1661122f57600c546111e18361071c565b6111eb9083611ae0565b111561122f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610812565b5f6112393061071c565b600f5490915081118080156112555750601054610100900460ff165b80156112645750600e5460ff16155b801561128857506001600160a01b0385165f9081526013602052604090205460ff16155b80156112ac57506001600160a01b0385165f9081526011602052604090205460ff16155b80156112d057506001600160a01b0384165f9081526011602052604090205460ff16155b156112f557600e805460ff191660011790556112ea6118be565b600e805460ff191690555b600e545f9060ff1615801561132257506001600160a01b0386165f9081526011602052604090205460ff16155b801561134657506001600160a01b0385165f9081526011602052604090205460ff16155b90505f81156113f1576001600160a01b0386165f9081526013602052604090205460ff16156113965761138f6064611389600a54886118ee90919063ffffffff16565b90611900565b90506113d3565b6001600160a01b0387165f9081526013602052604090205460ff16156113d3576113d06064611389600954886118ee90919063ffffffff16565b90505b80156113e4576113e4873083611796565b6113ee8186611bf7565b94505b6113fc878787611796565b50505050505050565b6001600160a01b0382166114655760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610812565b6001600160a01b0382165f90815260208190526040902054818110156114d85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610812565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061160c5761160c611c0a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611688573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ac9190611c1e565b816001815181106116bf576116bf611c0a565b60200260200101906001600160a01b031690816001600160a01b03168152505061170a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610ca4565b60085460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac947926117659287925f92889291909116904290600401611c39565b5f604051808303815f87803b15801561177c575f80fd5b505af115801561178e573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166117bc5760405162461bcd60e51b815260040161081290611b6f565b6001600160a01b0382166117e25760405162461bcd60e51b815260040161081290611bb4565b6001600160a01b0383165f90815260208190526040902054818110156118595760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610812565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e93565b5f6118c83061071c565b9050805f036118d45750565b600f5481908111156118e55750600f545b610825816115d9565b5f6118f98284611b39565b9392505050565b5f6118f98284611b50565b5f6020808352835180828501525f5b818110156119365785810183015185820160400152820161191a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610719575f80fd5b5f806040838503121561197b575f80fd5b823561198681611956565b946020939093013593505050565b5f805f606084860312156119a6575f80fd5b83356119b181611956565b925060208401356119c181611956565b929592945050506040919091013590565b5f80604083850312156119e3575f80fd5b50508035926020909101359150565b5f60208284031215611a02575f80fd5b5035919050565b5f60208284031215611a19575f80fd5b81356118f981611956565b8015158114610719575f80fd5b5f8060408385031215611a42575f80fd5b8235611a4d81611956565b91506020830135611a5d81611a24565b809150509250929050565b5f8060408385031215611a79575f80fd5b8235611a8481611956565b91506020830135611a5d81611956565b600181811c90821680611aa857607f821691505b602082108103611ac657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106a0576106a0611acc565b5f805f60608486031215611b05575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b2e575f80fd5b81516118f981611a24565b80820281158282048414176106a0576106a0611acc565b5f82611b6a57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106a0576106a0611acc565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c2e575f80fd5b81516118f981611956565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c875784516001600160a01b031683529383019391830191600101611c62565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122044971065205d178ba2741ce9f067adc38e70fdd0343e73a5d7aa272d3993ead764736f6c63430008140033

Deployed Bytecode Sourcemap

14643:8099:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9872:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10803:201;;;;;;;;;;-1:-1:-1;10803:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10803:201:0;1023:187:1;22310:147:0;;;;;;;;;;;;;:::i;:::-;;10192:108;;;;;;;;;;-1:-1:-1;10280:12:0;;10192:108;;;1361:25:1;;;1349:2;1334:18;10192:108:0;1215:177:1;11012:261:0;;;;;;;;;;-1:-1:-1;11012:261:0;;;;;:::i;:::-;;:::i;14979:27::-;;;;;;;;;;;;;;;;15058:61;;;;;;;;;;;;;;;;10092:92;;;;;;;;;;-1:-1:-1;10092:92:0;;10175:1;2000:36:1;;1988:2;1973:18;10092:92:0;1858:184:1;11281:238:0;;;;;;;;;;-1:-1:-1;11281:238:0;;;;;:::i;:::-;;:::i;21558:137::-;;;;;;;;;;-1:-1:-1;21558:137:0;;;;;:::i;:::-;;:::i;17820:85::-;;;;;;;;;;-1:-1:-1;17820:85:0;;;;;:::i;:::-;;:::i;14946:26::-;;;;;;;;;;;;;;;;14778:28;;;;;;;;;;-1:-1:-1;14778:28:0;;;;-1:-1:-1;;;;;14778:28:0;;;;;;-1:-1:-1;;;;;2649:32:1;;;2631:51;;2619:2;2604:18;14778:28:0;2485:203:1;18562:126:0;;;;;;;;;;-1:-1:-1;18562:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18652:28:0;18628:4;18652:28;;;:19;:28;;;;;;;;;18562:126;14719:52;;;;;;;;;;;;;;;15416:31;;;;;;;;;;-1:-1:-1;15416:31:0;;;;;;;;;;;10308:127;;;;;;;;;;-1:-1:-1;10308:127:0;;;;;:::i;:::-;;:::i;1083:103::-;;;;;;;;;;;;;:::i;17668:144::-;;;;;;;;;;-1:-1:-1;17668:144:0;;;;;:::i;:::-;;:::i;848:87::-;;;;;;;;;;-1:-1:-1;921:6:0;;-1:-1:-1;;;;;921:6:0;848:87;;9980:104;;;;;;;;;;;;;:::i;18103:257::-;;;;;;;;;;-1:-1:-1;18103:257:0;;;;;:::i;:::-;;:::i;11527:436::-;;;;;;;;;;-1:-1:-1;11527:436:0;;;;;:::i;:::-;;:::i;10443:193::-;;;;;;;;;;-1:-1:-1;10443:193:0;;;;;:::i;:::-;;:::i;21703:224::-;;;;;;;;;;;;;:::i;17913:182::-;;;;;;;;;;-1:-1:-1;17913:182:0;;;;;:::i;:::-;;:::i;15214:47::-;;;;;;;;;;;;;;;;17058:602;;;;;;;;;;;;;:::i;10644:151::-;;;;;;;;;;-1:-1:-1;10644:151:0;;;;;:::i;:::-;;:::i;15304:65::-;;;;;;;;;;;;;;;;22465:274;;;;;;;;;;-1:-1:-1;22465:274:0;;;;;:::i;:::-;;:::i;1194:201::-;;;;;;;;;;-1:-1:-1;1194:201:0;;;;;:::i;:::-;;:::i;15150:57::-;;;;;;;;;;;;;;;;15378:31;;;;;;;;;;-1:-1:-1;15378:31:0;;;;;;;;9872:100;9926:13;9959:5;9952:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9872:100;:::o;10803:201::-;10886:4;401:10;10942:32;401:10;10958:7;10967:6;10942:8;:32::i;:::-;10992:4;10985:11;;;10803:201;;;;;:::o;22310:147::-;807:13;:11;:13::i;:::-;22390:18:::1;::::0;22367:20:::1;:41:::0;;;22419:9:::1;:30:::0;22310:147::o;11012:261::-;11109:4;401:10;11167:38;11183:4;401:10;11198:6;11167:15;:38::i;:::-;11216:27;11226:4;11232:2;11236:6;11216:9;:27::i;:::-;-1:-1:-1;11261:4:0;;11012:261;-1:-1:-1;;;;11012:261:0:o;11281:238::-;11369:4;401:10;11425:64;401:10;11441:7;11478:10;11450:25;401:10;11441:7;11450:9;:25::i;:::-;:38;;;;:::i;:::-;11425:8;:64::i;21558:137::-;807:13;:11;:13::i;:::-;21642:7:::1;:18:::0;21671:6:::1;:16:::0;21558:137::o;17820:85::-;17870:27;401:10;17890:6;17870:5;:27::i;:::-;17820:85;:::o;10308:127::-;-1:-1:-1;;;;;10409:18:0;10382:7;10409:18;;;;;;;;;;;;10308:127::o;1083:103::-;807:13;:11;:13::i;:::-;1148:30:::1;1175:1;1148:18;:30::i;:::-;1083:103::o:0;17668:144::-;807:13;:11;:13::i;:::-;-1:-1:-1;;;;;17758:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;17758:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17668:144::o;9980:104::-;10036:13;10069:7;10062:14;;;;;:::i;18103:257::-;807:13;:11;:13::i;:::-;18225::::1;::::0;-1:-1:-1;;;;;18225:13:0;;::::1;18217:21:::0;;::::1;::::0;18209:91:::1;;;::::0;-1:-1:-1;;;18209:91:0;;4931:2:1;18209:91:0::1;::::0;::::1;4913:21:1::0;4970:2;4950:18;;;4943:30;5009:34;4989:18;;;4982:62;5080:27;5060:18;;;5053:55;5125:19;;18209:91:0::1;;;;;;;;;18311:41;18340:4;18346:5;18311:28;:41::i;:::-;18103:257:::0;;:::o;11527:436::-;11620:4;401:10;11620:4;11703:25;401:10;11720:7;11703:9;:25::i;:::-;11676:52;;11767:15;11747:16;:35;;11739:85;;;;-1:-1:-1;;;11739:85:0;;5357:2:1;11739:85:0;;;5339:21:1;5396:2;5376:18;;;5369:30;5435:34;5415:18;;;5408:62;-1:-1:-1;;;5486:18:1;;;5479:35;5531:19;;11739:85:0;5155:401:1;11739:85:0;11860:60;11869:5;11876:7;11904:15;11885:16;:34;11860:8;:60::i;10443:193::-;10522:4;401:10;10578:28;401:10;10595:2;10599:6;10578:9;:28::i;21703:224::-;21777:1;21753:21;:25;21745:67;;;;-1:-1:-1;;;21745:67:0;;5763:2:1;21745:67:0;;;5745:21:1;5802:2;5782:18;;;5775:30;5841:31;5821:18;;;5814:59;5890:18;;21745:67:0;5561:353:1;21745:67:0;21847:9;;-1:-1:-1;;;;;21847:9:0;401:10;-1:-1:-1;;;;;21831:25:0;;21823:34;;;;;;21868:51;;21876:10;;21897:21;21868:51;;;;;;;;;21897:21;21876:10;21868:51;;;;;;;;;;;;;;;;;;;17913:182;807:13;:11;:13::i;:::-;-1:-1:-1;;;;;17998:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17998:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18053:34;;1163:41:1;;;18053:34:0::1;::::0;1136:18:1;18053:34:0::1;;;;;;;17913:182:::0;;:::o;17058:602::-;807:13;:11;:13::i;:::-;17122:11:::1;::::0;::::1;;17121:12;17113:47;;;::::0;-1:-1:-1;;;17113:47:0;;6121:2:1;17113:47:0::1;::::0;::::1;6103:21:1::0;6160:2;6140:18;;;6133:30;6199:25;6179:18;;;6172:53;6242:18;;17113:47:0::1;5919:347:1::0;17113:47:0::1;17171:70;17188:4;17203:16;17222:18;;17171:8;:70::i;:::-;17252:16;-1:-1:-1::0;;;;;17252:32:0::1;;17292:21;17337:4;17357:24;17375:4;17357:9;:24::i;:::-;17252:259;::::0;-1:-1:-1;;;;;;17252:259:0::1;::::0;;;;;;-1:-1:-1;;;;;6630:15:1;;;17252:259:0::1;::::0;::::1;6612:34:1::0;6662:18;;;6655:34;17396:1:0::1;6705:18:1::0;;;6698:34;;;6748:18;;;6741:34;17428:42:0::1;6791:19:1::0;;;6784:44;17485:15:0::1;6844:19:1::0;;;6837:35;6546:19;;17252:259:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17529:13:0::1;::::0;17522:72:::1;::::0;-1:-1:-1;;;17522:72:0;;-1:-1:-1;;;;;17560:16:0::1;7386:32:1::0;;17522:72:0::1;::::0;::::1;7368:51:1::0;-1:-1:-1;;7435:18:1;;;7428:34;17529:13:0;;::::1;::::0;-1:-1:-1;17522:29:0::1;::::0;7341:18:1;;17522:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;17605:11:0::1;:18:::0;;-1:-1:-1;;17634:18:0;;;;;17058:602::o;10644:151::-;-1:-1:-1;;;;;10760:18:0;;;10733:7;10760:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10644:151::o;22465:274::-;22552:15;;-1:-1:-1;;;;;22552:15:0;401:10;-1:-1:-1;;;;;22536:31:0;;22528:40;;;;;;22579:23;22605:24;22623:4;22605:9;:24::i;:::-;22579:50;-1:-1:-1;22640:18:0;22689:3;22661:25;22679:7;22579:50;22661:25;:::i;:::-;:31;;;;:::i;:::-;22640:52;;22703:28;22720:10;22703:16;:28::i;:::-;22517:222;;22465:274;:::o;1194:201::-;807:13;:11;:13::i;:::-;-1:-1:-1;;;;;1283:22:0;::::1;1275:73;;;::::0;-1:-1:-1;;;1275:73:0;;8320:2:1;1275:73:0::1;::::0;::::1;8302:21:1::0;8359:2;8339:18;;;8332:30;8398:34;8378:18;;;8371:62;-1:-1:-1;;;8449:18:1;;;8442:36;8495:19;;1275:73:0::1;8118:402:1::0;1275:73:0::1;1359:28;1378:8;1359:18;:28::i;13666:346::-:0;-1:-1:-1;;;;;13768:19:0;;13760:68;;;;-1:-1:-1;;;13760:68:0;;8727:2:1;13760:68:0;;;8709:21:1;8766:2;8746:18;;;8739:30;8805:34;8785:18;;;8778:62;-1:-1:-1;;;8856:18:1;;;8849:34;8900:19;;13760:68:0;8525:400:1;13760:68:0;-1:-1:-1;;;;;13847:21:0;;13839:68;;;;-1:-1:-1;;;13839:68:0;;9132:2:1;13839:68:0;;;9114:21:1;9171:2;9151:18;;;9144:30;9210:34;9190:18;;;9183:62;-1:-1:-1;;;9261:18:1;;;9254:32;9303:19;;13839:68:0;8930:398:1;13839:68:0;-1:-1:-1;;;;;13920:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13972:32;;1361:25:1;;;13972:32:0;;1334:18:1;13972:32:0;;;;;;;13666:346;;;:::o;943:132::-;921:6;;-1:-1:-1;;;;;921:6:0;401:10;1007:23;999:68;;;;-1:-1:-1;;;999:68:0;;9535:2:1;999:68:0;;;9517:21:1;;;9554:18;;;9547:30;9613:34;9593:18;;;9586:62;9665:18;;999:68:0;9333:356:1;14020:419:0;14121:24;14148:25;14158:5;14165:7;14148:9;:25::i;:::-;14121:52;;-1:-1:-1;;14188:16:0;:37;14184:248;;14270:6;14250:16;:26;;14242:68;;;;-1:-1:-1;;;14242:68:0;;9896:2:1;14242:68:0;;;9878:21:1;9935:2;9915:18;;;9908:30;9974:31;9954:18;;;9947:59;10023:18;;14242:68:0;9694:353:1;14242:68:0;14354:51;14363:5;14370:7;14398:6;14379:16;:25;14354:8;:51::i;:::-;14110:329;14020:419;;;:::o;18696:2370::-;-1:-1:-1;;;;;18794:18:0;;18786:68;;;;-1:-1:-1;;;18786:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18873:16:0;;18865:64;;;;-1:-1:-1;;;18865:64:0;;;;;;;:::i;:::-;18946:6;18956:1;18946:11;18942:93;;18974:28;18990:4;18996:2;19000:1;18974:15;:28::i;18942:93::-;921:6;;-1:-1:-1;;;;;19051:15:0;;;921:6;;19051:15;;;;:32;;-1:-1:-1;921:6:0;;-1:-1:-1;;;;;19070:13:0;;;921:6;;19070:13;;19051:32;:52;;;;-1:-1:-1;;;;;;19087:16:0;;;;19051:52;:77;;;;-1:-1:-1;;;;;;19107:21:0;;19121:6;19107:21;;19051:77;:90;;;;-1:-1:-1;19133:8:0;;;;19132:9;19051:90;19047:1012;;;19163:11;;;;19158:140;;-1:-1:-1;;;;;19203:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19232:23:0;;;;;;:19;:23;;;;;;;;19203:52;19195:87;;;;-1:-1:-1;;;19195:87:0;;11064:2:1;19195:87:0;;;11046:21:1;11103:2;11083:18;;;11076:30;-1:-1:-1;;;11122:18:1;;;11115:52;11184:18;;19195:87:0;10862:346:1;19195:87:0;-1:-1:-1;;;;;19318:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19354:35:0;;;;;;:31;:35;;;;;;;;19353:36;19318:71;19314:734;;;19452:20;;19442:6;:30;;19434:96;;;;-1:-1:-1;;;19434:96:0;;11415:2:1;19434:96:0;;;11397:21:1;11454:2;11434:18;;;11427:30;11493:34;11473:18;;;11466:62;-1:-1:-1;;;11544:18:1;;;11537:51;11605:19;;19434:96:0;11213:417:1;19434:96:0;19583:9;;19566:13;19576:2;19566:9;:13::i;:::-;19557:22;;:6;:22;:::i;:::-;:35;;19549:67;;;;-1:-1:-1;;;19549:67:0;;11837:2:1;19549:67:0;;;11819:21:1;11876:2;11856:18;;;11849:30;-1:-1:-1;;;11895:18:1;;;11888:49;11954:18;;19549:67:0;11635:343:1;19549:67:0;19314:734;;;-1:-1:-1;;;;;19655:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19689:37:0;;;;;;:31;:37;;;;;;;;19688:38;19655:71;19651:397;;;19790:20;;19780:6;:30;;19772:97;;;;-1:-1:-1;;;19772:97:0;;12185:2:1;19772:97:0;;;12167:21:1;12224:2;12204:18;;;12197:30;12263:34;12243:18;;;12236:62;-1:-1:-1;;;12314:18:1;;;12307:52;12376:19;;19772:97:0;11983:418:1;19651:397:0;-1:-1:-1;;;;;19909:35:0;;;;;;:31;:35;;;;;;;;19904:144;;19999:9;;19982:13;19992:2;19982:9;:13::i;:::-;19973:22;;:6;:22;:::i;:::-;:35;;19965:67;;;;-1:-1:-1;;;19965:67:0;;11837:2:1;19965:67:0;;;11819:21:1;11876:2;11856:18;;;11849:30;-1:-1:-1;;;11895:18:1;;;11888:49;11954:18;;19965:67:0;11635:343:1;19965:67:0;20113:28;20144:24;20162:4;20144:9;:24::i;:::-;20217:18;;20113:55;;-1:-1:-1;20194:41:0;;;20250:22;;;;-1:-1:-1;20261:11:0;;;;;;;20250:22;:35;;;;-1:-1:-1;20277:8:0;;;;20276:9;20250:35;:71;;;;-1:-1:-1;;;;;;20290:31:0;;;;;;:25;:31;;;;;;;;20289:32;20250:71;:101;;;;-1:-1:-1;;;;;;20326:25:0;;;;;;:19;:25;;;;;;;;20325:26;20250:101;:129;;;;-1:-1:-1;;;;;;20356:23:0;;;;;;:19;:23;;;;;;;;20355:24;20250:129;20246:233;;;20396:8;:15;;-1:-1:-1;;20396:15:0;20407:4;20396:15;;;20426:10;:8;:10::i;:::-;20451:8;:16;;-1:-1:-1;;20451:16:0;;;20246:233;20507:8;;20491:12;;20507:8;;20506:9;:39;;;;-1:-1:-1;;;;;;20520:25:0;;;;;;:19;:25;;;;;;;;20519:26;20506:39;:67;;;;-1:-1:-1;;;;;;20550:23:0;;;;;;:19;:23;;;;;;;;20549:24;20506:67;20491:82;;20586:12;20617:7;20613:402;;;-1:-1:-1;;;;;20645:29:0;;;;;;:25;:29;;;;;;;;20641:229;;;20702:28;20726:3;20702:19;20713:7;;20702:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;20695:35;;20641:229;;;-1:-1:-1;;;;;20768:31:0;;;;;;:25;:31;;;;;;;;20765:105;;;20827:27;20850:3;20827:18;20838:6;;20827;:10;;:18;;;;:::i;:27::-;20820:34;;20765:105;20888:8;;20884:91;;20917:42;20933:4;20947;20954;20917:15;:42::i;:::-;20989:14;20999:4;20989:14;;:::i;:::-;;;20613:402;21025:33;21041:4;21047:2;21051:6;21025:15;:33::i;:::-;18775:2291;;;;18696:2370;;;:::o;13063:595::-;-1:-1:-1;;;;;13147:21:0;;13139:67;;;;-1:-1:-1;;;13139:67:0;;12741:2:1;13139:67:0;;;12723:21:1;12780:2;12760:18;;;12753:30;12819:34;12799:18;;;12792:62;-1:-1:-1;;;12870:18:1;;;12863:31;12911:19;;13139:67:0;12539:397:1;13139:67:0;-1:-1:-1;;;;;13306:18:0;;13281:22;13306:18;;;;;;;;;;;13343:24;;;;13335:71;;;;-1:-1:-1;;;13335:71:0;;13143:2:1;13335:71:0;;;13125:21:1;13182:2;13162:18;;;13155:30;13221:34;13201:18;;;13194:62;-1:-1:-1;;;13272:18:1;;;13265:32;13314:19;;13335:71:0;12941:398:1;13335:71:0;-1:-1:-1;;;;;13442:18:0;;:9;:18;;;;;;;;;;;13463:23;;;13442:44;;13501:12;:22;;;;;;;13552:37;1361:25:1;;;13442:9:0;;:18;13552:37;;1334:18:1;13552:37:0;;;;;;;22517:222;;22465:274;:::o;1403:191::-;1496:6;;;-1:-1:-1;;;;;1513:17:0;;;-1:-1:-1;;;;;;1513:17:0;;;;;;;1546:40;;1496:6;;;1513:17;1496:6;;1546:40;;1477:16;;1546:40;1466:128;1403:191;:::o;18368:186::-;-1:-1:-1;;;;;18451:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18451:39:0;;;;;;;;;;18506:40;;18451:39;;:31;18506:40;;;18368:186;;:::o;21074:476::-;21164:16;;;21178:1;21164:16;;;;;;;;21140:21;;21164:16;;;;;;;;;;-1:-1:-1;21164:16:0;21140:40;;21209:4;21191;21196:1;21191:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21191:23:0;;;-1:-1:-1;;;;;21191:23:0;;;;;21235:16;-1:-1:-1;;;;;21235:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21225:4;21230:1;21225:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;21225:33:0;;;-1:-1:-1;;;;;21225:33:0;;;;;21269:63;21286:4;21301:16;21320:11;21269:8;:63::i;:::-;21486:15;;21343:199;;-1:-1:-1;;;21343:199:0;;-1:-1:-1;;;;;21343:16:0;:67;;;;;:199;;21425:11;;21451:1;;21467:4;;21486:15;;;;;21516;;21343:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21129:421;21074:476;:::o;11971:641::-;-1:-1:-1;;;;;12068:18:0;;12060:68;;;;-1:-1:-1;;;12060:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12147:16:0;;12139:64;;;;-1:-1:-1;;;12139:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12289:15:0;;12267:19;12289:15;;;;;;;;;;;12323:21;;;;12315:72;;;;-1:-1:-1;;;12315:72:0;;15051:2:1;12315:72:0;;;15033:21:1;15090:2;15070:18;;;15063:30;15129:34;15109:18;;;15102:62;-1:-1:-1;;;15180:18:1;;;15173:36;15226:19;;12315:72:0;14849:402:1;12315:72:0;-1:-1:-1;;;;;12423:15:0;;;:9;:15;;;;;;;;;;;12441:20;;;12423:38;;12476:13;;;;;;;;;;:23;;;;;;12528:26;;1361:25:1;;;12476:13:0;;12528:26;;1334:18:1;12528:26:0;;;;;;;12567:37;22465:274;21935:367;21974:23;22000:24;22018:4;22000:9;:24::i;:::-;21974:50;;22039:15;22058:1;22039:20;22035:59;;22076:7;21935:367::o;22035:59::-;22174:18;;22127:15;;22159:33;;22155:99;;;-1:-1:-1;22224:18:0;;22155:99;22264:30;22281:12;22264:16;:30::i;8329:98::-;8387:7;8414:5;8418:1;8414;:5;:::i;:::-;8407:12;8329:98;-1:-1:-1;;;8329:98:0:o;8435:::-;8493:7;8520:5;8524:1;8520;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:248::-;2115:6;2123;2176:2;2164:9;2155:7;2151:23;2147:32;2144:52;;;2192:1;2189;2182:12;2144:52;-1:-1:-1;;2215:23:1;;;2285:2;2270:18;;;2257:32;;-1:-1:-1;2047:248:1:o;2300:180::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;-1:-1:-1;2451:23:1;;2300:180;-1:-1:-1;2300:180:1:o;2693:247::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2860:9;2847:23;2879:31;2904:5;2879:31;:::i;3179:118::-;3265:5;3258:13;3251:21;3244:5;3241:32;3231:60;;3287:1;3284;3277:12;3302:382;3367:6;3375;3428:2;3416:9;3407:7;3403:23;3399:32;3396:52;;;3444:1;3441;3434:12;3396:52;3483:9;3470:23;3502:31;3527:5;3502:31;:::i;:::-;3552:5;-1:-1:-1;3609:2:1;3594:18;;3581:32;3622:30;3581:32;3622:30;:::i;:::-;3671:7;3661:17;;;3302:382;;;;;:::o;3689:388::-;3757:6;3765;3818:2;3806:9;3797:7;3793:23;3789:32;3786:52;;;3834:1;3831;3824:12;3786:52;3873:9;3860:23;3892:31;3917:5;3892:31;:::i;:::-;3942:5;-1:-1:-1;3999:2:1;3984:18;;3971:32;4012:33;3971:32;4012:33;:::i;4082:380::-;4161:1;4157:12;;;;4204;;;4225:61;;4279:4;4271:6;4267:17;4257:27;;4225:61;4332:2;4324:6;4321:14;4301:18;4298:38;4295:161;;4378:10;4373:3;4369:20;4366:1;4359:31;4413:4;4410:1;4403:15;4441:4;4438:1;4431:15;4295:161;;4082:380;;;:::o;4467:127::-;4528:10;4523:3;4519:20;4516:1;4509:31;4559:4;4556:1;4549:15;4583:4;4580:1;4573:15;4599:125;4664:9;;;4685:10;;;4682:36;;;4698:18;;:::i;6883:306::-;6971:6;6979;6987;7040:2;7028:9;7019:7;7015:23;7011:32;7008:52;;;7056:1;7053;7046:12;7008:52;7085:9;7079:16;7069:26;;7135:2;7124:9;7120:18;7114:25;7104:35;;7179:2;7168:9;7164:18;7158:25;7148:35;;6883:306;;;;;:::o;7473:245::-;7540:6;7593:2;7581:9;7572:7;7568:23;7564:32;7561:52;;;7609:1;7606;7599:12;7561:52;7641:9;7635:16;7660:28;7682:5;7660:28;:::i;7723:168::-;7796:9;;;7827;;7844:15;;;7838:22;;7824:37;7814:71;;7865:18;;:::i;7896:217::-;7936:1;7962;7952:132;;8006:10;8001:3;7997:20;7994:1;7987:31;8041:4;8038:1;8031:15;8069:4;8066:1;8059:15;7952:132;-1:-1:-1;8098:9:1;;7896:217::o;10052:401::-;10254:2;10236:21;;;10293:2;10273:18;;;10266:30;10332:34;10327:2;10312:18;;10305:62;-1:-1:-1;;;10398:2:1;10383:18;;10376:35;10443:3;10428:19;;10052:401::o;10458:399::-;10660:2;10642:21;;;10699:2;10679:18;;;10672:30;10738:34;10733:2;10718:18;;10711:62;-1:-1:-1;;;10804:2:1;10789:18;;10782:33;10847:3;10832:19;;10458:399::o;12406:128::-;12473:9;;;12494:11;;;12491:37;;;12508:18;;:::i;13476:127::-;13537:10;13532:3;13528:20;13525:1;13518:31;13568:4;13565:1;13558:15;13592:4;13589:1;13582:15;13608:251;13678:6;13731:2;13719:9;13710:7;13706:23;13702:32;13699:52;;;13747:1;13744;13737:12;13699:52;13779:9;13773:16;13798:31;13823:5;13798:31;:::i;13864:980::-;14126:4;14174:3;14163:9;14159:19;14205:6;14194:9;14187:25;14231:2;14269:6;14264:2;14253:9;14249:18;14242:34;14312:3;14307:2;14296:9;14292:18;14285:31;14336:6;14371;14365:13;14402:6;14394;14387:22;14440:3;14429:9;14425:19;14418:26;;14479:2;14471:6;14467:15;14453:29;;14500:1;14510:195;14524:6;14521:1;14518:13;14510:195;;;14589:13;;-1:-1:-1;;;;;14585:39:1;14573:52;;14680:15;;;;14645:12;;;;14621:1;14539:9;14510:195;;;-1:-1:-1;;;;;;;14761:32:1;;;;14756:2;14741:18;;14734:60;-1:-1:-1;;;14825:3:1;14810:19;14803:35;14722:3;13864:980;-1:-1:-1;;;13864:980:1:o

Swarm Source

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