ETH Price: $2,427.26 (-0.52%)

Token

Creverse (WITH)
 

Overview

Max Total Supply

10,000,000,000 WITH

Holders

1,272

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
otherside1.eth
Balance
800 WITH

Value
$0.00
0x7ea1bf53b534af25144b47123d84fdf867c1bb1c
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:
CreverseCoin

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-15
*/

// 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/access/Ownable.sol


// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;


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

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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol


// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

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


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

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

// 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.5.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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is 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}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

    /**
     * @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, _allowances[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 = _allowances[owner][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * 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;
        }
        _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;
        _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;
        }
        _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 Spend `amount` form the allowance of `owner` toward `spender`.
     *
     * 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: -6230525567745595836coccoin.sol


pragma solidity ^0.8.4;







contract CreverseCoin is Context, IERC20, IERC20Metadata, Pausable, Ownable {

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

    string private _name;
    string private _symbol;

    constructor() {
        _totalSupply = 10000000000 * 10 ** decimals();
        _name = 'Creverse';
        _symbol = 'WITH';
        _balances[msg.sender] = _totalSupply;
    }

    function pause() public onlyOwner {
        _pause();
    }

    function unpause() public onlyOwner {
        _unpause();
    }

    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }

    function burn(uint256 amount) public onlyOwner {
        _burn(_msgSender(), amount);
    }

    function airdrop(address[] memory  _to, uint256 _value) public onlyOwner {
        _airdrop(_to, _value);
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) whenNotPaused public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) whenNotPaused public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) whenNotPaused public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) whenNotPaused public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) whenNotPaused public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) whenNotPaused public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[owner][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
    unchecked {
        _approve(owner, spender, currentAllowance - subtractedValue);
    }

        return true;
    }

    //------------internal Function-------------------
    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;
    }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) onlyOwner internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) onlyOwner 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;
    }
        _totalSupply -= amount;

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
        unchecked {
            _approve(owner, spender, currentAllowance - amount);
        }
        }
    }

    function _airdrop(address[] memory _to, uint256 _value) internal virtual {
        for(uint256 i = 0; i < _to.length; i++){
            if(_balances[_to[i]] > 0){
                continue;
            }
            transfer(_to[i], _value);
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
    //------------------------------------------------
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"amount","type":"uint256"}],"name":"burn","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060008060006101000a81548160ff0219169083151502179055506200004c620000406200016a60201b60201c565b6200017260201b60201c565b6200005c6200023760201b60201c565b600a6200006a91906200034b565b6402540be4006200007c919062000488565b6003819055506040518060400160405280600881526020017f437265766572736500000000000000000000000000000000000000000000000081525060049080519060200190620000cf92919062000240565b506040518060400160405280600481526020017f5749544800000000000000000000000000000000000000000000000000000000815250600590805190602001906200011d92919062000240565b50600354600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620005a1565b600033905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b8280546200024e9062000500565b90600052602060002090601f016020900481019282620002725760008555620002be565b82601f106200028d57805160ff1916838001178555620002be565b82800160010185558215620002be579182015b82811115620002bd578251825591602001919060010190620002a0565b5b509050620002cd9190620002d1565b5090565b5b80821115620002ec576000816000905550600101620002d2565b5090565b6000808291508390505b600185111562000342578086048111156200031a576200031962000536565b5b60018516156200032a5780820291505b80810290506200033a8562000594565b9450620002fa565b94509492505050565b60006200035882620004e9565b91506200036583620004f3565b9250620003947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200039c565b905092915050565b600082620003ae576001905062000481565b81620003be576000905062000481565b8160018114620003d75760028114620003e25762000418565b600191505062000481565b60ff841115620003f757620003f662000536565b5b8360020a91508482111562000411576200041062000536565b5b5062000481565b5060208310610133831016604e8410600b8410161715620004525782820a9050838111156200044c576200044b62000536565b5b62000481565b620004618484846001620002f0565b925090508184048111156200047b576200047a62000536565b5b81810290505b9392505050565b60006200049582620004e9565b9150620004a283620004e9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620004de57620004dd62000536565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200051957607f821691505b6020821081141562000530576200052f62000565565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b6127d180620005b16000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d7146102fb578063a9059cbb1461032b578063c204642c1461035b578063dd62ed3e14610377578063f2fde38b146103a75761012c565b806370a082311461027b578063715018a6146102ab5780638456cb59146102b55780638da5cb5b146102bf57806395d89b41146102dd5761012c565b806339509351116100f457806339509351146101eb5780633f4ba83a1461021b57806340c10f191461022557806342966c68146102415780635c975abb1461025d5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103c3565b6040516101469190611eb5565b60405180910390f35b61016960048036038101906101649190611b57565b610455565b6040516101769190611e9a565b60405180910390f35b6101876104c1565b6040516101949190612097565b60405180910390f35b6101b760048036038101906101b29190611b04565b6104cb565b6040516101c49190611e9a565b60405180910390f35b6101d5610543565b6040516101e291906120b2565b60405180910390f35b61020560048036038101906102009190611b57565b61054c565b6040516102129190611e9a565b60405180910390f35b61022361063f565b005b61023f600480360381019061023a9190611b57565b6106c5565b005b61025b60048036038101906102569190611bf3565b61074f565b005b6102656107df565b6040516102729190611e9a565b60405180910390f35b61029560048036038101906102909190611a97565b6107f5565b6040516102a29190612097565b60405180910390f35b6102b361083e565b005b6102bd6108c6565b005b6102c761094c565b6040516102d49190611e7f565b60405180910390f35b6102e5610975565b6040516102f29190611eb5565b60405180910390f35b61031560048036038101906103109190611b57565b610a07565b6040516103229190611e9a565b60405180910390f35b61034560048036038101906103409190611b57565b610b3a565b6040516103529190611e9a565b60405180910390f35b61037560048036038101906103709190611b97565b610ba6565b005b610391600480360381019061038c9190611ac4565b610c30565b60405161039e9190612097565b60405180910390f35b6103c160048036038101906103bc9190611a97565b610cff565b005b6060600480546103d29061224c565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe9061224c565b801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b5050505050905090565b600061045f6107df565b1561049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049690611fb7565b60405180910390fd5b60006104a9610df7565b90506104b6818585610dff565b600191505092915050565b6000600354905090565b60006104d56107df565b15610515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c90611fb7565b60405180910390fd5b600061051f610df7565b905061052c858285610fca565b610537858585611056565b60019150509392505050565b60006012905090565b60006105566107df565b15610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d90611fb7565b60405180910390fd5b60006105a0610df7565b9050610634818585600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461062f919061213a565b610dff565b600191505092915050565b610647610df7565b73ffffffffffffffffffffffffffffffffffffffff1661066561094c565b73ffffffffffffffffffffffffffffffffffffffff16146106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290611fd7565b60405180910390fd5b6106c36112da565b565b6106cd610df7565b73ffffffffffffffffffffffffffffffffffffffff166106eb61094c565b73ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073890611fd7565b60405180910390fd5b61074b828261137b565b5050565b610757610df7565b73ffffffffffffffffffffffffffffffffffffffff1661077561094c565b73ffffffffffffffffffffffffffffffffffffffff16146107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290611fd7565b60405180910390fd5b6107dc6107d6610df7565b82611558565b50565b60008060009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610846610df7565b73ffffffffffffffffffffffffffffffffffffffff1661086461094c565b73ffffffffffffffffffffffffffffffffffffffff16146108ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b190611fd7565b60405180910390fd5b6108c460006117ad565b565b6108ce610df7565b73ffffffffffffffffffffffffffffffffffffffff166108ec61094c565b73ffffffffffffffffffffffffffffffffffffffff1614610942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093990611fd7565b60405180910390fd5b61094a611872565b565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109849061224c565b80601f01602080910402602001604051908101604052809291908181526020018280546109b09061224c565b80156109fd5780601f106109d2576101008083540402835291602001916109fd565b820191906000526020600020905b8154815290600101906020018083116109e057829003601f168201915b5050505050905090565b6000610a116107df565b15610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890611fb7565b60405180910390fd5b6000610a5b610df7565b90506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612057565b60405180910390fd5b610b2e8286868403610dff565b60019250505092915050565b6000610b446107df565b15610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90611fb7565b60405180910390fd5b6000610b8e610df7565b9050610b9b818585611056565b600191505092915050565b610bae610df7565b73ffffffffffffffffffffffffffffffffffffffff16610bcc61094c565b73ffffffffffffffffffffffffffffffffffffffff1614610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1990611fd7565b60405180910390fd5b610c2c8282611914565b5050565b6000610c3a6107df565b15610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190611fb7565b60405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d07610df7565b73ffffffffffffffffffffffffffffffffffffffff16610d2561094c565b73ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290611fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290611f37565b60405180910390fd5b610df4816117ad565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612037565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed690611f57565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fbd9190612097565b60405180910390a3505050565b6000610fd68484610c30565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110505781811015611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990611f77565b60405180910390fd5b61104f8484848403610dff565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90612017565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d90611ed7565b60405180910390fd5b6111418383836119c5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf90611f97565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461125d919061213a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112c19190612097565b60405180910390a36112d48484846119ca565b50505050565b6112e26107df565b611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890611ef7565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611364610df7565b6040516113719190611e7f565b60405180910390a1565b611383610df7565b73ffffffffffffffffffffffffffffffffffffffff166113a161094c565b73ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90611fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612077565b60405180910390fd5b611473600083836119c5565b8060036000828254611485919061213a565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114db919061213a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115409190612097565b60405180910390a3611554600083836119ca565b5050565b611560610df7565b73ffffffffffffffffffffffffffffffffffffffff1661157e61094c565b73ffffffffffffffffffffffffffffffffffffffff16146115d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cb90611fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90611ff7565b60405180910390fd5b611650826000836119c5565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90611f17565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461172f9190612190565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117949190612097565b60405180910390a36117a8836000846119ca565b505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61187a6107df565b156118ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b190611fb7565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118fd610df7565b60405161190a9190611e7f565b60405180910390a1565b60005b82518110156119c05760006001600085848151811061193957611938612356565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611987576119ad565b6119ab83828151811061199d5761199c612356565b5b602002602001015183610b3a565b505b80806119b8906122af565b915050611917565b505050565b505050565b505050565b60006119e26119dd846120f2565b6120cd565b90508083825260208201905082856020860282011115611a0557611a046123b9565b5b60005b85811015611a355781611a1b8882611a3f565b845260208401935060208301925050600181019050611a08565b5050509392505050565b600081359050611a4e8161276d565b92915050565b600082601f830112611a6957611a686123b4565b5b8135611a798482602086016119cf565b91505092915050565b600081359050611a9181612784565b92915050565b600060208284031215611aad57611aac6123c3565b5b6000611abb84828501611a3f565b91505092915050565b60008060408385031215611adb57611ada6123c3565b5b6000611ae985828601611a3f565b9250506020611afa85828601611a3f565b9150509250929050565b600080600060608486031215611b1d57611b1c6123c3565b5b6000611b2b86828701611a3f565b9350506020611b3c86828701611a3f565b9250506040611b4d86828701611a82565b9150509250925092565b60008060408385031215611b6e57611b6d6123c3565b5b6000611b7c85828601611a3f565b9250506020611b8d85828601611a82565b9150509250929050565b60008060408385031215611bae57611bad6123c3565b5b600083013567ffffffffffffffff811115611bcc57611bcb6123be565b5b611bd885828601611a54565b9250506020611be985828601611a82565b9150509250929050565b600060208284031215611c0957611c086123c3565b5b6000611c1784828501611a82565b91505092915050565b611c29816121c4565b82525050565b611c38816121d6565b82525050565b6000611c498261211e565b611c538185612129565b9350611c63818560208601612219565b611c6c816123c8565b840191505092915050565b6000611c84602383612129565b9150611c8f826123d9565b604082019050919050565b6000611ca7601483612129565b9150611cb282612428565b602082019050919050565b6000611cca602283612129565b9150611cd582612451565b604082019050919050565b6000611ced602683612129565b9150611cf8826124a0565b604082019050919050565b6000611d10602283612129565b9150611d1b826124ef565b604082019050919050565b6000611d33601d83612129565b9150611d3e8261253e565b602082019050919050565b6000611d56602683612129565b9150611d6182612567565b604082019050919050565b6000611d79601083612129565b9150611d84826125b6565b602082019050919050565b6000611d9c602083612129565b9150611da7826125df565b602082019050919050565b6000611dbf602183612129565b9150611dca82612608565b604082019050919050565b6000611de2602583612129565b9150611ded82612657565b604082019050919050565b6000611e05602483612129565b9150611e10826126a6565b604082019050919050565b6000611e28602583612129565b9150611e33826126f5565b604082019050919050565b6000611e4b601f83612129565b9150611e5682612744565b602082019050919050565b611e6a81612202565b82525050565b611e798161220c565b82525050565b6000602082019050611e946000830184611c20565b92915050565b6000602082019050611eaf6000830184611c2f565b92915050565b60006020820190508181036000830152611ecf8184611c3e565b905092915050565b60006020820190508181036000830152611ef081611c77565b9050919050565b60006020820190508181036000830152611f1081611c9a565b9050919050565b60006020820190508181036000830152611f3081611cbd565b9050919050565b60006020820190508181036000830152611f5081611ce0565b9050919050565b60006020820190508181036000830152611f7081611d03565b9050919050565b60006020820190508181036000830152611f9081611d26565b9050919050565b60006020820190508181036000830152611fb081611d49565b9050919050565b60006020820190508181036000830152611fd081611d6c565b9050919050565b60006020820190508181036000830152611ff081611d8f565b9050919050565b6000602082019050818103600083015261201081611db2565b9050919050565b6000602082019050818103600083015261203081611dd5565b9050919050565b6000602082019050818103600083015261205081611df8565b9050919050565b6000602082019050818103600083015261207081611e1b565b9050919050565b6000602082019050818103600083015261209081611e3e565b9050919050565b60006020820190506120ac6000830184611e61565b92915050565b60006020820190506120c76000830184611e70565b92915050565b60006120d76120e8565b90506120e3828261227e565b919050565b6000604051905090565b600067ffffffffffffffff82111561210d5761210c612385565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061214582612202565b915061215083612202565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612185576121846122f8565b5b828201905092915050565b600061219b82612202565b91506121a683612202565b9250828210156121b9576121b86122f8565b5b828203905092915050565b60006121cf826121e2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561223757808201518184015260208101905061221c565b83811115612246576000848401525b50505050565b6000600282049050600182168061226457607f821691505b6020821081141561227857612277612327565b5b50919050565b612287826123c8565b810181811067ffffffffffffffff821117156122a6576122a5612385565b5b80604052505050565b60006122ba82612202565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122ed576122ec6122f8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b612776816121c4565b811461278157600080fd5b50565b61278d81612202565b811461279857600080fd5b5056fea264697066735822122066832ed6db3087c9e5aff9c73ed88049a81560d537c27c109fad21d9b3e92a8864736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d7146102fb578063a9059cbb1461032b578063c204642c1461035b578063dd62ed3e14610377578063f2fde38b146103a75761012c565b806370a082311461027b578063715018a6146102ab5780638456cb59146102b55780638da5cb5b146102bf57806395d89b41146102dd5761012c565b806339509351116100f457806339509351146101eb5780633f4ba83a1461021b57806340c10f191461022557806342966c68146102415780635c975abb1461025d5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103c3565b6040516101469190611eb5565b60405180910390f35b61016960048036038101906101649190611b57565b610455565b6040516101769190611e9a565b60405180910390f35b6101876104c1565b6040516101949190612097565b60405180910390f35b6101b760048036038101906101b29190611b04565b6104cb565b6040516101c49190611e9a565b60405180910390f35b6101d5610543565b6040516101e291906120b2565b60405180910390f35b61020560048036038101906102009190611b57565b61054c565b6040516102129190611e9a565b60405180910390f35b61022361063f565b005b61023f600480360381019061023a9190611b57565b6106c5565b005b61025b60048036038101906102569190611bf3565b61074f565b005b6102656107df565b6040516102729190611e9a565b60405180910390f35b61029560048036038101906102909190611a97565b6107f5565b6040516102a29190612097565b60405180910390f35b6102b361083e565b005b6102bd6108c6565b005b6102c761094c565b6040516102d49190611e7f565b60405180910390f35b6102e5610975565b6040516102f29190611eb5565b60405180910390f35b61031560048036038101906103109190611b57565b610a07565b6040516103229190611e9a565b60405180910390f35b61034560048036038101906103409190611b57565b610b3a565b6040516103529190611e9a565b60405180910390f35b61037560048036038101906103709190611b97565b610ba6565b005b610391600480360381019061038c9190611ac4565b610c30565b60405161039e9190612097565b60405180910390f35b6103c160048036038101906103bc9190611a97565b610cff565b005b6060600480546103d29061224c565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe9061224c565b801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b5050505050905090565b600061045f6107df565b1561049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049690611fb7565b60405180910390fd5b60006104a9610df7565b90506104b6818585610dff565b600191505092915050565b6000600354905090565b60006104d56107df565b15610515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c90611fb7565b60405180910390fd5b600061051f610df7565b905061052c858285610fca565b610537858585611056565b60019150509392505050565b60006012905090565b60006105566107df565b15610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d90611fb7565b60405180910390fd5b60006105a0610df7565b9050610634818585600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461062f919061213a565b610dff565b600191505092915050565b610647610df7565b73ffffffffffffffffffffffffffffffffffffffff1661066561094c565b73ffffffffffffffffffffffffffffffffffffffff16146106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290611fd7565b60405180910390fd5b6106c36112da565b565b6106cd610df7565b73ffffffffffffffffffffffffffffffffffffffff166106eb61094c565b73ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073890611fd7565b60405180910390fd5b61074b828261137b565b5050565b610757610df7565b73ffffffffffffffffffffffffffffffffffffffff1661077561094c565b73ffffffffffffffffffffffffffffffffffffffff16146107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290611fd7565b60405180910390fd5b6107dc6107d6610df7565b82611558565b50565b60008060009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610846610df7565b73ffffffffffffffffffffffffffffffffffffffff1661086461094c565b73ffffffffffffffffffffffffffffffffffffffff16146108ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b190611fd7565b60405180910390fd5b6108c460006117ad565b565b6108ce610df7565b73ffffffffffffffffffffffffffffffffffffffff166108ec61094c565b73ffffffffffffffffffffffffffffffffffffffff1614610942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093990611fd7565b60405180910390fd5b61094a611872565b565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109849061224c565b80601f01602080910402602001604051908101604052809291908181526020018280546109b09061224c565b80156109fd5780601f106109d2576101008083540402835291602001916109fd565b820191906000526020600020905b8154815290600101906020018083116109e057829003601f168201915b5050505050905090565b6000610a116107df565b15610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890611fb7565b60405180910390fd5b6000610a5b610df7565b90506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612057565b60405180910390fd5b610b2e8286868403610dff565b60019250505092915050565b6000610b446107df565b15610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90611fb7565b60405180910390fd5b6000610b8e610df7565b9050610b9b818585611056565b600191505092915050565b610bae610df7565b73ffffffffffffffffffffffffffffffffffffffff16610bcc61094c565b73ffffffffffffffffffffffffffffffffffffffff1614610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1990611fd7565b60405180910390fd5b610c2c8282611914565b5050565b6000610c3a6107df565b15610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190611fb7565b60405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d07610df7565b73ffffffffffffffffffffffffffffffffffffffff16610d2561094c565b73ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290611fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290611f37565b60405180910390fd5b610df4816117ad565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612037565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed690611f57565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fbd9190612097565b60405180910390a3505050565b6000610fd68484610c30565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110505781811015611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990611f77565b60405180910390fd5b61104f8484848403610dff565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90612017565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d90611ed7565b60405180910390fd5b6111418383836119c5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf90611f97565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461125d919061213a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112c19190612097565b60405180910390a36112d48484846119ca565b50505050565b6112e26107df565b611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890611ef7565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611364610df7565b6040516113719190611e7f565b60405180910390a1565b611383610df7565b73ffffffffffffffffffffffffffffffffffffffff166113a161094c565b73ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90611fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612077565b60405180910390fd5b611473600083836119c5565b8060036000828254611485919061213a565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114db919061213a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115409190612097565b60405180910390a3611554600083836119ca565b5050565b611560610df7565b73ffffffffffffffffffffffffffffffffffffffff1661157e61094c565b73ffffffffffffffffffffffffffffffffffffffff16146115d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cb90611fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90611ff7565b60405180910390fd5b611650826000836119c5565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90611f17565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461172f9190612190565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117949190612097565b60405180910390a36117a8836000846119ca565b505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61187a6107df565b156118ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b190611fb7565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118fd610df7565b60405161190a9190611e7f565b60405180910390a1565b60005b82518110156119c05760006001600085848151811061193957611938612356565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611987576119ad565b6119ab83828151811061199d5761199c612356565b5b602002602001015183610b3a565b505b80806119b8906122af565b915050611917565b505050565b505050565b505050565b60006119e26119dd846120f2565b6120cd565b90508083825260208201905082856020860282011115611a0557611a046123b9565b5b60005b85811015611a355781611a1b8882611a3f565b845260208401935060208301925050600181019050611a08565b5050509392505050565b600081359050611a4e8161276d565b92915050565b600082601f830112611a6957611a686123b4565b5b8135611a798482602086016119cf565b91505092915050565b600081359050611a9181612784565b92915050565b600060208284031215611aad57611aac6123c3565b5b6000611abb84828501611a3f565b91505092915050565b60008060408385031215611adb57611ada6123c3565b5b6000611ae985828601611a3f565b9250506020611afa85828601611a3f565b9150509250929050565b600080600060608486031215611b1d57611b1c6123c3565b5b6000611b2b86828701611a3f565b9350506020611b3c86828701611a3f565b9250506040611b4d86828701611a82565b9150509250925092565b60008060408385031215611b6e57611b6d6123c3565b5b6000611b7c85828601611a3f565b9250506020611b8d85828601611a82565b9150509250929050565b60008060408385031215611bae57611bad6123c3565b5b600083013567ffffffffffffffff811115611bcc57611bcb6123be565b5b611bd885828601611a54565b9250506020611be985828601611a82565b9150509250929050565b600060208284031215611c0957611c086123c3565b5b6000611c1784828501611a82565b91505092915050565b611c29816121c4565b82525050565b611c38816121d6565b82525050565b6000611c498261211e565b611c538185612129565b9350611c63818560208601612219565b611c6c816123c8565b840191505092915050565b6000611c84602383612129565b9150611c8f826123d9565b604082019050919050565b6000611ca7601483612129565b9150611cb282612428565b602082019050919050565b6000611cca602283612129565b9150611cd582612451565b604082019050919050565b6000611ced602683612129565b9150611cf8826124a0565b604082019050919050565b6000611d10602283612129565b9150611d1b826124ef565b604082019050919050565b6000611d33601d83612129565b9150611d3e8261253e565b602082019050919050565b6000611d56602683612129565b9150611d6182612567565b604082019050919050565b6000611d79601083612129565b9150611d84826125b6565b602082019050919050565b6000611d9c602083612129565b9150611da7826125df565b602082019050919050565b6000611dbf602183612129565b9150611dca82612608565b604082019050919050565b6000611de2602583612129565b9150611ded82612657565b604082019050919050565b6000611e05602483612129565b9150611e10826126a6565b604082019050919050565b6000611e28602583612129565b9150611e33826126f5565b604082019050919050565b6000611e4b601f83612129565b9150611e5682612744565b602082019050919050565b611e6a81612202565b82525050565b611e798161220c565b82525050565b6000602082019050611e946000830184611c20565b92915050565b6000602082019050611eaf6000830184611c2f565b92915050565b60006020820190508181036000830152611ecf8184611c3e565b905092915050565b60006020820190508181036000830152611ef081611c77565b9050919050565b60006020820190508181036000830152611f1081611c9a565b9050919050565b60006020820190508181036000830152611f3081611cbd565b9050919050565b60006020820190508181036000830152611f5081611ce0565b9050919050565b60006020820190508181036000830152611f7081611d03565b9050919050565b60006020820190508181036000830152611f9081611d26565b9050919050565b60006020820190508181036000830152611fb081611d49565b9050919050565b60006020820190508181036000830152611fd081611d6c565b9050919050565b60006020820190508181036000830152611ff081611d8f565b9050919050565b6000602082019050818103600083015261201081611db2565b9050919050565b6000602082019050818103600083015261203081611dd5565b9050919050565b6000602082019050818103600083015261205081611df8565b9050919050565b6000602082019050818103600083015261207081611e1b565b9050919050565b6000602082019050818103600083015261209081611e3e565b9050919050565b60006020820190506120ac6000830184611e61565b92915050565b60006020820190506120c76000830184611e70565b92915050565b60006120d76120e8565b90506120e3828261227e565b919050565b6000604051905090565b600067ffffffffffffffff82111561210d5761210c612385565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061214582612202565b915061215083612202565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612185576121846122f8565b5b828201905092915050565b600061219b82612202565b91506121a683612202565b9250828210156121b9576121b86122f8565b5b828203905092915050565b60006121cf826121e2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561223757808201518184015260208101905061221c565b83811115612246576000848401525b50505050565b6000600282049050600182168061226457607f821691505b6020821081141561227857612277612327565b5b50919050565b612287826123c8565b810181811067ffffffffffffffff821117156122a6576122a5612385565b5b80604052505050565b60006122ba82612202565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122ed576122ec6122f8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b612776816121c4565b811461278157600080fd5b50565b61278d81612202565b811461279857600080fd5b5056fea264697066735822122066832ed6db3087c9e5aff9c73ed88049a81560d537c27c109fad21d9b3e92a8864736f6c63430008070033

Deployed Bytecode Sourcemap

23545:6300:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24507:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25467:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24828:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25690:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24727:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25973:254;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24109:65;;;:::i;:::-;;24182:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24285:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4555:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24944:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2606:103;;;:::i;:::-;;24040:61;;;:::i;:::-;;1955:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24615:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26235:440;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25079:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24386:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25294:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2864:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24507:100;24561:13;24594:5;24587:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24507:100;:::o;25467:215::-;25564:4;4881:8;:6;:8::i;:::-;4880:9;4872:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;25581:13:::1;25597:12;:10;:12::i;:::-;25581:28;;25620:32;25629:5;25636:7;25645:6;25620:8;:32::i;:::-;25670:4;25663:11;;;25467:215:::0;;;;:::o;24828:108::-;24889:7;24916:12;;24909:19;;24828:108;:::o;25690:275::-;25801:4;4881:8;:6;:8::i;:::-;4880:9;4872:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;25818:15:::1;25836:12;:10;:12::i;:::-;25818:30;;25859:38;25875:4;25881:7;25890:6;25859:15;:38::i;:::-;25908:27;25918:4;25924:2;25928:6;25908:9;:27::i;:::-;25953:4;25946:11;;;25690:275:::0;;;;;:::o;24727:93::-;24785:5;24810:2;24803:9;;24727:93;:::o;25973:254::-;26075:4;4881:8;:6;:8::i;:::-;4880:9;4872:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;26092:13:::1;26108:12;:10;:12::i;:::-;26092:28;;26131:66;26140:5;26147:7;26186:10;26156:11;:18;26168:5;26156:18;;;;;;;;;;;;;;;:27;26175:7;26156:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;26131:8;:66::i;:::-;26215:4;26208:11;;;25973:254:::0;;;;:::o;24109:65::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24156:10:::1;:8;:10::i;:::-;24109:65::o:0;24182:95::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24252:17:::1;24258:2;24262:6;24252:5;:17::i;:::-;24182:95:::0;;:::o;24285:93::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24343:27:::1;24349:12;:10;:12::i;:::-;24363:6;24343:5;:27::i;:::-;24285:93:::0;:::o;4555:86::-;4602:4;4626:7;;;;;;;;;;;4619:14;;4555:86;:::o;24944:127::-;25018:7;25045:9;:18;25055:7;25045:18;;;;;;;;;;;;;;;;25038:25;;24944:127;;;:::o;2606:103::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2671:30:::1;2698:1;2671:18;:30::i;:::-;2606:103::o:0;24040:61::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24085:8:::1;:6;:8::i;:::-;24040:61::o:0;1955:87::-;2001:7;2028:6;;;;;;;;;;;2021:13;;1955:87;:::o;24615:104::-;24671:13;24704:7;24697:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24615:104;:::o;26235:440::-;26342:4;4881:8;:6;:8::i;:::-;4880:9;4872:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;26359:13:::1;26375:12;:10;:12::i;:::-;26359:28;;26398:24;26425:11;:18;26437:5;26425:18;;;;;;;;;;;;;;;:27;26444:7;26425:27;;;;;;;;;;;;;;;;26398:54;;26491:15;26471:16;:35;;26463:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;26576:60;26585:5;26592:7;26620:15;26601:16;:34;26576:8;:60::i;:::-;26663:4;26656:11;;;;26235:440:::0;;;;:::o;25079:207::-;25172:4;4881:8;:6;:8::i;:::-;4880:9;4872:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;25189:13:::1;25205:12;:10;:12::i;:::-;25189:28;;25228;25238:5;25245:2;25249:6;25228:9;:28::i;:::-;25274:4;25267:11;;;25079:207:::0;;;;:::o;24386:113::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24470:21:::1;24479:3;24484:6;24470:8;:21::i;:::-;24386:113:::0;;:::o;25294:165::-;25397:7;4881:8;:6;:8::i;:::-;4880:9;4872:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;25424:11:::1;:18;25436:5;25424:18;;;;;;;;;;;;;;;:27;25443:7;25424:27;;;;;;;;;;;;;;;;25417:34;;25294:165:::0;;;;:::o;2864:201::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2973:1:::1;2953:22;;:8;:22;;;;2945:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3029:28;3048:8;3029:18;:28::i;:::-;2864:201:::0;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;28421:380::-;28574:1;28557:19;;:5;:19;;;;28549:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28655:1;28636:21;;:7;:21;;;;28628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28739:6;28709:11;:18;28721:5;28709:18;;;;;;;;;;;;;;;:27;28728:7;28709:27;;;;;;;;;;;;;;;:36;;;;28777:7;28761:32;;28770:5;28761:32;;;28786:6;28761:32;;;;;;:::i;:::-;;;;;;;;28421:380;;;:::o;28809:441::-;28944:24;28971:25;28981:5;28988:7;28971:9;:25::i;:::-;28944:52;;29031:17;29011:16;:37;29007:236;;29093:6;29073:16;:26;;29065:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29169:51;29178:5;29185:7;29213:6;29194:16;:25;29169:8;:51::i;:::-;29007:236;28933:317;28809:441;;;:::o;26739:660::-;26887:1;26871:18;;:4;:18;;;;26863:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26964:1;26950:16;;:2;:16;;;;26942:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;27019:38;27040:4;27046:2;27050:6;27019:20;:38::i;:::-;27070:19;27092:9;:15;27102:4;27092:15;;;;;;;;;;;;;;;;27070:37;;27141:6;27126:11;:21;;27118:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;27250:6;27236:11;:20;27218:9;:15;27228:4;27218:15;;;;;;;;;;;;;;;:38;;;;27291:6;27274:9;:13;27284:2;27274:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;27330:2;27315:26;;27324:4;27315:26;;;27334:6;27315:26;;;;;;:::i;:::-;;;;;;;;27354:37;27374:4;27380:2;27384:6;27354:19;:37::i;:::-;26852:547;26739:660;;;:::o;5614:120::-;5158:8;:6;:8::i;:::-;5150:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;5683:5:::1;5673:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;5704:22;5713:12;:10;:12::i;:::-;5704:22;;;;;;:::i;:::-;;;;;;;;5614:120::o:0;27407:409::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27520:1:::1;27501:21;;:7;:21;;;;27493:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;27571:49;27600:1;27604:7;27613:6;27571:20;:49::i;:::-;27649:6;27633:12;;:22;;;;;;;:::i;:::-;;;;;;;;27688:6;27666:9;:18;27676:7;27666:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;27731:7;27710:37;;27727:1;27710:37;;;27740:6;27710:37;;;;;;:::i;:::-;;;;;;;;27760:48;27788:1;27792:7;27801:6;27760:19;:48::i;:::-;27407:409:::0;;:::o;27824:589::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27937:1:::1;27918:21;;:7;:21;;;;27910:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27990:49;28011:7;28028:1;28032:6;27990:20;:49::i;:::-;28052:22;28077:9;:18;28087:7;28077:18;;;;;;;;;;;;;;;;28052:43;;28132:6;28114:14;:24;;28106:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;28243:6;28226:14;:23;28205:9;:18;28215:7;28205:18;;;;;;;;;;;;;;;:44;;;;28283:6;28267:12;;:22;;;;;;;:::i;:::-;;;;;;;;28333:1;28307:37;;28316:7;28307:37;;;28337:6;28307:37;;;;;;:::i;:::-;;;;;;;;28357:48;28377:7;28394:1;28398:6;28357:19;:48::i;:::-;27899:514;27824:589:::0;;:::o;3225:191::-;3299:16;3318:6;;;;;;;;;;;3299:25;;3344:8;3335:6;;:17;;;;;;;;;;;;;;;;;;3399:8;3368:40;;3389:8;3368:40;;;;;;;;;;;;3288:128;3225:191;:::o;5355:118::-;4881:8;:6;:8::i;:::-;4880:9;4872:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5425:4:::1;5415:7;::::0;:14:::1;;;;;;;;;;;;;;;;;;5445:20;5452:12;:10;:12::i;:::-;5445:20;;;;;;:::i;:::-;;;;;;;;5355:118::o:0;29258:263::-;29346:9;29342:172;29365:3;:10;29361:1;:14;29342:172;;;29419:1;29399:9;:17;29409:3;29413:1;29409:6;;;;;;;;:::i;:::-;;;;;;;;29399:17;;;;;;;;;;;;;;;;:21;29396:68;;;29440:8;;29396:68;29478:24;29487:3;29491:1;29487:6;;;;;;;;:::i;:::-;;;;;;;;29495;29478:8;:24::i;:::-;;29342:172;29377:3;;;;;:::i;:::-;;;;29342:172;;;;29258:263;;:::o;29529:125::-;;;;:::o;29662:124::-;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;914:370::-;985:5;1034:3;1027:4;1019:6;1015:17;1011:27;1001:122;;1042:79;;:::i;:::-;1001:122;1159:6;1146:20;1184:94;1274:3;1266:6;1259:4;1251:6;1247:17;1184:94;:::i;:::-;1175:103;;991:293;914:370;;;;:::o;1290:139::-;1336:5;1374:6;1361:20;1352:29;;1390:33;1417:5;1390:33;:::i;:::-;1290:139;;;;:::o;1435:329::-;1494:6;1543:2;1531:9;1522:7;1518:23;1514:32;1511:119;;;1549:79;;:::i;:::-;1511:119;1669:1;1694:53;1739:7;1730:6;1719:9;1715:22;1694:53;:::i;:::-;1684:63;;1640:117;1435:329;;;;:::o;1770:474::-;1838:6;1846;1895:2;1883:9;1874:7;1870:23;1866:32;1863:119;;;1901:79;;:::i;:::-;1863:119;2021:1;2046:53;2091:7;2082:6;2071:9;2067:22;2046:53;:::i;:::-;2036:63;;1992:117;2148:2;2174:53;2219:7;2210:6;2199:9;2195:22;2174:53;:::i;:::-;2164:63;;2119:118;1770:474;;;;;:::o;2250:619::-;2327:6;2335;2343;2392:2;2380:9;2371:7;2367:23;2363:32;2360:119;;;2398:79;;:::i;:::-;2360:119;2518:1;2543:53;2588:7;2579:6;2568:9;2564:22;2543:53;:::i;:::-;2533:63;;2489:117;2645:2;2671:53;2716:7;2707:6;2696:9;2692:22;2671:53;:::i;:::-;2661:63;;2616:118;2773:2;2799:53;2844:7;2835:6;2824:9;2820:22;2799:53;:::i;:::-;2789:63;;2744:118;2250:619;;;;;:::o;2875:474::-;2943:6;2951;3000:2;2988:9;2979:7;2975:23;2971:32;2968:119;;;3006:79;;:::i;:::-;2968:119;3126:1;3151:53;3196:7;3187:6;3176:9;3172:22;3151:53;:::i;:::-;3141:63;;3097:117;3253:2;3279:53;3324:7;3315:6;3304:9;3300:22;3279:53;:::i;:::-;3269:63;;3224:118;2875:474;;;;;:::o;3355:684::-;3448:6;3456;3505:2;3493:9;3484:7;3480:23;3476:32;3473:119;;;3511:79;;:::i;:::-;3473:119;3659:1;3648:9;3644:17;3631:31;3689:18;3681:6;3678:30;3675:117;;;3711:79;;:::i;:::-;3675:117;3816:78;3886:7;3877:6;3866:9;3862:22;3816:78;:::i;:::-;3806:88;;3602:302;3943:2;3969:53;4014:7;4005:6;3994:9;3990:22;3969:53;:::i;:::-;3959:63;;3914:118;3355:684;;;;;:::o;4045:329::-;4104:6;4153:2;4141:9;4132:7;4128:23;4124:32;4121:119;;;4159:79;;:::i;:::-;4121:119;4279:1;4304:53;4349:7;4340:6;4329:9;4325:22;4304:53;:::i;:::-;4294:63;;4250:117;4045:329;;;;:::o;4380:118::-;4467:24;4485:5;4467:24;:::i;:::-;4462:3;4455:37;4380:118;;:::o;4504:109::-;4585:21;4600:5;4585:21;:::i;:::-;4580:3;4573:34;4504:109;;:::o;4619:364::-;4707:3;4735:39;4768:5;4735:39;:::i;:::-;4790:71;4854:6;4849:3;4790:71;:::i;:::-;4783:78;;4870:52;4915:6;4910:3;4903:4;4896:5;4892:16;4870:52;:::i;:::-;4947:29;4969:6;4947:29;:::i;:::-;4942:3;4938:39;4931:46;;4711:272;4619:364;;;;:::o;4989:366::-;5131:3;5152:67;5216:2;5211:3;5152:67;:::i;:::-;5145:74;;5228:93;5317:3;5228:93;:::i;:::-;5346:2;5341:3;5337:12;5330:19;;4989:366;;;:::o;5361:::-;5503:3;5524:67;5588:2;5583:3;5524:67;:::i;:::-;5517:74;;5600:93;5689:3;5600:93;:::i;:::-;5718:2;5713:3;5709:12;5702:19;;5361:366;;;:::o;5733:::-;5875:3;5896:67;5960:2;5955:3;5896:67;:::i;:::-;5889:74;;5972:93;6061:3;5972:93;:::i;:::-;6090:2;6085:3;6081:12;6074:19;;5733:366;;;:::o;6105:::-;6247:3;6268:67;6332:2;6327:3;6268:67;:::i;:::-;6261:74;;6344:93;6433:3;6344:93;:::i;:::-;6462:2;6457:3;6453:12;6446:19;;6105:366;;;:::o;6477:::-;6619:3;6640:67;6704:2;6699:3;6640:67;:::i;:::-;6633:74;;6716:93;6805:3;6716:93;:::i;:::-;6834:2;6829:3;6825:12;6818:19;;6477:366;;;:::o;6849:::-;6991:3;7012:67;7076:2;7071:3;7012:67;:::i;:::-;7005:74;;7088:93;7177:3;7088:93;:::i;:::-;7206:2;7201:3;7197:12;7190:19;;6849:366;;;:::o;7221:::-;7363:3;7384:67;7448:2;7443:3;7384:67;:::i;:::-;7377:74;;7460:93;7549:3;7460:93;:::i;:::-;7578:2;7573:3;7569:12;7562:19;;7221:366;;;:::o;7593:::-;7735:3;7756:67;7820:2;7815:3;7756:67;:::i;:::-;7749:74;;7832:93;7921:3;7832:93;:::i;:::-;7950:2;7945:3;7941:12;7934:19;;7593:366;;;:::o;7965:::-;8107:3;8128:67;8192:2;8187:3;8128:67;:::i;:::-;8121:74;;8204:93;8293:3;8204:93;:::i;:::-;8322:2;8317:3;8313:12;8306:19;;7965:366;;;:::o;8337:::-;8479:3;8500:67;8564:2;8559:3;8500:67;:::i;:::-;8493:74;;8576:93;8665:3;8576:93;:::i;:::-;8694:2;8689:3;8685:12;8678:19;;8337:366;;;:::o;8709:::-;8851:3;8872:67;8936:2;8931:3;8872:67;:::i;:::-;8865:74;;8948:93;9037:3;8948:93;:::i;:::-;9066:2;9061:3;9057:12;9050:19;;8709:366;;;:::o;9081:::-;9223:3;9244:67;9308:2;9303:3;9244:67;:::i;:::-;9237:74;;9320:93;9409:3;9320:93;:::i;:::-;9438:2;9433:3;9429:12;9422:19;;9081:366;;;:::o;9453:::-;9595:3;9616:67;9680:2;9675:3;9616:67;:::i;:::-;9609:74;;9692:93;9781:3;9692:93;:::i;:::-;9810:2;9805:3;9801:12;9794:19;;9453:366;;;:::o;9825:::-;9967:3;9988:67;10052:2;10047:3;9988:67;:::i;:::-;9981:74;;10064:93;10153:3;10064:93;:::i;:::-;10182:2;10177:3;10173:12;10166:19;;9825:366;;;:::o;10197:118::-;10284:24;10302:5;10284:24;:::i;:::-;10279:3;10272:37;10197:118;;:::o;10321:112::-;10404:22;10420:5;10404:22;:::i;:::-;10399:3;10392:35;10321:112;;:::o;10439:222::-;10532:4;10570:2;10559:9;10555:18;10547:26;;10583:71;10651:1;10640:9;10636:17;10627:6;10583:71;:::i;:::-;10439:222;;;;:::o;10667:210::-;10754:4;10792:2;10781:9;10777:18;10769:26;;10805:65;10867:1;10856:9;10852:17;10843:6;10805:65;:::i;:::-;10667:210;;;;:::o;10883:313::-;10996:4;11034:2;11023:9;11019:18;11011:26;;11083:9;11077:4;11073:20;11069:1;11058:9;11054:17;11047:47;11111:78;11184:4;11175:6;11111:78;:::i;:::-;11103:86;;10883:313;;;;:::o;11202:419::-;11368:4;11406:2;11395:9;11391:18;11383:26;;11455:9;11449:4;11445:20;11441:1;11430:9;11426:17;11419:47;11483:131;11609:4;11483:131;:::i;:::-;11475:139;;11202:419;;;:::o;11627:::-;11793:4;11831:2;11820:9;11816:18;11808:26;;11880:9;11874:4;11870:20;11866:1;11855:9;11851:17;11844:47;11908:131;12034:4;11908:131;:::i;:::-;11900:139;;11627:419;;;:::o;12052:::-;12218:4;12256:2;12245:9;12241:18;12233:26;;12305:9;12299:4;12295:20;12291:1;12280:9;12276:17;12269:47;12333:131;12459:4;12333:131;:::i;:::-;12325:139;;12052:419;;;:::o;12477:::-;12643:4;12681:2;12670:9;12666:18;12658:26;;12730:9;12724:4;12720:20;12716:1;12705:9;12701:17;12694:47;12758:131;12884:4;12758:131;:::i;:::-;12750:139;;12477:419;;;:::o;12902:::-;13068:4;13106:2;13095:9;13091:18;13083:26;;13155:9;13149:4;13145:20;13141:1;13130:9;13126:17;13119:47;13183:131;13309:4;13183:131;:::i;:::-;13175:139;;12902:419;;;:::o;13327:::-;13493:4;13531:2;13520:9;13516:18;13508:26;;13580:9;13574:4;13570:20;13566:1;13555:9;13551:17;13544:47;13608:131;13734:4;13608:131;:::i;:::-;13600:139;;13327:419;;;:::o;13752:::-;13918:4;13956:2;13945:9;13941:18;13933:26;;14005:9;13999:4;13995:20;13991:1;13980:9;13976:17;13969:47;14033:131;14159:4;14033:131;:::i;:::-;14025:139;;13752:419;;;:::o;14177:::-;14343:4;14381:2;14370:9;14366:18;14358:26;;14430:9;14424:4;14420:20;14416:1;14405:9;14401:17;14394:47;14458:131;14584:4;14458:131;:::i;:::-;14450:139;;14177:419;;;:::o;14602:::-;14768:4;14806:2;14795:9;14791:18;14783:26;;14855:9;14849:4;14845:20;14841:1;14830:9;14826:17;14819:47;14883:131;15009:4;14883:131;:::i;:::-;14875:139;;14602:419;;;:::o;15027:::-;15193:4;15231:2;15220:9;15216:18;15208:26;;15280:9;15274:4;15270:20;15266:1;15255:9;15251:17;15244:47;15308:131;15434:4;15308:131;:::i;:::-;15300:139;;15027:419;;;:::o;15452:::-;15618:4;15656:2;15645:9;15641:18;15633:26;;15705:9;15699:4;15695:20;15691:1;15680:9;15676:17;15669:47;15733:131;15859:4;15733:131;:::i;:::-;15725:139;;15452:419;;;:::o;15877:::-;16043:4;16081:2;16070:9;16066:18;16058:26;;16130:9;16124:4;16120:20;16116:1;16105:9;16101:17;16094:47;16158:131;16284:4;16158:131;:::i;:::-;16150:139;;15877:419;;;:::o;16302:::-;16468:4;16506:2;16495:9;16491:18;16483:26;;16555:9;16549:4;16545:20;16541:1;16530:9;16526:17;16519:47;16583:131;16709:4;16583:131;:::i;:::-;16575:139;;16302:419;;;:::o;16727:::-;16893:4;16931:2;16920:9;16916:18;16908:26;;16980:9;16974:4;16970:20;16966:1;16955:9;16951:17;16944:47;17008:131;17134:4;17008:131;:::i;:::-;17000:139;;16727:419;;;:::o;17152:222::-;17245:4;17283:2;17272:9;17268:18;17260:26;;17296:71;17364:1;17353:9;17349:17;17340:6;17296:71;:::i;:::-;17152:222;;;;:::o;17380:214::-;17469:4;17507:2;17496:9;17492:18;17484:26;;17520:67;17584:1;17573:9;17569:17;17560:6;17520:67;:::i;:::-;17380:214;;;;:::o;17600:129::-;17634:6;17661:20;;:::i;:::-;17651:30;;17690:33;17718:4;17710:6;17690:33;:::i;:::-;17600:129;;;:::o;17735:75::-;17768:6;17801:2;17795:9;17785:19;;17735:75;:::o;17816:311::-;17893:4;17983:18;17975:6;17972:30;17969:56;;;18005:18;;:::i;:::-;17969:56;18055:4;18047:6;18043:17;18035:25;;18115:4;18109;18105:15;18097:23;;17816:311;;;:::o;18133:99::-;18185:6;18219:5;18213:12;18203:22;;18133:99;;;:::o;18238:169::-;18322:11;18356:6;18351:3;18344:19;18396:4;18391:3;18387:14;18372:29;;18238:169;;;;:::o;18413:305::-;18453:3;18472:20;18490:1;18472:20;:::i;:::-;18467:25;;18506:20;18524:1;18506:20;:::i;:::-;18501:25;;18660:1;18592:66;18588:74;18585:1;18582:81;18579:107;;;18666:18;;:::i;:::-;18579:107;18710:1;18707;18703:9;18696:16;;18413:305;;;;:::o;18724:191::-;18764:4;18784:20;18802:1;18784:20;:::i;:::-;18779:25;;18818:20;18836:1;18818:20;:::i;:::-;18813:25;;18857:1;18854;18851:8;18848:34;;;18862:18;;:::i;:::-;18848:34;18907:1;18904;18900:9;18892:17;;18724:191;;;;:::o;18921:96::-;18958:7;18987:24;19005:5;18987:24;:::i;:::-;18976:35;;18921:96;;;:::o;19023:90::-;19057:7;19100:5;19093:13;19086:21;19075:32;;19023:90;;;:::o;19119:126::-;19156:7;19196:42;19189:5;19185:54;19174:65;;19119:126;;;:::o;19251:77::-;19288:7;19317:5;19306:16;;19251:77;;;:::o;19334:86::-;19369:7;19409:4;19402:5;19398:16;19387:27;;19334:86;;;:::o;19426:307::-;19494:1;19504:113;19518:6;19515:1;19512:13;19504:113;;;19603:1;19598:3;19594:11;19588:18;19584:1;19579:3;19575:11;19568:39;19540:2;19537:1;19533:10;19528:15;;19504:113;;;19635:6;19632:1;19629:13;19626:101;;;19715:1;19706:6;19701:3;19697:16;19690:27;19626:101;19475:258;19426:307;;;:::o;19739:320::-;19783:6;19820:1;19814:4;19810:12;19800:22;;19867:1;19861:4;19857:12;19888:18;19878:81;;19944:4;19936:6;19932:17;19922:27;;19878:81;20006:2;19998:6;19995:14;19975:18;19972:38;19969:84;;;20025:18;;:::i;:::-;19969:84;19790:269;19739:320;;;:::o;20065:281::-;20148:27;20170:4;20148:27;:::i;:::-;20140:6;20136:40;20278:6;20266:10;20263:22;20242:18;20230:10;20227:34;20224:62;20221:88;;;20289:18;;:::i;:::-;20221:88;20329:10;20325:2;20318:22;20108:238;20065:281;;:::o;20352:233::-;20391:3;20414:24;20432:5;20414:24;:::i;:::-;20405:33;;20460:66;20453:5;20450:77;20447:103;;;20530:18;;:::i;:::-;20447:103;20577:1;20570:5;20566:13;20559:20;;20352:233;;;:::o;20591:180::-;20639:77;20636:1;20629:88;20736:4;20733:1;20726:15;20760:4;20757:1;20750:15;20777:180;20825:77;20822:1;20815:88;20922:4;20919:1;20912:15;20946:4;20943:1;20936:15;20963:180;21011:77;21008:1;21001:88;21108:4;21105:1;21098:15;21132:4;21129:1;21122:15;21149:180;21197:77;21194:1;21187:88;21294:4;21291:1;21284:15;21318:4;21315:1;21308:15;21335:117;21444:1;21441;21434:12;21458:117;21567:1;21564;21557:12;21581:117;21690:1;21687;21680:12;21704:117;21813:1;21810;21803:12;21827:102;21868:6;21919:2;21915:7;21910:2;21903:5;21899:14;21895:28;21885:38;;21827:102;;;:::o;21935:222::-;22075:34;22071:1;22063:6;22059:14;22052:58;22144:5;22139:2;22131:6;22127:15;22120:30;21935:222;:::o;22163:170::-;22303:22;22299:1;22291:6;22287:14;22280:46;22163:170;:::o;22339:221::-;22479:34;22475:1;22467:6;22463:14;22456:58;22548:4;22543:2;22535:6;22531:15;22524:29;22339:221;:::o;22566:225::-;22706:34;22702:1;22694:6;22690:14;22683:58;22775:8;22770:2;22762:6;22758:15;22751:33;22566:225;:::o;22797:221::-;22937:34;22933:1;22925:6;22921:14;22914:58;23006:4;23001:2;22993:6;22989:15;22982:29;22797:221;:::o;23024:179::-;23164:31;23160:1;23152:6;23148:14;23141:55;23024:179;:::o;23209:225::-;23349:34;23345:1;23337:6;23333:14;23326:58;23418:8;23413:2;23405:6;23401:15;23394:33;23209:225;:::o;23440:166::-;23580:18;23576:1;23568:6;23564:14;23557:42;23440:166;:::o;23612:182::-;23752:34;23748:1;23740:6;23736:14;23729:58;23612:182;:::o;23800:220::-;23940:34;23936:1;23928:6;23924:14;23917:58;24009:3;24004:2;23996:6;23992:15;23985:28;23800:220;:::o;24026:224::-;24166:34;24162:1;24154:6;24150:14;24143:58;24235:7;24230:2;24222:6;24218:15;24211:32;24026:224;:::o;24256:223::-;24396:34;24392:1;24384:6;24380:14;24373:58;24465:6;24460:2;24452:6;24448:15;24441:31;24256:223;:::o;24485:224::-;24625:34;24621:1;24613:6;24609:14;24602:58;24694:7;24689:2;24681:6;24677:15;24670:32;24485:224;:::o;24715:181::-;24855:33;24851:1;24843:6;24839:14;24832:57;24715:181;:::o;24902:122::-;24975:24;24993:5;24975:24;:::i;:::-;24968:5;24965:35;24955:63;;25014:1;25011;25004:12;24955:63;24902:122;:::o;25030:::-;25103:24;25121:5;25103:24;:::i;:::-;25096:5;25093:35;25083:63;;25142:1;25139;25132:12;25083:63;25030:122;:::o

Swarm Source

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