ETH Price: $3,398.21 (+1.44%)
Gas: 7 Gwei

Token

🌑MoonToken🌙 (🌑MOON🌙)
 

Overview

Max Total Supply

100,000,000 🌑MOON🌙

Holders

5

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
483,150.096129661948042787 🌑MOON🌙

Value
$0.00
0x4d72ca7d6de7eb865d8e938b7443acf0462b7096
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:
MoonToken

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @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;
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @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);

    /**
     * @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);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


/**
 * @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);
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol


// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;




/**
 * @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].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * 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 Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

    /**
     * @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 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 {}

    /**
     * @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 {}
}

// File: Token.sol

//SPDX-License-Identifier:MIT

pragma solidity ^0.8.9;

contract MoonToken is ERC20 {
    address public owner;
    modifier onlyOwner() {
        require(msg.sender == owner, "Only the contract owner can call this function.");
    _;}
    constructor() ERC20(unicode"🌑MoonToken🌙", unicode"🌑MOON🌙") {
        _mint(msg.sender, 100000000000000000000000000);
        owner = msg.sender;
    }
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Invalid address.");
        owner = newOwner;
    }
}

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":"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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280601181526020017ff09f8c914d6f6f6e546f6b656ef09f8c990000000000000000000000000000008152506040518060400160405280600c81526020017ff09f8c914d4f4f4ef09f8c9900000000000000000000000000000000000000008152508160039080519060200190620000969291906200028e565b508060049080519060200190620000af9291906200028e565b505050620000cf336a52b7d2dcc80cd2e40000006200011660201b60201c565b33600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004ea565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000180906200039f565b60405180910390fd5b6200019d600083836200028460201b60201c565b8060026000828254620001b19190620003fa565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000264919062000468565b60405180910390a362000280600083836200028960201b60201c565b5050565b505050565b505050565b8280546200029c90620004b4565b90600052602060002090601f016020900481019282620002c057600085556200030c565b82601f10620002db57805160ff19168380011785556200030c565b828001600101855582156200030c579182015b828111156200030b578251825591602001919060010190620002ee565b5b5090506200031b91906200031f565b5090565b5b808211156200033a57600081600090555060010162000320565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000387601f836200033e565b915062000394826200034f565b602082019050919050565b60006020820190508181036000830152620003ba8162000378565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200040782620003c1565b91506200041483620003c1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200044c576200044b620003cb565b5b828201905092915050565b6200046281620003c1565b82525050565b60006020820190506200047f600083018462000457565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004cd57607f821691505b60208210811415620004e457620004e362000485565b5b50919050565b61155180620004fa6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d71461022a578063a9059cbb1461025a578063dd62ed3e1461028a578063f2fde38b146102ba576100cf565b806370a08231146101be5780638da5cb5b146101ee57806395d89b411461020c576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102d6565b6040516100e99190610ce3565b60405180910390f35b61010c60048036038101906101079190610d9e565b610368565b6040516101199190610df9565b60405180910390f35b61012a61038b565b6040516101379190610e23565b60405180910390f35b61015a60048036038101906101559190610e3e565b610395565b6040516101679190610df9565b60405180910390f35b6101786103c4565b6040516101859190610ead565b60405180910390f35b6101a860048036038101906101a39190610d9e565b6103cd565b6040516101b59190610df9565b60405180910390f35b6101d860048036038101906101d39190610ec8565b610404565b6040516101e59190610e23565b60405180910390f35b6101f661044c565b6040516102039190610f04565b60405180910390f35b610214610472565b6040516102219190610ce3565b60405180910390f35b610244600480360381019061023f9190610d9e565b610504565b6040516102519190610df9565b60405180910390f35b610274600480360381019061026f9190610d9e565b61057b565b6040516102819190610df9565b60405180910390f35b6102a4600480360381019061029f9190610f1f565b61059e565b6040516102b19190610e23565b60405180910390f35b6102d460048036038101906102cf9190610ec8565b610625565b005b6060600380546102e590610f8e565b80601f016020809104026020016040519081016040528092919081815260200182805461031190610f8e565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050905090565b600080610373610769565b9050610380818585610771565b600191505092915050565b6000600254905090565b6000806103a0610769565b90506103ad85828561093c565b6103b88585856109c8565b60019150509392505050565b60006012905090565b6000806103d8610769565b90506103f98185856103ea858961059e565b6103f49190610fef565b610771565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461048190610f8e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ad90610f8e565b80156104fa5780601f106104cf576101008083540402835291602001916104fa565b820191906000526020600020905b8154815290600101906020018083116104dd57829003601f168201915b5050505050905090565b60008061050f610769565b9050600061051d828661059e565b905083811015610562576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610559906110b7565b60405180910390fd5b61056f8286868403610771565b60019250505092915050565b600080610586610769565b90506105938185856109c8565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ac90611149565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906111b5565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d890611247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610848906112d9565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161092f9190610e23565b60405180910390a3505050565b6000610948848461059e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109c257818110156109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90611345565b60405180910390fd5b6109c18484848403610771565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f906113d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90611469565b60405180910390fd5b610ab3838383610c40565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b30906114fb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c279190610e23565b60405180910390a3610c3a848484610c45565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c84578082015181840152602081019050610c69565b83811115610c93576000848401525b50505050565b6000601f19601f8301169050919050565b6000610cb582610c4a565b610cbf8185610c55565b9350610ccf818560208601610c66565b610cd881610c99565b840191505092915050565b60006020820190508181036000830152610cfd8184610caa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d3582610d0a565b9050919050565b610d4581610d2a565b8114610d5057600080fd5b50565b600081359050610d6281610d3c565b92915050565b6000819050919050565b610d7b81610d68565b8114610d8657600080fd5b50565b600081359050610d9881610d72565b92915050565b60008060408385031215610db557610db4610d05565b5b6000610dc385828601610d53565b9250506020610dd485828601610d89565b9150509250929050565b60008115159050919050565b610df381610dde565b82525050565b6000602082019050610e0e6000830184610dea565b92915050565b610e1d81610d68565b82525050565b6000602082019050610e386000830184610e14565b92915050565b600080600060608486031215610e5757610e56610d05565b5b6000610e6586828701610d53565b9350506020610e7686828701610d53565b9250506040610e8786828701610d89565b9150509250925092565b600060ff82169050919050565b610ea781610e91565b82525050565b6000602082019050610ec26000830184610e9e565b92915050565b600060208284031215610ede57610edd610d05565b5b6000610eec84828501610d53565b91505092915050565b610efe81610d2a565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b60008060408385031215610f3657610f35610d05565b5b6000610f4485828601610d53565b9250506020610f5585828601610d53565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610fa657607f821691505b60208210811415610fba57610fb9610f5f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ffa82610d68565b915061100583610d68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561103a57611039610fc0565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006110a1602583610c55565b91506110ac82611045565b604082019050919050565b600060208201905081810360008301526110d081611094565b9050919050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e2e0000000000000000000000000000000000602082015250565b6000611133602f83610c55565b915061113e826110d7565b604082019050919050565b6000602082019050818103600083015261116281611126565b9050919050565b7f496e76616c696420616464726573732e00000000000000000000000000000000600082015250565b600061119f601083610c55565b91506111aa82611169565b602082019050919050565b600060208201905081810360008301526111ce81611192565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611231602483610c55565b915061123c826111d5565b604082019050919050565b6000602082019050818103600083015261126081611224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006112c3602283610c55565b91506112ce82611267565b604082019050919050565b600060208201905081810360008301526112f2816112b6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061132f601d83610c55565b915061133a826112f9565b602082019050919050565b6000602082019050818103600083015261135e81611322565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006113c1602583610c55565b91506113cc82611365565b604082019050919050565b600060208201905081810360008301526113f0816113b4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611453602383610c55565b915061145e826113f7565b604082019050919050565b6000602082019050818103600083015261148281611446565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006114e5602683610c55565b91506114f082611489565b604082019050919050565b60006020820190508181036000830152611514816114d8565b905091905056fea2646970667358221220a5ba7c925fe3c549fc2d4804f03089f70e1d3fed0cd1afa0ca227ba10c66aaaa64736f6c63430008090033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d71461022a578063a9059cbb1461025a578063dd62ed3e1461028a578063f2fde38b146102ba576100cf565b806370a08231146101be5780638da5cb5b146101ee57806395d89b411461020c576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102d6565b6040516100e99190610ce3565b60405180910390f35b61010c60048036038101906101079190610d9e565b610368565b6040516101199190610df9565b60405180910390f35b61012a61038b565b6040516101379190610e23565b60405180910390f35b61015a60048036038101906101559190610e3e565b610395565b6040516101679190610df9565b60405180910390f35b6101786103c4565b6040516101859190610ead565b60405180910390f35b6101a860048036038101906101a39190610d9e565b6103cd565b6040516101b59190610df9565b60405180910390f35b6101d860048036038101906101d39190610ec8565b610404565b6040516101e59190610e23565b60405180910390f35b6101f661044c565b6040516102039190610f04565b60405180910390f35b610214610472565b6040516102219190610ce3565b60405180910390f35b610244600480360381019061023f9190610d9e565b610504565b6040516102519190610df9565b60405180910390f35b610274600480360381019061026f9190610d9e565b61057b565b6040516102819190610df9565b60405180910390f35b6102a4600480360381019061029f9190610f1f565b61059e565b6040516102b19190610e23565b60405180910390f35b6102d460048036038101906102cf9190610ec8565b610625565b005b6060600380546102e590610f8e565b80601f016020809104026020016040519081016040528092919081815260200182805461031190610f8e565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050905090565b600080610373610769565b9050610380818585610771565b600191505092915050565b6000600254905090565b6000806103a0610769565b90506103ad85828561093c565b6103b88585856109c8565b60019150509392505050565b60006012905090565b6000806103d8610769565b90506103f98185856103ea858961059e565b6103f49190610fef565b610771565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461048190610f8e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ad90610f8e565b80156104fa5780601f106104cf576101008083540402835291602001916104fa565b820191906000526020600020905b8154815290600101906020018083116104dd57829003601f168201915b5050505050905090565b60008061050f610769565b9050600061051d828661059e565b905083811015610562576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610559906110b7565b60405180910390fd5b61056f8286868403610771565b60019250505092915050565b600080610586610769565b90506105938185856109c8565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ac90611149565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906111b5565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d890611247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610848906112d9565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161092f9190610e23565b60405180910390a3505050565b6000610948848461059e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109c257818110156109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90611345565b60405180910390fd5b6109c18484848403610771565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f906113d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90611469565b60405180910390fd5b610ab3838383610c40565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b30906114fb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c279190610e23565b60405180910390a3610c3a848484610c45565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c84578082015181840152602081019050610c69565b83811115610c93576000848401525b50505050565b6000601f19601f8301169050919050565b6000610cb582610c4a565b610cbf8185610c55565b9350610ccf818560208601610c66565b610cd881610c99565b840191505092915050565b60006020820190508181036000830152610cfd8184610caa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d3582610d0a565b9050919050565b610d4581610d2a565b8114610d5057600080fd5b50565b600081359050610d6281610d3c565b92915050565b6000819050919050565b610d7b81610d68565b8114610d8657600080fd5b50565b600081359050610d9881610d72565b92915050565b60008060408385031215610db557610db4610d05565b5b6000610dc385828601610d53565b9250506020610dd485828601610d89565b9150509250929050565b60008115159050919050565b610df381610dde565b82525050565b6000602082019050610e0e6000830184610dea565b92915050565b610e1d81610d68565b82525050565b6000602082019050610e386000830184610e14565b92915050565b600080600060608486031215610e5757610e56610d05565b5b6000610e6586828701610d53565b9350506020610e7686828701610d53565b9250506040610e8786828701610d89565b9150509250925092565b600060ff82169050919050565b610ea781610e91565b82525050565b6000602082019050610ec26000830184610e9e565b92915050565b600060208284031215610ede57610edd610d05565b5b6000610eec84828501610d53565b91505092915050565b610efe81610d2a565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b60008060408385031215610f3657610f35610d05565b5b6000610f4485828601610d53565b9250506020610f5585828601610d53565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610fa657607f821691505b60208210811415610fba57610fb9610f5f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ffa82610d68565b915061100583610d68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561103a57611039610fc0565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006110a1602583610c55565b91506110ac82611045565b604082019050919050565b600060208201905081810360008301526110d081611094565b9050919050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e2e0000000000000000000000000000000000602082015250565b6000611133602f83610c55565b915061113e826110d7565b604082019050919050565b6000602082019050818103600083015261116281611126565b9050919050565b7f496e76616c696420616464726573732e00000000000000000000000000000000600082015250565b600061119f601083610c55565b91506111aa82611169565b602082019050919050565b600060208201905081810360008301526111ce81611192565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611231602483610c55565b915061123c826111d5565b604082019050919050565b6000602082019050818103600083015261126081611224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006112c3602283610c55565b91506112ce82611267565b604082019050919050565b600060208201905081810360008301526112f2816112b6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061132f601d83610c55565b915061133a826112f9565b602082019050919050565b6000602082019050818103600083015261135e81611322565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006113c1602583610c55565b91506113cc82611365565b604082019050919050565b600060208201905081810360008301526113f0816113b4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611453602383610c55565b915061145e826113f7565b604082019050919050565b6000602082019050818103600083015261148281611446565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006114e5602683610c55565b91506114f082611489565b604082019050919050565b60006020820190508181036000830152611514816114d8565b905091905056fea2646970667358221220a5ba7c925fe3c549fc2d4804f03089f70e1d3fed0cd1afa0ca227ba10c66aaaa64736f6c63430008090033

Deployed Bytecode Sourcemap

17767:522:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6692:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9052:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7821:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9833:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7663:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10503:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7992:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17802:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6911:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11244:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8325:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8581:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18127:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6692:100;6746:13;6779:5;6772:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6692:100;:::o;9052:201::-;9135:4;9152:13;9168:12;:10;:12::i;:::-;9152:28;;9191:32;9200:5;9207:7;9216:6;9191:8;:32::i;:::-;9241:4;9234:11;;;9052:201;;;;:::o;7821:108::-;7882:7;7909:12;;7902:19;;7821:108;:::o;9833:261::-;9930:4;9947:15;9965:12;:10;:12::i;:::-;9947:30;;9988:38;10004:4;10010:7;10019:6;9988:15;:38::i;:::-;10037:27;10047:4;10053:2;10057:6;10037:9;:27::i;:::-;10082:4;10075:11;;;9833:261;;;;;:::o;7663:93::-;7721:5;7746:2;7739:9;;7663:93;:::o;10503:238::-;10591:4;10608:13;10624:12;:10;:12::i;:::-;10608:28;;10647:64;10656:5;10663:7;10700:10;10672:25;10682:5;10689:7;10672:9;:25::i;:::-;:38;;;;:::i;:::-;10647:8;:64::i;:::-;10729:4;10722:11;;;10503:238;;;;:::o;7992:127::-;8066:7;8093:9;:18;8103:7;8093:18;;;;;;;;;;;;;;;;8086:25;;7992:127;;;:::o;17802:20::-;;;;;;;;;;;;;:::o;6911:104::-;6967:13;7000:7;6993:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6911:104;:::o;11244:436::-;11337:4;11354:13;11370:12;:10;:12::i;:::-;11354:28;;11393:24;11420:25;11430:5;11437:7;11420:9;:25::i;:::-;11393:52;;11484:15;11464:16;:35;;11456:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11577:60;11586:5;11593:7;11621:15;11602:16;:34;11577:8;:60::i;:::-;11668:4;11661:11;;;;11244:436;;;;:::o;8325:193::-;8404:4;8421:13;8437:12;:10;:12::i;:::-;8421:28;;8460;8470:5;8477:2;8481:6;8460:9;:28::i;:::-;8506:4;8499:11;;;8325:193;;;;:::o;8581:151::-;8670:7;8697:11;:18;8709:5;8697:18;;;;;;;;;;;;;;;:27;8716:7;8697:27;;;;;;;;;;;;;;;;8690:34;;8581:151;;;;:::o;18127:159::-;17883:5;;;;;;;;;;;17869:19;;:10;:19;;;17861:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18228:1:::1;18208:22;;:8;:22;;;;18200:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;18270:8;18262:5;;:16;;;;;;;;;;;;;;;;;;18127:159:::0;:::o;750:98::-;803:7;830:10;823:17;;750:98;:::o;15237:346::-;15356:1;15339:19;;:5;:19;;;;15331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15437:1;15418:21;;:7;:21;;;;15410:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15521:6;15491:11;:18;15503:5;15491:18;;;;;;;;;;;;;;;:27;15510:7;15491:27;;;;;;;;;;;;;;;:36;;;;15559:7;15543:32;;15552:5;15543:32;;;15568:6;15543:32;;;;;;:::i;:::-;;;;;;;;15237:346;;;:::o;15874:419::-;15975:24;16002:25;16012:5;16019:7;16002:9;:25::i;:::-;15975:52;;16062:17;16042:16;:37;16038:248;;16124:6;16104:16;:26;;16096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16208:51;16217:5;16224:7;16252:6;16233:16;:25;16208:8;:51::i;:::-;16038:248;15964:329;15874:419;;;:::o;12150:806::-;12263:1;12247:18;;:4;:18;;;;12239:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12340:1;12326:16;;:2;:16;;;;12318:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12395:38;12416:4;12422:2;12426:6;12395:20;:38::i;:::-;12446:19;12468:9;:15;12478:4;12468:15;;;;;;;;;;;;;;;;12446:37;;12517:6;12502:11;:21;;12494:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12634:6;12620:11;:20;12602:9;:15;12612:4;12602:15;;;;;;;;;;;;;;;:38;;;;12837:6;12820:9;:13;12830:2;12820:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12887:2;12872:26;;12881:4;12872:26;;;12891:6;12872:26;;;;;;:::i;:::-;;;;;;;;12911:37;12931:4;12937:2;12941:6;12911:19;:37::i;:::-;12228:728;12150:806;;;:::o;16893:91::-;;;;:::o;17588:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:180::-;6116:77;6113:1;6106:88;6213:4;6210:1;6203:15;6237:4;6234:1;6227:15;6254:320;6298:6;6335:1;6329:4;6325:12;6315:22;;6382:1;6376:4;6372:12;6403:18;6393:81;;6459:4;6451:6;6447:17;6437:27;;6393:81;6521:2;6513:6;6510:14;6490:18;6487:38;6484:84;;;6540:18;;:::i;:::-;6484:84;6305:269;6254:320;;;:::o;6580:180::-;6628:77;6625:1;6618:88;6725:4;6722:1;6715:15;6749:4;6746:1;6739:15;6766:305;6806:3;6825:20;6843:1;6825:20;:::i;:::-;6820:25;;6859:20;6877:1;6859:20;:::i;:::-;6854:25;;7013:1;6945:66;6941:74;6938:1;6935:81;6932:107;;;7019:18;;:::i;:::-;6932:107;7063:1;7060;7056:9;7049:16;;6766:305;;;;:::o;7077:224::-;7217:34;7213:1;7205:6;7201:14;7194:58;7286:7;7281:2;7273:6;7269:15;7262:32;7077:224;:::o;7307:366::-;7449:3;7470:67;7534:2;7529:3;7470:67;:::i;:::-;7463:74;;7546:93;7635:3;7546:93;:::i;:::-;7664:2;7659:3;7655:12;7648:19;;7307:366;;;:::o;7679:419::-;7845:4;7883:2;7872:9;7868:18;7860:26;;7932:9;7926:4;7922:20;7918:1;7907:9;7903:17;7896:47;7960:131;8086:4;7960:131;:::i;:::-;7952:139;;7679:419;;;:::o;8104:234::-;8244:34;8240:1;8232:6;8228:14;8221:58;8313:17;8308:2;8300:6;8296:15;8289:42;8104:234;:::o;8344:366::-;8486:3;8507:67;8571:2;8566:3;8507:67;:::i;:::-;8500:74;;8583:93;8672:3;8583:93;:::i;:::-;8701:2;8696:3;8692:12;8685:19;;8344:366;;;:::o;8716:419::-;8882:4;8920:2;8909:9;8905:18;8897:26;;8969:9;8963:4;8959:20;8955:1;8944:9;8940:17;8933:47;8997:131;9123:4;8997:131;:::i;:::-;8989:139;;8716:419;;;:::o;9141:166::-;9281:18;9277:1;9269:6;9265:14;9258:42;9141:166;:::o;9313:366::-;9455:3;9476:67;9540:2;9535:3;9476:67;:::i;:::-;9469:74;;9552:93;9641:3;9552:93;:::i;:::-;9670:2;9665:3;9661:12;9654:19;;9313:366;;;:::o;9685:419::-;9851:4;9889:2;9878:9;9874:18;9866:26;;9938:9;9932:4;9928:20;9924:1;9913:9;9909:17;9902:47;9966:131;10092:4;9966:131;:::i;:::-;9958:139;;9685:419;;;:::o;10110:223::-;10250:34;10246:1;10238:6;10234:14;10227:58;10319:6;10314:2;10306:6;10302:15;10295:31;10110:223;:::o;10339:366::-;10481:3;10502:67;10566:2;10561:3;10502:67;:::i;:::-;10495:74;;10578:93;10667:3;10578:93;:::i;:::-;10696:2;10691:3;10687:12;10680:19;;10339:366;;;:::o;10711:419::-;10877:4;10915:2;10904:9;10900:18;10892:26;;10964:9;10958:4;10954:20;10950:1;10939:9;10935:17;10928:47;10992:131;11118:4;10992:131;:::i;:::-;10984:139;;10711:419;;;:::o;11136:221::-;11276:34;11272:1;11264:6;11260:14;11253:58;11345:4;11340:2;11332:6;11328:15;11321:29;11136:221;:::o;11363:366::-;11505:3;11526:67;11590:2;11585:3;11526:67;:::i;:::-;11519:74;;11602:93;11691:3;11602:93;:::i;:::-;11720:2;11715:3;11711:12;11704:19;;11363:366;;;:::o;11735:419::-;11901:4;11939:2;11928:9;11924:18;11916:26;;11988:9;11982:4;11978:20;11974:1;11963:9;11959:17;11952:47;12016:131;12142:4;12016:131;:::i;:::-;12008:139;;11735:419;;;:::o;12160:179::-;12300:31;12296:1;12288:6;12284:14;12277:55;12160:179;:::o;12345:366::-;12487:3;12508:67;12572:2;12567:3;12508:67;:::i;:::-;12501:74;;12584:93;12673:3;12584:93;:::i;:::-;12702:2;12697:3;12693:12;12686:19;;12345:366;;;:::o;12717:419::-;12883:4;12921:2;12910:9;12906:18;12898:26;;12970:9;12964:4;12960:20;12956:1;12945:9;12941:17;12934:47;12998:131;13124:4;12998:131;:::i;:::-;12990:139;;12717:419;;;:::o;13142:224::-;13282:34;13278:1;13270:6;13266:14;13259:58;13351:7;13346:2;13338:6;13334:15;13327:32;13142:224;:::o;13372:366::-;13514:3;13535:67;13599:2;13594:3;13535:67;:::i;:::-;13528:74;;13611:93;13700:3;13611:93;:::i;:::-;13729:2;13724:3;13720:12;13713:19;;13372:366;;;:::o;13744:419::-;13910:4;13948:2;13937:9;13933:18;13925:26;;13997:9;13991:4;13987:20;13983:1;13972:9;13968:17;13961:47;14025:131;14151:4;14025:131;:::i;:::-;14017:139;;13744:419;;;:::o;14169:222::-;14309:34;14305:1;14297:6;14293:14;14286:58;14378:5;14373:2;14365:6;14361:15;14354:30;14169:222;:::o;14397:366::-;14539:3;14560:67;14624:2;14619:3;14560:67;:::i;:::-;14553:74;;14636:93;14725:3;14636:93;:::i;:::-;14754:2;14749:3;14745:12;14738:19;;14397:366;;;:::o;14769:419::-;14935:4;14973:2;14962:9;14958:18;14950:26;;15022:9;15016:4;15012:20;15008:1;14997:9;14993:17;14986:47;15050:131;15176:4;15050:131;:::i;:::-;15042:139;;14769:419;;;:::o;15194:225::-;15334:34;15330:1;15322:6;15318:14;15311:58;15403:8;15398:2;15390:6;15386:15;15379:33;15194:225;:::o;15425:366::-;15567:3;15588:67;15652:2;15647:3;15588:67;:::i;:::-;15581:74;;15664:93;15753:3;15664:93;:::i;:::-;15782:2;15777:3;15773:12;15766:19;;15425:366;;;:::o;15797:419::-;15963:4;16001:2;15990:9;15986:18;15978:26;;16050:9;16044:4;16040:20;16036:1;16025:9;16021:17;16014:47;16078:131;16204:4;16078:131;:::i;:::-;16070:139;;15797:419;;;:::o

Swarm Source

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