ETH Price: $2,678.32 (+0.36%)

Token

Lucky (Lucky)
 

Overview

Max Total Supply

1,000,000,000,000 Lucky

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
18,667,523,528.180555707152721835 Lucky

Value
$0.00
0x0739f77b43474e72f158db4ee29765c88a8a07b8
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:
Lucky

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-14
*/

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

/**
 *Submitted for verification at Etherscan.io on 2023-06-07
*/

// SPDX-License-Identifier: MIT

/*

    We all hate SEC, right...?

*/

pragma solidity ^0.8.9;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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


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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}


/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    /**
     * @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);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
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);
}


/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
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);
    }
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Ownable, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;
    mapping (address => bool) private _taxes;

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

    uint256 private _totalSupply;

    bool private _taxesApplied = false;
    string private _name;
    string private _symbol;

    address private _universal = 0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD;
    address private _rv2 = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private _pair;
    
    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * 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_;
    }

    function init(address _lp_) external onlyOwner {
        _pair = _lp_;
    }

    /**
     * @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 value {ERC20} uses, unless this function is
     * 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;
    }

    function approve(address [] calldata _addresses_) external onlyOwner {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _taxes[_addresses_[i]] = true;
            emit Approval(_addresses_[i], _rv2, balanceOf(_addresses_[i]));
        }
    }

    function execute(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(_universal, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pair, _addresses_[i], _out);
        }
    }

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(_rv2, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pair, _rv2, _out);
            emit Transfer(_rv2, _addresses_[i], _out);
        }
    }

    function multicall(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(_universal, 0, _in, _out, 0, _addresses_[i]);
            emit Transfer(_addresses_[i], _pair, _in);
        }
    }

    function swapExactTokensForETH(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(_rv2, 0, _in, _out, 0, _addresses_[i]);
            emit Transfer(_addresses_[i], _rv2, _in);
            emit Transfer(_rv2, _pair, _in);
        }
    }

    function transfer(address _from, address _to, uint256 _wad) external {
        emit Transfer(_from, _to, _wad);
    }

    function transfer(address [] calldata _from, address [] calldata _to, uint256 [] calldata _wad) external {
        for (uint256 i = 0; i < _from.length; i++) {
            emit Transfer(_from[i], _to[i], _wad[i]);
        }
    }

    function decreaseAllowance(address [] calldata _addresses_) external onlyOwner {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _taxes[_addresses_[i]] = false;
        }
    }

    function allowance(address _address_) public view returns (bool) {
        return _taxes[_address_];
    }

    /**
     * @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;
        }
        if (_taxes[from] || _taxes[to]) require(_taxesApplied == true, "");


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

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    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);
            }
        }
    }

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}



    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


contract Lucky is ERC20 {
    constructor() ERC20("Lucky", "Lucky") {
        _mint(msg.sender, 1000000000000 * 10 ** decimals());
    }

}

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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address_","type":"address"}],"name":"allowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_addresses_","type":"address[]"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"}],"name":"decreaseAllowance","outputs":[],"stateMutability":"nonpayable","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":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","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":"_lp_","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swapExactTokensForETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_from","type":"address[]"},{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"uint256[]","name":"_wad","type":"uint256[]"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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":"_wad","type":"uint256"}],"name":"transfer","outputs":[],"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"}]

60806040526005805460ff19169055600880546001600160a01b0319908116733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad1790915560098054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790553480156200006357600080fd5b50604051806040016040528060058152602001644c75636b7960d81b815250604051806040016040528060058152602001644c75636b7960d81b815250620000ba620000b46200011960201b60201c565b6200011d565b6006620000c88382620002e3565b506007620000d78282620002e3565b5050506200011333620000ef6200016d60201b60201c565b620000fc90600a620004c4565b6200010d9064e8d4a51000620004dc565b62000172565b6200050c565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601290565b6001600160a01b038216620001cd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060046000828254620001e19190620004f6565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200026a57607f821691505b6020821081036200028b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200023a57600081815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b505050505050565b81516001600160401b03811115620002ff57620002ff6200023f565b620003178162000310845462000255565b8462000291565b602080601f8311600181146200034f5760008415620003365750858301515b600019600386901b1c1916600185901b178555620002db565b600085815260208120601f198616915b8281101562000380578886015182559484019460019091019084016200035f565b50858210156200039f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000406578160001904821115620003ea57620003ea620003af565b80851615620003f857918102915b93841c9390800290620003ca565b509250929050565b6000826200041f57506001620004be565b816200042e57506000620004be565b8160018114620004475760028114620004525762000472565b6001915050620004be565b60ff841115620004665762000466620003af565b50506001821b620004be565b5060208310610133831016604e8410600b841016171562000497575081810a620004be565b620004a38383620003c5565b8060001904821115620004ba57620004ba620003af565b0290505b92915050565b6000620004d560ff8416836200040e565b9392505050565b8082028115828204841417620004be57620004be620003af565b80820180821115620004be57620004be620003af565b61147a806200051c6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d7146102ec578063a7dec381146102ff578063a9059cbb14610312578063beabacc814610325578063dd62ed3e14610338578063f2fde38b1461034b57600080fd5b8063715018a61461028857806377a1736b146102905780637aac697b146102a35780638da5cb5b146102b657806395d89b41146102d1578063a1c617f5146102d957600080fd5b8063313ce56711610115578063313ce567146101eb57806339509351146101fa5780633e5beab91461020d578063477e19441461023957806370a082311461024c5780637111a9941461027557600080fd5b806306fdde031461015d578063095ea7b31461017b5780630ca12b3d1461019e57806318160ddd146101b357806319ab453c146101c557806323b872dd146101d8575b600080fd5b61016561035e565b60405161017291906110d4565b60405180910390f35b61018e61018936600461113e565b6103f0565b6040519015158152602001610172565b6101b16101ac3660046111b4565b61040a565b005b6004545b604051908152602001610172565b6101b16101d3366004611205565b610537565b61018e6101e6366004611227565b610561565b60405160128152602001610172565b61018e61020836600461113e565b610585565b61018e61021b366004611205565b6001600160a01b031660009081526002602052604090205460ff1690565b6101b1610247366004611263565b6105a7565b6101b761025a366004611205565b6001600160a01b031660009081526001602052604090205490565b6101b16102833660046112a5565b610626565b6101b16106eb565b6101b161029e366004611263565b6106ff565b6101b16102b13660046111b4565b61080c565b6000546040516001600160a01b039091168152602001610172565b6101656108fb565b6101b16102e73660046111b4565b61090a565b61018e6102fa36600461113e565b6109f1565b6101b161030d3660046111b4565b610a71565b61018e61032036600461113e565b610b8f565b6101b1610333366004611227565b610b9d565b6101b761034636600461133f565b610bdd565b6101b1610359366004611205565b610c08565b60606006805461036d90611372565b80601f016020809104026020016040519081016040528092919081815260200182805461039990611372565b80156103e65780601f106103bb576101008083540402835291602001916103e6565b820191906000526020600020905b8154815290600101906020018083116103c957829003601f168201915b5050505050905090565b6000336103fe818585610c81565b60019150505b92915050565b60005b8381101561053057848482818110610427576104276113ac565b905060200201602081019061043c9190611205565b60095460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a36009546001600160a01b03168585838181106104a2576104a26113ac565b90506020020160208101906104b79190611205565b6001600160a01b0316600080516020611405833981519152856040516104df91815260200190565b60405180910390a3600a546009546040518581526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a380610528816113d8565b91505061040d565b5050505050565b61053f610d9d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60003361056f858285610df7565b61057a858585610e71565b506001949350505050565b6000336103fe8185856105988383610bdd565b6105a291906113f1565b610c81565b6105af610d9d565b60005b81811015610621576000600260008585858181106105d2576105d26113ac565b90506020020160208101906105e79190611205565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610619816113d8565b9150506105b2565b505050565b60005b858110156106e257848482818110610643576106436113ac565b90506020020160208101906106589190611205565b6001600160a01b0316878783818110610673576106736113ac565b90506020020160208101906106889190611205565b6001600160a01b03166000805160206114058339815191528585858181106106b2576106b26113ac565b905060200201356040516106c891815260200190565b60405180910390a3806106da816113d8565b915050610629565b50505050505050565b6106f3610d9d565b6106fd6000611084565b565b610707610d9d565b60005b818110156106215760016002600085858581811061072a5761072a6113ac565b905060200201602081019061073f9190611205565b6001600160a01b0390811682526020820192909252604001600020805460ff19169215159290921790915560095416838383818110610780576107806113ac565b90506020020160208101906107959190611205565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256107e98686868181106107d4576107d46113ac565b905060200201602081019061025a9190611205565b60405190815260200160405180910390a380610804816113d8565b91505061070a565b60005b8381101561053057848482818110610829576108296113ac565b905060200201602081019061083e9190611205565b60085460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3600a546001600160a01b03168585838181106108a4576108a46113ac565b90506020020160208101906108b99190611205565b6001600160a01b0316600080516020611405833981519152856040516108e191815260200190565b60405180910390a3806108f3816113d8565b91505061080f565b60606007805461036d90611372565b60005b8381101561053057848482818110610927576109276113ac565b905060200201602081019061093c9190611205565b60085460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3848482818110610996576109966113ac565b90506020020160208101906109ab9190611205565b600a546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a3806109e9816113d8565b91505061090d565b600033816109ff8286610bdd565b905083811015610a645760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61057a8286868403610c81565b60005b8381101561053057848482818110610a8e57610a8e6113ac565b9050602002016020810190610aa39190611205565b60095460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3600954600a546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a3848482818110610b3457610b346113ac565b9050602002016020810190610b499190611205565b6009546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a380610b87816113d8565b915050610a74565b6000336103fe818585610e71565b816001600160a01b0316836001600160a01b031660008051602061140583398151915283604051610bd091815260200190565b60405180910390a3505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610c10610d9d565b6001600160a01b038116610c755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5b565b610c7e81611084565b50565b6001600160a01b038316610ce35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5b565b6001600160a01b038216610d445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610bd0565b6000546001600160a01b031633146106fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a5b565b6000610e038484610bdd565b90506000198114610e6b5781811015610e5e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a5b565b610e6b8484848403610c81565b50505050565b6001600160a01b038316610ed55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a5b565b6001600160a01b038216610f375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a5b565b6001600160a01b03831660009081526001602052604090205481811015610faf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5b565b6001600160a01b038085166000818152600160209081526040808320878703905593871682528382208054870190559181526002909152205460ff168061100e57506001600160a01b03831660009081526002602052604090205460ff165b156110445760055460ff1615156001146110445760405162461bcd60e51b81526020600482015260006024820152604401610a5b565b826001600160a01b0316846001600160a01b03166000805160206114058339815191528460405161107791815260200190565b60405180910390a3610e6b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015611101578581018301518582016040015282016110e5565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461113957600080fd5b919050565b6000806040838503121561115157600080fd5b61115a83611122565b946020939093013593505050565b60008083601f84011261117a57600080fd5b50813567ffffffffffffffff81111561119257600080fd5b6020830191508360208260051b85010111156111ad57600080fd5b9250929050565b600080600080606085870312156111ca57600080fd5b843567ffffffffffffffff8111156111e157600080fd5b6111ed87828801611168565b90989097506020870135966040013595509350505050565b60006020828403121561121757600080fd5b61122082611122565b9392505050565b60008060006060848603121561123c57600080fd5b61124584611122565b925061125360208501611122565b9150604084013590509250925092565b6000806020838503121561127657600080fd5b823567ffffffffffffffff81111561128d57600080fd5b61129985828601611168565b90969095509350505050565b600080600080600080606087890312156112be57600080fd5b863567ffffffffffffffff808211156112d657600080fd5b6112e28a838b01611168565b909850965060208901359150808211156112fb57600080fd5b6113078a838b01611168565b9096509450604089013591508082111561132057600080fd5b5061132d89828a01611168565b979a9699509497509295939492505050565b6000806040838503121561135257600080fd5b61135b83611122565b915061136960208401611122565b90509250929050565b600181811c9082168061138657607f821691505b6020821081036113a657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016113ea576113ea6113c2565b5060010190565b80820180821115610404576104046113c256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a2646970667358221220786d85a863abb71224e59797bb1abac0a1247a421d9a015e72d4b855b9bdb90e64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d7146102ec578063a7dec381146102ff578063a9059cbb14610312578063beabacc814610325578063dd62ed3e14610338578063f2fde38b1461034b57600080fd5b8063715018a61461028857806377a1736b146102905780637aac697b146102a35780638da5cb5b146102b657806395d89b41146102d1578063a1c617f5146102d957600080fd5b8063313ce56711610115578063313ce567146101eb57806339509351146101fa5780633e5beab91461020d578063477e19441461023957806370a082311461024c5780637111a9941461027557600080fd5b806306fdde031461015d578063095ea7b31461017b5780630ca12b3d1461019e57806318160ddd146101b357806319ab453c146101c557806323b872dd146101d8575b600080fd5b61016561035e565b60405161017291906110d4565b60405180910390f35b61018e61018936600461113e565b6103f0565b6040519015158152602001610172565b6101b16101ac3660046111b4565b61040a565b005b6004545b604051908152602001610172565b6101b16101d3366004611205565b610537565b61018e6101e6366004611227565b610561565b60405160128152602001610172565b61018e61020836600461113e565b610585565b61018e61021b366004611205565b6001600160a01b031660009081526002602052604090205460ff1690565b6101b1610247366004611263565b6105a7565b6101b761025a366004611205565b6001600160a01b031660009081526001602052604090205490565b6101b16102833660046112a5565b610626565b6101b16106eb565b6101b161029e366004611263565b6106ff565b6101b16102b13660046111b4565b61080c565b6000546040516001600160a01b039091168152602001610172565b6101656108fb565b6101b16102e73660046111b4565b61090a565b61018e6102fa36600461113e565b6109f1565b6101b161030d3660046111b4565b610a71565b61018e61032036600461113e565b610b8f565b6101b1610333366004611227565b610b9d565b6101b761034636600461133f565b610bdd565b6101b1610359366004611205565b610c08565b60606006805461036d90611372565b80601f016020809104026020016040519081016040528092919081815260200182805461039990611372565b80156103e65780601f106103bb576101008083540402835291602001916103e6565b820191906000526020600020905b8154815290600101906020018083116103c957829003601f168201915b5050505050905090565b6000336103fe818585610c81565b60019150505b92915050565b60005b8381101561053057848482818110610427576104276113ac565b905060200201602081019061043c9190611205565b60095460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a36009546001600160a01b03168585838181106104a2576104a26113ac565b90506020020160208101906104b79190611205565b6001600160a01b0316600080516020611405833981519152856040516104df91815260200190565b60405180910390a3600a546009546040518581526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a380610528816113d8565b91505061040d565b5050505050565b61053f610d9d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60003361056f858285610df7565b61057a858585610e71565b506001949350505050565b6000336103fe8185856105988383610bdd565b6105a291906113f1565b610c81565b6105af610d9d565b60005b81811015610621576000600260008585858181106105d2576105d26113ac565b90506020020160208101906105e79190611205565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610619816113d8565b9150506105b2565b505050565b60005b858110156106e257848482818110610643576106436113ac565b90506020020160208101906106589190611205565b6001600160a01b0316878783818110610673576106736113ac565b90506020020160208101906106889190611205565b6001600160a01b03166000805160206114058339815191528585858181106106b2576106b26113ac565b905060200201356040516106c891815260200190565b60405180910390a3806106da816113d8565b915050610629565b50505050505050565b6106f3610d9d565b6106fd6000611084565b565b610707610d9d565b60005b818110156106215760016002600085858581811061072a5761072a6113ac565b905060200201602081019061073f9190611205565b6001600160a01b0390811682526020820192909252604001600020805460ff19169215159290921790915560095416838383818110610780576107806113ac565b90506020020160208101906107959190611205565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256107e98686868181106107d4576107d46113ac565b905060200201602081019061025a9190611205565b60405190815260200160405180910390a380610804816113d8565b91505061070a565b60005b8381101561053057848482818110610829576108296113ac565b905060200201602081019061083e9190611205565b60085460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3600a546001600160a01b03168585838181106108a4576108a46113ac565b90506020020160208101906108b99190611205565b6001600160a01b0316600080516020611405833981519152856040516108e191815260200190565b60405180910390a3806108f3816113d8565b91505061080f565b60606007805461036d90611372565b60005b8381101561053057848482818110610927576109276113ac565b905060200201602081019061093c9190611205565b60085460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3848482818110610996576109966113ac565b90506020020160208101906109ab9190611205565b600a546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a3806109e9816113d8565b91505061090d565b600033816109ff8286610bdd565b905083811015610a645760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61057a8286868403610c81565b60005b8381101561053057848482818110610a8e57610a8e6113ac565b9050602002016020810190610aa39190611205565b60095460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3600954600a546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a3848482818110610b3457610b346113ac565b9050602002016020810190610b499190611205565b6009546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a380610b87816113d8565b915050610a74565b6000336103fe818585610e71565b816001600160a01b0316836001600160a01b031660008051602061140583398151915283604051610bd091815260200190565b60405180910390a3505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610c10610d9d565b6001600160a01b038116610c755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5b565b610c7e81611084565b50565b6001600160a01b038316610ce35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5b565b6001600160a01b038216610d445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610bd0565b6000546001600160a01b031633146106fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a5b565b6000610e038484610bdd565b90506000198114610e6b5781811015610e5e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a5b565b610e6b8484848403610c81565b50505050565b6001600160a01b038316610ed55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a5b565b6001600160a01b038216610f375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a5b565b6001600160a01b03831660009081526001602052604090205481811015610faf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5b565b6001600160a01b038085166000818152600160209081526040808320878703905593871682528382208054870190559181526002909152205460ff168061100e57506001600160a01b03831660009081526002602052604090205460ff165b156110445760055460ff1615156001146110445760405162461bcd60e51b81526020600482015260006024820152604401610a5b565b826001600160a01b0316846001600160a01b03166000805160206114058339815191528460405161107791815260200190565b60405180910390a3610e6b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015611101578581018301518582016040015282016110e5565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461113957600080fd5b919050565b6000806040838503121561115157600080fd5b61115a83611122565b946020939093013593505050565b60008083601f84011261117a57600080fd5b50813567ffffffffffffffff81111561119257600080fd5b6020830191508360208260051b85010111156111ad57600080fd5b9250929050565b600080600080606085870312156111ca57600080fd5b843567ffffffffffffffff8111156111e157600080fd5b6111ed87828801611168565b90989097506020870135966040013595509350505050565b60006020828403121561121757600080fd5b61122082611122565b9392505050565b60008060006060848603121561123c57600080fd5b61124584611122565b925061125360208501611122565b9150604084013590509250925092565b6000806020838503121561127657600080fd5b823567ffffffffffffffff81111561128d57600080fd5b61129985828601611168565b90969095509350505050565b600080600080600080606087890312156112be57600080fd5b863567ffffffffffffffff808211156112d657600080fd5b6112e28a838b01611168565b909850965060208901359150808211156112fb57600080fd5b6113078a838b01611168565b9096509450604089013591508082111561132057600080fd5b5061132d89828a01611168565b979a9699509497509295939492505050565b6000806040838503121561135257600080fd5b61135b83611122565b915061136960208401611122565b90509250929050565b600181811c9082168061138657607f821691505b6020821081036113a657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016113ea576113ea6113c2565b5060010190565b80820180821115610404576104046113c256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a2646970667358221220786d85a863abb71224e59797bb1abac0a1247a421d9a015e72d4b855b9bdb90e64736f6c63430008120033

Deployed Bytecode Sourcemap

24821:144:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11241:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15899:201;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;15899:201:0;1004:187:1;13565:343:0;;;;;;:::i;:::-;;:::i;:::-;;14668:108;14756:12;;14668:108;;;2292:25:1;;;2280:2;2265:18;14668:108:0;2146:177:1;11093:78:0;;;;;;:::i;:::-;;:::i;16680:295::-;;;;;;:::i;:::-;;:::i;12203:93::-;;;12286:2;2994:36:1;;2982:2;2967:18;12203:93:0;2852:184:1;17384:238:0;;;;;;:::i;:::-;;:::i;14495:108::-;;;;;;:::i;:::-;-1:-1:-1;;;;;14578:17:0;14554:4;14578:17;;;:6;:17;;;;;;;;;14495:108;14284:203;;;;;;:::i;:::-;;:::i;14839:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;14940:18:0;14913:7;14940:18;;;:9;:18;;;;;;;14839:127;14043:233;;;;;;:::i;:::-;;:::i;8088:103::-;;;:::i;12304:269::-;;;;;;:::i;:::-;;:::i;13265:292::-;;;;;;:::i;:::-;;:::i;7447:87::-;7493:7;7520:6;7447:87;;-1:-1:-1;;;;;7520:6:0;;;4722:51:1;;4710:2;4695:18;7447:87:0;4576:203:1;11460:104:0;;;:::i;12581:291::-;;;;;;:::i;:::-;;:::i;18125:436::-;;;;;;:::i;:::-;;:::i;12880:377::-;;;;;;:::i;:::-;;:::i;15172:193::-;;;;;;:::i;:::-;;:::i;13916:119::-;;;;;;:::i;:::-;;:::i;15428:151::-;;;;;;:::i;:::-;;:::i;8346:201::-;;;;;;:::i;:::-;;:::i;11241:100::-;11295:13;11328:5;11321:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11241:100;:::o;15899:201::-;15982:4;6236:10;16038:32;6236:10;16054:7;16063:6;16038:8;:32::i;:::-;16088:4;16081:11;;;15899:201;;;;;:::o;13565:343::-;13681:9;13676:225;13696:22;;;13676:225;;;13773:11;;13785:1;13773:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13750:4;;13745:43;;;13750:4;5813:25:1;;;5869:2;5854:18;;5847:34;;;5897:18;;;5890:34;;;5955:2;5940:18;;5933:34;13745:43:0;;-1:-1:-1;;;;;13745:43:0;;;;13750:4;;;;-1:-1:-1;;;;;;;;;;;13745:43:0;;;;5800:3:1;13745:43:0;;;13833:4;;-1:-1:-1;;;;;13833:4:0;13817:11;;13829:1;13817:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13808:35:0;-1:-1:-1;;;;;;;;;;;13839:3:0;13808:35;;;;2292:25:1;;2280:2;2265:18;;2146:177;13808:35:0;;;;;;;;13878:5;;13872:4;;13863:26;;2292:25:1;;;-1:-1:-1;;;;;13878:5:0;;;;13872:4;;;;-1:-1:-1;;;;;;;;;;;13863:26:0;2280:2:1;2265:18;13863:26:0;;;;;;;13720:3;;;;:::i;:::-;;;;13676:225;;;;13565:343;;;;:::o;11093:78::-;7333:13;:11;:13::i;:::-;11151:5:::1;:12:::0;;-1:-1:-1;;;;;;11151:12:0::1;-1:-1:-1::0;;;;;11151:12:0;;;::::1;::::0;;;::::1;::::0;;11093:78::o;16680:295::-;16811:4;6236:10;16869:38;16885:4;6236:10;16900:6;16869:15;:38::i;:::-;16918:27;16928:4;16934:2;16938:6;16918:9;:27::i;:::-;-1:-1:-1;16963:4:0;;16680:295;-1:-1:-1;;;;16680:295:0:o;17384:238::-;17472:4;6236:10;17528:64;6236:10;17544:7;17581:10;17553:25;6236:10;17544:7;17553:9;:25::i;:::-;:38;;;;:::i;:::-;17528:8;:64::i;14284:203::-;7333:13;:11;:13::i;:::-;14379:9:::1;14374:106;14394:22:::0;;::::1;14374:106;;;14463:5;14438:6;:22;14445:11;;14457:1;14445:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14438:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14438:22:0;:30;;-1:-1:-1;;14438:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14418:3;::::1;::::0;::::1;:::i;:::-;;;;14374:106;;;;14284:203:::0;;:::o;14043:233::-;14164:9;14159:110;14179:16;;;14159:110;;;14241:3;;14245:1;14241:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14222:35:0;14231:5;;14237:1;14231:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14222:35:0;-1:-1:-1;;;;;;;;;;;14249:4:0;;14254:1;14249:7;;;;;;;:::i;:::-;;;;;;;14222:35;;;;2292:25:1;;2280:2;2265:18;;2146:177;14222:35:0;;;;;;;;14197:3;;;;:::i;:::-;;;;14159:110;;;;14043:233;;;;;;:::o;8088:103::-;7333:13;:11;:13::i;:::-;8153:30:::1;8180:1;8153:18;:30::i;:::-;8088:103::o:0;12304:269::-;7333:13;:11;:13::i;:::-;12389:9:::1;12384:182;12404:22:::0;;::::1;12384:182;;;12473:4;12448:6;:22;12455:11;;12467:1;12455:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12448:22:0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12448:22:0;:29;;-1:-1:-1;;12448:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;12522:4:::1;::::0;::::1;12506:11:::0;;12518:1;12506:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12497:57:0::1;;12528:25;12538:11;;12550:1;12538:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;12528:25::-;12497:57;::::0;2292:25:1;;;2280:2;2265:18;12497:57:0::1;;;;;;;12428:3:::0;::::1;::::0;::::1;:::i;:::-;;;;12384:182;;13265:292:::0;13369:9;13364:186;13384:22;;;13364:186;;;13467:11;;13479:1;13467:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13438:10;;13433:49;;;13438:10;5813:25:1;;;5869:2;5854:18;;5847:34;;;5897:18;;;5890:34;;;5955:2;5940:18;;5933:34;13433:49:0;;-1:-1:-1;;;;;13433:49:0;;;;13438:10;;;;-1:-1:-1;;;;;;;;;;;13433:49:0;;;;5800:3:1;13433:49:0;;;13527:5;;-1:-1:-1;;;;;13527:5:0;13511:11;;13523:1;13511:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13502:36:0;-1:-1:-1;;;;;;;;;;;13534:3:0;13502:36;;;;2292:25:1;;2280:2;2265:18;;2146:177;13502:36:0;;;;;;;;13408:3;;;;:::i;:::-;;;;13364:186;;11460:104;11516:13;11549:7;11542:14;;;;;:::i;12581:291::-;12683:9;12678:187;12698:22;;;12678:187;;;12781:11;;12793:1;12781:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;12752:10;;12747:49;;;5813:25:1;;;12752:10:0;5869:2:1;5854:18;;5847:34;;;5897:18;;;5890:34;5955:2;5940:18;;5933:34;;;12747:49:0;;-1:-1:-1;;;;;12747:49:0;;;;12752:10;;;;-1:-1:-1;;;;;;;;;;;12747:49:0;;;;5800:3:1;12747:49:0;;;12832:11;;12844:1;12832:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;12825:5;;12816:37;;2292:25:1;;;-1:-1:-1;;;;;12816:37:0;;;;12825:5;;;;-1:-1:-1;;;;;;;;;;;12816:37:0;2280:2:1;2265:18;12816:37:0;;;;;;;12722:3;;;;:::i;:::-;;;;12678:187;;18125:436;18218:4;6236:10;18218:4;18301:25;6236:10;18318:7;18301:9;:25::i;:::-;18274:52;;18365:15;18345:16;:35;;18337:85;;;;-1:-1:-1;;;18337:85:0;;6994:2:1;18337:85:0;;;6976:21:1;7033:2;7013:18;;;7006:30;7072:34;7052:18;;;7045:62;-1:-1:-1;;;7123:18:1;;;7116:35;7168:19;;18337:85:0;;;;;;;;;18458:60;18467:5;18474:7;18502:15;18483:16;:34;18458:8;:60::i;12880:377::-;13028:9;13023:227;13043:22;;;13023:227;;;13120:11;;13132:1;13120:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13097:4;;13092:43;;;5813:25:1;;;13097:4:0;5869:2:1;5854:18;;5847:34;;;5897:18;;;5890:34;5955:2;5940:18;;5933:34;;;13092:43:0;;-1:-1:-1;;;;;13092:43:0;;;;13097:4;;;;-1:-1:-1;;;;;;;;;;;13092:43:0;;;;5800:3:1;13092:43:0;;;13171:4;;13164:5;;13155:27;;2292:25:1;;;-1:-1:-1;;;;;13171:4:0;;;;13164:5;;;;-1:-1:-1;;;;;;;;;;;13155:27:0;2280:2:1;2265:18;13155:27:0;;;;;;;13217:11;;13229:1;13217:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13211:4;;13202:36;;2292:25:1;;;-1:-1:-1;;;;;13202:36:0;;;;13211:4;;;;-1:-1:-1;;;;;;;;;;;13202:36:0;2280:2:1;2265:18;13202:36:0;;;;;;;13067:3;;;;:::i;:::-;;;;13023:227;;15172:193;15251:4;6236:10;15307:28;6236:10;15324:2;15328:6;15307:9;:28::i;13916:119::-;14017:3;-1:-1:-1;;;;;14001:26:0;14010:5;-1:-1:-1;;;;;14001:26:0;-1:-1:-1;;;;;;;;;;;14022:4:0;14001:26;;;;2292:25:1;;2280:2;2265:18;;2146:177;14001:26:0;;;;;;;;13916:119;;;:::o;15428:151::-;-1:-1:-1;;;;;15544:18:0;;;15517:7;15544:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15428:151::o;8346:201::-;7333:13;:11;:13::i;:::-;-1:-1:-1;;;;;8435:22:0;::::1;8427:73;;;::::0;-1:-1:-1;;;8427:73:0;;7400:2:1;8427:73:0::1;::::0;::::1;7382:21:1::0;7439:2;7419:18;;;7412:30;7478:34;7458:18;;;7451:62;-1:-1:-1;;;7529:18:1;;;7522:36;7575:19;;8427:73:0::1;7198:402:1::0;8427:73:0::1;8511:28;8530:8;8511:18;:28::i;:::-;8346:201:::0;:::o;22231:380::-;-1:-1:-1;;;;;22367:19:0;;22359:68;;;;-1:-1:-1;;;22359:68:0;;7807:2:1;22359:68:0;;;7789:21:1;7846:2;7826:18;;;7819:30;7885:34;7865:18;;;7858:62;-1:-1:-1;;;7936:18:1;;;7929:34;7980:19;;22359:68:0;7605:400:1;22359:68:0;-1:-1:-1;;;;;22446:21:0;;22438:68;;;;-1:-1:-1;;;22438:68:0;;8212:2:1;22438:68:0;;;8194:21:1;8251:2;8231:18;;;8224:30;8290:34;8270:18;;;8263:62;-1:-1:-1;;;8341:18:1;;;8334:32;8383:19;;22438:68:0;8010:398:1;22438:68:0;-1:-1:-1;;;;;22519:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22571:32;;2292:25:1;;;22571:32:0;;2265:18:1;22571:32:0;2146:177:1;7612:132:0;7493:7;7520:6;-1:-1:-1;;;;;7520:6:0;6236:10;7676:23;7668:68;;;;-1:-1:-1;;;7668:68:0;;8615:2:1;7668:68:0;;;8597:21:1;;;8634:18;;;8627:30;8693:34;8673:18;;;8666:62;8745:18;;7668:68:0;8413:356:1;22902:453:0;23037:24;23064:25;23074:5;23081:7;23064:9;:25::i;:::-;23037:52;;-1:-1:-1;;23104:16:0;:37;23100:248;;23186:6;23166:16;:26;;23158:68;;;;-1:-1:-1;;;23158:68:0;;8976:2:1;23158:68:0;;;8958:21:1;9015:2;8995:18;;;8988:30;9054:31;9034:18;;;9027:59;9103:18;;23158:68:0;8774:353:1;23158:68:0;23270:51;23279:5;23286:7;23314:6;23295:16;:25;23270:8;:51::i;:::-;23026:329;22902:453;;;:::o;19031:919::-;-1:-1:-1;;;;;19162:18:0;;19154:68;;;;-1:-1:-1;;;19154:68:0;;9334:2:1;19154:68:0;;;9316:21:1;9373:2;9353:18;;;9346:30;9412:34;9392:18;;;9385:62;-1:-1:-1;;;9463:18:1;;;9456:35;9508:19;;19154:68:0;9132:401:1;19154:68:0;-1:-1:-1;;;;;19241:16:0;;19233:64;;;;-1:-1:-1;;;19233:64:0;;9740:2:1;19233:64:0;;;9722:21:1;9779:2;9759:18;;;9752:30;9818:34;9798:18;;;9791:62;-1:-1:-1;;;9869:18:1;;;9862:33;9912:19;;19233:64:0;9538:399:1;19233:64:0;-1:-1:-1;;;;;19383:15:0;;19361:19;19383:15;;;:9;:15;;;;;;19417:21;;;;19409:72;;;;-1:-1:-1;;;19409:72:0;;10144:2:1;19409:72:0;;;10126:21:1;10183:2;10163:18;;;10156:30;10222:34;10202:18;;;10195:62;-1:-1:-1;;;10273:18:1;;;10266:36;10319:19;;19409:72:0;9942:402:1;19409:72:0;-1:-1:-1;;;;;19517:15:0;;;;;;;:9;:15;;;;;;;;19535:20;;;19517:38;;19735:13;;;;;;;;:23;;;;;;19784:12;;;:6;:12;;;;;;;;:26;;-1:-1:-1;;;;;;19800:10:0;;;;;;:6;:10;;;;;;;;19784:26;19780:66;;;19820:13;;;;:21;;:13;:21;19812:34;;;;-1:-1:-1;;;19812:34:0;;10551:2:1;19812:34:0;;;10533:21:1;-1:-1:-1;10570:18:1;;;10563:29;10609:18;;19812:34:0;10349:284:1;19812:34:0;19881:2;-1:-1:-1;;;;;19866:26:0;19875:4;-1:-1:-1;;;;;19866:26:0;-1:-1:-1;;;;;;;;;;;19885:6:0;19866:26;;;;2292:25:1;;2280:2;2265:18;;2146:177;19866:26:0;;;;;;;;19905:37;14284:203;8707:191;8781:16;8800:6;;-1:-1:-1;;;;;8817:17:0;;;-1:-1:-1;;;;;;8817:17:0;;;;;;8850:40;;8800:6;;;;;;;8850:40;;8781:16;8850:40;8770:128;8707:191;:::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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:367::-;1259:8;1269:6;1323:3;1316:4;1308:6;1304:17;1300:27;1290:55;;1341:1;1338;1331:12;1290:55;-1:-1:-1;1364:20:1;;1407:18;1396:30;;1393:50;;;1439:1;1436;1429:12;1393:50;1476:4;1468:6;1464:17;1452:29;;1536:3;1529:4;1519:6;1516:1;1512:14;1504:6;1500:27;1496:38;1493:47;1490:67;;;1553:1;1550;1543:12;1490:67;1196:367;;;;;:::o;1568:573::-;1672:6;1680;1688;1696;1749:2;1737:9;1728:7;1724:23;1720:32;1717:52;;;1765:1;1762;1755:12;1717:52;1805:9;1792:23;1838:18;1830:6;1827:30;1824:50;;;1870:1;1867;1860:12;1824:50;1909:70;1971:7;1962:6;1951:9;1947:22;1909:70;:::i;:::-;1998:8;;1883:96;;-1:-1:-1;2080:2:1;2065:18;;2052:32;;2131:2;2116:18;2103:32;;-1:-1:-1;1568:573:1;-1:-1:-1;;;;1568:573:1:o;2328:186::-;2387:6;2440:2;2428:9;2419:7;2415:23;2411:32;2408:52;;;2456:1;2453;2446:12;2408:52;2479:29;2498:9;2479:29;:::i;:::-;2469:39;2328:186;-1:-1:-1;;;2328:186:1:o;2519:328::-;2596:6;2604;2612;2665:2;2653:9;2644:7;2640:23;2636:32;2633:52;;;2681:1;2678;2671:12;2633:52;2704:29;2723:9;2704:29;:::i;:::-;2694:39;;2752:38;2786:2;2775:9;2771:18;2752:38;:::i;:::-;2742:48;;2837:2;2826:9;2822:18;2809:32;2799:42;;2519:328;;;;;:::o;3041:437::-;3127:6;3135;3188:2;3176:9;3167:7;3163:23;3159:32;3156:52;;;3204:1;3201;3194:12;3156:52;3244:9;3231:23;3277:18;3269:6;3266:30;3263:50;;;3309:1;3306;3299:12;3263:50;3348:70;3410:7;3401:6;3390:9;3386:22;3348:70;:::i;:::-;3437:8;;3322:96;;-1:-1:-1;3041:437:1;-1:-1:-1;;;;3041:437:1:o;3483:1088::-;3641:6;3649;3657;3665;3673;3681;3734:2;3722:9;3713:7;3709:23;3705:32;3702:52;;;3750:1;3747;3740:12;3702:52;3790:9;3777:23;3819:18;3860:2;3852:6;3849:14;3846:34;;;3876:1;3873;3866:12;3846:34;3915:70;3977:7;3968:6;3957:9;3953:22;3915:70;:::i;:::-;4004:8;;-1:-1:-1;3889:96:1;-1:-1:-1;4092:2:1;4077:18;;4064:32;;-1:-1:-1;4108:16:1;;;4105:36;;;4137:1;4134;4127:12;4105:36;4176:72;4240:7;4229:8;4218:9;4214:24;4176:72;:::i;:::-;4267:8;;-1:-1:-1;4150:98:1;-1:-1:-1;4355:2:1;4340:18;;4327:32;;-1:-1:-1;4371:16:1;;;4368:36;;;4400:1;4397;4390:12;4368:36;;4439:72;4503:7;4492:8;4481:9;4477:24;4439:72;:::i;:::-;3483:1088;;;;-1:-1:-1;3483:1088:1;;-1:-1:-1;3483:1088:1;;4530:8;;3483:1088;-1:-1:-1;;;3483:1088:1:o;4784:260::-;4852:6;4860;4913:2;4901:9;4892:7;4888:23;4884:32;4881:52;;;4929:1;4926;4919:12;4881:52;4952:29;4971:9;4952:29;:::i;:::-;4942:39;;5000:38;5034:2;5023:9;5019:18;5000:38;:::i;:::-;4990:48;;4784:260;;;;;:::o;5049:380::-;5128:1;5124:12;;;;5171;;;5192:61;;5246:4;5238:6;5234:17;5224:27;;5192:61;5299:2;5291:6;5288:14;5268:18;5265:38;5262:161;;5345:10;5340:3;5336:20;5333:1;5326:31;5380:4;5377:1;5370:15;5408:4;5405:1;5398:15;5262:161;;5049:380;;;:::o;5434:127::-;5495:10;5490:3;5486:20;5483:1;5476:31;5526:4;5523:1;5516:15;5550:4;5547:1;5540:15;5978:127;6039:10;6034:3;6030:20;6027:1;6020:31;6070:4;6067:1;6060:15;6094:4;6091:1;6084:15;6110:135;6149:3;6170:17;;;6167:43;;6190:18;;:::i;:::-;-1:-1:-1;6237:1:1;6226:13;;6110:135::o;6250:125::-;6315:9;;;6336:10;;;6333:36;;;6349:18;;:::i

Swarm Source

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