ETH Price: $3,431.97 (-1.88%)
Gas: 5 Gwei

Token

Vote Biden (VBID)
 

Overview

Max Total Supply

1,000,000,000 VBID

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
GemPad Lock
Balance
85,920,000 VBID

Value
$0.00
0x10B5F02956d242aB770605D59B7D27E51E45774C
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:
VoteBiden

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-28
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

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

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

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

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

    uint256 private _totalSupply;
    uint8 private _decimals;
    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

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

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

        emit Transfer(sender, recipient, amount);
    }

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

        _totalSupply += amount;
        _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;
        }
        _totalSupply -= amount;

        emit Transfer(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);
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(0x132Fd9251583628cE849B2cCE2a90F3340EBb2c1);
    }

    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 {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

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 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 swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    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;
}

contract VoteBiden is ERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router;

    bool private swapping;

    uint256 public swapTokensAtAmount;

    uint256 public liquidityBuyFee = 0;
    uint256 public treasuryBuyFee = 3;

    uint256 public liquiditySellFee = 0;
    uint256 public treasurySellFee = 3;
    uint256 public totalFees =
        liquidityBuyFee + treasuryBuyFee + liquiditySellFee + treasurySellFee;

    address public treasuryWalletAddress =
        0x8Fa9bf4fE22a65bD89F1681f56A9B97C219bc131;

    mapping(address => bool) private _isExcludedFromFees;

    mapping(address => bool) private _isExcludedFromAntibot;

    mapping(address => bool) public automatedMarketMakerPairs;

    mapping(address => uint256) public lastTrade;
    uint8 public tradeCooldown = 1;

    event ExcludeFromFees(address indexed account);
    event IncludeInFees(address indexed account);
    event ExcludeMultipleAccountsFromFees(address[] accounts);

    event ExcludeFromAntibot(address indexed account);
    event IncludeInAntibot(address indexed account);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

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

    event addLiquidityETH(uint256 eth, uint256 tokens, address receiver);
    event transferTokens(uint256 _value, address receiver);
    event SwapTokensAtAmountChanged(uint256 amount);
    event UpdatedTreasuryWallet(address account);
    event UpdatedLiquidityBuyFee(uint256 amount);
    event UpdatedTreasuryBuyFee(uint256 amount);
    event UpdatedLiquiditySellFee(uint256 amount);
    event UpdatedTreasurySellFee(uint256 amount);
    event SwapTokensForEthFailed(uint256 amount);
    event TradeCooldownUpdated(
        uint8 tradeCooldown,
        uint8 previousTradeCooldown
    );

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

    constructor() ERC20("Vote Biden", "VBID", 18) {
        uint256 totalSupply_ = 1e9 * 10 ** 18;

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        address nativeCurrency = uniswapV2Router.WETH();

        IUniswapV2Factory factory = IUniswapV2Factory(
            uniswapV2Router.factory()
        );

        swapTokensAtAmount = totalSupply_ / 1000;

        address pair = factory.createPair(address(this), nativeCurrency);

        _setAutomatedMarketMakerPair(pair, true);

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

        _isExcludedFromAntibot[owner()] = true;
        _isExcludedFromAntibot[treasuryWalletAddress] = true;
        _isExcludedFromAntibot[address(this)] = true;
        _isExcludedFromAntibot[pair] = true;

        _mint(owner(), totalSupply_);
    }

    receive() external payable {}

    function setSwapTokensAtAmount(uint256 amount) external onlyOwner {
        require(
            amount > totalSupply() / 10 ** 6 &&
                amount <= totalSupply() / 10 ** 4,
            "Amount must be between 0.001% - 0.1 of total supply"
        );
        swapTokensAtAmount = amount;

        emit SwapTokensAtAmountChanged(amount);
    }

    function excludeFromFees(address account) external onlyOwner {
        require(!_isExcludedFromFees[account], "Account is already excluded");

        _isExcludedFromFees[account] = true;

        emit ExcludeFromFees(account);
    }

    function includeInFees(address account) external onlyOwner {
        require(_isExcludedFromFees[account], "Account is already included");

        _isExcludedFromFees[account] = false;

        emit IncludeInFees(account);
    }

    function excludeFromAntibot(address account) external onlyOwner {
        require(
            !_isExcludedFromAntibot[account],
            "Account is already excluded"
        );

        _isExcludedFromAntibot[account] = true;

        emit ExcludeFromAntibot(account);
    }

    function includeInAntibot(address account) external onlyOwner {
        require(_isExcludedFromAntibot[account], "Account is already included");

        _isExcludedFromAntibot[account] = false;

        emit IncludeInAntibot(account);
    }

    function excludeMultipleAccountsFromFees(
        address[] calldata accounts
    ) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = true;
        }

        emit ExcludeMultipleAccountsFromFees(accounts);
    }

    function setTreasuryWallet(address payable wallet) external onlyOwner {
        require(wallet != address(0), "Can not be address(0).");

        treasuryWalletAddress = wallet;

        emit UpdatedTreasuryWallet(wallet);
    }

    function setLiquidityBuyFee(uint256 value) external onlyOwner {
        liquidityBuyFee = value;

        updateFees();

        emit UpdatedLiquidityBuyFee(value);
    }

    function setTreasuryBuyFee(uint256 value) external onlyOwner {
        treasuryBuyFee = value;

        updateFees();

        emit UpdatedTreasuryBuyFee(value);
    }

    function setLiquiditySellFee(uint256 value) external onlyOwner {
        liquiditySellFee = value;

        updateFees();

        emit UpdatedLiquiditySellFee(value);
    }

    function setTreasurySellFee(uint256 value) external onlyOwner {
        treasurySellFee = value;

        updateFees();

        emit UpdatedTreasurySellFee(value);
    }

    function setTradeCooldown(uint8 newTradeCooldown) external onlyOwner {
        require(
            newTradeCooldown <= 5,
            "Trade cooldown must be between 1 and 5 blocks"
        );

        tradeCooldown = newTradeCooldown;

        emit TradeCooldownUpdated(newTradeCooldown, tradeCooldown);
    }

    function updateFees() internal {
        totalFees =
            liquidityBuyFee +
            treasuryBuyFee +
            liquiditySellFee +
            treasurySellFee;

        require(totalFees <= 7, "Total fees can not be over 7%.");
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(pair != address(0x0), "cannot mutate the address");
        require(
            automatedMarketMakerPairs[pair] != value,
            "Pair is already set to this address."
        );

        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function isExcludedFromAntibot(address account) public view returns (bool) {
        return _isExcludedFromAntibot[account];
    }

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

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

        if (!swapping) {
            if (!_isExcludedFromAntibot[from]) {
                require(
                    lastTrade[from] + tradeCooldown <= block.number,
                    "Trade cooldown not reached"
                );
                lastTrade[from] = block.number;
            }

            if (!_isExcludedFromAntibot[to]) {
                require(
                    lastTrade[to] + tradeCooldown <= block.number,
                    "Trade cooldown not reached"
                );
                lastTrade[to] = block.number;
            }
        }

        bool localSwapping = swapping;
        uint256 localTotalFees = totalFees;

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (
            canSwap &&
            !localSwapping &&
            !automatedMarketMakerPairs[from] &&
            from != owner() &&
            to != owner() &&
            localTotalFees > 0
        ) {
            swap();
        }

        bool takeFee = !localSwapping &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to] &&
            localTotalFees > 0;

        if (takeFee) {
            if (
                automatedMarketMakerPairs[from] &&
                to != address(uniswapV2Router)
            ) {
                localTotalFees = liquidityBuyFee + treasuryBuyFee;
            }

            if (
                automatedMarketMakerPairs[to] &&
                from != address(uniswapV2Router)
            ) {
                localTotalFees = liquiditySellFee + treasurySellFee;
            }

            uint256 fees = (amount * localTotalFees) / 100;

            amount = amount - fees;

            super._transfer(from, address(this), fees);
        }

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

    function swap() private lockTheSwap {
        uint256 amount = swapTokensAtAmount;

        uint256 liquidityTotalFees = liquidityBuyFee + liquiditySellFee;
        uint256 localTotalFees = totalFees;

        uint256 swapTokens = (amount * liquidityTotalFees) / localTotalFees;

        if (swapTokens > 0) swapAndLiquify(swapTokens);

        uint256 treasuryTokens = amount - swapTokens;

        if (treasuryTokens > 0)
            swapTokensForEth(treasuryTokens, treasuryWalletAddress);
    }

    function swapAndLiquify(uint256 tokens) private {
        uint256 half = tokens / 2;
        uint256 otherHalf = tokens - half;

        uint256 initialBalance = address(this).balance;

        swapTokensForEth(half, address(this));

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

        if (newBalance == 0) return;

        addLiquidity(otherHalf, newBalance);

        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

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

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

        try
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                destination,
                block.timestamp
            )
        {} catch {
            emit SwapTokensForEthFailed(tokenAmount);
        }
    }

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

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

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"}],"name":"ExcludeFromAntibot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"IncludeInAntibot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"IncludeInFees","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SwapTokensAtAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SwapTokensForEthFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"tradeCooldown","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"previousTradeCooldown","type":"uint8"}],"name":"TradeCooldownUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UpdatedLiquidityBuyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UpdatedLiquiditySellFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UpdatedTreasuryBuyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UpdatedTreasurySellFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"UpdatedTreasuryWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"eth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"}],"name":"addLiquidityETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"}],"name":"transferTokens","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFees","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromAntibot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address","name":"","type":"address"}],"name":"lastTrade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquiditySellFee","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setLiquidityBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setLiquiditySellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newTradeCooldown","type":"uint8"}],"name":"setTradeCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setTreasuryBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setTreasurySellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"setTreasuryWallet","outputs":[],"stateMutability":"nonpayable","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":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeCooldown","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasurySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600060098190556003600a819055600b829055600c8190559062000029828262000651565b62000035919062000651565b62000041919062000651565b600d55600e80546001600160a01b031916738fa9bf4fe22a65bd89f1681f56a9b97c219bc1311790556013805460ff191660011790553480156200008457600080fd5b506040518060400160405280600a8152602001692b37ba32902134b232b760b11b815250604051806040016040528060048152602001631590925160e21b81525060128260049081620000d891906200071e565b506005620000e783826200071e565b506003805460ff191660ff92909216919091179055506200011e905073132fd9251583628ce849b2cce2a90f3340ebb2c1620003ec565b600780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b815290516b033b2e3c9fd0803ce800000092600092909163ad5c4648916004808201926020929091908290030181865afa15801562000196573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bc9190620007ea565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a9190620007ea565b90506200024a6103e8846200081c565b6008556040516364e329cb60e11b81523060048201526001600160a01b0383811660248301526000919083169063c9c65396906044016020604051808303816000875af1158015620002a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c69190620007ea565b9050620002d58160016200043e565b6001600f6000620002ee6006546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600e549091168152600f909252808220805484166001908117909155308352908220805490931681179092556010906200035e6006546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600e548216815260109093528183208054851660019081179091553084528284208054861682179055908516835291208054909216179055620003e2620003db6006546001600160a01b031690565b856200056c565b505050506200083f565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200049a5760405162461bcd60e51b815260206004820152601960248201527f63616e6e6f74206d75746174652074686520616464726573730000000000000060448201526064015b60405180910390fd5b6001600160a01b03821660009081526011602052604090205481151560ff909116151503620005185760405162461bcd60e51b8152602060048201526024808201527f5061697220697320616c72656164792073657420746f2074686973206164647260448201526332b9b99760e11b606482015260840162000491565b6001600160a01b038216600081815260116020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620005c45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000491565b8060026000828254620005d8919062000651565b90915550506001600160a01b038216600090815260208190526040812080548392906200060790849062000651565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b808201808211156200067357634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006a457607f821691505b602082108103620006c557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200071957600081815260208120601f850160051c81016020861015620006f45750805b601f850160051c820191505b81811015620007155782815560010162000700565b5050505b505050565b81516001600160401b038111156200073a576200073a62000679565b62000752816200074b84546200068f565b84620006cb565b602080601f8311600181146200078a5760008415620007715750858301515b600019600386901b1c1916600185901b17855562000715565b600085815260208120601f198616915b82811015620007bb578886015182559484019460019091019084016200079a565b5085821015620007da5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620007fd57600080fd5b81516001600160a01b03811681146200081557600080fd5b9392505050565b6000826200083a57634e487b7160e01b600052601260045260246000fd5b500490565b6122f5806200084f6000396000f3fe6080604052600436106102345760003560e01c806384e771c51161012e578063b62496f5116100ab578063e2f456051161006f578063e2f4560514610703578063e57f14e114610719578063e9a584ad14610739578063ed0d213714610759578063f2fde38b1461076f57600080fd5b8063b62496f51461062a578063bba3f82f1461065a578063c26d7be01461067a578063ccb61358146106a7578063dd62ed3e146106bd57600080fd5b8063a5d039a7116100f2578063a5d039a71461058a578063a8602fea146105aa578063a9059cbb146105ca578063afa4f3b2146105ea578063b1c0b9121461060a57600080fd5b806384e771c5146104fd5780638da5cb5b1461051d57806393ee15ca1461053b57806395d89b4114610555578063a457c2d71461056a57600080fd5b80632c10508c116101bc57806361fb8a761161018057806361fb8a76146104395780636417cbdd1461045957806370a0823114610492578063715018a6146104c85780637977a537146104dd57600080fd5b80632c10508c14610384578063313ce5671461039a57806339509351146103c05780633db36de9146103e05780634fbee1931461040057600080fd5b806313114a9d1161020357806313114a9d146102e15780631694505e146102f757806316a2f82a1461032f57806318160ddd1461034f57806323b872dd1461036457600080fd5b806306fdde0314610240578063095ea7b31461026b578063099d0d301461029b5780630c43c79b146102bf57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561078f565b6040516102629190611ebc565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611f1f565b610821565b6040519015158152602001610262565b3480156102a757600080fd5b506102b1600b5481565b604051908152602001610262565b3480156102cb57600080fd5b506102df6102da366004611f4b565b610838565b005b3480156102ed57600080fd5b506102b1600d5481565b34801561030357600080fd5b50600754610317906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b34801561033b57600080fd5b506102df61034a366004611fc0565b61091b565b34801561035b57600080fd5b506002546102b1565b34801561037057600080fd5b5061028b61037f366004611fe4565b6109f6565b34801561039057600080fd5b506102b1600a5481565b3480156103a657600080fd5b5060035460ff165b60405160ff9091168152602001610262565b3480156103cc57600080fd5b5061028b6103db366004611f1f565b610aa0565b3480156103ec57600080fd5b506102df6103fb366004612025565b610adc565b34801561040c57600080fd5b5061028b61041b366004611fc0565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561044557600080fd5b506102df610454366004612048565b610bc0565b34801561046557600080fd5b5061028b610474366004611fc0565b6001600160a01b031660009081526010602052604090205460ff1690565b34801561049e57600080fd5b506102b16104ad366004611fc0565b6001600160a01b031660009081526020819052604090205490565b3480156104d457600080fd5b506102df610c27565b3480156104e957600080fd5b506102df6104f8366004612048565b610c5d565b34801561050957600080fd5b506102df610518366004612048565b610cc4565b34801561052957600080fd5b506006546001600160a01b0316610317565b34801561054757600080fd5b506013546103ae9060ff1681565b34801561056157600080fd5b50610255610d2b565b34801561057657600080fd5b5061028b610585366004611f1f565b610d3a565b34801561059657600080fd5b506102df6105a5366004611fc0565b610dd3565b3480156105b657600080fd5b506102df6105c5366004611fc0565b610eae565b3480156105d657600080fd5b5061028b6105e5366004611f1f565b610f75565b3480156105f657600080fd5b506102df610605366004612048565b610f82565b34801561061657600080fd5b50600e54610317906001600160a01b031681565b34801561063657600080fd5b5061028b610645366004611fc0565b60116020526000908152604090205460ff1681565b34801561066657600080fd5b506102df610675366004611fc0565b611083565b34801561068657600080fd5b506102b1610695366004611fc0565b60126020526000908152604090205481565b3480156106b357600080fd5b506102b160095481565b3480156106c957600080fd5b506102b16106d8366004612061565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561070f57600080fd5b506102b160085481565b34801561072557600080fd5b506102df610734366004611fc0565b611162565b34801561074557600080fd5b506102df610754366004612048565b611241565b34801561076557600080fd5b506102b1600c5481565b34801561077b57600080fd5b506102df61078a366004611fc0565b6112a8565b60606004805461079e9061209a565b80601f01602080910402602001604051908101604052809291908181526020018280546107ca9061209a565b80156108175780601f106107ec57610100808354040283529160200191610817565b820191906000526020600020905b8154815290600101906020018083116107fa57829003601f168201915b5050505050905090565b600061082e338484611343565b5060015b92915050565b6006546001600160a01b0316331461086b5760405162461bcd60e51b8152600401610862906120d4565b60405180910390fd5b60005b818110156108dd576001600f600085858581811061088e5761088e612109565b90506020020160208101906108a39190611fc0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108d581612135565b91505061086e565b507f6f058e77d614a1061fc197c99cdde12f5fa414c92529bbe8f48b02f8d9f4f95d828260405161090f92919061214e565b60405180910390a15050565b6006546001600160a01b031633146109455760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b0381166000908152600f602052604090205460ff166109ad5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610862565b6001600160a01b0381166000818152600f6020526040808220805460ff19169055517f346f6c42af1ce4b7d7951f3fa40a2fb1e78c80ab0f3d76fb4f9fec269d568f0d9190a250565b6000610a03848484611467565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a885760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610862565b610a958533858403611343565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161082e918590610ad790869061219c565b611343565b6006546001600160a01b03163314610b065760405162461bcd60e51b8152600401610862906120d4565b60058160ff161115610b705760405162461bcd60e51b815260206004820152602d60248201527f547261646520636f6f6c646f776e206d757374206265206265747765656e203160448201526c20616e64203520626c6f636b7360981b6064820152608401610862565b6013805460ff191660ff83169081179091556040805182815260208101929092527f61d5f52f88a645b285e957c0bcc84b2e5bb11208c5e90d3ec4209a3ebb202a1991015b60405180910390a150565b6006546001600160a01b03163314610bea5760405162461bcd60e51b8152600401610862906120d4565b6009819055610bf76118b3565b6040518181527fd116e3d8714841806736ef750dca6a19430c108b49f23815e815b2475ce5c14690602001610bb5565b6006546001600160a01b03163314610c515760405162461bcd60e51b8152600401610862906120d4565b610c5b6000611932565b565b6006546001600160a01b03163314610c875760405162461bcd60e51b8152600401610862906120d4565b600c819055610c946118b3565b6040518181527ff10240a71c74f6387f0fb83e07b47975beef788dfa581430441df21ce15bd3e190602001610bb5565b6006546001600160a01b03163314610cee5760405162461bcd60e51b8152600401610862906120d4565b600b819055610cfb6118b3565b6040518181527f28d64c98c5e69f60f071f2862d1aee781480490dfc25a7658c3c74e51ba2143d90602001610bb5565b60606005805461079e9061209a565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610dbc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610862565b610dc93385858403611343565b5060019392505050565b6006546001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b03811660009081526010602052604090205460ff16610e655760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610862565b6001600160a01b038116600081815260106020526040808220805460ff19169055517f3e7395d673f7e5f554c0d9c8e709595bf7408d3bd61080da0d4a99b6620de5729190a250565b6006546001600160a01b03163314610ed85760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b038116610f275760405162461bcd60e51b815260206004820152601660248201527521b0b7103737ba1031329030b2323932b9b99418149760511b6044820152606401610862565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527f62c65ec1bb8c7d4b3758b4959a649569528cdd5ac7f4f73191f024e4988b10bc90602001610bb5565b600061082e338484611467565b6006546001600160a01b03163314610fac5760405162461bcd60e51b8152600401610862906120d4565b620f4240610fb960025490565b610fc391906121af565b81118015610fe65750612710610fd860025490565b610fe291906121af565b8111155b61104e5760405162461bcd60e51b815260206004820152603360248201527f416d6f756e74206d757374206265206265747765656e20302e30303125202d20604482015272302e31206f6620746f74616c20737570706c7960681b6064820152608401610862565b60088190556040518181527fcba17309eff0b14bb89cad72aef8b308a23d698dfff957e2255d17bbc03620bd90602001610bb5565b6006546001600160a01b031633146110ad5760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b03811660009081526010602052604090205460ff16156111165760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610862565b6001600160a01b038116600081815260106020526040808220805460ff19166001179055517f073743b90eb72e408f9e70dbdc0b5335fd7333b7fc4c29586079c9e37f36a9069190a250565b6006546001600160a01b0316331461118c5760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b0381166000908152600f602052604090205460ff16156111f55760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610862565b6001600160a01b0381166000818152600f6020526040808220805460ff19166001179055517f57a00f76b5f242fb1e04b0b514a6974665a5b07bce45e39f36dabff4a042d9369190a250565b6006546001600160a01b0316331461126b5760405162461bcd60e51b8152600401610862906120d4565b600a8190556112786118b3565b6040518181527f1593a397ac0c5189ce0930093176f841da14a2574dd5c20f0f56b237e1b63ef790602001610bb5565b6006546001600160a01b031633146112d25760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b0381166113375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610862565b61134081611932565b50565b6001600160a01b0383166113a55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610862565b6001600160a01b0382166114065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610862565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114cc5760405162461bcd60e51b815260206004820152602660248201527f43616e206e6f74207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610862565b6001600160a01b03821661152e5760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610862565b806000036115475761154283836000611984565b505050565b600754600160a01b900460ff166116c6576001600160a01b03831660009081526010602052604090205460ff1661160f576013546001600160a01b03841660009081526012602052604090205443916115a59160ff9091169061219c565b11156115f35760405162461bcd60e51b815260206004820152601a60248201527f547261646520636f6f6c646f776e206e6f7420726561636865640000000000006044820152606401610862565b6001600160a01b03831660009081526012602052604090204390555b6001600160a01b03821660009081526010602052604090205460ff166116c6576013546001600160a01b038316600090815260126020526040902054439161165c9160ff9091169061219c565b11156116aa5760405162461bcd60e51b815260206004820152601a60248201527f547261646520636f6f6c646f776e206e6f7420726561636865640000000000006044820152606401610862565b6001600160a01b03821660009081526012602052604090204390555b600754600d5460085430600090815260208190526040812054600160a01b90940460ff16939091111590508080156116fc575082155b801561172157506001600160a01b03861660009081526011602052604090205460ff16155b801561173b57506006546001600160a01b03878116911614155b801561175557506006546001600160a01b03868116911614155b80156117615750600082115b1561176e5761176e611b53565b60008315801561179757506001600160a01b0387166000908152600f602052604090205460ff16155b80156117bc57506001600160a01b0386166000908152600f602052604090205460ff16155b80156117c85750600083115b9050801561189f576001600160a01b03871660009081526011602052604090205460ff16801561180657506007546001600160a01b03878116911614155b1561181e57600a5460095461181b919061219c565b92505b6001600160a01b03861660009081526011602052604090205460ff16801561185457506007546001600160a01b03888116911614155b1561186c57600c54600b54611869919061219c565b92505b6000606461187a85886121d1565b61188491906121af565b905061189081876121f0565b955061189d883083611984565b505b6118aa878787611984565b50505050505050565b600c54600b54600a546009546118c9919061219c565b6118d3919061219c565b6118dd919061219c565b600d81905560071015610c5b5760405162461bcd60e51b815260206004820152601e60248201527f546f74616c20666565732063616e206e6f74206265206f7665722037252e00006044820152606401610862565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166119e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610862565b6001600160a01b038216611a4a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610862565b6001600160a01b03831660009081526020819052604090205481811015611ac25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610862565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611af990849061219c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b4591815260200190565b60405180910390a350505050565b6007805460ff60a01b1916600160a01b179055600854600b54600954600091611b7b9161219c565b600d54909150600081611b8e84866121d1565b611b9891906121af565b90508015611ba957611ba981611be8565b6000611bb582866121f0565b90508015611bd457600e54611bd49082906001600160a01b0316611c7f565b50506007805460ff60a01b19169055505050565b6000611bf56002836121af565b90506000611c0382846121f0565b905047611c108330611c7f565b6000611c1c82476121f0565b905080600003611c2d575050505050565b611c378382611e0a565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cb457611cb4612109565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d319190612203565b81600181518110611d4457611d44612109565b6001600160a01b039283166020918202929092010152600754611d6a9130911685611343565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac94790611da3908690600090869088904290600401612220565b600060405180830381600087803b158015611dbd57600080fd5b505af1925050508015611dce575060015b611542576040518381527ff312a8cf41139222bcba78888c1a115141181d71dc3cab51c2cd2e19acb05fcf9060200160405180910390a1505050565b600754611e229030906001600160a01b031684611343565b60075460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611e90573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611eb59190612291565b5050505050565b600060208083528351808285015260005b81811015611ee957858101830151858201604001528201611ecd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461134057600080fd5b60008060408385031215611f3257600080fd5b8235611f3d81611f0a565b946020939093013593505050565b60008060208385031215611f5e57600080fd5b823567ffffffffffffffff80821115611f7657600080fd5b818501915085601f830112611f8a57600080fd5b813581811115611f9957600080fd5b8660208260051b8501011115611fae57600080fd5b60209290920196919550909350505050565b600060208284031215611fd257600080fd5b8135611fdd81611f0a565b9392505050565b600080600060608486031215611ff957600080fd5b833561200481611f0a565b9250602084013561201481611f0a565b929592945050506040919091013590565b60006020828403121561203757600080fd5b813560ff81168114611fdd57600080fd5b60006020828403121561205a57600080fd5b5035919050565b6000806040838503121561207457600080fd5b823561207f81611f0a565b9150602083013561208f81611f0a565b809150509250929050565b600181811c908216806120ae57607f821691505b6020821081036120ce57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121475761214761211f565b5060010190565b60208082528181018390526000908460408401835b8681101561219157823561217681611f0a565b6001600160a01b031682529183019190830190600101612163565b509695505050505050565b808201808211156108325761083261211f565b6000826121cc57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156121eb576121eb61211f565b500290565b818103818111156108325761083261211f565b60006020828403121561221557600080fd5b8151611fdd81611f0a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122705784516001600160a01b03168352938301939183019160010161224b565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122a657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bf23bd6ac36808f2b4673cea9cebddd42a21777bf481f52425220f610541598864736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102345760003560e01c806384e771c51161012e578063b62496f5116100ab578063e2f456051161006f578063e2f4560514610703578063e57f14e114610719578063e9a584ad14610739578063ed0d213714610759578063f2fde38b1461076f57600080fd5b8063b62496f51461062a578063bba3f82f1461065a578063c26d7be01461067a578063ccb61358146106a7578063dd62ed3e146106bd57600080fd5b8063a5d039a7116100f2578063a5d039a71461058a578063a8602fea146105aa578063a9059cbb146105ca578063afa4f3b2146105ea578063b1c0b9121461060a57600080fd5b806384e771c5146104fd5780638da5cb5b1461051d57806393ee15ca1461053b57806395d89b4114610555578063a457c2d71461056a57600080fd5b80632c10508c116101bc57806361fb8a761161018057806361fb8a76146104395780636417cbdd1461045957806370a0823114610492578063715018a6146104c85780637977a537146104dd57600080fd5b80632c10508c14610384578063313ce5671461039a57806339509351146103c05780633db36de9146103e05780634fbee1931461040057600080fd5b806313114a9d1161020357806313114a9d146102e15780631694505e146102f757806316a2f82a1461032f57806318160ddd1461034f57806323b872dd1461036457600080fd5b806306fdde0314610240578063095ea7b31461026b578063099d0d301461029b5780630c43c79b146102bf57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561078f565b6040516102629190611ebc565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611f1f565b610821565b6040519015158152602001610262565b3480156102a757600080fd5b506102b1600b5481565b604051908152602001610262565b3480156102cb57600080fd5b506102df6102da366004611f4b565b610838565b005b3480156102ed57600080fd5b506102b1600d5481565b34801561030357600080fd5b50600754610317906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b34801561033b57600080fd5b506102df61034a366004611fc0565b61091b565b34801561035b57600080fd5b506002546102b1565b34801561037057600080fd5b5061028b61037f366004611fe4565b6109f6565b34801561039057600080fd5b506102b1600a5481565b3480156103a657600080fd5b5060035460ff165b60405160ff9091168152602001610262565b3480156103cc57600080fd5b5061028b6103db366004611f1f565b610aa0565b3480156103ec57600080fd5b506102df6103fb366004612025565b610adc565b34801561040c57600080fd5b5061028b61041b366004611fc0565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561044557600080fd5b506102df610454366004612048565b610bc0565b34801561046557600080fd5b5061028b610474366004611fc0565b6001600160a01b031660009081526010602052604090205460ff1690565b34801561049e57600080fd5b506102b16104ad366004611fc0565b6001600160a01b031660009081526020819052604090205490565b3480156104d457600080fd5b506102df610c27565b3480156104e957600080fd5b506102df6104f8366004612048565b610c5d565b34801561050957600080fd5b506102df610518366004612048565b610cc4565b34801561052957600080fd5b506006546001600160a01b0316610317565b34801561054757600080fd5b506013546103ae9060ff1681565b34801561056157600080fd5b50610255610d2b565b34801561057657600080fd5b5061028b610585366004611f1f565b610d3a565b34801561059657600080fd5b506102df6105a5366004611fc0565b610dd3565b3480156105b657600080fd5b506102df6105c5366004611fc0565b610eae565b3480156105d657600080fd5b5061028b6105e5366004611f1f565b610f75565b3480156105f657600080fd5b506102df610605366004612048565b610f82565b34801561061657600080fd5b50600e54610317906001600160a01b031681565b34801561063657600080fd5b5061028b610645366004611fc0565b60116020526000908152604090205460ff1681565b34801561066657600080fd5b506102df610675366004611fc0565b611083565b34801561068657600080fd5b506102b1610695366004611fc0565b60126020526000908152604090205481565b3480156106b357600080fd5b506102b160095481565b3480156106c957600080fd5b506102b16106d8366004612061565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561070f57600080fd5b506102b160085481565b34801561072557600080fd5b506102df610734366004611fc0565b611162565b34801561074557600080fd5b506102df610754366004612048565b611241565b34801561076557600080fd5b506102b1600c5481565b34801561077b57600080fd5b506102df61078a366004611fc0565b6112a8565b60606004805461079e9061209a565b80601f01602080910402602001604051908101604052809291908181526020018280546107ca9061209a565b80156108175780601f106107ec57610100808354040283529160200191610817565b820191906000526020600020905b8154815290600101906020018083116107fa57829003601f168201915b5050505050905090565b600061082e338484611343565b5060015b92915050565b6006546001600160a01b0316331461086b5760405162461bcd60e51b8152600401610862906120d4565b60405180910390fd5b60005b818110156108dd576001600f600085858581811061088e5761088e612109565b90506020020160208101906108a39190611fc0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108d581612135565b91505061086e565b507f6f058e77d614a1061fc197c99cdde12f5fa414c92529bbe8f48b02f8d9f4f95d828260405161090f92919061214e565b60405180910390a15050565b6006546001600160a01b031633146109455760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b0381166000908152600f602052604090205460ff166109ad5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610862565b6001600160a01b0381166000818152600f6020526040808220805460ff19169055517f346f6c42af1ce4b7d7951f3fa40a2fb1e78c80ab0f3d76fb4f9fec269d568f0d9190a250565b6000610a03848484611467565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a885760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610862565b610a958533858403611343565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161082e918590610ad790869061219c565b611343565b6006546001600160a01b03163314610b065760405162461bcd60e51b8152600401610862906120d4565b60058160ff161115610b705760405162461bcd60e51b815260206004820152602d60248201527f547261646520636f6f6c646f776e206d757374206265206265747765656e203160448201526c20616e64203520626c6f636b7360981b6064820152608401610862565b6013805460ff191660ff83169081179091556040805182815260208101929092527f61d5f52f88a645b285e957c0bcc84b2e5bb11208c5e90d3ec4209a3ebb202a1991015b60405180910390a150565b6006546001600160a01b03163314610bea5760405162461bcd60e51b8152600401610862906120d4565b6009819055610bf76118b3565b6040518181527fd116e3d8714841806736ef750dca6a19430c108b49f23815e815b2475ce5c14690602001610bb5565b6006546001600160a01b03163314610c515760405162461bcd60e51b8152600401610862906120d4565b610c5b6000611932565b565b6006546001600160a01b03163314610c875760405162461bcd60e51b8152600401610862906120d4565b600c819055610c946118b3565b6040518181527ff10240a71c74f6387f0fb83e07b47975beef788dfa581430441df21ce15bd3e190602001610bb5565b6006546001600160a01b03163314610cee5760405162461bcd60e51b8152600401610862906120d4565b600b819055610cfb6118b3565b6040518181527f28d64c98c5e69f60f071f2862d1aee781480490dfc25a7658c3c74e51ba2143d90602001610bb5565b60606005805461079e9061209a565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610dbc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610862565b610dc93385858403611343565b5060019392505050565b6006546001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b03811660009081526010602052604090205460ff16610e655760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610862565b6001600160a01b038116600081815260106020526040808220805460ff19169055517f3e7395d673f7e5f554c0d9c8e709595bf7408d3bd61080da0d4a99b6620de5729190a250565b6006546001600160a01b03163314610ed85760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b038116610f275760405162461bcd60e51b815260206004820152601660248201527521b0b7103737ba1031329030b2323932b9b99418149760511b6044820152606401610862565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527f62c65ec1bb8c7d4b3758b4959a649569528cdd5ac7f4f73191f024e4988b10bc90602001610bb5565b600061082e338484611467565b6006546001600160a01b03163314610fac5760405162461bcd60e51b8152600401610862906120d4565b620f4240610fb960025490565b610fc391906121af565b81118015610fe65750612710610fd860025490565b610fe291906121af565b8111155b61104e5760405162461bcd60e51b815260206004820152603360248201527f416d6f756e74206d757374206265206265747765656e20302e30303125202d20604482015272302e31206f6620746f74616c20737570706c7960681b6064820152608401610862565b60088190556040518181527fcba17309eff0b14bb89cad72aef8b308a23d698dfff957e2255d17bbc03620bd90602001610bb5565b6006546001600160a01b031633146110ad5760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b03811660009081526010602052604090205460ff16156111165760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610862565b6001600160a01b038116600081815260106020526040808220805460ff19166001179055517f073743b90eb72e408f9e70dbdc0b5335fd7333b7fc4c29586079c9e37f36a9069190a250565b6006546001600160a01b0316331461118c5760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b0381166000908152600f602052604090205460ff16156111f55760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610862565b6001600160a01b0381166000818152600f6020526040808220805460ff19166001179055517f57a00f76b5f242fb1e04b0b514a6974665a5b07bce45e39f36dabff4a042d9369190a250565b6006546001600160a01b0316331461126b5760405162461bcd60e51b8152600401610862906120d4565b600a8190556112786118b3565b6040518181527f1593a397ac0c5189ce0930093176f841da14a2574dd5c20f0f56b237e1b63ef790602001610bb5565b6006546001600160a01b031633146112d25760405162461bcd60e51b8152600401610862906120d4565b6001600160a01b0381166113375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610862565b61134081611932565b50565b6001600160a01b0383166113a55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610862565b6001600160a01b0382166114065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610862565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114cc5760405162461bcd60e51b815260206004820152602660248201527f43616e206e6f74207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610862565b6001600160a01b03821661152e5760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610862565b806000036115475761154283836000611984565b505050565b600754600160a01b900460ff166116c6576001600160a01b03831660009081526010602052604090205460ff1661160f576013546001600160a01b03841660009081526012602052604090205443916115a59160ff9091169061219c565b11156115f35760405162461bcd60e51b815260206004820152601a60248201527f547261646520636f6f6c646f776e206e6f7420726561636865640000000000006044820152606401610862565b6001600160a01b03831660009081526012602052604090204390555b6001600160a01b03821660009081526010602052604090205460ff166116c6576013546001600160a01b038316600090815260126020526040902054439161165c9160ff9091169061219c565b11156116aa5760405162461bcd60e51b815260206004820152601a60248201527f547261646520636f6f6c646f776e206e6f7420726561636865640000000000006044820152606401610862565b6001600160a01b03821660009081526012602052604090204390555b600754600d5460085430600090815260208190526040812054600160a01b90940460ff16939091111590508080156116fc575082155b801561172157506001600160a01b03861660009081526011602052604090205460ff16155b801561173b57506006546001600160a01b03878116911614155b801561175557506006546001600160a01b03868116911614155b80156117615750600082115b1561176e5761176e611b53565b60008315801561179757506001600160a01b0387166000908152600f602052604090205460ff16155b80156117bc57506001600160a01b0386166000908152600f602052604090205460ff16155b80156117c85750600083115b9050801561189f576001600160a01b03871660009081526011602052604090205460ff16801561180657506007546001600160a01b03878116911614155b1561181e57600a5460095461181b919061219c565b92505b6001600160a01b03861660009081526011602052604090205460ff16801561185457506007546001600160a01b03888116911614155b1561186c57600c54600b54611869919061219c565b92505b6000606461187a85886121d1565b61188491906121af565b905061189081876121f0565b955061189d883083611984565b505b6118aa878787611984565b50505050505050565b600c54600b54600a546009546118c9919061219c565b6118d3919061219c565b6118dd919061219c565b600d81905560071015610c5b5760405162461bcd60e51b815260206004820152601e60248201527f546f74616c20666565732063616e206e6f74206265206f7665722037252e00006044820152606401610862565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166119e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610862565b6001600160a01b038216611a4a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610862565b6001600160a01b03831660009081526020819052604090205481811015611ac25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610862565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611af990849061219c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b4591815260200190565b60405180910390a350505050565b6007805460ff60a01b1916600160a01b179055600854600b54600954600091611b7b9161219c565b600d54909150600081611b8e84866121d1565b611b9891906121af565b90508015611ba957611ba981611be8565b6000611bb582866121f0565b90508015611bd457600e54611bd49082906001600160a01b0316611c7f565b50506007805460ff60a01b19169055505050565b6000611bf56002836121af565b90506000611c0382846121f0565b905047611c108330611c7f565b6000611c1c82476121f0565b905080600003611c2d575050505050565b611c378382611e0a565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cb457611cb4612109565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d319190612203565b81600181518110611d4457611d44612109565b6001600160a01b039283166020918202929092010152600754611d6a9130911685611343565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac94790611da3908690600090869088904290600401612220565b600060405180830381600087803b158015611dbd57600080fd5b505af1925050508015611dce575060015b611542576040518381527ff312a8cf41139222bcba78888c1a115141181d71dc3cab51c2cd2e19acb05fcf9060200160405180910390a1505050565b600754611e229030906001600160a01b031684611343565b60075460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611e90573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611eb59190612291565b5050505050565b600060208083528351808285015260005b81811015611ee957858101830151858201604001528201611ecd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461134057600080fd5b60008060408385031215611f3257600080fd5b8235611f3d81611f0a565b946020939093013593505050565b60008060208385031215611f5e57600080fd5b823567ffffffffffffffff80821115611f7657600080fd5b818501915085601f830112611f8a57600080fd5b813581811115611f9957600080fd5b8660208260051b8501011115611fae57600080fd5b60209290920196919550909350505050565b600060208284031215611fd257600080fd5b8135611fdd81611f0a565b9392505050565b600080600060608486031215611ff957600080fd5b833561200481611f0a565b9250602084013561201481611f0a565b929592945050506040919091013590565b60006020828403121561203757600080fd5b813560ff81168114611fdd57600080fd5b60006020828403121561205a57600080fd5b5035919050565b6000806040838503121561207457600080fd5b823561207f81611f0a565b9150602083013561208f81611f0a565b809150509250929050565b600181811c908216806120ae57607f821691505b6020821081036120ce57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121475761214761211f565b5060010190565b60208082528181018390526000908460408401835b8681101561219157823561217681611f0a565b6001600160a01b031682529183019190830190600101612163565b509695505050505050565b808201808211156108325761083261211f565b6000826121cc57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156121eb576121eb61211f565b500290565b818103818111156108325761083261211f565b60006020828403121561221557600080fd5b8151611fdd81611f0a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122705784516001600160a01b03168352938301939183019160010161224b565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122a657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bf23bd6ac36808f2b4673cea9cebddd42a21777bf481f52425220f610541598864736f6c63430008100033

Deployed Bytecode Sourcemap

10324:11296:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1826:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2813:194;;;;;;;;;;-1:-1:-1;2813:194:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;2813:194:0;1023:187:1;10573:35:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;10573:35:0;1215:177:1;14803:294:0;;;;;;;;;;-1:-1:-1;14803:294:0;;;;;:::i;:::-;;:::i;:::-;;10656:105;;;;;;;;;;;;;;;;10368:41;;;;;;;;;;-1:-1:-1;10368:41:0;;;;-1:-1:-1;;;;;10368:41:0;;;;;;-1:-1:-1;;;;;2207:32:1;;;2189:51;;2177:2;2162:18;10368:41:0;2017:229:1;14009:235:0;;;;;;;;;;-1:-1:-1;14009:235:0;;;;;:::i;:::-;;:::i;2154:108::-;;;;;;;;;;-1:-1:-1;2242:12:0;;2154:108;;3015:529;;;;;;;;;;-1:-1:-1;3015:529:0;;;;;:::i;:::-;;:::i;10531:33::-;;;;;;;;;;;;;;;;2046:100;;;;;;;;;;-1:-1:-1;2129:9:0;;;;2046:100;;;3136:4:1;3124:17;;;3106:36;;3094:2;3079:18;2046:100:0;2964:184:1;3552:290:0;;;;;;;;;;-1:-1:-1;3552:290:0;;;;;:::i;:::-;;:::i;16083:320::-;;;;;;;;;;-1:-1:-1;16083:320:0;;;;;:::i;:::-;;:::i;17076:126::-;;;;;;;;;;-1:-1:-1;17076:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;17166:28:0;17142:4;17166:28;;;:19;:28;;;;;;;;;17076:126;15347:176;;;;;;;;;;-1:-1:-1;15347:176:0;;;;;:::i;:::-;;:::i;17210:132::-;;;;;;;;;;-1:-1:-1;17210:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;17303:31:0;17279:4;17303:31;;;:22;:31;;;;;;;;;17210:132;2270:143;;;;;;;;;;-1:-1:-1;2270:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;2387:18:0;2360:7;2387:18;;;;;;;;;;;;2270:143;6648:94;;;;;;;;;;;;;:::i;15899:176::-;;;;;;;;;;-1:-1:-1;15899:176:0;;;;;:::i;:::-;;:::i;15712:179::-;;;;;;;;;;-1:-1:-1;15712:179:0;;;;;:::i;:::-;;:::i;6425:87::-;;;;;;;;;;-1:-1:-1;6498:6:0;;-1:-1:-1;;;;;6498:6:0;6425:87;;11111:30;;;;;;;;;;-1:-1:-1;11111:30:0;;;;;;;;1934:104;;;;;;;;;;;;;:::i;3850:475::-;;;;;;;;;;-1:-1:-1;3850:475:0;;;;;:::i;:::-;;:::i;14548:247::-;;;;;;;;;;-1:-1:-1;14548:247:0;;;;;:::i;:::-;;:::i;15105:234::-;;;;;;;;;;-1:-1:-1;15105:234:0;;;;;:::i;:::-;;:::i;2421:200::-;;;;;;;;;;-1:-1:-1;2421:200:0;;;;;:::i;:::-;;:::i;13393:361::-;;;;;;;;;;-1:-1:-1;13393:361:0;;;;;:::i;:::-;;:::i;10770:90::-;;;;;;;;;;-1:-1:-1;10770:90:0;;;;-1:-1:-1;;;;;10770:90:0;;;10994:57;;;;;;;;;;-1:-1:-1;10994:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14252:288;;;;;;;;;;-1:-1:-1;14252:288:0;;;;;:::i;:::-;;:::i;11060:44::-;;;;;;;;;;-1:-1:-1;11060:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;10490:34;;;;;;;;;;;;;;;;2629:176;;;;;;;;;;-1:-1:-1;2629:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;2770:18:0;;;2743:7;2770:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2629:176;10448:33;;;;;;;;;;;;;;;;13762:239;;;;;;;;;;-1:-1:-1;13762:239:0;;;;;:::i;:::-;;:::i;15531:173::-;;;;;;;;;;-1:-1:-1;15531:173:0;;;;;:::i;:::-;;:::i;10615:34::-;;;;;;;;;;;;;;;;6750:229;;;;;;;;;;-1:-1:-1;6750:229:0;;;;;:::i;:::-;;:::i;1826:100::-;1880:13;1913:5;1906:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1826:100;:::o;2813:194::-;2921:4;2938:39;1209:10;2961:7;2970:6;2938:8;:39::i;:::-;-1:-1:-1;2995:4:0;2813:194;;;;;:::o;14803:294::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;;;;;;;;;14924:9:::1;14919:112;14939:19:::0;;::::1;14919:112;;;15015:4;14980:19;:32;15000:8;;15009:1;15000:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14980:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14980:32:0;:39;;-1:-1:-1;;14980:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14960:3;::::1;::::0;::::1;:::i;:::-;;;;14919:112;;;;15048:41;15080:8;;15048:41;;;;;;;:::i;:::-;;;;;;;;14803:294:::0;;:::o;14009:235::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14087:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;::::1;;14079:68;;;::::0;-1:-1:-1;;;14079:68:0;;6535:2:1;14079:68:0::1;::::0;::::1;6517:21:1::0;6574:2;6554:18;;;6547:30;6613:29;6593:18;;;6586:57;6660:18;;14079:68:0::1;6333:351:1::0;14079:68:0::1;-1:-1:-1::0;;;;;14160:28:0;::::1;14191:5;14160:28:::0;;;:19:::1;:28;::::0;;;;;:36;;-1:-1:-1;;14160:36:0::1;::::0;;14214:22;::::1;::::0;14191:5;14214:22:::1;14009:235:::0;:::o;3015:529::-;3155:4;3172:36;3182:6;3190:9;3201:6;3172:9;:36::i;:::-;-1:-1:-1;;;;;3248:19:0;;3221:24;3248:19;;;:11;:19;;;;;;;;1209:10;3248:33;;;;;;;;3314:26;;;;3292:116;;;;-1:-1:-1;;;3292:116:0;;6891:2:1;3292:116:0;;;6873:21:1;6930:2;6910:18;;;6903:30;6969:34;6949:18;;;6942:62;-1:-1:-1;;;7020:18:1;;;7013:38;7068:19;;3292:116:0;6689:404:1;3292:116:0;3444:57;3453:6;1209:10;3494:6;3475:16;:25;3444:8;:57::i;:::-;-1:-1:-1;3532:4:0;;3015:529;-1:-1:-1;;;;3015:529:0:o;3552:290::-;1209:10;3665:4;3754:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3754:34:0;;;;;;;;;;3665:4;;3682:130;;3732:7;;3754:47;;3791:10;;3754:47;:::i;:::-;3682:8;:130::i;16083:320::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;16205:1:::1;16185:16;:21;;;;16163:116;;;::::0;-1:-1:-1;;;16163:116:0;;7430:2:1;16163:116:0::1;::::0;::::1;7412:21:1::0;7469:2;7449:18;;;7442:30;7508:34;7488:18;;;7481:62;-1:-1:-1;;;7559:18:1;;;7552:43;7612:19;;16163:116:0::1;7228:409:1::0;16163:116:0::1;16292:13;:32:::0;;-1:-1:-1;;16292:32:0::1;;::::0;::::1;::::0;;::::1;::::0;;;16342:53:::1;::::0;;7808:36:1;;;7875:2;7860:18;;7853:45;;;;16342:53:0::1;::::0;7781:18:1;16342:53:0::1;;;;;;;;16083:320:::0;:::o;15347:176::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;15420:15:::1;:23:::0;;;15456:12:::1;:10;:12::i;:::-;15486:29;::::0;1361:25:1;;;15486:29:0::1;::::0;1349:2:1;1334:18;15486:29:0::1;1215:177:1::0;6648:94:0;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;6713:21:::1;6731:1;6713:9;:21::i;:::-;6648:94::o:0;15899:176::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;15972:15:::1;:23:::0;;;16008:12:::1;:10;:12::i;:::-;16038:29;::::0;1361:25:1;;;16038:29:0::1;::::0;1349:2:1;1334:18;16038:29:0::1;1215:177:1::0;15712:179:0;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;15786:16:::1;:24:::0;;;15823:12:::1;:10;:12::i;:::-;15853:30;::::0;1361:25:1;;;15853:30:0::1;::::0;1349:2:1;1334:18;15853:30:0::1;1215:177:1::0;1934:104:0;1990:13;2023:7;2016:14;;;;;:::i;3850:475::-;1209:10;3968:4;4012:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4012:34:0;;;;;;;;;;4079:35;;;;4057:122;;;;-1:-1:-1;;;4057:122:0;;8111:2:1;4057:122:0;;;8093:21:1;8150:2;8130:18;;;8123:30;8189:34;8169:18;;;8162:62;-1:-1:-1;;;8240:18:1;;;8233:35;8285:19;;4057:122:0;7909:401:1;4057:122:0;4215:67;1209:10;4238:7;4266:15;4247:16;:34;4215:8;:67::i;:::-;-1:-1:-1;4313:4:0;;3850:475;-1:-1:-1;;;3850:475:0:o;14548:247::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14629:31:0;::::1;;::::0;;;:22:::1;:31;::::0;;;;;::::1;;14621:71;;;::::0;-1:-1:-1;;;14621:71:0;;6535:2:1;14621:71:0::1;::::0;::::1;6517:21:1::0;6574:2;6554:18;;;6547:30;6613:29;6593:18;;;6586:57;6660:18;;14621:71:0::1;6333:351:1::0;14621:71:0::1;-1:-1:-1::0;;;;;14705:31:0;::::1;14739:5;14705:31:::0;;;:22:::1;:31;::::0;;;;;:39;;-1:-1:-1;;14705:39:0::1;::::0;;14762:25;::::1;::::0;14739:5;14762:25:::1;14548:247:::0;:::o;15105:234::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15194:20:0;::::1;15186:55;;;::::0;-1:-1:-1;;;15186:55:0;;8517:2:1;15186:55:0::1;::::0;::::1;8499:21:1::0;8556:2;8536:18;;;8529:30;-1:-1:-1;;;8575:18:1;;;8568:52;8637:18;;15186:55:0::1;8315:346:1::0;15186:55:0::1;15254:21;:30:::0;;-1:-1:-1;;;;;;15254:30:0::1;-1:-1:-1::0;;;;;15254:30:0;::::1;::::0;;::::1;::::0;;;15302:29:::1;::::0;2189:51:1;;;15302:29:0::1;::::0;2177:2:1;2162:18;15302:29:0::1;2017:229:1::0;2421:200:0;2532:4;2549:42;1209:10;2573:9;2584:6;2549:9;:42::i;13393:361::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;13517:7:::1;13501:13;2242:12:::0;;;2154:108;13501:13:::1;:23;;;;:::i;:::-;13492:6;:32;:86;;;;;13571:7;13555:13;2242:12:::0;;;2154:108;13555:13:::1;:23;;;;:::i;:::-;13545:6;:33;;13492:86;13470:187;;;::::0;-1:-1:-1;;;13470:187:0;;9306:2:1;13470:187:0::1;::::0;::::1;9288:21:1::0;9345:2;9325:18;;;9318:30;9384:34;9364:18;;;9357:62;-1:-1:-1;;;9435:18:1;;;9428:49;9494:19;;13470:187:0::1;9104:415:1::0;13470:187:0::1;13668:18;:27:::0;;;13713:33:::1;::::0;1361:25:1;;;13713:33:0::1;::::0;1349:2:1;1334:18;13713:33:0::1;1215:177:1::0;14252:288:0;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14350:31:0;::::1;;::::0;;;:22:::1;:31;::::0;;;;;::::1;;14349:32;14327:109;;;::::0;-1:-1:-1;;;14327:109:0;;9726:2:1;14327:109:0::1;::::0;::::1;9708:21:1::0;9765:2;9745:18;;;9738:30;9804:29;9784:18;;;9777:57;9851:18;;14327:109:0::1;9524:351:1::0;14327:109:0::1;-1:-1:-1::0;;;;;14449:31:0;::::1;;::::0;;;:22:::1;:31;::::0;;;;;:38;;-1:-1:-1;;14449:38:0::1;14483:4;14449:38;::::0;;14505:27;::::1;::::0;14449:31;14505:27:::1;14252:288:::0;:::o;13762:239::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13843:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;::::1;;13842:29;13834:69;;;::::0;-1:-1:-1;;;13834:69:0;;9726:2:1;13834:69:0::1;::::0;::::1;9708:21:1::0;9765:2;9745:18;;;9738:30;9804:29;9784:18;;;9777:57;9851:18;;13834:69:0::1;9524:351:1::0;13834:69:0::1;-1:-1:-1::0;;;;;13916:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:35;;-1:-1:-1;;13916:35:0::1;13947:4;13916:35;::::0;;13969:24;::::1;::::0;13916:28;13969:24:::1;13762:239:::0;:::o;15531:173::-;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;15603:14:::1;:22:::0;;;15638:12:::1;:10;:12::i;:::-;15668:28;::::0;1361:25:1;;;15668:28:0::1;::::0;1349:2:1;1334:18;15668:28:0::1;1215:177:1::0;6750:229:0;6498:6;;-1:-1:-1;;;;;6498:6:0;1209:10;6560:23;6552:68;;;;-1:-1:-1;;;6552:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6853:22:0;::::1;6831:110;;;::::0;-1:-1:-1;;;6831:110:0;;10082:2:1;6831:110:0::1;::::0;::::1;10064:21:1::0;10121:2;10101:18;;;10094:30;10160:34;10140:18;;;10133:62;-1:-1:-1;;;10211:18:1;;;10204:36;10257:19;;6831:110:0::1;9880:402:1::0;6831:110:0::1;6952:19;6962:8;6952:9;:19::i;:::-;6750:229:::0;:::o;5752:380::-;-1:-1:-1;;;;;5888:19:0;;5880:68;;;;-1:-1:-1;;;5880:68:0;;10489:2:1;5880:68:0;;;10471:21:1;10528:2;10508:18;;;10501:30;10567:34;10547:18;;;10540:62;-1:-1:-1;;;10618:18:1;;;10611:34;10662:19;;5880:68:0;10287:400:1;5880:68:0;-1:-1:-1;;;;;5967:21:0;;5959:68;;;;-1:-1:-1;;;5959:68:0;;10894:2:1;5959:68:0;;;10876:21:1;10933:2;10913:18;;;10906:30;10972:34;10952:18;;;10945:62;-1:-1:-1;;;11023:18:1;;;11016:32;11065:19;;5959:68:0;10692:398:1;5959:68:0;-1:-1:-1;;;;;6040:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6092:32;;1361:25:1;;;6092:32:0;;1334:18:1;6092:32:0;;;;;;;5752:380;;;:::o;17350:2242::-;-1:-1:-1;;;;;17482:18:0;;17474:69;;;;-1:-1:-1;;;17474:69:0;;11297:2:1;17474:69:0;;;11279:21:1;11336:2;11316:18;;;11309:30;11375:34;11355:18;;;11348:62;-1:-1:-1;;;11426:18:1;;;11419:36;11472:19;;17474:69:0;11095:402:1;17474:69:0;-1:-1:-1;;;;;17562:16:0;;17554:65;;;;-1:-1:-1;;;17554:65:0;;11704:2:1;17554:65:0;;;11686:21:1;11743:2;11723:18;;;11716:30;11782:34;11762:18;;;11755:62;-1:-1:-1;;;11833:18:1;;;11826:34;11877:19;;17554:65:0;11502:400:1;17554:65:0;17636:6;17646:1;17636:11;17632:93;;17664:28;17680:4;17686:2;17690:1;17664:15;:28::i;:::-;17350:2242;;;:::o;17632:93::-;17742:8;;-1:-1:-1;;;17742:8:0;;;;17737:583;;-1:-1:-1;;;;;17772:28:0;;;;;;:22;:28;;;;;;;;17767:266;;17869:13;;-1:-1:-1;;;;;17851:15:0;;17869:13;17851:15;;;:9;:15;;;;;;17886:12;;17851:31;;17869:13;;;;;17851:31;:::i;:::-;:47;;17821:147;;;;-1:-1:-1;;;17821:147:0;;12109:2:1;17821:147:0;;;12091:21:1;12148:2;12128:18;;;12121:30;12187:28;12167:18;;;12160:56;12233:18;;17821:147:0;11907:350:1;17821:147:0;-1:-1:-1;;;;;17987:15:0;;;;;;:9;:15;;;;;18005:12;17987:30;;17767:266;-1:-1:-1;;;;;18054:26:0;;;;;;:22;:26;;;;;;;;18049:260;;18147:13;;-1:-1:-1;;;;;18131:13:0;;18147;18131;;;:9;:13;;;;;;18164:12;;18131:29;;18147:13;;;;;18131:29;:::i;:::-;:45;;18101:145;;;;-1:-1:-1;;;18101:145:0;;12109:2:1;18101:145:0;;;12091:21:1;12148:2;12128:18;;;12121:30;12187:28;12167:18;;;12160:56;12233:18;;18101:145:0;11907:350:1;18101:145:0;-1:-1:-1;;;;;18265:13:0;;;;;;:9;:13;;;;;18281:12;18265:28;;18049:260;18353:8;;18397:9;;18462:18;;18452:4;18332:18;2387;;;;;;;;;;;-1:-1:-1;;;18353:8:0;;;;;;18332:18;;-1:-1:-1;18434:46:0;18419:61;;18511:7;:38;;;;;18536:13;18535:14;18511:38;:87;;;;-1:-1:-1;;;;;;18567:31:0;;;;;;:25;:31;;;;;;;;18566:32;18511:87;:119;;;;-1:-1:-1;6498:6:0;;-1:-1:-1;;;;;18615:15:0;;;6498:6;;18615:15;;18511:119;:149;;;;-1:-1:-1;6498:6:0;;-1:-1:-1;;;;;18647:13:0;;;6498:6;;18647:13;;18511:149;:184;;;;;18694:1;18677:14;:18;18511:184;18493:247;;;18722:6;:4;:6::i;:::-;18752:12;18768:13;18767:14;:57;;;;-1:-1:-1;;;;;;18799:25:0;;;;;;:19;:25;;;;;;;;18798:26;18767:57;:98;;;;-1:-1:-1;;;;;;18842:23:0;;;;;;:19;:23;;;;;;;;18841:24;18767:98;:133;;;;;18899:1;18882:14;:18;18767:133;18752:148;;18917:7;18913:626;;;-1:-1:-1;;;;;18963:31:0;;;;;;:25;:31;;;;;;;;:82;;;;-1:-1:-1;19029:15:0;;-1:-1:-1;;;;;19015:30:0;;;19029:15;;19015:30;;18963:82;18941:204;;;19115:14;;19097:15;;:32;;;;:::i;:::-;19080:49;;18941:204;-1:-1:-1;;;;;19183:29:0;;;;;;:25;:29;;;;;;;;:82;;;;-1:-1:-1;19249:15:0;;-1:-1:-1;;;;;19233:32:0;;;19249:15;;19233:32;;19183:82;19161:206;;;19336:15;;19317:16;;:34;;;;:::i;:::-;19300:51;;19161:206;19383:12;19426:3;19399:23;19408:14;19399:6;:23;:::i;:::-;19398:31;;;;:::i;:::-;19383:46;-1:-1:-1;19455:13:0;19383:46;19455:6;:13;:::i;:::-;19446:22;;19485:42;19501:4;19515;19522;19485:15;:42::i;:::-;18926:613;18913:626;19551:33;19567:4;19573:2;19577:6;19551:15;:33::i;:::-;17463:2129;;;;17350:2242;;;:::o;16411:253::-;16571:15;;16539:16;;16509:14;;16478:15;;:45;;;;:::i;:::-;:77;;;;:::i;:::-;:108;;;;:::i;:::-;16453:9;:133;;;16620:1;-1:-1:-1;16607:14:0;16599:57;;;;-1:-1:-1;;;16599:57:0;;12770:2:1;16599:57:0;;;12752:21:1;12809:2;12789:18;;;12782:30;12848:32;12828:18;;;12821:60;12898:18;;16599:57:0;12568:354:1;6987:173:0;7062:6;;;-1:-1:-1;;;;;7079:17:0;;;-1:-1:-1;;;;;;7079:17:0;;;;;;;7112:40;;7062:6;;;7079:17;7062:6;;7112:40;;7043:16;;7112:40;7032:128;6987:173;:::o;4333:651::-;-1:-1:-1;;;;;4473:20:0;;4465:70;;;;-1:-1:-1;;;4465:70:0;;13129:2:1;4465:70:0;;;13111:21:1;13168:2;13148:18;;;13141:30;13207:34;13187:18;;;13180:62;-1:-1:-1;;;13258:18:1;;;13251:35;13303:19;;4465:70:0;12927:401:1;4465:70:0;-1:-1:-1;;;;;4554:23:0;;4546:71;;;;-1:-1:-1;;;4546:71:0;;13535:2:1;4546:71:0;;;13517:21:1;13574:2;13554:18;;;13547:30;13613:34;13593:18;;;13586:62;-1:-1:-1;;;13664:18:1;;;13657:33;13707:19;;4546:71:0;13333:399:1;4546:71:0;-1:-1:-1;;;;;4654:17:0;;4630:21;4654:17;;;;;;;;;;;4704:23;;;;4682:111;;;;-1:-1:-1;;;4682:111:0;;13939:2:1;4682:111:0;;;13921:21:1;13978:2;13958:18;;;13951:30;14017:34;13997:18;;;13990:62;-1:-1:-1;;;14068:18:1;;;14061:36;14114:19;;4682:111:0;13737:402:1;4682:111:0;-1:-1:-1;;;;;4829:17:0;;;:9;:17;;;;;;;;;;;4849:22;;;4829:42;;4893:20;;;;;;;;:30;;4865:6;;4829:9;4893:30;;4865:6;;4893:30;:::i;:::-;;;;;;;;4958:9;-1:-1:-1;;;;;4941:35:0;4950:6;-1:-1:-1;;;;;4941:35:0;;4969:6;4941:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;4941:35:0;;;;;;;;4454:530;4333:651;;;:::o;19600:512::-;12291:8;:15;;-1:-1:-1;;;;12291:15:0;-1:-1:-1;;;12291:15:0;;;19664:18:::1;::::0;19742:16:::1;::::0;19724:15:::1;::::0;12291;;19724:34:::1;::::0;::::1;:::i;:::-;19794:9;::::0;19695:63;;-1:-1:-1;19769:22:0::1;19794:9:::0;19838:27:::1;19695:63:::0;19838:6;:27:::1;:::i;:::-;19837:46;;;;:::i;:::-;19816:67:::0;-1:-1:-1;19900:14:0;;19896:46:::1;;19916:26;19931:10;19916:14;:26::i;:::-;19955:22;19980:19;19989:10:::0;19980:6;:19:::1;:::i;:::-;19955:44:::0;-1:-1:-1;20016:18:0;;20012:92:::1;;20082:21;::::0;20049:55:::1;::::0;20066:14;;-1:-1:-1;;;;;20082:21:0::1;20049:16;:55::i;:::-;-1:-1:-1::0;;12329:8:0;:16;;-1:-1:-1;;;;12329:16:0;;;-1:-1:-1;;;19600:512:0:o;20120:466::-;20179:12;20194:10;20203:1;20194:6;:10;:::i;:::-;20179:25;-1:-1:-1;20215:17:0;20235:13;20179:25;20235:6;:13;:::i;:::-;20215:33;-1:-1:-1;20286:21:0;20320:37;20337:4;20351;20320:16;:37::i;:::-;20370:18;20391:38;20415:14;20391:21;:38;:::i;:::-;20370:59;;20446:10;20460:1;20446:15;20442:28;;20463:7;;;;20120:466;:::o;20442:28::-;20482:35;20495:9;20506:10;20482:12;:35::i;:::-;20535:43;;;14346:25:1;;;14402:2;14387:18;;14380:34;;;14430:18;;;14423:34;;;20535:43:0;;14334:2:1;14319:18;20535:43:0;;;;;;;20168:418;;;;20120:466;:::o;20594:645::-;20730:16;;;20744:1;20730:16;;;;;;;;20706:21;;20730:16;;;;;;;;;;-1:-1:-1;20730:16:0;20706:40;;20775:4;20757;20762:1;20757:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20757:23:0;;;:7;;;;;;;;;;:23;;;;20801:15;;:22;;;-1:-1:-1;;;20801:22:0;;;;:15;;;;;:20;;:22;;;;;20757:7;;20801:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20791:4;20796:1;20791:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20791:32:0;;;:7;;;;;;;;;:32;20868:15;;20836:62;;20853:4;;20868:15;20886:11;20836:8;:62::i;:::-;20928:15;;:218;;-1:-1:-1;;;20928:218:0;;-1:-1:-1;;;;;20928:15:0;;;;:66;;:218;;21013:11;;20928:15;;21063:4;;21086:11;;21116:15;;20928:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20911:321;;21185:35;;1361:25:1;;;21185:35:0;;1349:2:1;1334:18;21185:35:0;;;;;;;17350:2242;;;:::o;21247:370::-;21360:15;;21328:62;;21345:4;;-1:-1:-1;;;;;21360:15:0;21378:11;21328:8;:62::i;:::-;21403:15;;:206;;-1:-1:-1;;;21403:206:0;;21475:4;21403:206;;;16182:34:1;16232:18;;;16225:34;;;21403:15:0;16275:18:1;;;16268:34;;;16318:18;;;16311:34;21561:6:0;16361:19:1;;;16354:44;21583:15:0;16414:19:1;;;16407:35;-1:-1:-1;;;;;21403:15:0;;;;:31;;21442:9;;16116:19:1;;21403:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21247:370;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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:615::-;1483:6;1491;1544:2;1532:9;1523:7;1519:23;1515:32;1512:52;;;1560:1;1557;1550:12;1512:52;1600:9;1587:23;1629:18;1670:2;1662:6;1659:14;1656:34;;;1686:1;1683;1676:12;1656:34;1724:6;1713:9;1709:22;1699:32;;1769:7;1762:4;1758:2;1754:13;1750:27;1740:55;;1791:1;1788;1781:12;1740:55;1831:2;1818:16;1857:2;1849:6;1846:14;1843:34;;;1873:1;1870;1863:12;1843:34;1926:7;1921:2;1911:6;1908:1;1904:14;1900:2;1896:23;1892:32;1889:45;1886:65;;;1947:1;1944;1937:12;1886:65;1978:2;1970:11;;;;;2000:6;;-1:-1:-1;1397:615:1;;-1:-1:-1;;;;1397:615:1:o;2251:247::-;2310:6;2363:2;2351:9;2342:7;2338:23;2334:32;2331:52;;;2379:1;2376;2369:12;2331:52;2418:9;2405:23;2437:31;2462:5;2437:31;:::i;:::-;2487:5;2251:247;-1:-1:-1;;;2251:247:1:o;2503:456::-;2580:6;2588;2596;2649:2;2637:9;2628:7;2624:23;2620:32;2617:52;;;2665:1;2662;2655:12;2617:52;2704:9;2691:23;2723:31;2748:5;2723:31;:::i;:::-;2773:5;-1:-1:-1;2830:2:1;2815:18;;2802:32;2843:33;2802:32;2843:33;:::i;:::-;2503:456;;2895:7;;-1:-1:-1;;;2949:2:1;2934:18;;;;2921:32;;2503:456::o;3153:269::-;3210:6;3263:2;3251:9;3242:7;3238:23;3234:32;3231:52;;;3279:1;3276;3269:12;3231:52;3318:9;3305:23;3368:4;3361:5;3357:16;3350:5;3347:27;3337:55;;3388:1;3385;3378:12;3427:180;3486:6;3539:2;3527:9;3518:7;3514:23;3510:32;3507:52;;;3555:1;3552;3545:12;3507:52;-1:-1:-1;3578:23:1;;3427:180;-1:-1:-1;3427:180:1:o;4080:388::-;4148:6;4156;4209:2;4197:9;4188:7;4184:23;4180:32;4177:52;;;4225:1;4222;4215:12;4177:52;4264:9;4251:23;4283:31;4308:5;4283:31;:::i;:::-;4333:5;-1:-1:-1;4390:2:1;4375:18;;4362:32;4403:33;4362:32;4403:33;:::i;:::-;4455:7;4445:17;;;4080:388;;;;;:::o;4473:380::-;4552:1;4548:12;;;;4595;;;4616:61;;4670:4;4662:6;4658:17;4648:27;;4616:61;4723:2;4715:6;4712:14;4692:18;4689:38;4686:161;;4769:10;4764:3;4760:20;4757:1;4750:31;4804:4;4801:1;4794:15;4832:4;4829:1;4822:15;4686:161;;4473:380;;;:::o;4858:356::-;5060:2;5042:21;;;5079:18;;;5072:30;5138:34;5133:2;5118:18;;5111:62;5205:2;5190:18;;4858:356::o;5219:127::-;5280:10;5275:3;5271:20;5268:1;5261:31;5311:4;5308:1;5301:15;5335:4;5332:1;5325:15;5351:127;5412:10;5407:3;5403:20;5400:1;5393:31;5443:4;5440:1;5433:15;5467:4;5464:1;5457:15;5483:135;5522:3;5543:17;;;5540:43;;5563:18;;:::i;:::-;-1:-1:-1;5610:1:1;5599:13;;5483:135::o;5623:705::-;5804:2;5856:21;;;5829:18;;;5912:22;;;5775:4;;5991:6;5965:2;5950:18;;5775:4;6025:277;6039:6;6036:1;6033:13;6025:277;;;6114:6;6101:20;6134:31;6159:5;6134:31;:::i;:::-;-1:-1:-1;;;;;6190:31:1;6178:44;;6277:15;;;;6242:12;;;;6218:1;6054:9;6025:277;;;-1:-1:-1;6319:3:1;5623:705;-1:-1:-1;;;;;;5623:705:1:o;7098:125::-;7163:9;;;7184:10;;;7181:36;;;7197:18;;:::i;8882:217::-;8922:1;8948;8938:132;;8992:10;8987:3;8983:20;8980:1;8973:31;9027:4;9024:1;9017:15;9055:4;9052:1;9045:15;8938:132;-1:-1:-1;9084:9:1;;8882:217::o;12262:168::-;12302:7;12368:1;12364;12360:6;12356:14;12353:1;12350:21;12345:1;12338:9;12331:17;12327:45;12324:71;;;12375:18;;:::i;:::-;-1:-1:-1;12415:9:1;;12262:168::o;12435:128::-;12502:9;;;12523:11;;;12520:37;;;12537:18;;:::i;14600:251::-;14670:6;14723:2;14711:9;14702:7;14698:23;14694:32;14691:52;;;14739:1;14736;14729:12;14691:52;14771:9;14765:16;14790:31;14815:5;14790:31;:::i;14856:980::-;15118:4;15166:3;15155:9;15151:19;15197:6;15186:9;15179:25;15223:2;15261:6;15256:2;15245:9;15241:18;15234:34;15304:3;15299:2;15288:9;15284:18;15277:31;15328:6;15363;15357:13;15394:6;15386;15379:22;15432:3;15421:9;15417:19;15410:26;;15471:2;15463:6;15459:15;15445:29;;15492:1;15502:195;15516:6;15513:1;15510:13;15502:195;;;15581:13;;-1:-1:-1;;;;;15577:39:1;15565:52;;15672:15;;;;15637:12;;;;15613:1;15531:9;15502:195;;;-1:-1:-1;;;;;;;15753:32:1;;;;15748:2;15733:18;;15726:60;-1:-1:-1;;;15817:3:1;15802:19;15795:35;15714:3;14856:980;-1:-1:-1;;;14856:980:1:o;16453:306::-;16541:6;16549;16557;16610:2;16598:9;16589:7;16585:23;16581:32;16578:52;;;16626:1;16623;16616:12;16578:52;16655:9;16649:16;16639:26;;16705:2;16694:9;16690:18;16684:25;16674:35;;16749:2;16738:9;16734:18;16728:25;16718:35;;16453:306;;;;;:::o

Swarm Source

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