ETH Price: $2,440.25 (+3.50%)

Token

WillClappCoin (CLAPP)
 

Overview

Max Total Supply

135,500,000 CLAPP

Holders

73

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
WillClappCoin

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.14;

/**
 * @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 (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.14;


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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions 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/token/ERC20/IERC20.sol


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

pragma solidity ^0.8.14;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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


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

pragma solidity ^0.8.14;


/**
 * @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.7.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.14;




/**
 * @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, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

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


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

pragma solidity ^0.8.14;



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

pragma solidity ^0.8.14;

interface IAntisnipe {
    function assureCanTransfer(
        address sender,
        address from,
        address to,
        uint256 amount
    ) external;
}

contract WillClappCoin is ERC20, ERC20Burnable, Ownable {
    string public constant _name = 'WillClappCoin';
    string public constant _symbol = 'CLAPP';
    uint8 public constant _decimals = 18;
    uint256 public constant _totalSupply = 135500000 * 10**18;
    IAntisnipe public antisnipe = IAntisnipe(address(0));
    bool public antisnipeDisable;

    constructor() ERC20(_name, _symbol) {
        _mint(msg.sender, _totalSupply);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        if (from == address(0) || to == address(0)) return;
        if (!antisnipeDisable && address(antisnipe) != address(0))
            antisnipe.assureCanTransfer(msg.sender, from, to, amount);
    }

    function setAntisnipeDisable() external onlyOwner {
        require(!antisnipeDisable);
        antisnipeDisable = true;
    }

    function setAntisnipeAddress(address addr) external onlyOwner {
        antisnipe = IAntisnipe(addr);
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antisnipe","outputs":[{"internalType":"contract IAntisnipe","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antisnipeDisable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setAntisnipeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setAntisnipeDisable","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"}]

60806040526000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b506040518060400160405280600d81526020017f57696c6c436c617070436f696e000000000000000000000000000000000000008152506040518060400160405280600581526020017f434c4150500000000000000000000000000000000000000000000000000000008152508160039080519060200190620000d892919062000500565b508060049080519060200190620000f192919062000500565b50505062000114620001086200013760201b60201c565b6200013f60201b60201c565b62000131336a70153db7f577c6b78000006200020560201b60201c565b620007ed565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000277576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026e9062000611565b60405180910390fd5b6200028b600083836200037d60201b60201c565b80600260008282546200029f91906200066c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002f691906200066c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200035d9190620006da565b60405180910390a36200037960008383620004fb60201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620003e55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b620004f657600660149054906101000a900460ff16158015620004575750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15620004f557600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d37a8dd338585856040518563ffffffff1660e01b8152600401620004c094939291906200073c565b600060405180830381600087803b158015620004db57600080fd5b505af1158015620004f0573d6000803e3d6000fd5b505050505b5b505050565b505050565b8280546200050e90620007b8565b90600052602060002090601f0160209004810192826200053257600085556200057e565b82601f106200054d57805160ff19168380011785556200057e565b828001600101855582156200057e579182015b828111156200057d57825182559160200191906001019062000560565b5b5090506200058d919062000591565b5090565b5b80821115620005ac57600081600090555060010162000592565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620005f9601f83620005b0565b91506200060682620005c1565b602082019050919050565b600060208201905081810360008301526200062c81620005ea565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006798262000633565b9150620006868362000633565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006be57620006bd6200063d565b5b828201905092915050565b620006d48162000633565b82525050565b6000602082019050620006f16000830184620006c9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200072482620006f7565b9050919050565b620007368162000717565b82525050565b60006080820190506200075360008301876200072b565b6200076260208301866200072b565b6200077160408301856200072b565b620007806060830184620006c9565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007d157607f821691505b602082108103620007e757620007e662000789565b5b50919050565b611e9e80620007fd6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806374fb20e1116100c3578063a9059cbb1161007c578063a9059cbb146103a5578063b09f1266146103d5578063d28d8852146103f3578063dd62ed3e14610411578063e1e144de14610441578063f2fde38b1461045f57610158565b806374fb20e1146102f557806379cc6790146102ff578063882cfb3f1461031b5780638da5cb5b1461033957806395d89b4114610357578063a457c2d71461037557610158565b8063395093511161011557806339509351146102355780633eaaf86b1461026557806342966c6814610283578063611bf6291461029f57806370a08231146102bb578063715018a6146102eb57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c9578063313ce567146101f957806332424aa314610217575b600080fd5b61016561047b565b60405161017291906113ed565b60405180910390f35b610195600480360381019061019091906114a8565b61050d565b6040516101a29190611503565b60405180910390f35b6101b3610530565b6040516101c0919061152d565b60405180910390f35b6101e360048036038101906101de9190611548565b61053a565b6040516101f09190611503565b60405180910390f35b610201610569565b60405161020e91906115b7565b60405180910390f35b61021f610572565b60405161022c91906115b7565b60405180910390f35b61024f600480360381019061024a91906114a8565b610577565b60405161025c9190611503565b60405180910390f35b61026d6105ae565b60405161027a919061152d565b60405180910390f35b61029d600480360381019061029891906115d2565b6105bd565b005b6102b960048036038101906102b491906115ff565b6105d1565b005b6102d560048036038101906102d091906115ff565b61061d565b6040516102e2919061152d565b60405180910390f35b6102f3610665565b005b6102fd610679565b005b610319600480360381019061031491906114a8565b6106b8565b005b6103236106d8565b604051610330919061168b565b60405180910390f35b6103416106fe565b60405161034e91906116b5565b60405180910390f35b61035f610728565b60405161036c91906113ed565b60405180910390f35b61038f600480360381019061038a91906114a8565b6107ba565b60405161039c9190611503565b60405180910390f35b6103bf60048036038101906103ba91906114a8565b610831565b6040516103cc9190611503565b60405180910390f35b6103dd610854565b6040516103ea91906113ed565b60405180910390f35b6103fb61088d565b60405161040891906113ed565b60405180910390f35b61042b600480360381019061042691906116d0565b6108c6565b604051610438919061152d565b60405180910390f35b61044961094d565b6040516104569190611503565b60405180910390f35b610479600480360381019061047491906115ff565b610960565b005b60606003805461048a9061173f565b80601f01602080910402602001604051908101604052809291908181526020018280546104b69061173f565b80156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b6000806105186109e3565b90506105258185856109eb565b600191505092915050565b6000600254905090565b6000806105456109e3565b9050610552858285610bb4565b61055d858585610c40565b60019150509392505050565b60006012905090565b601281565b6000806105826109e3565b90506105a381858561059485896108c6565b61059e919061179f565b6109eb565b600191505092915050565b6a70153db7f577c6b780000081565b6105ce6105c86109e3565b82610ebf565b50565b6105d9611095565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61066d611095565b6106776000611113565b565b610681611095565b600660149054906101000a900460ff161561069b57600080fd5b6001600660146101000a81548160ff021916908315150217905550565b6106ca826106c46109e3565b83610bb4565b6106d48282610ebf565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107379061173f565b80601f01602080910402602001604051908101604052809291908181526020018280546107639061173f565b80156107b05780601f10610785576101008083540402835291602001916107b0565b820191906000526020600020905b81548152906001019060200180831161079357829003601f168201915b5050505050905090565b6000806107c56109e3565b905060006107d382866108c6565b905083811015610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611867565b60405180910390fd5b61082582868684036109eb565b60019250505092915050565b60008061083c6109e3565b9050610849818585610c40565b600191505092915050565b6040518060400160405280600581526020017f434c41505000000000000000000000000000000000000000000000000000000081525081565b6040518060400160405280600d81526020017f57696c6c436c617070436f696e0000000000000000000000000000000000000081525081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660149054906101000a900460ff1681565b610968611095565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce906118f9565b60405180910390fd5b6109e081611113565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a519061198b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090611a1d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ba7919061152d565b60405180910390a3505050565b6000610bc084846108c6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c3a5781811015610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390611a89565b60405180910390fd5b610c3984848484036109eb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690611b1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1590611bad565b60405180910390fd5b610d298383836111d9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690611c3f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e42919061179f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea6919061152d565b60405180910390a3610eb984848461134f565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590611cd1565b60405180910390fd5b610f3a826000836111d9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790611d63565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546110179190611d83565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161107c919061152d565b60405180910390a36110908360008461134f565b505050565b61109d6109e3565b73ffffffffffffffffffffffffffffffffffffffff166110bb6106fe565b73ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890611e03565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112405750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61134a57600660149054906101000a900460ff161580156112b05750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561134957600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d37a8dd338585856040518563ffffffff1660e01b81526004016113169493929190611e23565b600060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050505b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561138e578082015181840152602081019050611373565b8381111561139d576000848401525b50505050565b6000601f19601f8301169050919050565b60006113bf82611354565b6113c9818561135f565b93506113d9818560208601611370565b6113e2816113a3565b840191505092915050565b6000602082019050818103600083015261140781846113b4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061143f82611414565b9050919050565b61144f81611434565b811461145a57600080fd5b50565b60008135905061146c81611446565b92915050565b6000819050919050565b61148581611472565b811461149057600080fd5b50565b6000813590506114a28161147c565b92915050565b600080604083850312156114bf576114be61140f565b5b60006114cd8582860161145d565b92505060206114de85828601611493565b9150509250929050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b61152781611472565b82525050565b6000602082019050611542600083018461151e565b92915050565b6000806000606084860312156115615761156061140f565b5b600061156f8682870161145d565b93505060206115808682870161145d565b925050604061159186828701611493565b9150509250925092565b600060ff82169050919050565b6115b18161159b565b82525050565b60006020820190506115cc60008301846115a8565b92915050565b6000602082840312156115e8576115e761140f565b5b60006115f684828501611493565b91505092915050565b6000602082840312156116155761161461140f565b5b60006116238482850161145d565b91505092915050565b6000819050919050565b600061165161164c61164784611414565b61162c565b611414565b9050919050565b600061166382611636565b9050919050565b600061167582611658565b9050919050565b6116858161166a565b82525050565b60006020820190506116a0600083018461167c565b92915050565b6116af81611434565b82525050565b60006020820190506116ca60008301846116a6565b92915050565b600080604083850312156116e7576116e661140f565b5b60006116f58582860161145d565b92505060206117068582860161145d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061175757607f821691505b60208210810361176a57611769611710565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117aa82611472565b91506117b583611472565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117ea576117e9611770565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061185160258361135f565b915061185c826117f5565b604082019050919050565b6000602082019050818103600083015261188081611844565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118e360268361135f565b91506118ee82611887565b604082019050919050565b60006020820190508181036000830152611912816118d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061197560248361135f565b915061198082611919565b604082019050919050565b600060208201905081810360008301526119a481611968565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a0760228361135f565b9150611a12826119ab565b604082019050919050565b60006020820190508181036000830152611a36816119fa565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611a73601d8361135f565b9150611a7e82611a3d565b602082019050919050565b60006020820190508181036000830152611aa281611a66565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611b0560258361135f565b9150611b1082611aa9565b604082019050919050565b60006020820190508181036000830152611b3481611af8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b9760238361135f565b9150611ba282611b3b565b604082019050919050565b60006020820190508181036000830152611bc681611b8a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611c2960268361135f565b9150611c3482611bcd565b604082019050919050565b60006020820190508181036000830152611c5881611c1c565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cbb60218361135f565b9150611cc682611c5f565b604082019050919050565b60006020820190508181036000830152611cea81611cae565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d4d60228361135f565b9150611d5882611cf1565b604082019050919050565b60006020820190508181036000830152611d7c81611d40565b9050919050565b6000611d8e82611472565b9150611d9983611472565b925082821015611dac57611dab611770565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ded60208361135f565b9150611df882611db7565b602082019050919050565b60006020820190508181036000830152611e1c81611de0565b9050919050565b6000608082019050611e3860008301876116a6565b611e4560208301866116a6565b611e5260408301856116a6565b611e5f606083018461151e565b9594505050505056fea2646970667358221220ba8a187120e274b50be757da609528cb6a3ed18cec75ad5579b3b3e02858caae64736f6c634300080e0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c806374fb20e1116100c3578063a9059cbb1161007c578063a9059cbb146103a5578063b09f1266146103d5578063d28d8852146103f3578063dd62ed3e14610411578063e1e144de14610441578063f2fde38b1461045f57610158565b806374fb20e1146102f557806379cc6790146102ff578063882cfb3f1461031b5780638da5cb5b1461033957806395d89b4114610357578063a457c2d71461037557610158565b8063395093511161011557806339509351146102355780633eaaf86b1461026557806342966c6814610283578063611bf6291461029f57806370a08231146102bb578063715018a6146102eb57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c9578063313ce567146101f957806332424aa314610217575b600080fd5b61016561047b565b60405161017291906113ed565b60405180910390f35b610195600480360381019061019091906114a8565b61050d565b6040516101a29190611503565b60405180910390f35b6101b3610530565b6040516101c0919061152d565b60405180910390f35b6101e360048036038101906101de9190611548565b61053a565b6040516101f09190611503565b60405180910390f35b610201610569565b60405161020e91906115b7565b60405180910390f35b61021f610572565b60405161022c91906115b7565b60405180910390f35b61024f600480360381019061024a91906114a8565b610577565b60405161025c9190611503565b60405180910390f35b61026d6105ae565b60405161027a919061152d565b60405180910390f35b61029d600480360381019061029891906115d2565b6105bd565b005b6102b960048036038101906102b491906115ff565b6105d1565b005b6102d560048036038101906102d091906115ff565b61061d565b6040516102e2919061152d565b60405180910390f35b6102f3610665565b005b6102fd610679565b005b610319600480360381019061031491906114a8565b6106b8565b005b6103236106d8565b604051610330919061168b565b60405180910390f35b6103416106fe565b60405161034e91906116b5565b60405180910390f35b61035f610728565b60405161036c91906113ed565b60405180910390f35b61038f600480360381019061038a91906114a8565b6107ba565b60405161039c9190611503565b60405180910390f35b6103bf60048036038101906103ba91906114a8565b610831565b6040516103cc9190611503565b60405180910390f35b6103dd610854565b6040516103ea91906113ed565b60405180910390f35b6103fb61088d565b60405161040891906113ed565b60405180910390f35b61042b600480360381019061042691906116d0565b6108c6565b604051610438919061152d565b60405180910390f35b61044961094d565b6040516104569190611503565b60405180910390f35b610479600480360381019061047491906115ff565b610960565b005b60606003805461048a9061173f565b80601f01602080910402602001604051908101604052809291908181526020018280546104b69061173f565b80156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b6000806105186109e3565b90506105258185856109eb565b600191505092915050565b6000600254905090565b6000806105456109e3565b9050610552858285610bb4565b61055d858585610c40565b60019150509392505050565b60006012905090565b601281565b6000806105826109e3565b90506105a381858561059485896108c6565b61059e919061179f565b6109eb565b600191505092915050565b6a70153db7f577c6b780000081565b6105ce6105c86109e3565b82610ebf565b50565b6105d9611095565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61066d611095565b6106776000611113565b565b610681611095565b600660149054906101000a900460ff161561069b57600080fd5b6001600660146101000a81548160ff021916908315150217905550565b6106ca826106c46109e3565b83610bb4565b6106d48282610ebf565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107379061173f565b80601f01602080910402602001604051908101604052809291908181526020018280546107639061173f565b80156107b05780601f10610785576101008083540402835291602001916107b0565b820191906000526020600020905b81548152906001019060200180831161079357829003601f168201915b5050505050905090565b6000806107c56109e3565b905060006107d382866108c6565b905083811015610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611867565b60405180910390fd5b61082582868684036109eb565b60019250505092915050565b60008061083c6109e3565b9050610849818585610c40565b600191505092915050565b6040518060400160405280600581526020017f434c41505000000000000000000000000000000000000000000000000000000081525081565b6040518060400160405280600d81526020017f57696c6c436c617070436f696e0000000000000000000000000000000000000081525081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660149054906101000a900460ff1681565b610968611095565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce906118f9565b60405180910390fd5b6109e081611113565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a519061198b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090611a1d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ba7919061152d565b60405180910390a3505050565b6000610bc084846108c6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c3a5781811015610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390611a89565b60405180910390fd5b610c3984848484036109eb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690611b1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1590611bad565b60405180910390fd5b610d298383836111d9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690611c3f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e42919061179f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea6919061152d565b60405180910390a3610eb984848461134f565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590611cd1565b60405180910390fd5b610f3a826000836111d9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790611d63565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546110179190611d83565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161107c919061152d565b60405180910390a36110908360008461134f565b505050565b61109d6109e3565b73ffffffffffffffffffffffffffffffffffffffff166110bb6106fe565b73ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890611e03565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112405750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61134a57600660149054906101000a900460ff161580156112b05750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561134957600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d37a8dd338585856040518563ffffffff1660e01b81526004016113169493929190611e23565b600060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050505b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561138e578082015181840152602081019050611373565b8381111561139d576000848401525b50505050565b6000601f19601f8301169050919050565b60006113bf82611354565b6113c9818561135f565b93506113d9818560208601611370565b6113e2816113a3565b840191505092915050565b6000602082019050818103600083015261140781846113b4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061143f82611414565b9050919050565b61144f81611434565b811461145a57600080fd5b50565b60008135905061146c81611446565b92915050565b6000819050919050565b61148581611472565b811461149057600080fd5b50565b6000813590506114a28161147c565b92915050565b600080604083850312156114bf576114be61140f565b5b60006114cd8582860161145d565b92505060206114de85828601611493565b9150509250929050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b61152781611472565b82525050565b6000602082019050611542600083018461151e565b92915050565b6000806000606084860312156115615761156061140f565b5b600061156f8682870161145d565b93505060206115808682870161145d565b925050604061159186828701611493565b9150509250925092565b600060ff82169050919050565b6115b18161159b565b82525050565b60006020820190506115cc60008301846115a8565b92915050565b6000602082840312156115e8576115e761140f565b5b60006115f684828501611493565b91505092915050565b6000602082840312156116155761161461140f565b5b60006116238482850161145d565b91505092915050565b6000819050919050565b600061165161164c61164784611414565b61162c565b611414565b9050919050565b600061166382611636565b9050919050565b600061167582611658565b9050919050565b6116858161166a565b82525050565b60006020820190506116a0600083018461167c565b92915050565b6116af81611434565b82525050565b60006020820190506116ca60008301846116a6565b92915050565b600080604083850312156116e7576116e661140f565b5b60006116f58582860161145d565b92505060206117068582860161145d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061175757607f821691505b60208210810361176a57611769611710565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117aa82611472565b91506117b583611472565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117ea576117e9611770565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061185160258361135f565b915061185c826117f5565b604082019050919050565b6000602082019050818103600083015261188081611844565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118e360268361135f565b91506118ee82611887565b604082019050919050565b60006020820190508181036000830152611912816118d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061197560248361135f565b915061198082611919565b604082019050919050565b600060208201905081810360008301526119a481611968565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a0760228361135f565b9150611a12826119ab565b604082019050919050565b60006020820190508181036000830152611a36816119fa565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611a73601d8361135f565b9150611a7e82611a3d565b602082019050919050565b60006020820190508181036000830152611aa281611a66565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611b0560258361135f565b9150611b1082611aa9565b604082019050919050565b60006020820190508181036000830152611b3481611af8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b9760238361135f565b9150611ba282611b3b565b604082019050919050565b60006020820190508181036000830152611bc681611b8a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611c2960268361135f565b9150611c3482611bcd565b604082019050919050565b60006020820190508181036000830152611c5881611c1c565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cbb60218361135f565b9150611cc682611c5f565b604082019050919050565b60006020820190508181036000830152611cea81611cae565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d4d60228361135f565b9150611d5882611cf1565b604082019050919050565b60006020820190508181036000830152611d7c81611d40565b9050919050565b6000611d8e82611472565b9150611d9983611472565b925082821015611dac57611dab611770565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ded60208361135f565b9150611df882611db7565b602082019050919050565b60006020820190508181036000830152611e1c81611de0565b9050919050565b6000608082019050611e3860008301876116a6565b611e4560208301866116a6565b611e5260408301856116a6565b611e5f606083018461151e565b9594505050505056fea2646970667358221220ba8a187120e274b50be757da609528cb6a3ed18cec75ad5579b3b3e02858caae64736f6c634300080e0033

Deployed Bytecode Sourcemap

21432:1056:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9281:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11632:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10401:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12413:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10243:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21595:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13117:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21638:57;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20651:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22370:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10572:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2701:103;;;:::i;:::-;;22233:129;;;:::i;:::-;;21061:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21702:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2053:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9500:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13858:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10905:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21548:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21495:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11161:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21761:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2959:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9281:100;9335:13;9368:5;9361:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9281:100;:::o;11632:201::-;11715:4;11732:13;11748:12;:10;:12::i;:::-;11732:28;;11771:32;11780:5;11787:7;11796:6;11771:8;:32::i;:::-;11821:4;11814:11;;;11632:201;;;;:::o;10401:108::-;10462:7;10489:12;;10482:19;;10401:108;:::o;12413:295::-;12544:4;12561:15;12579:12;:10;:12::i;:::-;12561:30;;12602:38;12618:4;12624:7;12633:6;12602:15;:38::i;:::-;12651:27;12661:4;12667:2;12671:6;12651:9;:27::i;:::-;12696:4;12689:11;;;12413:295;;;;;:::o;10243:93::-;10301:5;10326:2;10319:9;;10243:93;:::o;21595:36::-;21629:2;21595:36;:::o;13117:238::-;13205:4;13222:13;13238:12;:10;:12::i;:::-;13222:28;;13261:64;13270:5;13277:7;13314:10;13286:25;13296:5;13303:7;13286:9;:25::i;:::-;:38;;;;:::i;:::-;13261:8;:64::i;:::-;13343:4;13336:11;;;13117:238;;;;:::o;21638:57::-;21677:18;21638:57;:::o;20651:91::-;20707:27;20713:12;:10;:12::i;:::-;20727:6;20707:5;:27::i;:::-;20651:91;:::o;22370:109::-;1939:13;:11;:13::i;:::-;22466:4:::1;22443:9;;:28;;;;;;;;;;;;;;;;;;22370:109:::0;:::o;10572:127::-;10646:7;10673:9;:18;10683:7;10673:18;;;;;;;;;;;;;;;;10666:25;;10572:127;;;:::o;2701:103::-;1939:13;:11;:13::i;:::-;2766:30:::1;2793:1;2766:18;:30::i;:::-;2701:103::o:0;22233:129::-;1939:13;:11;:13::i;:::-;22303:16:::1;;;;;;;;;;;22302:17;22294:26;;;::::0;::::1;;22350:4;22331:16;;:23;;;;;;;;;;;;;;;;;;22233:129::o:0;21061:164::-;21138:46;21154:7;21163:12;:10;:12::i;:::-;21177:6;21138:15;:46::i;:::-;21195:22;21201:7;21210:6;21195:5;:22::i;:::-;21061:164;;:::o;21702:52::-;;;;;;;;;;;;;:::o;2053:87::-;2099:7;2126:6;;;;;;;;;;;2119:13;;2053:87;:::o;9500:104::-;9556:13;9589:7;9582:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9500:104;:::o;13858:436::-;13951:4;13968:13;13984:12;:10;:12::i;:::-;13968:28;;14007:24;14034:25;14044:5;14051:7;14034:9;:25::i;:::-;14007:52;;14098:15;14078:16;:35;;14070:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14191:60;14200:5;14207:7;14235:15;14216:16;:34;14191:8;:60::i;:::-;14282:4;14275:11;;;;13858:436;;;;:::o;10905:193::-;10984:4;11001:13;11017:12;:10;:12::i;:::-;11001:28;;11040;11050:5;11057:2;11061:6;11040:9;:28::i;:::-;11086:4;11079:11;;;10905:193;;;;:::o;21548:40::-;;;;;;;;;;;;;;;;;;;:::o;21495:46::-;;;;;;;;;;;;;;;;;;;:::o;11161:151::-;11250:7;11277:11;:18;11289:5;11277:18;;;;;;;;;;;;;;;:27;11296:7;11277:27;;;;;;;;;;;;;;;;11270:34;;11161:151;;;;:::o;21761:28::-;;;;;;;;;;;;;:::o;2959:201::-;1939:13;:11;:13::i;:::-;3068:1:::1;3048:22;;:8;:22;;::::0;3040:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3124:28;3143:8;3124:18;:28::i;:::-;2959:201:::0;:::o;603:98::-;656:7;683:10;676:17;;603:98;:::o;17483:380::-;17636:1;17619:19;;:5;:19;;;17611:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17717:1;17698:21;;:7;:21;;;17690:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17801:6;17771:11;:18;17783:5;17771:18;;;;;;;;;;;;;;;:27;17790:7;17771:27;;;;;;;;;;;;;;;:36;;;;17839:7;17823:32;;17832:5;17823:32;;;17848:6;17823:32;;;;;;:::i;:::-;;;;;;;;17483:380;;;:::o;18154:453::-;18289:24;18316:25;18326:5;18333:7;18316:9;:25::i;:::-;18289:52;;18376:17;18356:16;:37;18352:248;;18438:6;18418:16;:26;;18410:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18522:51;18531:5;18538:7;18566:6;18547:16;:25;18522:8;:51::i;:::-;18352:248;18278:329;18154:453;;;:::o;14764:671::-;14911:1;14895:18;;:4;:18;;;14887:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14988:1;14974:16;;:2;:16;;;14966:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15043:38;15064:4;15070:2;15074:6;15043:20;:38::i;:::-;15094:19;15116:9;:15;15126:4;15116:15;;;;;;;;;;;;;;;;15094:37;;15165:6;15150:11;:21;;15142:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15282:6;15268:11;:20;15250:9;:15;15260:4;15250:15;;;;;;;;;;;;;;;:38;;;;15327:6;15310:9;:13;15320:2;15310:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;15366:2;15351:26;;15360:4;15351:26;;;15370:6;15351:26;;;;;;:::i;:::-;;;;;;;;15390:37;15410:4;15416:2;15420:6;15390:19;:37::i;:::-;14876:559;14764:671;;;:::o;16454:591::-;16557:1;16538:21;;:7;:21;;;16530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16610:49;16631:7;16648:1;16652:6;16610:20;:49::i;:::-;16672:22;16697:9;:18;16707:7;16697:18;;;;;;;;;;;;;;;;16672:43;;16752:6;16734:14;:24;;16726:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16871:6;16854:14;:23;16833:9;:18;16843:7;16833:18;;;;;;;;;;;;;;;:44;;;;16915:6;16899:12;;:22;;;;;;;:::i;:::-;;;;;;;;16965:1;16939:37;;16948:7;16939:37;;;16969:6;16939:37;;;;;;:::i;:::-;;;;;;;;16989:48;17009:7;17026:1;17030:6;16989:19;:48::i;:::-;16519:526;16454:591;;:::o;2218:132::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2218:132::o;3320:191::-;3394:16;3413:6;;;;;;;;;;;3394:25;;3439:8;3430:6;;:17;;;;;;;;;;;;;;;;;;3494:8;3463:40;;3484:8;3463:40;;;;;;;;;;;;3383:128;3320:191;:::o;21892:333::-;22047:1;22031:18;;:4;:18;;;:38;;;;22067:1;22053:16;;:2;:16;;;22031:38;22071:7;22027:51;22093:16;;;;;;;;;;;22092:17;:53;;;;;22143:1;22113:32;;22121:9;;;;;;;;;;;22113:32;;;;22092:53;22088:129;;;22160:9;;;;;;;;;;;:27;;;22188:10;22200:4;22206:2;22210:6;22160:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22088:129;21892:333;;;;:::o;19936:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:60::-;5599:3;5620:5;5613:12;;5571:60;;;:::o;5637:142::-;5687:9;5720:53;5738:34;5747:24;5765:5;5747:24;:::i;:::-;5738:34;:::i;:::-;5720:53;:::i;:::-;5707:66;;5637:142;;;:::o;5785:126::-;5835:9;5868:37;5899:5;5868:37;:::i;:::-;5855:50;;5785:126;;;:::o;5917:144::-;5985:9;6018:37;6049:5;6018:37;:::i;:::-;6005:50;;5917:144;;;:::o;6067:167::-;6172:55;6221:5;6172:55;:::i;:::-;6167:3;6160:68;6067:167;;:::o;6240:258::-;6351:4;6389:2;6378:9;6374:18;6366:26;;6402:89;6488:1;6477:9;6473:17;6464:6;6402:89;:::i;:::-;6240:258;;;;:::o;6504:118::-;6591:24;6609:5;6591:24;:::i;:::-;6586:3;6579:37;6504:118;;:::o;6628:222::-;6721:4;6759:2;6748:9;6744:18;6736:26;;6772:71;6840:1;6829:9;6825:17;6816:6;6772:71;:::i;:::-;6628:222;;;;:::o;6856:474::-;6924:6;6932;6981:2;6969:9;6960:7;6956:23;6952:32;6949:119;;;6987:79;;:::i;:::-;6949:119;7107:1;7132:53;7177:7;7168:6;7157:9;7153:22;7132:53;:::i;:::-;7122:63;;7078:117;7234:2;7260:53;7305:7;7296:6;7285:9;7281:22;7260:53;:::i;:::-;7250:63;;7205:118;6856:474;;;;;:::o;7336:180::-;7384:77;7381:1;7374:88;7481:4;7478:1;7471:15;7505:4;7502:1;7495:15;7522:320;7566:6;7603:1;7597:4;7593:12;7583:22;;7650:1;7644:4;7640:12;7671:18;7661:81;;7727:4;7719:6;7715:17;7705:27;;7661:81;7789:2;7781:6;7778:14;7758:18;7755:38;7752:84;;7808:18;;:::i;:::-;7752:84;7573:269;7522:320;;;:::o;7848:180::-;7896:77;7893:1;7886:88;7993:4;7990:1;7983:15;8017:4;8014:1;8007:15;8034:305;8074:3;8093:20;8111:1;8093:20;:::i;:::-;8088:25;;8127:20;8145:1;8127:20;:::i;:::-;8122:25;;8281:1;8213:66;8209:74;8206:1;8203:81;8200:107;;;8287:18;;:::i;:::-;8200:107;8331:1;8328;8324:9;8317:16;;8034:305;;;;:::o;8345:224::-;8485:34;8481:1;8473:6;8469:14;8462:58;8554:7;8549:2;8541:6;8537:15;8530:32;8345:224;:::o;8575:366::-;8717:3;8738:67;8802:2;8797:3;8738:67;:::i;:::-;8731:74;;8814:93;8903:3;8814:93;:::i;:::-;8932:2;8927:3;8923:12;8916:19;;8575:366;;;:::o;8947:419::-;9113:4;9151:2;9140:9;9136:18;9128:26;;9200:9;9194:4;9190:20;9186:1;9175:9;9171:17;9164:47;9228:131;9354:4;9228:131;:::i;:::-;9220:139;;8947:419;;;:::o;9372:225::-;9512:34;9508:1;9500:6;9496:14;9489:58;9581:8;9576:2;9568:6;9564:15;9557:33;9372:225;:::o;9603:366::-;9745:3;9766:67;9830:2;9825:3;9766:67;:::i;:::-;9759:74;;9842:93;9931:3;9842:93;:::i;:::-;9960:2;9955:3;9951:12;9944:19;;9603:366;;;:::o;9975:419::-;10141:4;10179:2;10168:9;10164:18;10156:26;;10228:9;10222:4;10218:20;10214:1;10203:9;10199:17;10192:47;10256:131;10382:4;10256:131;:::i;:::-;10248:139;;9975:419;;;:::o;10400:223::-;10540:34;10536:1;10528:6;10524:14;10517:58;10609:6;10604:2;10596:6;10592:15;10585:31;10400:223;:::o;10629:366::-;10771:3;10792:67;10856:2;10851:3;10792:67;:::i;:::-;10785:74;;10868:93;10957:3;10868:93;:::i;:::-;10986:2;10981:3;10977:12;10970:19;;10629:366;;;:::o;11001:419::-;11167:4;11205:2;11194:9;11190:18;11182:26;;11254:9;11248:4;11244:20;11240:1;11229:9;11225:17;11218:47;11282:131;11408:4;11282:131;:::i;:::-;11274:139;;11001:419;;;:::o;11426:221::-;11566:34;11562:1;11554:6;11550:14;11543:58;11635:4;11630:2;11622:6;11618:15;11611:29;11426:221;:::o;11653:366::-;11795:3;11816:67;11880:2;11875:3;11816:67;:::i;:::-;11809:74;;11892:93;11981:3;11892:93;:::i;:::-;12010:2;12005:3;12001:12;11994:19;;11653:366;;;:::o;12025:419::-;12191:4;12229:2;12218:9;12214:18;12206:26;;12278:9;12272:4;12268:20;12264:1;12253:9;12249:17;12242:47;12306:131;12432:4;12306:131;:::i;:::-;12298:139;;12025:419;;;:::o;12450:179::-;12590:31;12586:1;12578:6;12574:14;12567:55;12450:179;:::o;12635:366::-;12777:3;12798:67;12862:2;12857:3;12798:67;:::i;:::-;12791:74;;12874:93;12963:3;12874:93;:::i;:::-;12992:2;12987:3;12983:12;12976:19;;12635:366;;;:::o;13007:419::-;13173:4;13211:2;13200:9;13196:18;13188:26;;13260:9;13254:4;13250:20;13246:1;13235:9;13231:17;13224:47;13288:131;13414:4;13288:131;:::i;:::-;13280:139;;13007:419;;;:::o;13432:224::-;13572:34;13568:1;13560:6;13556:14;13549:58;13641:7;13636:2;13628:6;13624:15;13617:32;13432:224;:::o;13662:366::-;13804:3;13825:67;13889:2;13884:3;13825:67;:::i;:::-;13818:74;;13901:93;13990:3;13901:93;:::i;:::-;14019:2;14014:3;14010:12;14003:19;;13662:366;;;:::o;14034:419::-;14200:4;14238:2;14227:9;14223:18;14215:26;;14287:9;14281:4;14277:20;14273:1;14262:9;14258:17;14251:47;14315:131;14441:4;14315:131;:::i;:::-;14307:139;;14034:419;;;:::o;14459:222::-;14599:34;14595:1;14587:6;14583:14;14576:58;14668:5;14663:2;14655:6;14651:15;14644:30;14459:222;:::o;14687:366::-;14829:3;14850:67;14914:2;14909:3;14850:67;:::i;:::-;14843:74;;14926:93;15015:3;14926:93;:::i;:::-;15044:2;15039:3;15035:12;15028:19;;14687:366;;;:::o;15059:419::-;15225:4;15263:2;15252:9;15248:18;15240:26;;15312:9;15306:4;15302:20;15298:1;15287:9;15283:17;15276:47;15340:131;15466:4;15340:131;:::i;:::-;15332:139;;15059:419;;;:::o;15484:225::-;15624:34;15620:1;15612:6;15608:14;15601:58;15693:8;15688:2;15680:6;15676:15;15669:33;15484:225;:::o;15715:366::-;15857:3;15878:67;15942:2;15937:3;15878:67;:::i;:::-;15871:74;;15954:93;16043:3;15954:93;:::i;:::-;16072:2;16067:3;16063:12;16056:19;;15715:366;;;:::o;16087:419::-;16253:4;16291:2;16280:9;16276:18;16268:26;;16340:9;16334:4;16330:20;16326:1;16315:9;16311:17;16304:47;16368:131;16494:4;16368:131;:::i;:::-;16360:139;;16087:419;;;:::o;16512:220::-;16652:34;16648:1;16640:6;16636:14;16629:58;16721:3;16716:2;16708:6;16704:15;16697:28;16512:220;:::o;16738:366::-;16880:3;16901:67;16965:2;16960:3;16901:67;:::i;:::-;16894:74;;16977:93;17066:3;16977:93;:::i;:::-;17095:2;17090:3;17086:12;17079:19;;16738:366;;;:::o;17110:419::-;17276:4;17314:2;17303:9;17299:18;17291:26;;17363:9;17357:4;17353:20;17349:1;17338:9;17334:17;17327:47;17391:131;17517:4;17391:131;:::i;:::-;17383:139;;17110:419;;;:::o;17535:221::-;17675:34;17671:1;17663:6;17659:14;17652:58;17744:4;17739:2;17731:6;17727:15;17720:29;17535:221;:::o;17762:366::-;17904:3;17925:67;17989:2;17984:3;17925:67;:::i;:::-;17918:74;;18001:93;18090:3;18001:93;:::i;:::-;18119:2;18114:3;18110:12;18103:19;;17762:366;;;:::o;18134:419::-;18300:4;18338:2;18327:9;18323:18;18315:26;;18387:9;18381:4;18377:20;18373:1;18362:9;18358:17;18351:47;18415:131;18541:4;18415:131;:::i;:::-;18407:139;;18134:419;;;:::o;18559:191::-;18599:4;18619:20;18637:1;18619:20;:::i;:::-;18614:25;;18653:20;18671:1;18653:20;:::i;:::-;18648:25;;18692:1;18689;18686:8;18683:34;;;18697:18;;:::i;:::-;18683:34;18742:1;18739;18735:9;18727:17;;18559:191;;;;:::o;18756:182::-;18896:34;18892:1;18884:6;18880:14;18873:58;18756:182;:::o;18944:366::-;19086:3;19107:67;19171:2;19166:3;19107:67;:::i;:::-;19100:74;;19183:93;19272:3;19183:93;:::i;:::-;19301:2;19296:3;19292:12;19285:19;;18944:366;;;:::o;19316:419::-;19482:4;19520:2;19509:9;19505:18;19497:26;;19569:9;19563:4;19559:20;19555:1;19544:9;19540:17;19533:47;19597:131;19723:4;19597:131;:::i;:::-;19589:139;;19316:419;;;:::o;19741:553::-;19918:4;19956:3;19945:9;19941:19;19933:27;;19970:71;20038:1;20027:9;20023:17;20014:6;19970:71;:::i;:::-;20051:72;20119:2;20108:9;20104:18;20095:6;20051:72;:::i;:::-;20133;20201:2;20190:9;20186:18;20177:6;20133:72;:::i;:::-;20215;20283:2;20272:9;20268:18;20259:6;20215:72;:::i;:::-;19741:553;;;;;;;:::o

Swarm Source

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