ETH Price: $3,453.59 (+1.61%)

Token

TIME (TIME)
 

Overview

Max Total Supply

7,230,000,000 TIME

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
64,654,681.859355741073758225 TIME

Value
$0.00
0x974f2bfa4df68a3acde38e1b28b8804a865f01a1
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:
TIME

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-27
*/

// SPDX-License-Identifier: MIT

// 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: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol


// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)

pragma solidity ^0.8.0;



/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

// File: contracts/Base.sol


pragma solidity ^0.8.9;



contract TIME is ERC20, ERC20Burnable {
    address public admin;
    mapping (address => bool) public blist;

    constructor() ERC20("TIME", "TIME") {
        admin = msg.sender; // Set admin to contract creator
        uint256 initialSupply = 7230000000 * 10**decimals();
        _mint(msg.sender, initialSupply);
    }

    function addToBlist(address _address) public {
        require(msg.sender == admin, "Only admin can add to blacklist");
        blist[_address] = true;
    }

    function removeFromBlist(address _address) public {
        require(msg.sender == admin, "Only admin can remove from blacklist");
        blist[_address] = false;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal override {
        require(!blist[from], "Amount is lower than required");
        super._beforeTokenTransfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"addToBlist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeFromBlist","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":"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"}]

60806040523480156200001157600080fd5b506040518060400160405280600481526020017f54494d45000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f54494d450000000000000000000000000000000000000000000000000000000081525081600390816200008f9190620005d9565b508060049081620000a19190620005d9565b50505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000620000f76200013260201b60201c565b600a62000105919062000850565b6401aef10b80620001179190620008a1565b90506200012b33826200013b60201b60201c565b5062000a4a565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001a4906200094d565b60405180910390fd5b620001c160008383620002a860201b60201c565b8060026000828254620001d591906200096f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002889190620009bb565b60405180910390a3620002a4600083836200035560201b60201c565b5050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000338576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200032f9062000a28565b60405180910390fd5b620003508383836200035a60201b6200090f1760201c565b505050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003e157607f821691505b602082108103620003f757620003f662000399565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000422565b6200046d868362000422565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004ba620004b4620004ae8462000485565b6200048f565b62000485565b9050919050565b6000819050919050565b620004d68362000499565b620004ee620004e582620004c1565b8484546200042f565b825550505050565b600090565b62000505620004f6565b62000512818484620004cb565b505050565b5b818110156200053a576200052e600082620004fb565b60018101905062000518565b5050565b601f82111562000589576200055381620003fd565b6200055e8462000412565b810160208510156200056e578190505b620005866200057d8562000412565b83018262000517565b50505b505050565b600082821c905092915050565b6000620005ae600019846008026200058e565b1980831691505092915050565b6000620005c983836200059b565b9150826002028217905092915050565b620005e4826200035f565b67ffffffffffffffff8111156200060057620005ff6200036a565b5b6200060c8254620003c8565b620006198282856200053e565b600060209050601f8311600181146200065157600084156200063c578287015190505b620006488582620005bb565b865550620006b8565b601f1984166200066186620003fd565b60005b828110156200068b5784890151825560018201915060208501945060208101905062000664565b86831015620006ab5784890151620006a7601f8916826200059b565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200074e57808604811115620007265762000725620006c0565b5b6001851615620007365780820291505b80810290506200074685620006ef565b945062000706565b94509492505050565b6000826200076957600190506200083c565b816200077957600090506200083c565b81600181146200079257600281146200079d57620007d3565b60019150506200083c565b60ff841115620007b257620007b1620006c0565b5b8360020a915084821115620007cc57620007cb620006c0565b5b506200083c565b5060208310610133831016604e8410600b84101617156200080d5782820a905083811115620008075762000806620006c0565b5b6200083c565b6200081c8484846001620006fc565b92509050818404811115620008365762000835620006c0565b5b81810290505b9392505050565b600060ff82169050919050565b60006200085d8262000485565b91506200086a8362000843565b9250620008997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000757565b905092915050565b6000620008ae8262000485565b9150620008bb8362000485565b9250828202620008cb8162000485565b91508282048414831517620008e557620008e4620006c0565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000935601f83620008ec565b91506200094282620008fd565b602082019050919050565b60006020820190508181036000830152620009688162000926565b9050919050565b60006200097c8262000485565b9150620009898362000485565b9250828201905080821115620009a457620009a3620006c0565b5b92915050565b620009b58162000485565b82525050565b6000602082019050620009d26000830184620009aa565b92915050565b7f416d6f756e74206973206c6f776572207468616e207265717569726564000000600082015250565b600062000a10601d83620008ec565b915062000a1d82620009d8565b602082019050919050565b6000602082019050818103600083015262000a438162000a01565b9050919050565b611aee8062000a5a6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a457c2d711610071578063a457c2d7146102cc578063a4609d71146102fc578063a9059cbb14610318578063dd62ed3e14610348578063f851a440146103785761010b565b806370a082311461023257806379cc6790146102625780638e9c66cb1461027e57806395d89b41146102ae5761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806342966c68146101fa5780636fd5d123146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610396565b60405161012591906110e6565b60405180910390f35b610148600480360381019061014391906111a1565b610428565b60405161015591906111fc565b60405180910390f35b61016661044b565b6040516101739190611226565b60405180910390f35b61019660048036038101906101919190611241565b610455565b6040516101a391906111fc565b60405180910390f35b6101b4610484565b6040516101c191906112b0565b60405180910390f35b6101e460048036038101906101df91906111a1565b61048d565b6040516101f191906111fc565b60405180910390f35b610214600480360381019061020f91906112cb565b6104c4565b005b610230600480360381019061022b91906112f8565b6104d8565b005b61024c600480360381019061024791906112f8565b6105c3565b6040516102599190611226565b60405180910390f35b61027c600480360381019061027791906111a1565b61060b565b005b610298600480360381019061029391906112f8565b61062b565b6040516102a591906111fc565b60405180910390f35b6102b661064b565b6040516102c391906110e6565b60405180910390f35b6102e660048036038101906102e191906111a1565b6106dd565b6040516102f391906111fc565b60405180910390f35b610316600480360381019061031191906112f8565b610754565b005b610332600480360381019061032d91906111a1565b61083f565b60405161033f91906111fc565b60405180910390f35b610362600480360381019061035d9190611325565b610862565b60405161036f9190611226565b60405180910390f35b6103806108e9565b60405161038d9190611374565b60405180910390f35b6060600380546103a5906113be565b80601f01602080910402602001604051908101604052809291908181526020018280546103d1906113be565b801561041e5780601f106103f35761010080835404028352916020019161041e565b820191906000526020600020905b81548152906001019060200180831161040157829003601f168201915b5050505050905090565b600080610433610914565b905061044081858561091c565b600191505092915050565b6000600254905090565b600080610460610914565b905061046d858285610ae5565b610478858585610b71565b60019150509392505050565b60006012905090565b600080610498610914565b90506104b98185856104aa8589610862565b6104b4919061141e565b61091c565b600191505092915050565b6104d56104cf610914565b82610de7565b50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f906114c4565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61061d82610617610914565b83610ae5565b6106278282610de7565b5050565b60066020528060005260406000206000915054906101000a900460ff1681565b60606004805461065a906113be565b80601f0160208091040260200160405190810160405280929190818152602001828054610686906113be565b80156106d35780601f106106a8576101008083540402835291602001916106d3565b820191906000526020600020905b8154815290600101906020018083116106b657829003601f168201915b5050505050905090565b6000806106e8610914565b905060006106f68286610862565b90508381101561073b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073290611556565b60405180910390fd5b610748828686840361091c565b60019250505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db906115c2565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008061084a610914565b9050610857818585610b71565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290611654565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f1906116e6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ad89190611226565b60405180910390a3505050565b6000610af18484610862565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b6b5781811015610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5490611752565b60405180910390fd5b610b6a848484840361091c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd7906117e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4690611876565b60405180910390fd5b610c5a838383610fb4565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd790611908565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dce9190611226565b60405180910390a3610de1848484611051565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061199a565b60405180910390fd5b610e6282600083610fb4565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611a2c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f9b9190611226565b60405180910390a3610faf83600084611051565b505050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103890611a98565b60405180910390fd5b61104c83838361090f565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611090578082015181840152602081019050611075565b60008484015250505050565b6000601f19601f8301169050919050565b60006110b882611056565b6110c28185611061565b93506110d2818560208601611072565b6110db8161109c565b840191505092915050565b6000602082019050818103600083015261110081846110ad565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111388261110d565b9050919050565b6111488161112d565b811461115357600080fd5b50565b6000813590506111658161113f565b92915050565b6000819050919050565b61117e8161116b565b811461118957600080fd5b50565b60008135905061119b81611175565b92915050565b600080604083850312156111b8576111b7611108565b5b60006111c685828601611156565b92505060206111d78582860161118c565b9150509250929050565b60008115159050919050565b6111f6816111e1565b82525050565b600060208201905061121160008301846111ed565b92915050565b6112208161116b565b82525050565b600060208201905061123b6000830184611217565b92915050565b60008060006060848603121561125a57611259611108565b5b600061126886828701611156565b935050602061127986828701611156565b925050604061128a8682870161118c565b9150509250925092565b600060ff82169050919050565b6112aa81611294565b82525050565b60006020820190506112c560008301846112a1565b92915050565b6000602082840312156112e1576112e0611108565b5b60006112ef8482850161118c565b91505092915050565b60006020828403121561130e5761130d611108565b5b600061131c84828501611156565b91505092915050565b6000806040838503121561133c5761133b611108565b5b600061134a85828601611156565b925050602061135b85828601611156565b9150509250929050565b61136e8161112d565b82525050565b60006020820190506113896000830184611365565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806113d657607f821691505b6020821081036113e9576113e861138f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114298261116b565b91506114348361116b565b925082820190508082111561144c5761144b6113ef565b5b92915050565b7f4f6e6c792061646d696e2063616e2072656d6f76652066726f6d20626c61636b60008201527f6c69737400000000000000000000000000000000000000000000000000000000602082015250565b60006114ae602483611061565b91506114b982611452565b604082019050919050565b600060208201905081810360008301526114dd816114a1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611540602583611061565b915061154b826114e4565b604082019050919050565b6000602082019050818103600083015261156f81611533565b9050919050565b7f4f6e6c792061646d696e2063616e2061646420746f20626c61636b6c69737400600082015250565b60006115ac601f83611061565b91506115b782611576565b602082019050919050565b600060208201905081810360008301526115db8161159f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061163e602483611061565b9150611649826115e2565b604082019050919050565b6000602082019050818103600083015261166d81611631565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006116d0602283611061565b91506116db82611674565b604082019050919050565b600060208201905081810360008301526116ff816116c3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061173c601d83611061565b915061174782611706565b602082019050919050565b6000602082019050818103600083015261176b8161172f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006117ce602583611061565b91506117d982611772565b604082019050919050565b600060208201905081810360008301526117fd816117c1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611860602383611061565b915061186b82611804565b604082019050919050565b6000602082019050818103600083015261188f81611853565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006118f2602683611061565b91506118fd82611896565b604082019050919050565b60006020820190508181036000830152611921816118e5565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611984602183611061565b915061198f82611928565b604082019050919050565b600060208201905081810360008301526119b381611977565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a16602283611061565b9150611a21826119ba565b604082019050919050565b60006020820190508181036000830152611a4581611a09565b9050919050565b7f416d6f756e74206973206c6f776572207468616e207265717569726564000000600082015250565b6000611a82601d83611061565b9150611a8d82611a4c565b602082019050919050565b60006020820190508181036000830152611ab181611a75565b905091905056fea2646970667358221220ffb753ae599e2a7e763b519da6cf925d21ab356078ee48d484d20c5ba339d59164736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a457c2d711610071578063a457c2d7146102cc578063a4609d71146102fc578063a9059cbb14610318578063dd62ed3e14610348578063f851a440146103785761010b565b806370a082311461023257806379cc6790146102625780638e9c66cb1461027e57806395d89b41146102ae5761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806342966c68146101fa5780636fd5d123146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610396565b60405161012591906110e6565b60405180910390f35b610148600480360381019061014391906111a1565b610428565b60405161015591906111fc565b60405180910390f35b61016661044b565b6040516101739190611226565b60405180910390f35b61019660048036038101906101919190611241565b610455565b6040516101a391906111fc565b60405180910390f35b6101b4610484565b6040516101c191906112b0565b60405180910390f35b6101e460048036038101906101df91906111a1565b61048d565b6040516101f191906111fc565b60405180910390f35b610214600480360381019061020f91906112cb565b6104c4565b005b610230600480360381019061022b91906112f8565b6104d8565b005b61024c600480360381019061024791906112f8565b6105c3565b6040516102599190611226565b60405180910390f35b61027c600480360381019061027791906111a1565b61060b565b005b610298600480360381019061029391906112f8565b61062b565b6040516102a591906111fc565b60405180910390f35b6102b661064b565b6040516102c391906110e6565b60405180910390f35b6102e660048036038101906102e191906111a1565b6106dd565b6040516102f391906111fc565b60405180910390f35b610316600480360381019061031191906112f8565b610754565b005b610332600480360381019061032d91906111a1565b61083f565b60405161033f91906111fc565b60405180910390f35b610362600480360381019061035d9190611325565b610862565b60405161036f9190611226565b60405180910390f35b6103806108e9565b60405161038d9190611374565b60405180910390f35b6060600380546103a5906113be565b80601f01602080910402602001604051908101604052809291908181526020018280546103d1906113be565b801561041e5780601f106103f35761010080835404028352916020019161041e565b820191906000526020600020905b81548152906001019060200180831161040157829003601f168201915b5050505050905090565b600080610433610914565b905061044081858561091c565b600191505092915050565b6000600254905090565b600080610460610914565b905061046d858285610ae5565b610478858585610b71565b60019150509392505050565b60006012905090565b600080610498610914565b90506104b98185856104aa8589610862565b6104b4919061141e565b61091c565b600191505092915050565b6104d56104cf610914565b82610de7565b50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f906114c4565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61061d82610617610914565b83610ae5565b6106278282610de7565b5050565b60066020528060005260406000206000915054906101000a900460ff1681565b60606004805461065a906113be565b80601f0160208091040260200160405190810160405280929190818152602001828054610686906113be565b80156106d35780601f106106a8576101008083540402835291602001916106d3565b820191906000526020600020905b8154815290600101906020018083116106b657829003601f168201915b5050505050905090565b6000806106e8610914565b905060006106f68286610862565b90508381101561073b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073290611556565b60405180910390fd5b610748828686840361091c565b60019250505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db906115c2565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008061084a610914565b9050610857818585610b71565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290611654565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f1906116e6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ad89190611226565b60405180910390a3505050565b6000610af18484610862565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b6b5781811015610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5490611752565b60405180910390fd5b610b6a848484840361091c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd7906117e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4690611876565b60405180910390fd5b610c5a838383610fb4565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd790611908565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dce9190611226565b60405180910390a3610de1848484611051565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061199a565b60405180910390fd5b610e6282600083610fb4565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611a2c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f9b9190611226565b60405180910390a3610faf83600084611051565b505050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103890611a98565b60405180910390fd5b61104c83838361090f565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611090578082015181840152602081019050611075565b60008484015250505050565b6000601f19601f8301169050919050565b60006110b882611056565b6110c28185611061565b93506110d2818560208601611072565b6110db8161109c565b840191505092915050565b6000602082019050818103600083015261110081846110ad565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111388261110d565b9050919050565b6111488161112d565b811461115357600080fd5b50565b6000813590506111658161113f565b92915050565b6000819050919050565b61117e8161116b565b811461118957600080fd5b50565b60008135905061119b81611175565b92915050565b600080604083850312156111b8576111b7611108565b5b60006111c685828601611156565b92505060206111d78582860161118c565b9150509250929050565b60008115159050919050565b6111f6816111e1565b82525050565b600060208201905061121160008301846111ed565b92915050565b6112208161116b565b82525050565b600060208201905061123b6000830184611217565b92915050565b60008060006060848603121561125a57611259611108565b5b600061126886828701611156565b935050602061127986828701611156565b925050604061128a8682870161118c565b9150509250925092565b600060ff82169050919050565b6112aa81611294565b82525050565b60006020820190506112c560008301846112a1565b92915050565b6000602082840312156112e1576112e0611108565b5b60006112ef8482850161118c565b91505092915050565b60006020828403121561130e5761130d611108565b5b600061131c84828501611156565b91505092915050565b6000806040838503121561133c5761133b611108565b5b600061134a85828601611156565b925050602061135b85828601611156565b9150509250929050565b61136e8161112d565b82525050565b60006020820190506113896000830184611365565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806113d657607f821691505b6020821081036113e9576113e861138f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114298261116b565b91506114348361116b565b925082820190508082111561144c5761144b6113ef565b5b92915050565b7f4f6e6c792061646d696e2063616e2072656d6f76652066726f6d20626c61636b60008201527f6c69737400000000000000000000000000000000000000000000000000000000602082015250565b60006114ae602483611061565b91506114b982611452565b604082019050919050565b600060208201905081810360008301526114dd816114a1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611540602583611061565b915061154b826114e4565b604082019050919050565b6000602082019050818103600083015261156f81611533565b9050919050565b7f4f6e6c792061646d696e2063616e2061646420746f20626c61636b6c69737400600082015250565b60006115ac601f83611061565b91506115b782611576565b602082019050919050565b600060208201905081810360008301526115db8161159f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061163e602483611061565b9150611649826115e2565b604082019050919050565b6000602082019050818103600083015261166d81611631565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006116d0602283611061565b91506116db82611674565b604082019050919050565b600060208201905081810360008301526116ff816116c3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061173c601d83611061565b915061174782611706565b602082019050919050565b6000602082019050818103600083015261176b8161172f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006117ce602583611061565b91506117d982611772565b604082019050919050565b600060208201905081810360008301526117fd816117c1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611860602383611061565b915061186b82611804565b604082019050919050565b6000602082019050818103600083015261188f81611853565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006118f2602683611061565b91506118fd82611896565b604082019050919050565b60006020820190508181036000830152611921816118e5565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611984602183611061565b915061198f82611928565b604082019050919050565b600060208201905081810360008301526119b381611977565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a16602283611061565b9150611a21826119ba565b604082019050919050565b60006020820190508181036000830152611a4581611a09565b9050919050565b7f416d6f756e74206973206c6f776572207468616e207265717569726564000000600082015250565b6000611a82601d83611061565b9150611a8d82611a4c565b602082019050919050565b60006020820190508181036000830152611ab181611a75565b905091905056fea2646970667358221220ffb753ae599e2a7e763b519da6cf925d21ab356078ee48d484d20c5ba339d59164736f6c63430008120033

Deployed Bytecode Sourcemap

18877:906:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6656:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9016:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7785:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9797:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7627:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10467:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18232:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19383:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7956:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18642:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18949:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6875:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11208:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19215:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8289:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8545:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18922:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6656:100;6710:13;6743:5;6736:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6656:100;:::o;9016:201::-;9099:4;9116:13;9132:12;:10;:12::i;:::-;9116:28;;9155:32;9164:5;9171:7;9180:6;9155:8;:32::i;:::-;9205:4;9198:11;;;9016:201;;;;:::o;7785:108::-;7846:7;7873:12;;7866:19;;7785:108;:::o;9797:261::-;9894:4;9911:15;9929:12;:10;:12::i;:::-;9911:30;;9952:38;9968:4;9974:7;9983:6;9952:15;:38::i;:::-;10001:27;10011:4;10017:2;10021:6;10001:9;:27::i;:::-;10046:4;10039:11;;;9797:261;;;;;:::o;7627:93::-;7685:5;7710:2;7703:9;;7627:93;:::o;10467:238::-;10555:4;10572:13;10588:12;:10;:12::i;:::-;10572:28;;10611:64;10620:5;10627:7;10664:10;10636:25;10646:5;10653:7;10636:9;:25::i;:::-;:38;;;;:::i;:::-;10611:8;:64::i;:::-;10693:4;10686:11;;;10467:238;;;;:::o;18232:91::-;18288:27;18294:12;:10;:12::i;:::-;18308:6;18288:5;:27::i;:::-;18232:91;:::o;19383:171::-;19466:5;;;;;;;;;;;19452:19;;:10;:19;;;19444:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19541:5;19523;:15;19529:8;19523:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;19383:171;:::o;7956:127::-;8030:7;8057:9;:18;8067:7;8057:18;;;;;;;;;;;;;;;;8050:25;;7956:127;;;:::o;18642:164::-;18719:46;18735:7;18744:12;:10;:12::i;:::-;18758:6;18719:15;:46::i;:::-;18776:22;18782:7;18791:6;18776:5;:22::i;:::-;18642:164;;:::o;18949:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;6875:104::-;6931:13;6964:7;6957:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6875:104;:::o;11208:436::-;11301:4;11318:13;11334:12;:10;:12::i;:::-;11318:28;;11357:24;11384:25;11394:5;11401:7;11384:9;:25::i;:::-;11357:52;;11448:15;11428:16;:35;;11420:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11541:60;11550:5;11557:7;11585:15;11566:16;:34;11541:8;:60::i;:::-;11632:4;11625:11;;;;11208:436;;;;:::o;19215:160::-;19293:5;;;;;;;;;;;19279:19;;:10;:19;;;19271:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;19363:4;19345:5;:15;19351:8;19345:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;19215:160;:::o;8289:193::-;8368:4;8385:13;8401:12;:10;:12::i;:::-;8385:28;;8424;8434:5;8441:2;8445:6;8424:9;:28::i;:::-;8470:4;8463:11;;;8289:193;;;;:::o;8545:151::-;8634:7;8661:11;:18;8673:5;8661:18;;;;;;;;;;;;;;;:27;8680:7;8661:27;;;;;;;;;;;;;;;;8654:34;;8545:151;;;;:::o;18922:20::-;;;;;;;;;;;;;:::o;16857:91::-;;;;:::o;714:98::-;767:7;794:10;787:17;;714:98;:::o;15201:346::-;15320:1;15303:19;;:5;:19;;;15295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15401:1;15382:21;;:7;:21;;;15374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15485:6;15455:11;:18;15467:5;15455:18;;;;;;;;;;;;;;;:27;15474:7;15455:27;;;;;;;;;;;;;;;:36;;;;15523:7;15507:32;;15516:5;15507:32;;;15532:6;15507:32;;;;;;:::i;:::-;;;;;;;;15201:346;;;:::o;15838:419::-;15939:24;15966:25;15976:5;15983:7;15966:9;:25::i;:::-;15939:52;;16026:17;16006:16;:37;16002:248;;16088:6;16068:16;:26;;16060:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16172:51;16181:5;16188:7;16216:6;16197:16;:25;16172:8;:51::i;:::-;16002:248;15928:329;15838:419;;;:::o;12114:806::-;12227:1;12211:18;;:4;:18;;;12203:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12304:1;12290:16;;:2;:16;;;12282:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12359:38;12380:4;12386:2;12390:6;12359:20;:38::i;:::-;12410:19;12432:9;:15;12442:4;12432:15;;;;;;;;;;;;;;;;12410:37;;12481:6;12466:11;:21;;12458:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12598:6;12584:11;:20;12566:9;:15;12576:4;12566:15;;;;;;;;;;;;;;;:38;;;;12801:6;12784:9;:13;12794:2;12784:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12851:2;12836:26;;12845:4;12836:26;;;12855:6;12836:26;;;;;;:::i;:::-;;;;;;;;12875:37;12895:4;12901:2;12905:6;12875:19;:37::i;:::-;12192:728;12114:806;;;:::o;14088:675::-;14191:1;14172:21;;:7;:21;;;14164:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14244:49;14265:7;14282:1;14286:6;14244:20;:49::i;:::-;14306:22;14331:9;:18;14341:7;14331:18;;;;;;;;;;;;;;;;14306:43;;14386:6;14368:14;:24;;14360:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14505:6;14488:14;:23;14467:9;:18;14477:7;14467:18;;;;;;;;;;;;;;;:44;;;;14622:6;14606:12;;:22;;;;;;;;;;;14683:1;14657:37;;14666:7;14657:37;;;14687:6;14657:37;;;;;;:::i;:::-;;;;;;;;14707:48;14727:7;14744:1;14748:6;14707:19;:48::i;:::-;14153:610;14088:675;;:::o;19562:218::-;19672:5;:11;19678:4;19672:11;;;;;;;;;;;;;;;;;;;;;;;;;19671:12;19663:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19728:44;19755:4;19761:2;19765:6;19728:26;:44::i;:::-;19562:218;;;:::o;17552: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:474::-;5591:6;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;5523:474;;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:320;6585:6;6622:1;6616:4;6612:12;6602:22;;6669:1;6663:4;6659:12;6690:18;6680:81;;6746:4;6738:6;6734:17;6724:27;;6680:81;6808:2;6800:6;6797:14;6777:18;6774:38;6771:84;;6827:18;;:::i;:::-;6771:84;6592:269;6541:320;;;:::o;6867:180::-;6915:77;6912:1;6905:88;7012:4;7009:1;7002:15;7036:4;7033:1;7026:15;7053:191;7093:3;7112:20;7130:1;7112:20;:::i;:::-;7107:25;;7146:20;7164:1;7146:20;:::i;:::-;7141:25;;7189:1;7186;7182:9;7175:16;;7210:3;7207:1;7204:10;7201:36;;;7217:18;;:::i;:::-;7201:36;7053:191;;;;:::o;7250:223::-;7390:34;7386:1;7378:6;7374:14;7367:58;7459:6;7454:2;7446:6;7442:15;7435:31;7250:223;:::o;7479:366::-;7621:3;7642:67;7706:2;7701:3;7642:67;:::i;:::-;7635:74;;7718:93;7807:3;7718:93;:::i;:::-;7836:2;7831:3;7827:12;7820:19;;7479:366;;;:::o;7851:419::-;8017:4;8055:2;8044:9;8040:18;8032:26;;8104:9;8098:4;8094:20;8090:1;8079:9;8075:17;8068:47;8132:131;8258:4;8132:131;:::i;:::-;8124:139;;7851:419;;;:::o;8276:224::-;8416:34;8412:1;8404:6;8400:14;8393:58;8485:7;8480:2;8472:6;8468:15;8461:32;8276:224;:::o;8506:366::-;8648:3;8669:67;8733:2;8728:3;8669:67;:::i;:::-;8662:74;;8745:93;8834:3;8745:93;:::i;:::-;8863:2;8858:3;8854:12;8847:19;;8506:366;;;:::o;8878:419::-;9044:4;9082:2;9071:9;9067:18;9059:26;;9131:9;9125:4;9121:20;9117:1;9106:9;9102:17;9095:47;9159:131;9285:4;9159:131;:::i;:::-;9151:139;;8878:419;;;:::o;9303:181::-;9443:33;9439:1;9431:6;9427:14;9420:57;9303:181;:::o;9490:366::-;9632:3;9653:67;9717:2;9712:3;9653:67;:::i;:::-;9646:74;;9729:93;9818:3;9729:93;:::i;:::-;9847:2;9842:3;9838:12;9831:19;;9490:366;;;:::o;9862:419::-;10028:4;10066:2;10055:9;10051:18;10043:26;;10115:9;10109:4;10105:20;10101:1;10090:9;10086:17;10079:47;10143:131;10269:4;10143:131;:::i;:::-;10135:139;;9862:419;;;:::o;10287:223::-;10427:34;10423:1;10415:6;10411:14;10404:58;10496:6;10491:2;10483:6;10479:15;10472:31;10287:223;:::o;10516:366::-;10658:3;10679:67;10743:2;10738:3;10679:67;:::i;:::-;10672:74;;10755:93;10844:3;10755:93;:::i;:::-;10873:2;10868:3;10864:12;10857:19;;10516:366;;;:::o;10888:419::-;11054:4;11092:2;11081:9;11077:18;11069:26;;11141:9;11135:4;11131:20;11127:1;11116:9;11112:17;11105:47;11169:131;11295:4;11169:131;:::i;:::-;11161:139;;10888:419;;;:::o;11313:221::-;11453:34;11449:1;11441:6;11437:14;11430:58;11522:4;11517:2;11509:6;11505:15;11498:29;11313:221;:::o;11540:366::-;11682:3;11703:67;11767:2;11762:3;11703:67;:::i;:::-;11696:74;;11779:93;11868:3;11779:93;:::i;:::-;11897:2;11892:3;11888:12;11881:19;;11540:366;;;:::o;11912:419::-;12078:4;12116:2;12105:9;12101:18;12093:26;;12165:9;12159:4;12155:20;12151:1;12140:9;12136:17;12129:47;12193:131;12319:4;12193:131;:::i;:::-;12185:139;;11912:419;;;:::o;12337:179::-;12477:31;12473:1;12465:6;12461:14;12454:55;12337:179;:::o;12522:366::-;12664:3;12685:67;12749:2;12744:3;12685:67;:::i;:::-;12678:74;;12761:93;12850:3;12761:93;:::i;:::-;12879:2;12874:3;12870:12;12863:19;;12522:366;;;:::o;12894:419::-;13060:4;13098:2;13087:9;13083:18;13075:26;;13147:9;13141:4;13137:20;13133:1;13122:9;13118:17;13111:47;13175:131;13301:4;13175:131;:::i;:::-;13167:139;;12894:419;;;:::o;13319:224::-;13459:34;13455:1;13447:6;13443:14;13436:58;13528:7;13523:2;13515:6;13511:15;13504:32;13319:224;:::o;13549:366::-;13691:3;13712:67;13776:2;13771:3;13712:67;:::i;:::-;13705:74;;13788:93;13877:3;13788:93;:::i;:::-;13906:2;13901:3;13897:12;13890:19;;13549:366;;;:::o;13921:419::-;14087:4;14125:2;14114:9;14110:18;14102:26;;14174:9;14168:4;14164:20;14160:1;14149:9;14145:17;14138:47;14202:131;14328:4;14202:131;:::i;:::-;14194:139;;13921:419;;;:::o;14346:222::-;14486:34;14482:1;14474:6;14470:14;14463:58;14555:5;14550:2;14542:6;14538:15;14531:30;14346:222;:::o;14574:366::-;14716:3;14737:67;14801:2;14796:3;14737:67;:::i;:::-;14730:74;;14813:93;14902:3;14813:93;:::i;:::-;14931:2;14926:3;14922:12;14915:19;;14574:366;;;:::o;14946:419::-;15112:4;15150:2;15139:9;15135:18;15127:26;;15199:9;15193:4;15189:20;15185:1;15174:9;15170:17;15163:47;15227:131;15353:4;15227:131;:::i;:::-;15219:139;;14946:419;;;:::o;15371:225::-;15511:34;15507:1;15499:6;15495:14;15488:58;15580:8;15575:2;15567:6;15563:15;15556:33;15371:225;:::o;15602:366::-;15744:3;15765:67;15829:2;15824:3;15765:67;:::i;:::-;15758:74;;15841:93;15930:3;15841:93;:::i;:::-;15959:2;15954:3;15950:12;15943:19;;15602:366;;;:::o;15974:419::-;16140:4;16178:2;16167:9;16163:18;16155:26;;16227:9;16221:4;16217:20;16213:1;16202:9;16198:17;16191:47;16255:131;16381:4;16255:131;:::i;:::-;16247:139;;15974:419;;;:::o;16399:220::-;16539:34;16535:1;16527:6;16523:14;16516:58;16608:3;16603:2;16595:6;16591:15;16584:28;16399:220;:::o;16625:366::-;16767:3;16788:67;16852:2;16847:3;16788:67;:::i;:::-;16781:74;;16864:93;16953:3;16864:93;:::i;:::-;16982:2;16977:3;16973:12;16966:19;;16625:366;;;:::o;16997:419::-;17163:4;17201:2;17190:9;17186:18;17178:26;;17250:9;17244:4;17240:20;17236:1;17225:9;17221:17;17214:47;17278:131;17404:4;17278:131;:::i;:::-;17270:139;;16997:419;;;:::o;17422:221::-;17562:34;17558:1;17550:6;17546:14;17539:58;17631:4;17626:2;17618:6;17614:15;17607:29;17422:221;:::o;17649:366::-;17791:3;17812:67;17876:2;17871:3;17812:67;:::i;:::-;17805:74;;17888:93;17977:3;17888:93;:::i;:::-;18006:2;18001:3;17997:12;17990:19;;17649:366;;;:::o;18021:419::-;18187:4;18225:2;18214:9;18210:18;18202:26;;18274:9;18268:4;18264:20;18260:1;18249:9;18245:17;18238:47;18302:131;18428:4;18302:131;:::i;:::-;18294:139;;18021:419;;;:::o;18446:179::-;18586:31;18582:1;18574:6;18570:14;18563:55;18446:179;:::o;18631:366::-;18773:3;18794:67;18858:2;18853:3;18794:67;:::i;:::-;18787:74;;18870:93;18959:3;18870:93;:::i;:::-;18988:2;18983:3;18979:12;18972:19;;18631:366;;;:::o;19003:419::-;19169:4;19207:2;19196:9;19192:18;19184:26;;19256:9;19250:4;19246:20;19242:1;19231:9;19227:17;19220:47;19284:131;19410:4;19284:131;:::i;:::-;19276:139;;19003:419;;;:::o

Swarm Source

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