ETH Price: $3,411.83 (-1.65%)
Gas: 9 Gwei

Token

AURUMS (AUR)
 

Overview

Max Total Supply

999,999.999999999 AUR

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
wantmoney.eth
Balance
132.780788075944627444 AUR

Value
$0.00
0xb60b0ada4c9ac97cffc84c46d49a0f423c7d181a
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:
AUR

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-20
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;

/**
 * @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}.
 */
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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender,
        address recipient,
        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);
}

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);
}


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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 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 {}
}

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 {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        unchecked {
            _approve(account, _msgSender(), currentAllowance - amount);
        }
        _burn(account, amount);
    }
}

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);
    }
}

contract AUR is ERC20, ERC20Burnable, Ownable { 
    constructor() ERC20("AURUMS", "AUR") {
        
    }

    uint public price;
    bool public saleStatus;

    function mint(uint _amount) public payable  {
        require(saleStatus == true, "Sale is not started");
        uint _count = _amount/1000000000000000000;
        require(msg.value >= price * _count, "Not enough ETH");
        _mint(msg.sender, _amount);
    }

    function setPrice(uint _price) public onlyOwner {
        price = _price;
    }

    function setSale(bool _status) public onlyOwner {
        saleStatus = _status;
    }

    function mintAdmin(uint _amount) public onlyOwner  {
        _mint(msg.sender, _amount);
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        _transferOwnership(_newOwner);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":[{"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":[{"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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mintAdmin","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":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setSale","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","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"}]

60806040523480156200001157600080fd5b506040518060400160405280600681526020017f415552554d5300000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4155520000000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620001a6565b508060049080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61231c80620002cb6000396000f3fe60806040526004361061012a5760003560e01c806379cc6790116100ab578063a0712d681161006f578063a0712d68146103f2578063a457c2d71461040e578063a9059cbb1461044b578063dd62ed3e14610488578063f2fde38b146104c5578063f9020e33146104ee5761012a565b806379cc67901461031f5780638da5cb5b1461034857806391b7f5ed1461037357806395d89b411461039c578063a035b1fe146103c75761012a565b8063313ce567116100f2578063313ce56714610228578063395093511461025357806342966c6814610290578063677ab70b146102b957806370a08231146102e25761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd146101975780631d2e5a3a146101c257806323b872dd146101eb575b600080fd5b34801561013b57600080fd5b50610144610519565b6040516101519190611a41565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611712565b6105ab565b60405161018e9190611a26565b60405180910390f35b3480156101a357600080fd5b506101ac6105c9565b6040516101b99190611c23565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190611752565b6105d3565b005b3480156101f757600080fd5b50610212600480360381019061020d91906116bf565b61066c565b60405161021f9190611a26565b60405180910390f35b34801561023457600080fd5b5061023d610764565b60405161024a9190611c3e565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190611712565b61076d565b6040516102879190611a26565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b2919061177f565b610819565b005b3480156102c557600080fd5b506102e060048036038101906102db919061177f565b61082d565b005b3480156102ee57600080fd5b5061030960048036038101906103049190611652565b6108b6565b6040516103169190611c23565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190611712565b6108fe565b005b34801561035457600080fd5b5061035d610979565b60405161036a9190611a0b565b60405180910390f35b34801561037f57600080fd5b5061039a6004803603810190610395919061177f565b6109a3565b005b3480156103a857600080fd5b506103b1610a29565b6040516103be9190611a41565b60405180910390f35b3480156103d357600080fd5b506103dc610abb565b6040516103e99190611c23565b60405180910390f35b61040c6004803603810190610407919061177f565b610ac1565b005b34801561041a57600080fd5b5061043560048036038101906104309190611712565b610b8d565b6040516104429190611a26565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190611712565b610c78565b60405161047f9190611a26565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa919061167f565b610c96565b6040516104bc9190611c23565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e79190611652565b610d1d565b005b3480156104fa57600080fd5b50610503610da5565b6040516105109190611a26565b60405180910390f35b60606003805461052890611e12565b80601f016020809104026020016040519081016040528092919081815260200182805461055490611e12565b80156105a15780601f10610576576101008083540402835291602001916105a1565b820191906000526020600020905b81548152906001019060200180831161058457829003601f168201915b5050505050905090565b60006105bf6105b8610db8565b8484610dc0565b6001905092915050565b6000600254905090565b6105db610db8565b73ffffffffffffffffffffffffffffffffffffffff166105f9610979565b73ffffffffffffffffffffffffffffffffffffffff161461064f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064690611b43565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b6000610679848484610f8b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c4610db8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b90611b23565b60405180910390fd5b61075885610750610db8565b858403610dc0565b60019150509392505050565b60006012905090565b600061080f61077a610db8565b848460016000610788610db8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461080a9190611c75565b610dc0565b6001905092915050565b61082a610824610db8565b8261120c565b50565b610835610db8565b73ffffffffffffffffffffffffffffffffffffffff16610853610979565b73ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090611b43565b60405180910390fd5b6108b333826113e3565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006109118361090c610db8565b610c96565b905081811015610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d90611b63565b60405180910390fd5b61096a83610962610db8565b848403610dc0565b610974838361120c565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109ab610db8565b73ffffffffffffffffffffffffffffffffffffffff166109c9610979565b73ffffffffffffffffffffffffffffffffffffffff1614610a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1690611b43565b60405180910390fd5b8060068190555050565b606060048054610a3890611e12565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6490611e12565b8015610ab15780601f10610a8657610100808354040283529160200191610ab1565b820191906000526020600020905b815481529060010190602001808311610a9457829003601f168201915b5050505050905090565b60065481565b60011515600760009054906101000a900460ff16151514610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e90611ae3565b60405180910390fd5b6000670de0b6b3a764000082610b2d9190611ccb565b905080600654610b3d9190611cfc565b341015610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690611b03565b60405180910390fd5b610b8933836113e3565b5050565b60008060016000610b9c610db8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090611be3565b60405180910390fd5b610c6d610c64610db8565b85858403610dc0565b600191505092915050565b6000610c8c610c85610db8565b8484610f8b565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d25610db8565b73ffffffffffffffffffffffffffffffffffffffff16610d43610979565b73ffffffffffffffffffffffffffffffffffffffff1614610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090611b43565b60405180910390fd5b610da281611543565b50565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790611bc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611aa3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f7e9190611c23565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff290611ba3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290611a63565b60405180910390fd5b611076838383611609565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390611ac3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461118f9190611c75565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111f39190611c23565b60405180910390a361120684848461160e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561127c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127390611b83565b60405180910390fd5b61128882600083611609565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561130e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130590611a83565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546113659190611d56565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113ca9190611c23565b60405180910390a36113de8360008461160e565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90611c03565b60405180910390fd5b61145f60008383611609565b80600260008282546114719190611c75565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114c69190611c75565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161152b9190611c23565b60405180910390a361153f6000838361160e565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081359050611622816122a1565b92915050565b600081359050611637816122b8565b92915050565b60008135905061164c816122cf565b92915050565b60006020828403121561166857611667611ed1565b5b600061167684828501611613565b91505092915050565b6000806040838503121561169657611695611ed1565b5b60006116a485828601611613565b92505060206116b585828601611613565b9150509250929050565b6000806000606084860312156116d8576116d7611ed1565b5b60006116e686828701611613565b93505060206116f786828701611613565b92505060406117088682870161163d565b9150509250925092565b6000806040838503121561172957611728611ed1565b5b600061173785828601611613565b92505060206117488582860161163d565b9150509250929050565b60006020828403121561176857611767611ed1565b5b600061177684828501611628565b91505092915050565b60006020828403121561179557611794611ed1565b5b60006117a38482850161163d565b91505092915050565b6117b581611d8a565b82525050565b6117c481611d9c565b82525050565b60006117d582611c59565b6117df8185611c64565b93506117ef818560208601611ddf565b6117f881611ed6565b840191505092915050565b6000611810602383611c64565b915061181b82611ee7565b604082019050919050565b6000611833602283611c64565b915061183e82611f36565b604082019050919050565b6000611856602283611c64565b915061186182611f85565b604082019050919050565b6000611879602683611c64565b915061188482611fd4565b604082019050919050565b600061189c601383611c64565b91506118a782612023565b602082019050919050565b60006118bf600e83611c64565b91506118ca8261204c565b602082019050919050565b60006118e2602883611c64565b91506118ed82612075565b604082019050919050565b6000611905602083611c64565b9150611910826120c4565b602082019050919050565b6000611928602483611c64565b9150611933826120ed565b604082019050919050565b600061194b602183611c64565b91506119568261213c565b604082019050919050565b600061196e602583611c64565b91506119798261218b565b604082019050919050565b6000611991602483611c64565b915061199c826121da565b604082019050919050565b60006119b4602583611c64565b91506119bf82612229565b604082019050919050565b60006119d7601f83611c64565b91506119e282612278565b602082019050919050565b6119f681611dc8565b82525050565b611a0581611dd2565b82525050565b6000602082019050611a2060008301846117ac565b92915050565b6000602082019050611a3b60008301846117bb565b92915050565b60006020820190508181036000830152611a5b81846117ca565b905092915050565b60006020820190508181036000830152611a7c81611803565b9050919050565b60006020820190508181036000830152611a9c81611826565b9050919050565b60006020820190508181036000830152611abc81611849565b9050919050565b60006020820190508181036000830152611adc8161186c565b9050919050565b60006020820190508181036000830152611afc8161188f565b9050919050565b60006020820190508181036000830152611b1c816118b2565b9050919050565b60006020820190508181036000830152611b3c816118d5565b9050919050565b60006020820190508181036000830152611b5c816118f8565b9050919050565b60006020820190508181036000830152611b7c8161191b565b9050919050565b60006020820190508181036000830152611b9c8161193e565b9050919050565b60006020820190508181036000830152611bbc81611961565b9050919050565b60006020820190508181036000830152611bdc81611984565b9050919050565b60006020820190508181036000830152611bfc816119a7565b9050919050565b60006020820190508181036000830152611c1c816119ca565b9050919050565b6000602082019050611c3860008301846119ed565b92915050565b6000602082019050611c5360008301846119fc565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611c8082611dc8565b9150611c8b83611dc8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cc057611cbf611e44565b5b828201905092915050565b6000611cd682611dc8565b9150611ce183611dc8565b925082611cf157611cf0611e73565b5b828204905092915050565b6000611d0782611dc8565b9150611d1283611dc8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d4b57611d4a611e44565b5b828202905092915050565b6000611d6182611dc8565b9150611d6c83611dc8565b925082821015611d7f57611d7e611e44565b5b828203905092915050565b6000611d9582611da8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611dfd578082015181840152602081019050611de2565b83811115611e0c576000848401525b50505050565b60006002820490506001821680611e2a57607f821691505b60208210811415611e3e57611e3d611ea2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f53616c65206973206e6f74207374617274656400000000000000000000000000600082015250565b7f4e6f7420656e6f75676820455448000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6122aa81611d8a565b81146122b557600080fd5b50565b6122c181611d9c565b81146122cc57600080fd5b50565b6122d881611dc8565b81146122e357600080fd5b5056fea264697066735822122067a5ba2d7d7ca0527191b4e11bf838015299920d68b7914fba72bb5d17475f0064736f6c63430008070033

Deployed Bytecode

0x60806040526004361061012a5760003560e01c806379cc6790116100ab578063a0712d681161006f578063a0712d68146103f2578063a457c2d71461040e578063a9059cbb1461044b578063dd62ed3e14610488578063f2fde38b146104c5578063f9020e33146104ee5761012a565b806379cc67901461031f5780638da5cb5b1461034857806391b7f5ed1461037357806395d89b411461039c578063a035b1fe146103c75761012a565b8063313ce567116100f2578063313ce56714610228578063395093511461025357806342966c6814610290578063677ab70b146102b957806370a08231146102e25761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd146101975780631d2e5a3a146101c257806323b872dd146101eb575b600080fd5b34801561013b57600080fd5b50610144610519565b6040516101519190611a41565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611712565b6105ab565b60405161018e9190611a26565b60405180910390f35b3480156101a357600080fd5b506101ac6105c9565b6040516101b99190611c23565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190611752565b6105d3565b005b3480156101f757600080fd5b50610212600480360381019061020d91906116bf565b61066c565b60405161021f9190611a26565b60405180910390f35b34801561023457600080fd5b5061023d610764565b60405161024a9190611c3e565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190611712565b61076d565b6040516102879190611a26565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b2919061177f565b610819565b005b3480156102c557600080fd5b506102e060048036038101906102db919061177f565b61082d565b005b3480156102ee57600080fd5b5061030960048036038101906103049190611652565b6108b6565b6040516103169190611c23565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190611712565b6108fe565b005b34801561035457600080fd5b5061035d610979565b60405161036a9190611a0b565b60405180910390f35b34801561037f57600080fd5b5061039a6004803603810190610395919061177f565b6109a3565b005b3480156103a857600080fd5b506103b1610a29565b6040516103be9190611a41565b60405180910390f35b3480156103d357600080fd5b506103dc610abb565b6040516103e99190611c23565b60405180910390f35b61040c6004803603810190610407919061177f565b610ac1565b005b34801561041a57600080fd5b5061043560048036038101906104309190611712565b610b8d565b6040516104429190611a26565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190611712565b610c78565b60405161047f9190611a26565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa919061167f565b610c96565b6040516104bc9190611c23565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e79190611652565b610d1d565b005b3480156104fa57600080fd5b50610503610da5565b6040516105109190611a26565b60405180910390f35b60606003805461052890611e12565b80601f016020809104026020016040519081016040528092919081815260200182805461055490611e12565b80156105a15780601f10610576576101008083540402835291602001916105a1565b820191906000526020600020905b81548152906001019060200180831161058457829003601f168201915b5050505050905090565b60006105bf6105b8610db8565b8484610dc0565b6001905092915050565b6000600254905090565b6105db610db8565b73ffffffffffffffffffffffffffffffffffffffff166105f9610979565b73ffffffffffffffffffffffffffffffffffffffff161461064f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064690611b43565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b6000610679848484610f8b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c4610db8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b90611b23565b60405180910390fd5b61075885610750610db8565b858403610dc0565b60019150509392505050565b60006012905090565b600061080f61077a610db8565b848460016000610788610db8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461080a9190611c75565b610dc0565b6001905092915050565b61082a610824610db8565b8261120c565b50565b610835610db8565b73ffffffffffffffffffffffffffffffffffffffff16610853610979565b73ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090611b43565b60405180910390fd5b6108b333826113e3565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006109118361090c610db8565b610c96565b905081811015610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d90611b63565b60405180910390fd5b61096a83610962610db8565b848403610dc0565b610974838361120c565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109ab610db8565b73ffffffffffffffffffffffffffffffffffffffff166109c9610979565b73ffffffffffffffffffffffffffffffffffffffff1614610a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1690611b43565b60405180910390fd5b8060068190555050565b606060048054610a3890611e12565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6490611e12565b8015610ab15780601f10610a8657610100808354040283529160200191610ab1565b820191906000526020600020905b815481529060010190602001808311610a9457829003601f168201915b5050505050905090565b60065481565b60011515600760009054906101000a900460ff16151514610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e90611ae3565b60405180910390fd5b6000670de0b6b3a764000082610b2d9190611ccb565b905080600654610b3d9190611cfc565b341015610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690611b03565b60405180910390fd5b610b8933836113e3565b5050565b60008060016000610b9c610db8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090611be3565b60405180910390fd5b610c6d610c64610db8565b85858403610dc0565b600191505092915050565b6000610c8c610c85610db8565b8484610f8b565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d25610db8565b73ffffffffffffffffffffffffffffffffffffffff16610d43610979565b73ffffffffffffffffffffffffffffffffffffffff1614610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090611b43565b60405180910390fd5b610da281611543565b50565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790611bc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611aa3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f7e9190611c23565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff290611ba3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290611a63565b60405180910390fd5b611076838383611609565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390611ac3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461118f9190611c75565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111f39190611c23565b60405180910390a361120684848461160e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561127c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127390611b83565b60405180910390fd5b61128882600083611609565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561130e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130590611a83565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546113659190611d56565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113ca9190611c23565b60405180910390a36113de8360008461160e565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90611c03565b60405180910390fd5b61145f60008383611609565b80600260008282546114719190611c75565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114c69190611c75565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161152b9190611c23565b60405180910390a361153f6000838361160e565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081359050611622816122a1565b92915050565b600081359050611637816122b8565b92915050565b60008135905061164c816122cf565b92915050565b60006020828403121561166857611667611ed1565b5b600061167684828501611613565b91505092915050565b6000806040838503121561169657611695611ed1565b5b60006116a485828601611613565b92505060206116b585828601611613565b9150509250929050565b6000806000606084860312156116d8576116d7611ed1565b5b60006116e686828701611613565b93505060206116f786828701611613565b92505060406117088682870161163d565b9150509250925092565b6000806040838503121561172957611728611ed1565b5b600061173785828601611613565b92505060206117488582860161163d565b9150509250929050565b60006020828403121561176857611767611ed1565b5b600061177684828501611628565b91505092915050565b60006020828403121561179557611794611ed1565b5b60006117a38482850161163d565b91505092915050565b6117b581611d8a565b82525050565b6117c481611d9c565b82525050565b60006117d582611c59565b6117df8185611c64565b93506117ef818560208601611ddf565b6117f881611ed6565b840191505092915050565b6000611810602383611c64565b915061181b82611ee7565b604082019050919050565b6000611833602283611c64565b915061183e82611f36565b604082019050919050565b6000611856602283611c64565b915061186182611f85565b604082019050919050565b6000611879602683611c64565b915061188482611fd4565b604082019050919050565b600061189c601383611c64565b91506118a782612023565b602082019050919050565b60006118bf600e83611c64565b91506118ca8261204c565b602082019050919050565b60006118e2602883611c64565b91506118ed82612075565b604082019050919050565b6000611905602083611c64565b9150611910826120c4565b602082019050919050565b6000611928602483611c64565b9150611933826120ed565b604082019050919050565b600061194b602183611c64565b91506119568261213c565b604082019050919050565b600061196e602583611c64565b91506119798261218b565b604082019050919050565b6000611991602483611c64565b915061199c826121da565b604082019050919050565b60006119b4602583611c64565b91506119bf82612229565b604082019050919050565b60006119d7601f83611c64565b91506119e282612278565b602082019050919050565b6119f681611dc8565b82525050565b611a0581611dd2565b82525050565b6000602082019050611a2060008301846117ac565b92915050565b6000602082019050611a3b60008301846117bb565b92915050565b60006020820190508181036000830152611a5b81846117ca565b905092915050565b60006020820190508181036000830152611a7c81611803565b9050919050565b60006020820190508181036000830152611a9c81611826565b9050919050565b60006020820190508181036000830152611abc81611849565b9050919050565b60006020820190508181036000830152611adc8161186c565b9050919050565b60006020820190508181036000830152611afc8161188f565b9050919050565b60006020820190508181036000830152611b1c816118b2565b9050919050565b60006020820190508181036000830152611b3c816118d5565b9050919050565b60006020820190508181036000830152611b5c816118f8565b9050919050565b60006020820190508181036000830152611b7c8161191b565b9050919050565b60006020820190508181036000830152611b9c8161193e565b9050919050565b60006020820190508181036000830152611bbc81611961565b9050919050565b60006020820190508181036000830152611bdc81611984565b9050919050565b60006020820190508181036000830152611bfc816119a7565b9050919050565b60006020820190508181036000830152611c1c816119ca565b9050919050565b6000602082019050611c3860008301846119ed565b92915050565b6000602082019050611c5360008301846119fc565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611c8082611dc8565b9150611c8b83611dc8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cc057611cbf611e44565b5b828201905092915050565b6000611cd682611dc8565b9150611ce183611dc8565b925082611cf157611cf0611e73565b5b828204905092915050565b6000611d0782611dc8565b9150611d1283611dc8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d4b57611d4a611e44565b5b828202905092915050565b6000611d6182611dc8565b9150611d6c83611dc8565b925082821015611d7f57611d7e611e44565b5b828203905092915050565b6000611d9582611da8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611dfd578082015181840152602081019050611de2565b83811115611e0c576000848401525b50505050565b60006002820490506001821680611e2a57607f821691505b60208210811415611e3e57611e3d611ea2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f53616c65206973206e6f74207374617274656400000000000000000000000000600082015250565b7f4e6f7420656e6f75676820455448000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6122aa81611d8a565b81146122b557600080fd5b50565b6122c181611d9c565b81146122cc57600080fd5b50565b6122d881611dc8565b81146122e357600080fd5b5056fea264697066735822122067a5ba2d7d7ca0527191b4e11bf838015299920d68b7914fba72bb5d17475f0064736f6c63430008070033

Deployed Bytecode Sourcemap

18177:849:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5384:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7551:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6504:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18713:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8202:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6346:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9103:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15510:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18808:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6675:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15920:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16707:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18624:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5603:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18294:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18349:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9821:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7015:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7253:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18912:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18318:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5384:100;5438:13;5471:5;5464:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5384:100;:::o;7551:169::-;7634:4;7651:39;7660:12;:10;:12::i;:::-;7674:7;7683:6;7651:8;:39::i;:::-;7708:4;7701:11;;7551:169;;;;:::o;6504:108::-;6565:7;6592:12;;6585:19;;6504:108;:::o;18713:87::-;16938:12;:10;:12::i;:::-;16927:23;;:7;:5;:7::i;:::-;:23;;;16919:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18785:7:::1;18772:10;;:20;;;;;;;;;;;;;;;;;;18713:87:::0;:::o;8202:492::-;8342:4;8359:36;8369:6;8377:9;8388:6;8359:9;:36::i;:::-;8408:24;8435:11;:19;8447:6;8435:19;;;;;;;;;;;;;;;:33;8455:12;:10;:12::i;:::-;8435:33;;;;;;;;;;;;;;;;8408:60;;8507:6;8487:16;:26;;8479:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8594:57;8603:6;8611:12;:10;:12::i;:::-;8644:6;8625:16;:25;8594:8;:57::i;:::-;8682:4;8675:11;;;8202:492;;;;;:::o;6346:93::-;6404:5;6429:2;6422:9;;6346:93;:::o;9103:215::-;9191:4;9208:80;9217:12;:10;:12::i;:::-;9231:7;9277:10;9240:11;:25;9252:12;:10;:12::i;:::-;9240:25;;;;;;;;;;;;;;;:34;9266:7;9240:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9208:8;:80::i;:::-;9306:4;9299:11;;9103:215;;;;:::o;15510:91::-;15566:27;15572:12;:10;:12::i;:::-;15586:6;15566:5;:27::i;:::-;15510:91;:::o;18808:96::-;16938:12;:10;:12::i;:::-;16927:23;;:7;:5;:7::i;:::-;:23;;;16919:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18870:26:::1;18876:10;18888:7;18870:5;:26::i;:::-;18808:96:::0;:::o;6675:127::-;6749:7;6776:9;:18;6786:7;6776:18;;;;;;;;;;;;;;;;6769:25;;6675:127;;;:::o;15920:368::-;15997:24;16024:32;16034:7;16043:12;:10;:12::i;:::-;16024:9;:32::i;:::-;15997:59;;16095:6;16075:16;:26;;16067:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16178:58;16187:7;16196:12;:10;:12::i;:::-;16229:6;16210:16;:25;16178:8;:58::i;:::-;16258:22;16264:7;16273:6;16258:5;:22::i;:::-;15986:302;15920:368;;:::o;16707:87::-;16753:7;16780:6;;;;;;;;;;;16773:13;;16707:87;:::o;18624:81::-;16938:12;:10;:12::i;:::-;16927:23;;:7;:5;:7::i;:::-;:23;;;16919:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18691:6:::1;18683:5;:14;;;;18624:81:::0;:::o;5603:104::-;5659:13;5692:7;5685:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5603:104;:::o;18294:17::-;;;;:::o;18349:267::-;18426:4;18412:18;;:10;;;;;;;;;;;:18;;;18404:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;18465:11;18487:19;18479:7;:27;;;;:::i;:::-;18465:41;;18546:6;18538:5;;:14;;;;:::i;:::-;18525:9;:27;;18517:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;18582:26;18588:10;18600:7;18582:5;:26::i;:::-;18393:223;18349:267;:::o;9821:413::-;9914:4;9931:24;9958:11;:25;9970:12;:10;:12::i;:::-;9958:25;;;;;;;;;;;;;;;:34;9984:7;9958:34;;;;;;;;;;;;;;;;9931:61;;10031:15;10011:16;:35;;10003:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10124:67;10133:12;:10;:12::i;:::-;10147:7;10175:15;10156:16;:34;10124:8;:67::i;:::-;10222:4;10215:11;;;9821:413;;;;:::o;7015:175::-;7101:4;7118:42;7128:12;:10;:12::i;:::-;7142:9;7153:6;7118:9;:42::i;:::-;7178:4;7171:11;;7015:175;;;;:::o;7253:151::-;7342:7;7369:11;:18;7381:5;7369:18;;;;;;;;;;;;;;;:27;7388:7;7369:27;;;;;;;;;;;;;;;;7362:34;;7253:151;;;;:::o;18912:111::-;16938:12;:10;:12::i;:::-;16927:23;;:7;:5;:7::i;:::-;:23;;;16919:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18986:29:::1;19005:9;18986:18;:29::i;:::-;18912:111:::0;:::o;18318:22::-;;;;;;;;;;;;;:::o;4390:98::-;4443:7;4470:10;4463:17;;4390:98;:::o;13505:380::-;13658:1;13641:19;;:5;:19;;;;13633:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13739:1;13720:21;;:7;:21;;;;13712:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13823:6;13793:11;:18;13805:5;13793:18;;;;;;;;;;;;;;;:27;13812:7;13793:27;;;;;;;;;;;;;;;:36;;;;13861:7;13845:32;;13854:5;13845:32;;;13870:6;13845:32;;;;;;:::i;:::-;;;;;;;;13505:380;;;:::o;10724:733::-;10882:1;10864:20;;:6;:20;;;;10856:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10966:1;10945:23;;:9;:23;;;;10937:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11021:47;11042:6;11050:9;11061:6;11021:20;:47::i;:::-;11081:21;11105:9;:17;11115:6;11105:17;;;;;;;;;;;;;;;;11081:41;;11158:6;11141:13;:23;;11133:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11279:6;11263:13;:22;11243:9;:17;11253:6;11243:17;;;;;;;;;;;;;;;:42;;;;11331:6;11307:9;:20;11317:9;11307:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11372:9;11355:35;;11364:6;11355:35;;;11383:6;11355:35;;;;;;:::i;:::-;;;;;;;;11403:46;11423:6;11431:9;11442:6;11403:19;:46::i;:::-;10845:612;10724:733;;;:::o;12476:591::-;12579:1;12560:21;;:7;:21;;;;12552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12632:49;12653:7;12670:1;12674:6;12632:20;:49::i;:::-;12694:22;12719:9;:18;12729:7;12719:18;;;;;;;;;;;;;;;;12694:43;;12774:6;12756:14;:24;;12748:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12893:6;12876:14;:23;12855:9;:18;12865:7;12855:18;;;;;;;;;;;;;;;:44;;;;12937:6;12921:12;;:22;;;;;;;:::i;:::-;;;;;;;;12987:1;12961:37;;12970:7;12961:37;;;12991:6;12961:37;;;;;;:::i;:::-;;;;;;;;13011:48;13031:7;13048:1;13052:6;13011:19;:48::i;:::-;12541:526;12476:591;;:::o;11744:399::-;11847:1;11828:21;;:7;:21;;;;11820:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11898:49;11927:1;11931:7;11940:6;11898:20;:49::i;:::-;11976:6;11960:12;;:22;;;;;;;:::i;:::-;;;;;;;;12015:6;11993:9;:18;12003:7;11993:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;12058:7;12037:37;;12054:1;12037:37;;;12067:6;12037:37;;;;;;:::i;:::-;;;;;;;;12087:48;12115:1;12119:7;12128:6;12087:19;:48::i;:::-;11744:399;;:::o;17979:191::-;18053:16;18072:6;;;;;;;;;;;18053:25;;18098:8;18089:6;;:17;;;;;;;;;;;;;;;;;;18153:8;18122:40;;18143:8;18122:40;;;;;;;;;;;;18042:128;17979:191;:::o;14485:125::-;;;;:::o;15214:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;291:139;;;;:::o;436:329::-;495:6;544:2;532:9;523:7;519:23;515:32;512:119;;;550:79;;:::i;:::-;512:119;670:1;695:53;740:7;731:6;720:9;716:22;695:53;:::i;:::-;685:63;;641:117;436:329;;;;:::o;771:474::-;839:6;847;896:2;884:9;875:7;871:23;867:32;864:119;;;902:79;;:::i;:::-;864:119;1022:1;1047:53;1092:7;1083:6;1072:9;1068:22;1047:53;:::i;:::-;1037:63;;993:117;1149:2;1175:53;1220:7;1211:6;1200:9;1196:22;1175:53;:::i;:::-;1165:63;;1120:118;771:474;;;;;:::o;1251:619::-;1328:6;1336;1344;1393:2;1381:9;1372:7;1368:23;1364:32;1361:119;;;1399:79;;:::i;:::-;1361:119;1519:1;1544:53;1589:7;1580:6;1569:9;1565:22;1544:53;:::i;:::-;1534:63;;1490:117;1646:2;1672:53;1717:7;1708:6;1697:9;1693:22;1672:53;:::i;:::-;1662:63;;1617:118;1774:2;1800:53;1845:7;1836:6;1825:9;1821:22;1800:53;:::i;:::-;1790:63;;1745:118;1251:619;;;;;:::o;1876:474::-;1944:6;1952;2001:2;1989:9;1980:7;1976:23;1972:32;1969:119;;;2007:79;;:::i;:::-;1969:119;2127:1;2152:53;2197:7;2188:6;2177:9;2173:22;2152:53;:::i;:::-;2142:63;;2098:117;2254:2;2280:53;2325:7;2316:6;2305:9;2301:22;2280:53;:::i;:::-;2270:63;;2225:118;1876:474;;;;;:::o;2356:323::-;2412:6;2461:2;2449:9;2440:7;2436:23;2432:32;2429:119;;;2467:79;;:::i;:::-;2429:119;2587:1;2612:50;2654:7;2645:6;2634:9;2630:22;2612:50;:::i;:::-;2602:60;;2558:114;2356:323;;;;:::o;2685:329::-;2744:6;2793:2;2781:9;2772:7;2768:23;2764:32;2761:119;;;2799:79;;:::i;:::-;2761:119;2919:1;2944:53;2989:7;2980:6;2969:9;2965:22;2944:53;:::i;:::-;2934:63;;2890:117;2685:329;;;;:::o;3020:118::-;3107:24;3125:5;3107:24;:::i;:::-;3102:3;3095:37;3020:118;;:::o;3144:109::-;3225:21;3240:5;3225:21;:::i;:::-;3220:3;3213:34;3144:109;;:::o;3259:364::-;3347:3;3375:39;3408:5;3375:39;:::i;:::-;3430:71;3494:6;3489:3;3430:71;:::i;:::-;3423:78;;3510:52;3555:6;3550:3;3543:4;3536:5;3532:16;3510:52;:::i;:::-;3587:29;3609:6;3587:29;:::i;:::-;3582:3;3578:39;3571:46;;3351:272;3259:364;;;;:::o;3629:366::-;3771:3;3792:67;3856:2;3851:3;3792:67;:::i;:::-;3785:74;;3868:93;3957:3;3868:93;:::i;:::-;3986:2;3981:3;3977:12;3970:19;;3629:366;;;:::o;4001:::-;4143:3;4164:67;4228:2;4223:3;4164:67;:::i;:::-;4157:74;;4240:93;4329:3;4240:93;:::i;:::-;4358:2;4353:3;4349:12;4342:19;;4001:366;;;:::o;4373:::-;4515:3;4536:67;4600:2;4595:3;4536:67;:::i;:::-;4529:74;;4612:93;4701:3;4612:93;:::i;:::-;4730:2;4725:3;4721:12;4714:19;;4373:366;;;:::o;4745:::-;4887:3;4908:67;4972:2;4967:3;4908:67;:::i;:::-;4901:74;;4984:93;5073:3;4984:93;:::i;:::-;5102:2;5097:3;5093:12;5086:19;;4745:366;;;:::o;5117:::-;5259:3;5280:67;5344:2;5339:3;5280:67;:::i;:::-;5273:74;;5356:93;5445:3;5356:93;:::i;:::-;5474:2;5469:3;5465:12;5458:19;;5117:366;;;:::o;5489:::-;5631:3;5652:67;5716:2;5711:3;5652:67;:::i;:::-;5645:74;;5728:93;5817:3;5728:93;:::i;:::-;5846:2;5841:3;5837:12;5830:19;;5489:366;;;:::o;5861:::-;6003:3;6024:67;6088:2;6083:3;6024:67;:::i;:::-;6017:74;;6100:93;6189:3;6100:93;:::i;:::-;6218:2;6213:3;6209:12;6202:19;;5861:366;;;:::o;6233:::-;6375:3;6396:67;6460:2;6455:3;6396:67;:::i;:::-;6389:74;;6472:93;6561:3;6472:93;:::i;:::-;6590:2;6585:3;6581:12;6574:19;;6233:366;;;:::o;6605:::-;6747:3;6768:67;6832:2;6827:3;6768:67;:::i;:::-;6761:74;;6844:93;6933:3;6844:93;:::i;:::-;6962:2;6957:3;6953:12;6946:19;;6605:366;;;:::o;6977:::-;7119:3;7140:67;7204:2;7199:3;7140:67;:::i;:::-;7133:74;;7216:93;7305:3;7216:93;:::i;:::-;7334:2;7329:3;7325:12;7318:19;;6977:366;;;:::o;7349:::-;7491:3;7512:67;7576:2;7571:3;7512:67;:::i;:::-;7505:74;;7588:93;7677:3;7588:93;:::i;:::-;7706:2;7701:3;7697:12;7690:19;;7349:366;;;:::o;7721:::-;7863:3;7884:67;7948:2;7943:3;7884:67;:::i;:::-;7877:74;;7960:93;8049:3;7960:93;:::i;:::-;8078:2;8073:3;8069:12;8062:19;;7721:366;;;:::o;8093:::-;8235:3;8256:67;8320:2;8315:3;8256:67;:::i;:::-;8249:74;;8332:93;8421:3;8332:93;:::i;:::-;8450:2;8445:3;8441:12;8434:19;;8093:366;;;:::o;8465:::-;8607:3;8628:67;8692:2;8687:3;8628:67;:::i;:::-;8621:74;;8704:93;8793:3;8704:93;:::i;:::-;8822:2;8817:3;8813:12;8806:19;;8465:366;;;:::o;8837:118::-;8924:24;8942:5;8924:24;:::i;:::-;8919:3;8912:37;8837:118;;:::o;8961:112::-;9044:22;9060:5;9044:22;:::i;:::-;9039:3;9032:35;8961:112;;:::o;9079:222::-;9172:4;9210:2;9199:9;9195:18;9187:26;;9223:71;9291:1;9280:9;9276:17;9267:6;9223:71;:::i;:::-;9079:222;;;;:::o;9307:210::-;9394:4;9432:2;9421:9;9417:18;9409:26;;9445:65;9507:1;9496:9;9492:17;9483:6;9445:65;:::i;:::-;9307:210;;;;:::o;9523:313::-;9636:4;9674:2;9663:9;9659:18;9651:26;;9723:9;9717:4;9713:20;9709:1;9698:9;9694:17;9687:47;9751:78;9824:4;9815:6;9751:78;:::i;:::-;9743:86;;9523:313;;;;:::o;9842:419::-;10008:4;10046:2;10035:9;10031:18;10023:26;;10095:9;10089:4;10085:20;10081:1;10070:9;10066:17;10059:47;10123:131;10249:4;10123:131;:::i;:::-;10115:139;;9842:419;;;:::o;10267:::-;10433:4;10471:2;10460:9;10456:18;10448:26;;10520:9;10514:4;10510:20;10506:1;10495:9;10491:17;10484:47;10548:131;10674:4;10548:131;:::i;:::-;10540:139;;10267:419;;;:::o;10692:::-;10858:4;10896:2;10885:9;10881:18;10873:26;;10945:9;10939:4;10935:20;10931:1;10920:9;10916:17;10909:47;10973:131;11099:4;10973:131;:::i;:::-;10965:139;;10692:419;;;:::o;11117:::-;11283:4;11321:2;11310:9;11306:18;11298:26;;11370:9;11364:4;11360:20;11356:1;11345:9;11341:17;11334:47;11398:131;11524:4;11398:131;:::i;:::-;11390:139;;11117:419;;;:::o;11542:::-;11708:4;11746:2;11735:9;11731:18;11723:26;;11795:9;11789:4;11785:20;11781:1;11770:9;11766:17;11759:47;11823:131;11949:4;11823:131;:::i;:::-;11815:139;;11542:419;;;:::o;11967:::-;12133:4;12171:2;12160:9;12156:18;12148:26;;12220:9;12214:4;12210:20;12206:1;12195:9;12191:17;12184:47;12248:131;12374:4;12248:131;:::i;:::-;12240:139;;11967:419;;;:::o;12392:::-;12558:4;12596:2;12585:9;12581:18;12573:26;;12645:9;12639:4;12635:20;12631:1;12620:9;12616:17;12609:47;12673:131;12799:4;12673:131;:::i;:::-;12665:139;;12392:419;;;:::o;12817:::-;12983:4;13021:2;13010:9;13006:18;12998:26;;13070:9;13064:4;13060:20;13056:1;13045:9;13041:17;13034:47;13098:131;13224:4;13098:131;:::i;:::-;13090:139;;12817:419;;;:::o;13242:::-;13408:4;13446:2;13435:9;13431:18;13423:26;;13495:9;13489:4;13485:20;13481:1;13470:9;13466:17;13459:47;13523:131;13649:4;13523:131;:::i;:::-;13515:139;;13242:419;;;:::o;13667:::-;13833:4;13871:2;13860:9;13856:18;13848:26;;13920:9;13914:4;13910:20;13906:1;13895:9;13891:17;13884:47;13948:131;14074:4;13948:131;:::i;:::-;13940:139;;13667:419;;;:::o;14092:::-;14258:4;14296:2;14285:9;14281:18;14273:26;;14345:9;14339:4;14335:20;14331:1;14320:9;14316:17;14309:47;14373:131;14499:4;14373:131;:::i;:::-;14365:139;;14092:419;;;:::o;14517:::-;14683:4;14721:2;14710:9;14706:18;14698:26;;14770:9;14764:4;14760:20;14756:1;14745:9;14741:17;14734:47;14798:131;14924:4;14798:131;:::i;:::-;14790:139;;14517:419;;;:::o;14942:::-;15108:4;15146:2;15135:9;15131:18;15123:26;;15195:9;15189:4;15185:20;15181:1;15170:9;15166:17;15159:47;15223:131;15349:4;15223:131;:::i;:::-;15215:139;;14942:419;;;:::o;15367:::-;15533:4;15571:2;15560:9;15556:18;15548:26;;15620:9;15614:4;15610:20;15606:1;15595:9;15591:17;15584:47;15648:131;15774:4;15648:131;:::i;:::-;15640:139;;15367:419;;;:::o;15792:222::-;15885:4;15923:2;15912:9;15908:18;15900:26;;15936:71;16004:1;15993:9;15989:17;15980:6;15936:71;:::i;:::-;15792:222;;;;:::o;16020:214::-;16109:4;16147:2;16136:9;16132:18;16124:26;;16160:67;16224:1;16213:9;16209:17;16200:6;16160:67;:::i;:::-;16020:214;;;;:::o;16321:99::-;16373:6;16407:5;16401:12;16391:22;;16321:99;;;:::o;16426:169::-;16510:11;16544:6;16539:3;16532:19;16584:4;16579:3;16575:14;16560:29;;16426:169;;;;:::o;16601:305::-;16641:3;16660:20;16678:1;16660:20;:::i;:::-;16655:25;;16694:20;16712:1;16694:20;:::i;:::-;16689:25;;16848:1;16780:66;16776:74;16773:1;16770:81;16767:107;;;16854:18;;:::i;:::-;16767:107;16898:1;16895;16891:9;16884:16;;16601:305;;;;:::o;16912:185::-;16952:1;16969:20;16987:1;16969:20;:::i;:::-;16964:25;;17003:20;17021:1;17003:20;:::i;:::-;16998:25;;17042:1;17032:35;;17047:18;;:::i;:::-;17032:35;17089:1;17086;17082:9;17077:14;;16912:185;;;;:::o;17103:348::-;17143:7;17166:20;17184:1;17166:20;:::i;:::-;17161:25;;17200:20;17218:1;17200:20;:::i;:::-;17195:25;;17388:1;17320:66;17316:74;17313:1;17310:81;17305:1;17298:9;17291:17;17287:105;17284:131;;;17395:18;;:::i;:::-;17284:131;17443:1;17440;17436:9;17425:20;;17103:348;;;;:::o;17457:191::-;17497:4;17517:20;17535:1;17517:20;:::i;:::-;17512:25;;17551:20;17569:1;17551:20;:::i;:::-;17546:25;;17590:1;17587;17584:8;17581:34;;;17595:18;;:::i;:::-;17581:34;17640:1;17637;17633:9;17625:17;;17457:191;;;;:::o;17654:96::-;17691:7;17720:24;17738:5;17720:24;:::i;:::-;17709:35;;17654:96;;;:::o;17756:90::-;17790:7;17833:5;17826:13;17819:21;17808:32;;17756:90;;;:::o;17852:126::-;17889:7;17929:42;17922:5;17918:54;17907:65;;17852:126;;;:::o;17984:77::-;18021:7;18050:5;18039:16;;17984:77;;;:::o;18067:86::-;18102:7;18142:4;18135:5;18131:16;18120:27;;18067:86;;;:::o;18159:307::-;18227:1;18237:113;18251:6;18248:1;18245:13;18237:113;;;18336:1;18331:3;18327:11;18321:18;18317:1;18312:3;18308:11;18301:39;18273:2;18270:1;18266:10;18261:15;;18237:113;;;18368:6;18365:1;18362:13;18359:101;;;18448:1;18439:6;18434:3;18430:16;18423:27;18359:101;18208:258;18159:307;;;:::o;18472:320::-;18516:6;18553:1;18547:4;18543:12;18533:22;;18600:1;18594:4;18590:12;18621:18;18611:81;;18677:4;18669:6;18665:17;18655:27;;18611:81;18739:2;18731:6;18728:14;18708:18;18705:38;18702:84;;;18758:18;;:::i;:::-;18702:84;18523:269;18472:320;;;:::o;18798:180::-;18846:77;18843:1;18836:88;18943:4;18940:1;18933:15;18967:4;18964:1;18957:15;18984:180;19032:77;19029:1;19022:88;19129:4;19126:1;19119:15;19153:4;19150:1;19143:15;19170:180;19218:77;19215:1;19208:88;19315:4;19312:1;19305:15;19339:4;19336:1;19329:15;19479:117;19588:1;19585;19578:12;19602:102;19643:6;19694:2;19690:7;19685:2;19678:5;19674:14;19670:28;19660:38;;19602:102;;;:::o;19710:222::-;19850:34;19846:1;19838:6;19834:14;19827:58;19919:5;19914:2;19906:6;19902:15;19895:30;19710:222;:::o;19938:221::-;20078:34;20074:1;20066:6;20062:14;20055:58;20147:4;20142:2;20134:6;20130:15;20123:29;19938:221;:::o;20165:::-;20305:34;20301:1;20293:6;20289:14;20282:58;20374:4;20369:2;20361:6;20357:15;20350:29;20165:221;:::o;20392:225::-;20532:34;20528:1;20520:6;20516:14;20509:58;20601:8;20596:2;20588:6;20584:15;20577:33;20392:225;:::o;20623:169::-;20763:21;20759:1;20751:6;20747:14;20740:45;20623:169;:::o;20798:164::-;20938:16;20934:1;20926:6;20922:14;20915:40;20798:164;:::o;20968:227::-;21108:34;21104:1;21096:6;21092:14;21085:58;21177:10;21172:2;21164:6;21160:15;21153:35;20968:227;:::o;21201:182::-;21341:34;21337:1;21329:6;21325:14;21318:58;21201:182;:::o;21389:223::-;21529:34;21525:1;21517:6;21513:14;21506:58;21598:6;21593:2;21585:6;21581:15;21574:31;21389:223;:::o;21618:220::-;21758:34;21754:1;21746:6;21742:14;21735:58;21827:3;21822:2;21814:6;21810:15;21803:28;21618:220;:::o;21844:224::-;21984:34;21980:1;21972:6;21968:14;21961:58;22053:7;22048:2;22040:6;22036:15;22029:32;21844:224;:::o;22074:223::-;22214:34;22210:1;22202:6;22198:14;22191:58;22283:6;22278:2;22270:6;22266:15;22259:31;22074:223;:::o;22303:224::-;22443:34;22439:1;22431:6;22427:14;22420:58;22512:7;22507:2;22499:6;22495:15;22488:32;22303:224;:::o;22533:181::-;22673:33;22669:1;22661:6;22657:14;22650:57;22533:181;:::o;22720:122::-;22793:24;22811:5;22793:24;:::i;:::-;22786:5;22783:35;22773:63;;22832:1;22829;22822:12;22773:63;22720:122;:::o;22848:116::-;22918:21;22933:5;22918:21;:::i;:::-;22911:5;22908:32;22898:60;;22954:1;22951;22944:12;22898:60;22848:116;:::o;22970:122::-;23043:24;23061:5;23043:24;:::i;:::-;23036:5;23033:35;23023:63;;23082:1;23079;23072:12;23023:63;22970:122;:::o

Swarm Source

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