BNB Price: $722.01 (+1.76%)
Gas: 1 GWei
 

Overview

Max Total Supply

92,190,359.487152AGI

Holders

10,827 ( 0.018%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Delysium is building AI-powered virtual society with $AGI. Delysium has been constructing a virtual world where 1 billion individuals and 100 billion AI Virtual Beings coexist on blockchain.

Market

Volume (24H):$0.00
Market Capitalization:$0.00
Circulating Supply:0.00 AGI
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information

Contract Source Code Verified (Exact Match)

Contract Name:
AnyswapV6ERC20

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2023-04-06
*/

/**
 *Submitted for verification at Etherscan.io on 2022-11-24
*/

/**
 *Submitted for verification at BscScan.com on 2022-05-20
*/

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity ^0.8.2;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract AnyswapV6ERC20 is IERC20 {
    using SafeERC20 for IERC20;
    string public name;
    string public symbol;
    uint8  public immutable override decimals;

    address public immutable underlying;
    bool public constant underlyingIsMinted = false;

    /// @dev Records amount of AnyswapV6ERC20 token owned by account.
    mapping (address => uint256) public override balanceOf;
    uint256 private _totalSupply;

    // init flag for setting immediate vault, needed for CREATE2 support
    bool private _init;

    // flag to enable/disable swapout vs vault.burn so multiple events are triggered
    bool private _vaultOnly;

    // delay for timelock functions
    uint public constant DELAY = 2 days;

    // set of minters, can be this bridge or other bridges
    mapping(address => bool) public isMinter;
    address[] public minters;

    // primary controller of the token contract
    address public vault;

    address public pendingMinter;
    uint public delayMinter;

    address public pendingVault;
    uint public delayVault;

    modifier onlyAuth() {
        require(isMinter[msg.sender], "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    modifier onlyVault() {
        require(msg.sender == vault, "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    function owner() external view returns (address) {
        return vault;
    }

    function mpc() external view returns (address) {
        return vault;
    }

    function setVaultOnly(bool enabled) external onlyVault {
        _vaultOnly = enabled;
    }

    function initVault(address _vault) external onlyVault {
        require(_init);
        _init = false;
        vault = _vault;
        isMinter[_vault] = true;
        minters.push(_vault);
    }

    function setVault(address _vault) external onlyVault {
        require(_vault != address(0), "AnyswapV6ERC20: address(0)");
        pendingVault = _vault;
        delayVault = block.timestamp + DELAY;
    }

    function applyVault() external onlyVault {
        require(pendingVault != address(0) && block.timestamp >= delayVault);
        vault = pendingVault;

        pendingVault = address(0);
        delayVault = 0;
    }

    function setMinter(address _auth) external onlyVault {
        require(_auth != address(0), "AnyswapV6ERC20: address(0)");
        pendingMinter = _auth;
        delayMinter = block.timestamp + DELAY;
    }

    function applyMinter() external onlyVault {
        require(pendingMinter != address(0) && block.timestamp >= delayMinter);
        isMinter[pendingMinter] = true;
        minters.push(pendingMinter);

        pendingMinter = address(0);
        delayMinter = 0;
    }

    // No time delay revoke minter emergency function
    function revokeMinter(address _auth) external onlyVault {
        isMinter[_auth] = false;
    }

    function getAllMinters() external view returns (address[] memory) {
        return minters;
    }

    function changeVault(address newVault) external onlyVault returns (bool) {
        require(newVault != address(0), "AnyswapV6ERC20: address(0)");
        emit LogChangeVault(vault, newVault, block.timestamp);
        vault = newVault;
        pendingVault = address(0);
        delayVault = 0;
        return true;
    }

    function mint(address to, uint256 amount) external onlyAuth returns (bool) {
        _mint(to, amount);
        return true;
    }

    function burn(address from, uint256 amount) external onlyAuth returns (bool) {
        _burn(from, amount);
        return true;
    }

    function Swapin(bytes32 txhash, address account, uint256 amount) external onlyAuth returns (bool) {
        if (underlying != address(0) && IERC20(underlying).balanceOf(address(this)) >= amount) {
            IERC20(underlying).safeTransfer(account, amount);
        } else {
            _mint(account, amount);
        }
        emit LogSwapin(txhash, account, amount);
        return true;
    }

    function Swapout(uint256 amount, address bindaddr) external returns (bool) {
        require(!_vaultOnly, "AnyswapV6ERC20: vaultOnly");
        require(bindaddr != address(0), "AnyswapV6ERC20: address(0)");
        if (underlying != address(0) && balanceOf[msg.sender] < amount) {
            IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        } else {
            _burn(msg.sender, amount);
        }
        emit LogSwapout(msg.sender, bindaddr, amount);
        return true;
    }

    /// @dev Records number of AnyswapV6ERC20 token that account (second) will be allowed to spend on behalf of another account (first) through {transferFrom}.
    mapping (address => mapping (address => uint256)) public override allowance;

    event LogChangeVault(address indexed oldVault, address indexed newVault, uint indexed effectiveTime);
    event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount);
    event LogSwapout(address indexed account, address indexed bindaddr, uint amount);

    constructor(string memory _name, string memory _symbol, uint8 _decimals, address _underlying, address _vault) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        underlying = _underlying;
        if (_underlying != address(0)) {
            require(_decimals == IERC20(_underlying).decimals());
        }

        // Use init to allow for CREATE2 accross all chains
        _init = true;

        // Disable/Enable swapout for v1 tokens vs mint/burn for v3 tokens
        _vaultOnly = false;

        vault = _vault;
    }

    /// @dev Returns the total supply of AnyswapV6ERC20 token as the ETH held in this contract.
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function deposit() external returns (uint) {
        uint _amount = IERC20(underlying).balanceOf(msg.sender);
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount);
        return _deposit(_amount, msg.sender);
    }

    function deposit(uint amount) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, msg.sender);
    }

    function deposit(uint amount, address to) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, to);
    }

    function depositVault(uint amount, address to) external onlyVault returns (uint) {
        return _deposit(amount, to);
    }

    function _deposit(uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _mint(to, amount);
        return amount;
    }

    function withdraw() external returns (uint) {
        return _withdraw(msg.sender, balanceOf[msg.sender], msg.sender);
    }

    function withdraw(uint amount) external returns (uint) {
        return _withdraw(msg.sender, amount, msg.sender);
    }

    function withdraw(uint amount, address to) external returns (uint) {
        return _withdraw(msg.sender, amount, to);
    }

    function withdrawVault(address from, uint amount, address to) external onlyVault returns (uint) {
        return _withdraw(from, amount, to);
    }

    function _withdraw(address from, uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _burn(from, amount);
        IERC20(underlying).safeTransfer(to, amount);
        return 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
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        balanceOf[account] += amount;
        emit Transfer(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 {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 balance = balanceOf[account];
        require(balance >= amount, "ERC20: burn amount exceeds balance");

        balanceOf[account] = balance - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV6ERC20 token.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    function approve(address spender, uint256 value) external override returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from caller's account to account (`to`).
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` AnyswapV6ERC20 token.
    function transfer(address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from account (`from`) to account (`to`) using allowance mechanism.
    /// `value` is then deducted from caller account's allowance, unless set to `type(uint256).max`.
    /// Emits {Approval} event to reflect reduced allowance `value` for caller account to spend from account (`from`),
    /// unless allowance is set to `type(uint256).max`
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - `from` account must have at least `value` balance of AnyswapV6ERC20 token.
    ///   - `from` account must have approved caller to spend at least `value` of AnyswapV6ERC20 token, unless `from` and caller are the same account.
    function transferFrom(address from, address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        if (from != msg.sender) {
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "AnyswapV6ERC20: request exceeds allowance");
                uint256 reduced = allowed - value;
                allowance[from][msg.sender] = reduced;
                emit Approval(from, msg.sender, reduced);
            }
        }

        uint256 balance = balanceOf[from];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[from] = balance - value;
        balanceOf[to] += value;
        emit Transfer(from, to, value);

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"address","name":"_vault","type":"address"}],"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":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","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":"DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayMinter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"depositVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllMinters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"initVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"pendingMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"revokeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setVaultOnly","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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"underlyingIsMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b506040516200223538038062002235833981016040819052620000349162000213565b600062000042868262000344565b50600162000051858262000344565b5060ff83166080526001600160a01b03821660a081905215620000e557816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d3919062000410565b60ff168360ff1614620000e557600080fd5b6004805461ffff19166001179055600780546001600160a01b039092166001600160a01b0319909216919091179055506200043592505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200014757600080fd5b81516001600160401b03808211156200016457620001646200011f565b604051601f8301601f19908116603f011681019082821181831017156200018f576200018f6200011f565b81604052838152602092508683858801011115620001ac57600080fd5b600091505b83821015620001d05785820183015181830184015290820190620001b1565b600093810190920192909252949350505050565b805160ff81168114620001f657600080fd5b919050565b80516001600160a01b0381168114620001f657600080fd5b600080600080600060a086880312156200022c57600080fd5b85516001600160401b03808211156200024457600080fd5b6200025289838a0162000135565b965060208801519150808211156200026957600080fd5b50620002788882890162000135565b9450506200028960408701620001e4565b92506200029960608701620001fb565b9150620002a960808701620001fb565b90509295509295909350565b600181811c90821680620002ca57607f821691505b602082108103620002eb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200033f57600081815260208120601f850160051c810160208610156200031a5750805b601f850160051c820191505b818110156200033b5782815560010162000326565b5050505b505050565b81516001600160401b038111156200036057620003606200011f565b6200037881620003718454620002b5565b84620002f1565b602080601f831160018114620003b05760008415620003975750858301515b600019600386901b1c1916600185901b1785556200033b565b600085815260208120601f198616915b82811015620003e157888601518255948401946001909101908401620003c0565b5085821015620004005787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200042357600080fd5b6200042e82620001e4565b9392505050565b60805160a051611d78620004bd600039600081816103f701528181610c4801528181610c9e01528181610d9f01528181610f890152818161109901528181611113015281816111f70152818161123f015281816112c7015281816113bb015281816113ee0152818161143a015281816116f00152611723015260006103220152611d786000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c806387689e2811610146578063c3081240116100c3578063d93f244511610087578063d93f244514610544578063dd62ed3e1461054c578063ec126c7714610577578063f75c266414610455578063fbfa77cf1461058a578063fca3b5aa1461059d57600080fd5b8063c308124014610505578063c4b740f51461050e578063cfbd488514610521578063d0e30db014610534578063d6c797511461053c57600080fd5b8063a045442c1161010a578063a045442c14610494578063a9059cbb146104a9578063aa271e1a146104bc578063b6b55f25146104df578063bebbf4d0146104f257600080fd5b806387689e281461044c5780638da5cb5b1461045557806391c5df491461046657806395d89b41146104795780639dc29fac1461048157600080fd5b80633ccfd60b116101df5780636817031b116101a35780636817031b146103c257806369b41170146103d55780636e553f65146103df5780636f307dc3146103f257806370a08231146104195780638623ec7b1461043957600080fd5b80633ccfd60b1461035657806340c10f191461035e57806352113ba71461037157806360e232a91461039c578063628d6cba146103af57600080fd5b806318160ddd1161022657806318160ddd146102dc57806323b872dd146102e45780632e1a7d4d146102f75780632ebe3fbb1461030a578063313ce5671461031d57600080fd5b806239d6ec14610261578062f714ce1461028757806306fdde031461029a578063095ea7b3146102af5780630d707df8146102d2575b600080fd5b61027461026f366004611973565b6105b0565b6040519081526020015b60405180910390f35b6102746102953660046119af565b6105f9565b6102a261060f565b60405161027e91906119ff565b6102c26102bd366004611a32565b61069d565b604051901515815260200161027e565b6102da610709565b005b600354610274565b6102c26102f2366004611a5c565b6107d8565b610274610305366004611a98565b6109d6565b6102da610318366004611ab1565b6109e3565b6103447f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161027e565b610274610a9d565b6102c261036c366004611a32565b610abe565b600a54610384906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b6102c26103aa366004611ab1565b610b00565b6102c26103bd3660046119af565b610bc5565b6102da6103d0366004611ab1565b610d12565b6102746202a30081565b6102746103ed3660046119af565b610d90565b6103847f000000000000000000000000000000000000000000000000000000000000000081565b610274610427366004611ab1565b60026020526000908152604090205481565b610384610447366004611a98565b610dd1565b610274600b5481565b6007546001600160a01b0316610384565b600854610384906001600160a01b031681565b6102a2610dfb565b6102c261048f366004611a32565b610e08565b61049c610e41565b60405161027e9190611acc565b6102c26104b7366004611a32565b610ea3565b6102c26104ca366004611ab1565b60056020526000908152604090205460ff1681565b6102746104ed366004611a98565b610f7a565b6102746105003660046119af565b610fbb565b61027460095481565b6102da61051c366004611b2a565b610fe8565b6102da61052f366004611ab1565b61102c565b610274611077565b6102c2600081565b6102da61114b565b61027461055a366004611b4e565b600c60209081526000928352604080842090915290825290205481565b6102c2610585366004611b78565b6111c6565b600754610384906001600160a01b031681565b6102da6105ab366004611ab1565b611339565b6007546000906001600160a01b031633146105e65760405162461bcd60e51b81526004016105dd90611b9d565b60405180910390fd5b6105f18484846113b7565b949350505050565b60006106063384846113b7565b90505b92915050565b6000805461061c90611bd4565b80601f016020809104026020016040519081016040528092919081815260200182805461064890611bd4565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b505050505081565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106f89086815260200190565b60405180910390a350600192915050565b6007546001600160a01b031633146107335760405162461bcd60e51b81526004016105dd90611b9d565b6008546001600160a01b03161580159061074f57506009544210155b61075857600080fd5b600880546001600160a01b0390811660009081526005602052604081208054600160ff199091168117909155835460068054928301815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054919093166001600160a01b0319918216179092558254909116909155600955565b60006001600160a01b038316158015906107fb57506001600160a01b0383163014155b61080457600080fd5b6001600160a01b0384163314610910576001600160a01b0384166000908152600c60209081526040808320338452909152902054600019811461090e57828110156108a35760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563645524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016105dd565b60006108af8483611c24565b6001600160a01b0387166000818152600c6020908152604080832033808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156109495760405162461bcd60e51b81526004016105dd90611c37565b6109538382611c24565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610989908490611c86565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611d23833981519152856040516109c391815260200190565b60405180910390a3506001949350505050565b60006106093383336113b7565b6007546001600160a01b03163314610a0d5760405162461bcd60e51b81526004016105dd90611b9d565b60045460ff16610a1c57600080fd5b6004805460ff19908116909155600780546001600160a01b039093166001600160a01b0319938416811790915560008181526005602052604081208054909316600190811790935560068054938401815590527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054909216179055565b336000818152600260205260408120549091610ab991816113b7565b905090565b3360009081526005602052604081205460ff16610aed5760405162461bcd60e51b81526004016105dd90611b9d565b610af78383611469565b50600192915050565b6007546000906001600160a01b03163314610b2d5760405162461bcd60e51b81526004016105dd90611b9d565b6001600160a01b038216610b535760405162461bcd60e51b81526004016105dd90611c99565b60075460405142916001600160a01b03808616929116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a450600780546001600160a01b0383166001600160a01b031991821617909155600a805490911690556000600b5560015b919050565b600454600090610100900460ff1615610c205760405162461bcd60e51b815260206004820152601960248201527f416e7973776170563645524332303a207661756c744f6e6c790000000000000060448201526064016105dd565b6001600160a01b038216610c465760405162461bcd60e51b81526004016105dd90611c99565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610c8c57503360009081526002602052604090205483115b15610ccb57610cc66001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086611536565b610cd5565b610cd533846115a7565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888906020016106f8565b6007546001600160a01b03163314610d3c5760405162461bcd60e51b81526004016105dd90611b9d565b6001600160a01b038116610d625760405162461bcd60e51b81526004016105dd90611c99565b600a80546001600160a01b0319166001600160a01b038316179055610d8a6202a30042611c86565b600b5550565b6000610dc76001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086611536565b61060683836116ec565b60068181548110610de157600080fd5b6000918252602090912001546001600160a01b0316905081565b6001805461061c90611bd4565b3360009081526005602052604081205460ff16610e375760405162461bcd60e51b81526004016105dd90611b9d565b610af783836115a7565b60606006805480602002602001604051908101604052809291908181526020018280548015610e9957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e7b575b5050505050905090565b60006001600160a01b03831615801590610ec657506001600160a01b0383163014155b610ecf57600080fd5b3360009081526002602052604090205482811015610eff5760405162461bcd60e51b81526004016105dd90611c37565b610f098382611c24565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610f3c908490611c86565b90915550506040518381526001600160a01b038516903390600080516020611d23833981519152906020015b60405180910390a35060019392505050565b6000610fb16001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611536565b61060982336116ec565b6007546000906001600160a01b03163314610dc75760405162461bcd60e51b81526004016105dd90611b9d565b6007546001600160a01b031633146110125760405162461bcd60e51b81526004016105dd90611b9d565b600480549115156101000261ff0019909216919091179055565b6007546001600160a01b031633146110565760405162461bcd60e51b81526004016105dd90611b9d565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190611cd0565b905061113b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084611536565b61114581336116ec565b91505090565b6007546001600160a01b031633146111755760405162461bcd60e51b81526004016105dd90611b9d565b600a546001600160a01b0316158015906111915750600b544210155b61119a57600080fd5b600a8054600780546001600160a01b03199081166001600160a01b038416179091551690556000600b55565b3360009081526005602052604081205460ff166111f55760405162461bcd60e51b81526004016105dd90611b9d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906112b557506040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b29190611cd0565b10155b156112f3576112ee6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484611769565b6112fd565b6112fd8383611469565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610f6891815260200190565b6007546001600160a01b031633146113635760405162461bcd60e51b81526004016105dd90611b9d565b6001600160a01b0381166113895760405162461bcd60e51b81526004016105dd90611c99565b600880546001600160a01b0319166001600160a01b0383161790556113b16202a30042611c86565b60095550565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061141a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61142357600080fd5b61142d84846115a7565b6114616001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168385611769565b509092915050565b6001600160a01b0382166114bf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105dd565b80600360008282546114d19190611c86565b90915550506001600160a01b038216600090815260026020526040812080548392906114fe908490611c86565b90915550506040518181526001600160a01b03831690600090600080516020611d238339815191529060200160405180910390a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526115a19085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261179e565b50505050565b6001600160a01b0382166116075760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105dd565b6001600160a01b0382166000908152600260205260409020548181101561167b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105dd565b6116858282611c24565b6001600160a01b038416600090815260026020526040812091909155600380548492906116b3908490611c24565b90915550506040518281526000906001600160a01b03851690600080516020611d238339815191529060200160405180910390a3505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061174f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61175857600080fd5b6117628284611469565b5090919050565b6040516001600160a01b03831660248201526044810182905261179990849063a9059cbb60e01b9060640161156a565b505050565b6117b0826001600160a01b0316611925565b6117fc5760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016105dd565b600080836001600160a01b0316836040516118179190611ce9565b6000604051808303816000865af19150503d8060008114611854576040519150601f19603f3d011682016040523d82523d6000602084013e611859565b606091505b5091509150816118ab5760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016105dd565b8051156115a157808060200190518101906118c69190611d05565b6115a15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105dd565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906105f15750141592915050565b80356001600160a01b0381168114610bc057600080fd5b60008060006060848603121561198857600080fd5b6119918461195c565b9250602084013591506119a66040850161195c565b90509250925092565b600080604083850312156119c257600080fd5b823591506119d26020840161195c565b90509250929050565b60005b838110156119f65781810151838201526020016119de565b50506000910152565b6020815260008251806020840152611a1e8160408501602087016119db565b601f01601f19169190910160400192915050565b60008060408385031215611a4557600080fd5b611a4e8361195c565b946020939093013593505050565b600080600060608486031215611a7157600080fd5b611a7a8461195c565b9250611a886020850161195c565b9150604084013590509250925092565b600060208284031215611aaa57600080fd5b5035919050565b600060208284031215611ac357600080fd5b6106068261195c565b6020808252825182820181905260009190848201906040850190845b81811015611b0d5783516001600160a01b031683529284019291840191600101611ae8565b50909695505050505050565b8015158114611b2757600080fd5b50565b600060208284031215611b3c57600080fd5b8135611b4781611b19565b9392505050565b60008060408385031215611b6157600080fd5b611b6a8361195c565b91506119d26020840161195c565b600080600060608486031215611b8d57600080fd5b83359250611a886020850161195c565b60208082526019908201527f416e7973776170563645524332303a20464f5242494444454e00000000000000604082015260600190565b600181811c90821680611be857607f821691505b602082108103611c0857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561060957610609611c0e565b6020808252602f908201527f416e7973776170563645524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b8082018082111561060957610609611c0e565b6020808252601a908201527f416e7973776170563645524332303a2061646472657373283029000000000000604082015260600190565b600060208284031215611ce257600080fd5b5051919050565b60008251611cfb8184602087016119db565b9190910192915050565b600060208284031215611d1757600080fd5b8151611b4781611b1956feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a3403c9d66c38f3fceccb728ee879ce7ba5795fa6fc035ab5e9eab199f29101264736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000941474920546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034147490000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025c5760003560e01c806387689e2811610146578063c3081240116100c3578063d93f244511610087578063d93f244514610544578063dd62ed3e1461054c578063ec126c7714610577578063f75c266414610455578063fbfa77cf1461058a578063fca3b5aa1461059d57600080fd5b8063c308124014610505578063c4b740f51461050e578063cfbd488514610521578063d0e30db014610534578063d6c797511461053c57600080fd5b8063a045442c1161010a578063a045442c14610494578063a9059cbb146104a9578063aa271e1a146104bc578063b6b55f25146104df578063bebbf4d0146104f257600080fd5b806387689e281461044c5780638da5cb5b1461045557806391c5df491461046657806395d89b41146104795780639dc29fac1461048157600080fd5b80633ccfd60b116101df5780636817031b116101a35780636817031b146103c257806369b41170146103d55780636e553f65146103df5780636f307dc3146103f257806370a08231146104195780638623ec7b1461043957600080fd5b80633ccfd60b1461035657806340c10f191461035e57806352113ba71461037157806360e232a91461039c578063628d6cba146103af57600080fd5b806318160ddd1161022657806318160ddd146102dc57806323b872dd146102e45780632e1a7d4d146102f75780632ebe3fbb1461030a578063313ce5671461031d57600080fd5b806239d6ec14610261578062f714ce1461028757806306fdde031461029a578063095ea7b3146102af5780630d707df8146102d2575b600080fd5b61027461026f366004611973565b6105b0565b6040519081526020015b60405180910390f35b6102746102953660046119af565b6105f9565b6102a261060f565b60405161027e91906119ff565b6102c26102bd366004611a32565b61069d565b604051901515815260200161027e565b6102da610709565b005b600354610274565b6102c26102f2366004611a5c565b6107d8565b610274610305366004611a98565b6109d6565b6102da610318366004611ab1565b6109e3565b6103447f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff909116815260200161027e565b610274610a9d565b6102c261036c366004611a32565b610abe565b600a54610384906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b6102c26103aa366004611ab1565b610b00565b6102c26103bd3660046119af565b610bc5565b6102da6103d0366004611ab1565b610d12565b6102746202a30081565b6102746103ed3660046119af565b610d90565b6103847f000000000000000000000000000000000000000000000000000000000000000081565b610274610427366004611ab1565b60026020526000908152604090205481565b610384610447366004611a98565b610dd1565b610274600b5481565b6007546001600160a01b0316610384565b600854610384906001600160a01b031681565b6102a2610dfb565b6102c261048f366004611a32565b610e08565b61049c610e41565b60405161027e9190611acc565b6102c26104b7366004611a32565b610ea3565b6102c26104ca366004611ab1565b60056020526000908152604090205460ff1681565b6102746104ed366004611a98565b610f7a565b6102746105003660046119af565b610fbb565b61027460095481565b6102da61051c366004611b2a565b610fe8565b6102da61052f366004611ab1565b61102c565b610274611077565b6102c2600081565b6102da61114b565b61027461055a366004611b4e565b600c60209081526000928352604080842090915290825290205481565b6102c2610585366004611b78565b6111c6565b600754610384906001600160a01b031681565b6102da6105ab366004611ab1565b611339565b6007546000906001600160a01b031633146105e65760405162461bcd60e51b81526004016105dd90611b9d565b60405180910390fd5b6105f18484846113b7565b949350505050565b60006106063384846113b7565b90505b92915050565b6000805461061c90611bd4565b80601f016020809104026020016040519081016040528092919081815260200182805461064890611bd4565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b505050505081565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106f89086815260200190565b60405180910390a350600192915050565b6007546001600160a01b031633146107335760405162461bcd60e51b81526004016105dd90611b9d565b6008546001600160a01b03161580159061074f57506009544210155b61075857600080fd5b600880546001600160a01b0390811660009081526005602052604081208054600160ff199091168117909155835460068054928301815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054919093166001600160a01b0319918216179092558254909116909155600955565b60006001600160a01b038316158015906107fb57506001600160a01b0383163014155b61080457600080fd5b6001600160a01b0384163314610910576001600160a01b0384166000908152600c60209081526040808320338452909152902054600019811461090e57828110156108a35760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563645524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016105dd565b60006108af8483611c24565b6001600160a01b0387166000818152600c6020908152604080832033808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156109495760405162461bcd60e51b81526004016105dd90611c37565b6109538382611c24565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610989908490611c86565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611d23833981519152856040516109c391815260200190565b60405180910390a3506001949350505050565b60006106093383336113b7565b6007546001600160a01b03163314610a0d5760405162461bcd60e51b81526004016105dd90611b9d565b60045460ff16610a1c57600080fd5b6004805460ff19908116909155600780546001600160a01b039093166001600160a01b0319938416811790915560008181526005602052604081208054909316600190811790935560068054938401815590527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054909216179055565b336000818152600260205260408120549091610ab991816113b7565b905090565b3360009081526005602052604081205460ff16610aed5760405162461bcd60e51b81526004016105dd90611b9d565b610af78383611469565b50600192915050565b6007546000906001600160a01b03163314610b2d5760405162461bcd60e51b81526004016105dd90611b9d565b6001600160a01b038216610b535760405162461bcd60e51b81526004016105dd90611c99565b60075460405142916001600160a01b03808616929116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a450600780546001600160a01b0383166001600160a01b031991821617909155600a805490911690556000600b5560015b919050565b600454600090610100900460ff1615610c205760405162461bcd60e51b815260206004820152601960248201527f416e7973776170563645524332303a207661756c744f6e6c790000000000000060448201526064016105dd565b6001600160a01b038216610c465760405162461bcd60e51b81526004016105dd90611c99565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610c8c57503360009081526002602052604090205483115b15610ccb57610cc66001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086611536565b610cd5565b610cd533846115a7565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888906020016106f8565b6007546001600160a01b03163314610d3c5760405162461bcd60e51b81526004016105dd90611b9d565b6001600160a01b038116610d625760405162461bcd60e51b81526004016105dd90611c99565b600a80546001600160a01b0319166001600160a01b038316179055610d8a6202a30042611c86565b600b5550565b6000610dc76001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086611536565b61060683836116ec565b60068181548110610de157600080fd5b6000918252602090912001546001600160a01b0316905081565b6001805461061c90611bd4565b3360009081526005602052604081205460ff16610e375760405162461bcd60e51b81526004016105dd90611b9d565b610af783836115a7565b60606006805480602002602001604051908101604052809291908181526020018280548015610e9957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e7b575b5050505050905090565b60006001600160a01b03831615801590610ec657506001600160a01b0383163014155b610ecf57600080fd5b3360009081526002602052604090205482811015610eff5760405162461bcd60e51b81526004016105dd90611c37565b610f098382611c24565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610f3c908490611c86565b90915550506040518381526001600160a01b038516903390600080516020611d23833981519152906020015b60405180910390a35060019392505050565b6000610fb16001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611536565b61060982336116ec565b6007546000906001600160a01b03163314610dc75760405162461bcd60e51b81526004016105dd90611b9d565b6007546001600160a01b031633146110125760405162461bcd60e51b81526004016105dd90611b9d565b600480549115156101000261ff0019909216919091179055565b6007546001600160a01b031633146110565760405162461bcd60e51b81526004016105dd90611b9d565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190611cd0565b905061113b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084611536565b61114581336116ec565b91505090565b6007546001600160a01b031633146111755760405162461bcd60e51b81526004016105dd90611b9d565b600a546001600160a01b0316158015906111915750600b544210155b61119a57600080fd5b600a8054600780546001600160a01b03199081166001600160a01b038416179091551690556000600b55565b3360009081526005602052604081205460ff166111f55760405162461bcd60e51b81526004016105dd90611b9d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906112b557506040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b29190611cd0565b10155b156112f3576112ee6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484611769565b6112fd565b6112fd8383611469565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610f6891815260200190565b6007546001600160a01b031633146113635760405162461bcd60e51b81526004016105dd90611b9d565b6001600160a01b0381166113895760405162461bcd60e51b81526004016105dd90611c99565b600880546001600160a01b0319166001600160a01b0383161790556113b16202a30042611c86565b60095550565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061141a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61142357600080fd5b61142d84846115a7565b6114616001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168385611769565b509092915050565b6001600160a01b0382166114bf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105dd565b80600360008282546114d19190611c86565b90915550506001600160a01b038216600090815260026020526040812080548392906114fe908490611c86565b90915550506040518181526001600160a01b03831690600090600080516020611d238339815191529060200160405180910390a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526115a19085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261179e565b50505050565b6001600160a01b0382166116075760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105dd565b6001600160a01b0382166000908152600260205260409020548181101561167b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105dd565b6116858282611c24565b6001600160a01b038416600090815260026020526040812091909155600380548492906116b3908490611c24565b90915550506040518281526000906001600160a01b03851690600080516020611d238339815191529060200160405180910390a3505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061174f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61175857600080fd5b6117628284611469565b5090919050565b6040516001600160a01b03831660248201526044810182905261179990849063a9059cbb60e01b9060640161156a565b505050565b6117b0826001600160a01b0316611925565b6117fc5760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016105dd565b600080836001600160a01b0316836040516118179190611ce9565b6000604051808303816000865af19150503d8060008114611854576040519150601f19603f3d011682016040523d82523d6000602084013e611859565b606091505b5091509150816118ab5760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016105dd565b8051156115a157808060200190518101906118c69190611d05565b6115a15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105dd565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906105f15750141592915050565b80356001600160a01b0381168114610bc057600080fd5b60008060006060848603121561198857600080fd5b6119918461195c565b9250602084013591506119a66040850161195c565b90509250925092565b600080604083850312156119c257600080fd5b823591506119d26020840161195c565b90509250929050565b60005b838110156119f65781810151838201526020016119de565b50506000910152565b6020815260008251806020840152611a1e8160408501602087016119db565b601f01601f19169190910160400192915050565b60008060408385031215611a4557600080fd5b611a4e8361195c565b946020939093013593505050565b600080600060608486031215611a7157600080fd5b611a7a8461195c565b9250611a886020850161195c565b9150604084013590509250925092565b600060208284031215611aaa57600080fd5b5035919050565b600060208284031215611ac357600080fd5b6106068261195c565b6020808252825182820181905260009190848201906040850190845b81811015611b0d5783516001600160a01b031683529284019291840191600101611ae8565b50909695505050505050565b8015158114611b2757600080fd5b50565b600060208284031215611b3c57600080fd5b8135611b4781611b19565b9392505050565b60008060408385031215611b6157600080fd5b611b6a8361195c565b91506119d26020840161195c565b600080600060608486031215611b8d57600080fd5b83359250611a886020850161195c565b60208082526019908201527f416e7973776170563645524332303a20464f5242494444454e00000000000000604082015260600190565b600181811c90821680611be857607f821691505b602082108103611c0857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561060957610609611c0e565b6020808252602f908201527f416e7973776170563645524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b8082018082111561060957610609611c0e565b6020808252601a908201527f416e7973776170563645524332303a2061646472657373283029000000000000604082015260600190565b600060208284031215611ce257600080fd5b5051919050565b60008251611cfb8184602087016119db565b9190910192915050565b600060208284031215611d1757600080fd5b8151611b4781611b1956feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a3403c9d66c38f3fceccb728ee879ce7ba5795fa6fc035ab5e9eab199f29101264736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000941474920546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034147490000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): AGI Token
Arg [1] : _symbol (string): AGI
Arg [2] : _decimals (uint8): 18
Arg [3] : _underlying (address): 0x0000000000000000000000000000000000000000
Arg [4] : _vault (address): 0xfA9dA51631268A30Ec3DDd1CcBf46c65FAD99251

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [6] : 41474920546f6b656e0000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [8] : 4147490000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

2831:11904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10172:149;;;;;;:::i;:::-;;:::i;:::-;;;671:25:1;;;659:2;644:18;10172:149:0;;;;;;;;10038:126;;;;;;:::i;:::-;;:::i;2905:18::-;;;:::i;:::-;;;;;;;:::i;12142:215::-;;;;;;:::i;:::-;;:::i;:::-;;;2046:14:1;;2039:22;2021:41;;2009:2;1994:18;12142:215:0;1881:187:1;5309:275:0;;;:::i;:::-;;8628:102;8710:12;;8628:102;;13866:866;;;;;;:::i;:::-;;:::i;9908:122::-;;;;;;:::i;:::-;;:::i;4434:201::-;;;;;;:::i;:::-;;:::i;2957:41::-;;;;;;;;2954:4:1;2942:17;;;2924:36;;2912:2;2897:18;2957:41:0;2782:184:1;9774:126:0;;;:::i;6195:133::-;;;;;;:::i;:::-;;:::i;3859:27::-;;;;;-1:-1:-1;;;;;3859:27:0;;;;;;-1:-1:-1;;;;;3135:32:1;;;3117:51;;3105:2;3090:18;3859:27:0;2971:203:1;5860:327:0;;;;;;:::i;:::-;;:::i;6894:522::-;;;;;;:::i;:::-;;:::i;4643:210::-;;;;;;:::i;:::-;;:::i;3530:35::-;;3559:6;3530:35;;9189:193;;;;;;:::i;:::-;;:::i;3007:35::-;;;;;3176:54;;;;;;:::i;:::-;;;;;;;;;;;;;;3681:24;;;;;;:::i;:::-;;:::i;3893:22::-;;;;;;4158:80;4225:5;;-1:-1:-1;;;;;4225:5:0;4158:80;;3792:28;;;;;-1:-1:-1;;;;;3792:28:0;;;2930:20;;;:::i;6336:137::-;;;;;;:::i;:::-;;:::i;5753:99::-;;;:::i;:::-;;;;;;;:::i;12659:438::-;;;;;;:::i;:::-;;:::i;3634:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8992:189;;;;;;:::i;:::-;;:::i;9390:127::-;;;;;;:::i;:::-;;:::i;3827:23::-;;;;;;4332:94;;;;;;:::i;:::-;;:::i;5647:98::-;;;;;;:::i;:::-;;:::i;8738:246::-;;;:::i;3049:47::-;;3091:5;3049:47;;4861:222;;;:::i;7585:75::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6481:405;;;;;;:::i;:::-;;:::i;3763:20::-;;;;;-1:-1:-1;;;;;3763:20:0;;;5091:210;;;;;;:::i;:::-;;:::i;10172:149::-;4095:5;;10262:4;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;;;;;;;;;10286:27:::1;10296:4;10302:6;10310:2;10286:9;:27::i;:::-;10279:34:::0;10172:149;-1:-1:-1;;;;10172:149:0:o;10038:126::-;10099:4;10123:33;10133:10;10145:6;10153:2;10123:9;:33::i;:::-;10116:40;;10038:126;;;;;:::o;2905:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12142:215::-;12245:10;12218:4;12235:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;12235:30:0;;;;;;;;;;:38;;;12289:36;12218:4;;12235:30;;12289:36;;;;12268:5;671:25:1;;659:2;644:18;;525:177;12289:36:0;;;;;;;;-1:-1:-1;12345:4:0;12142:215;;;;:::o;5309:275::-;4095:5;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;5370:13:::1;::::0;-1:-1:-1;;;;;5370:13:0::1;:27:::0;;::::1;::::0;:61:::1;;;5420:11;;5401:15;:30;;5370:61;5362:70;;;::::0;::::1;;5452:13;::::0;;-1:-1:-1;;;;;5452:13:0;;::::1;5443:23;::::0;;;:8:::1;:23;::::0;;;;:30;;5469:4:::1;-1:-1:-1::0;;5443:30:0;;::::1;::::0;::::1;::::0;;;5497:13;;5484:7:::1;:27:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;5497:13;;;::::1;-1:-1:-1::0;;;;;;5484:27:0;;::::1;;::::0;;;5524:26;;;;::::1;::::0;;;5561:11:::1;:15:::0;5309:275::o;13866:866::-;13956:4;-1:-1:-1;;;;;13981:16:0;;;;;;:39;;-1:-1:-1;;;;;;14001:19:0;;14015:4;14001:19;;13981:39;13973:48;;;;;;-1:-1:-1;;;;;14036:18:0;;14044:10;14036:18;14032:416;;-1:-1:-1;;;;;14089:15:0;;14071;14089;;;:9;:15;;;;;;;;14105:10;14089:27;;;;;;;;-1:-1:-1;;14135:28:0;;14131:306;;14203:5;14192:7;:16;;14184:70;;;;-1:-1:-1;;;14184:70:0;;5744:2:1;14184:70:0;;;5726:21:1;5783:2;5763:18;;;5756:30;5822:34;5802:18;;;5795:62;-1:-1:-1;;;5873:18:1;;;5866:39;5922:19;;14184:70:0;5542:405:1;14184:70:0;14273:15;14291;14301:5;14291:7;:15;:::i;:::-;-1:-1:-1;;;;;14325:15:0;;;;;;:9;:15;;;;;;;;14341:10;14325:27;;;;;;;;;;:37;;;14386:35;671:25:1;;;14325:37:0;;-1:-1:-1;14341:10:0;;14386:35;;644:18:1;14386:35:0;;;;;;;14165:272;14131:306;14056:392;14032:416;-1:-1:-1;;;;;14478:15:0;;14460;14478;;;:9;:15;;;;;;14512:16;;;;14504:76;;;;-1:-1:-1;;;14504:76:0;;;;;;;:::i;:::-;14611:15;14621:5;14611:7;:15;:::i;:::-;-1:-1:-1;;;;;14593:15:0;;;;;;;:9;:15;;;;;;:33;;;;14637:13;;;;;;;;:22;;14654:5;;14593:15;14637:22;;14654:5;;14637:22;:::i;:::-;;;;;;;;14690:2;-1:-1:-1;;;;;14675:25:0;14684:4;-1:-1:-1;;;;;14675:25:0;-1:-1:-1;;;;;;;;;;;14694:5:0;14675:25;;;;671::1;;659:2;644:18;;525:177;14675:25:0;;;;;;;;-1:-1:-1;14720:4:0;;13866:866;-1:-1:-1;;;;13866:866:0:o;9908:122::-;9957:4;9981:41;9991:10;10003:6;10011:10;9981:9;:41::i;4434:201::-;4095:5;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;4507:5:::1;::::0;::::1;;4499:14;;;::::0;::::1;;4524:5;:13:::0;;-1:-1:-1;;4524:13:0;;::::1;::::0;;;4548:5:::1;:14:::0;;-1:-1:-1;;;;;4548:14:0;;::::1;-1:-1:-1::0;;;;;;4548:14:0;;::::1;::::0;::::1;::::0;;;4532:5:::1;4573:16:::0;;;:8:::1;:16;::::0;;;;:23;;;;::::1;4524:13:::0;4573:23;;::::1;::::0;;;4607:7:::1;:20:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;;;::::1;;::::0;;4434:201::o;9774:126::-;9846:10;9812:4;9858:21;;;:9;:21;;;;;;9812:4;;9836:56;;9846:10;9836:9;:56::i;:::-;9829:63;;9774:126;:::o;6195:133::-;3972:10;6264:4;3963:20;;;:8;:20;;;;;;;;3955:58;;;;-1:-1:-1;;;3955:58:0;;;;;;;:::i;:::-;6281:17:::1;6287:2;6291:6;6281:5;:17::i;:::-;-1:-1:-1::0;6316:4:0::1;6195:133:::0;;;;:::o;5860:327::-;4095:5;;5927:4;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5952:22:0;::::1;5944:61;;;;-1:-1:-1::0;;;5944:61:0::1;;;;;;;:::i;:::-;6036:5;::::0;6021:48:::1;::::0;6053:15:::1;::::0;-1:-1:-1;;;;;6021:48:0;;::::1;::::0;6036:5;::::1;::::0;6021:48:::1;::::0;6036:5:::1;::::0;6021:48:::1;-1:-1:-1::0;6080:5:0::1;:16:::0;;-1:-1:-1;;;;;6080:16:0;::::1;-1:-1:-1::0;;;;;;6080:16:0;;::::1;;::::0;;;6107:12:::1;:25:::0;;;;::::1;::::0;;6080:5:::1;6143:10;:14:::0;6080:16;4141:1:::1;5860:327:::0;;;:::o;6894:522::-;6989:10;;6963:4;;6989:10;;;;;6988:11;6980:49;;;;-1:-1:-1;;;6980:49:0;;7320:2:1;6980:49:0;;;7302:21:1;7359:2;7339:18;;;7332:30;7398:27;7378:18;;;7371:55;7443:18;;6980:49:0;7118:349:1;6980:49:0;-1:-1:-1;;;;;7048:22:0;;7040:61;;;;-1:-1:-1;;;7040:61:0;;;;;;;:::i;:::-;7116:10;-1:-1:-1;;;;;7116:24:0;;;;;:58;;-1:-1:-1;7154:10:0;7144:21;;;;:9;:21;;;;;;:30;-1:-1:-1;7116:58:0;7112:219;;;7191:70;-1:-1:-1;;;;;7198:10:0;7191:35;7227:10;7247:4;7254:6;7191:35;:70::i;:::-;7112:219;;;7294:25;7300:10;7312:6;7294:5;:25::i;:::-;7346:40;;671:25:1;;;-1:-1:-1;;;;;7346:40:0;;;7357:10;;7346:40;;659:2:1;644:18;7346:40:0;525:177:1;4643:210:0;4095:5;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4715:20:0;::::1;4707:59;;;;-1:-1:-1::0;;;4707:59:0::1;;;;;;;:::i;:::-;4777:12;:21:::0;;-1:-1:-1;;;;;;4777:21:0::1;-1:-1:-1::0;;;;;4777:21:0;::::1;;::::0;;4822:23:::1;3559:6;4822:15;:23;:::i;:::-;4809:10;:36:::0;-1:-1:-1;4643:210:0:o;9189:193::-;9249:4;9266:70;-1:-1:-1;;;;;9273:10:0;9266:35;9302:10;9322:4;9329:6;9266:35;:70::i;:::-;9354:20;9363:6;9371:2;9354:8;:20::i;3681:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3681:24:0;;-1:-1:-1;3681:24:0;:::o;2930:20::-;;;;;;;:::i;6336:137::-;3972:10;6407:4;3963:20;;;:8;:20;;;;;;;;3955:58;;;;-1:-1:-1;;;3955:58:0;;;;;;;:::i;:::-;6424:19:::1;6430:4;6436:6;6424:5;:19::i;5753:99::-:0;5801:16;5837:7;5830:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5830:14:0;;;;;;;;;;;;;;;;;;;;;;;5753:99;:::o;12659:438::-;12731:4;-1:-1:-1;;;;;12756:16:0;;;;;;:39;;-1:-1:-1;;;;;;12776:19:0;;12790:4;12776:19;;12756:39;12748:48;;;;;;12835:10;12807:15;12825:21;;;:9;:21;;;;;;12865:16;;;;12857:76;;;;-1:-1:-1;;;12857:76:0;;;;;;;:::i;:::-;12970:15;12980:5;12970:7;:15;:::i;:::-;12956:10;12946:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;12996:13:0;;;;;;;:22;;13013:5;;12946:21;12996:22;;13013:5;;12996:22;:::i;:::-;;;;-1:-1:-1;;13034:31:0;;671:25:1;;;-1:-1:-1;;;;;13034:31:0;;;13043:10;;-1:-1:-1;;;;;;;;;;;13034:31:0;659:2:1;644:18;13034:31:0;;;;;;;;-1:-1:-1;13085:4:0;;12659:438;-1:-1:-1;;;12659:438:0:o;8992:189::-;9040:4;9057:70;-1:-1:-1;;;;;9064:10:0;9057:35;9093:10;9113:4;9120:6;9057:35;:70::i;:::-;9145:28;9154:6;9162:10;9145:8;:28::i;9390:127::-;4095:5;;9465:4;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;4332:94::-;4095:5;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;4398:10:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;4398:20:0;;::::1;::::0;;;::::1;::::0;;4332:94::o;5647:98::-;4095:5;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5714:15:0::1;5732:5;5714:15:::0;;;:8:::1;:15;::::0;;;;:23;;-1:-1:-1;;5714:23:0::1;::::0;;5647:98::o;8738:246::-;8807:40;;-1:-1:-1;;;8807:40:0;;8836:10;8807:40;;;3117:51:1;8775:4:0;;;;-1:-1:-1;;;;;8814:10:0;8807:28;;;;3090:18:1;;8807:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8792:55;-1:-1:-1;8858:71:0;-1:-1:-1;;;;;8865:10:0;8858:35;8894:10;8914:4;8792:55;8858:35;:71::i;:::-;8947:29;8956:7;8965:10;8947:8;:29::i;:::-;8940:36;;;8738:246;:::o;4861:222::-;4095:5;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;4921:12:::1;::::0;-1:-1:-1;;;;;4921:12:0::1;:26:::0;;::::1;::::0;:59:::1;;;4970:10;;4951:15;:29;;4921:59;4913:68;;;::::0;::::1;;5000:12;::::0;;4992:5:::1;:20:::0;;-1:-1:-1;;;;;;4992:20:0;;::::1;-1:-1:-1::0;;;;;5000:12:0;::::1;4992:20;::::0;;;5025:25:::1;::::0;;5000:12:::1;5061:10;:14:::0;4861:222::o;6481:405::-;3972:10;6573:4;3963:20;;;:8;:20;;;;;;;;3955:58;;;;-1:-1:-1;;;3955:58:0;;;;;;;:::i;:::-;6594:10:::1;-1:-1:-1::0;;;;;6594:24:0::1;::::0;;::::1;::::0;:81:::1;;-1:-1:-1::0;6622:43:0::1;::::0;-1:-1:-1;;;6622:43:0;;6659:4:::1;6622:43;::::0;::::1;3117:51:1::0;6669:6:0;;6629:10:::1;-1:-1:-1::0;;;;;6622:28:0::1;::::0;::::1;::::0;3090:18:1;;6622:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;6594:81;6590:217;;;6692:48;-1:-1:-1::0;;;;;6699:10:0::1;6692:31;6724:7:::0;6733:6;6692:31:::1;:48::i;:::-;6590:217;;;6773:22;6779:7;6788:6;6773:5;:22::i;:::-;6840:7;-1:-1:-1::0;;;;;6822:34:0::1;6832:6;6822:34;6849:6;6822:34;;;;671:25:1::0;;659:2;644:18;;525:177;5091:210:0;4095:5;;-1:-1:-1;;;;;4095:5:0;4081:10;:19;4073:57;;;;-1:-1:-1;;;4073:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5163:19:0;::::1;5155:58;;;;-1:-1:-1::0;;;5155:58:0::1;;;;;;;:::i;:::-;5224:13;:21:::0;;-1:-1:-1;;;;;;5224:21:0::1;-1:-1:-1::0;;;;;5224:21:0;::::1;;::::0;;5270:23:::1;3559:6;5270:15;:23;:::i;:::-;5256:11;:37:::0;-1:-1:-1;5091:210:0:o;10329:312::-;10405:4;10469:10;-1:-1:-1;;;;;10469:24:0;;;;;:55;;-1:-1:-1;10497:10:0;-1:-1:-1;;;;;10497:27:0;10519:4;10497:27;;10469:55;10461:64;;;;;;10536:19;10542:4;10548:6;10536:5;:19::i;:::-;10566:43;-1:-1:-1;;;;;10573:10:0;10566:31;10598:2;10602:6;10566:31;:43::i;:::-;-1:-1:-1;10627:6:0;;10329:312;-1:-1:-1;;10329:312:0:o;10922:268::-;-1:-1:-1;;;;;10998:21:0;;10990:65;;;;-1:-1:-1;;;10990:65:0;;7863:2:1;10990:65:0;;;7845:21:1;7902:2;7882:18;;;7875:30;7941:33;7921:18;;;7914:61;7992:18;;10990:65:0;7661:355:1;10990:65:0;11084:6;11068:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11101:18:0;;;;;;:9;:18;;;;;:28;;11123:6;;11101:18;:28;;11123:6;;11101:28;:::i;:::-;;;;-1:-1:-1;;11145:37:0;;671:25:1;;;-1:-1:-1;;;;;11145:37:0;;;11162:1;;-1:-1:-1;;;;;;;;;;;11145:37:0;659:2:1;644:18;11145:37:0;;;;;;;10922:268;;:::o;1667:201::-;1791:68;;-1:-1:-1;;;;;8279:15:1;;;1791:68:0;;;8261:34:1;8331:15;;8311:18;;;8304:43;8363:18;;;8356:34;;;1765:95:0;;1784:5;;-1:-1:-1;;;1814:27:0;8196:18:1;;1791:68:0;;;;-1:-1:-1;;1791:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;1791:68:0;-1:-1:-1;;;;;;1791:68:0;;;;;;;;;;1765:18;:95::i;:::-;1667:201;;;;:::o;11522:403::-;-1:-1:-1;;;;;11598:21:0;;11590:67;;;;-1:-1:-1;;;11590:67:0;;8603:2:1;11590:67:0;;;8585:21:1;8642:2;8622:18;;;8615:30;8681:34;8661:18;;;8654:62;-1:-1:-1;;;8732:18:1;;;8725:31;8773:19;;11590:67:0;8401:397:1;11590:67:0;-1:-1:-1;;;;;11688:18:0;;11670:15;11688:18;;;:9;:18;;;;;;11725:17;;;;11717:64;;;;-1:-1:-1;;;11717:64:0;;9005:2:1;11717:64:0;;;8987:21:1;9044:2;9024:18;;;9017:30;9083:34;9063:18;;;9056:62;-1:-1:-1;;;9134:18:1;;;9127:32;9176:19;;11717:64:0;8803:398:1;11717:64:0;11815:16;11825:6;11815:7;:16;:::i;:::-;-1:-1:-1;;;;;11794:18:0;;;;;;:9;:18;;;;;:37;;;;11842:12;:22;;11858:6;;11794:18;11842:22;;11858:6;;11842:22;:::i;:::-;;;;-1:-1:-1;;11880:37:0;;671:25:1;;;11906:1:0;;-1:-1:-1;;;;;11880:37:0;;;-1:-1:-1;;;;;;;;;;;11880:37:0;659:2:1;644:18;11880:37:0;;;;;;;11579:346;11522:403;;:::o;9525:241::-;9586:4;9650:10;-1:-1:-1;;;;;9650:24:0;;;;;:55;;-1:-1:-1;9678:10:0;-1:-1:-1;;;;;9678:27:0;9700:4;9678:27;;9650:55;9642:64;;;;;;9717:17;9723:2;9727:6;9717:5;:17::i;:::-;-1:-1:-1;9752:6:0;;9525:241;-1:-1:-1;9525:241:0:o;1486:173::-;1592:58;;-1:-1:-1;;;;;9398:32:1;;1592:58:0;;;9380:51:1;9447:18;;;9440:34;;;1566:85:0;;1585:5;;-1:-1:-1;;;1615:23:0;9353:18:1;;1592:58:0;9206:274:1;1566:85:0;1486:173;;;:::o;2226:598::-;2314:27;2322:5;-1:-1:-1;;;;;2314:25:0;;:27::i;:::-;2306:71;;;;-1:-1:-1;;;2306:71:0;;9687:2:1;2306:71:0;;;9669:21:1;9726:2;9706:18;;;9699:30;9765:33;9745:18;;;9738:61;9816:18;;2306:71:0;9485:355:1;2306:71:0;2451:12;2465:23;2500:5;-1:-1:-1;;;;;2492:19:0;2512:4;2492:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2450:67;;;;2536:7;2528:52;;;;-1:-1:-1;;;2528:52:0;;10339:2:1;2528:52:0;;;10321:21:1;;;10358:18;;;10351:30;10417:34;10397:18;;;10390:62;10469:18;;2528:52:0;10137:356:1;2528:52:0;2597:17;;:21;2593:224;;2739:10;2728:30;;;;;;;;;;;;:::i;:::-;2720:85;;;;-1:-1:-1;;;2720:85:0;;10950:2:1;2720:85:0;;;10932:21:1;10989:2;10969:18;;;10962:30;11028:34;11008:18;;;11001:62;-1:-1:-1;;;11079:18:1;;;11072:40;11129:19;;2720:85:0;10748:406:1;1046:374:0;1106:4;1329:20;;1172:66;1369:15;;;;;:42;;-1:-1:-1;1388:23:0;;;1361:51;-1:-1:-1;;1046:374:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;192:328;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;453:2;442:9;438:18;425:32;415:42;;476:38;510:2;499:9;495:18;476:38;:::i;:::-;466:48;;192:328;;;;;:::o;707:254::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:52;;;852:1;849;842:12;804:52;888:9;875:23;865:33;;917:38;951:2;940:9;936:18;917:38;:::i;:::-;907:48;;707:254;;;;;:::o;966:250::-;1051:1;1061:113;1075:6;1072:1;1069:13;1061:113;;;1151:11;;;1145:18;1132:11;;;1125:39;1097:2;1090:10;1061:113;;;-1:-1:-1;;1208:1:1;1190:16;;1183:27;966:250::o;1221:396::-;1370:2;1359:9;1352:21;1333:4;1402:6;1396:13;1445:6;1440:2;1429:9;1425:18;1418:34;1461:79;1533:6;1528:2;1517:9;1513:18;1508:2;1500:6;1496:15;1461:79;:::i;:::-;1601:2;1580:15;-1:-1:-1;;1576:29:1;1561:45;;;;1608:2;1557:54;;1221:396;-1:-1:-1;;1221:396:1:o;1622:254::-;1690:6;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1790:29;1809:9;1790:29;:::i;:::-;1780:39;1866:2;1851:18;;;;1838:32;;-1:-1:-1;;;1622:254:1:o;2073:328::-;2150:6;2158;2166;2219:2;2207:9;2198:7;2194:23;2190:32;2187:52;;;2235:1;2232;2225:12;2187:52;2258:29;2277:9;2258:29;:::i;:::-;2248:39;;2306:38;2340:2;2329:9;2325:18;2306:38;:::i;:::-;2296:48;;2391:2;2380:9;2376:18;2363:32;2353:42;;2073:328;;;;;:::o;2406:180::-;2465:6;2518:2;2506:9;2497:7;2493:23;2489:32;2486:52;;;2534:1;2531;2524:12;2486:52;-1:-1:-1;2557:23:1;;2406:180;-1:-1:-1;2406:180:1:o;2591:186::-;2650:6;2703:2;2691:9;2682:7;2678:23;2674:32;2671:52;;;2719:1;2716;2709:12;2671:52;2742:29;2761:9;2742:29;:::i;3179:658::-;3350:2;3402:21;;;3472:13;;3375:18;;;3494:22;;;3321:4;;3350:2;3573:15;;;;3547:2;3532:18;;;3321:4;3616:195;3630:6;3627:1;3624:13;3616:195;;;3695:13;;-1:-1:-1;;;;;3691:39:1;3679:52;;3786:15;;;;3751:12;;;;3727:1;3645:9;3616:195;;;-1:-1:-1;3828:3:1;;3179:658;-1:-1:-1;;;;;;3179:658:1:o;3842:118::-;3928:5;3921:13;3914:21;3907:5;3904:32;3894:60;;3950:1;3947;3940:12;3894:60;3842:118;:::o;3965:241::-;4021:6;4074:2;4062:9;4053:7;4049:23;4045:32;4042:52;;;4090:1;4087;4080:12;4042:52;4129:9;4116:23;4148:28;4170:5;4148:28;:::i;:::-;4195:5;3965:241;-1:-1:-1;;;3965:241:1:o;4211:260::-;4279:6;4287;4340:2;4328:9;4319:7;4315:23;4311:32;4308:52;;;4356:1;4353;4346:12;4308:52;4379:29;4398:9;4379:29;:::i;:::-;4369:39;;4427:38;4461:2;4450:9;4446:18;4427:38;:::i;4476:322::-;4553:6;4561;4569;4622:2;4610:9;4601:7;4597:23;4593:32;4590:52;;;4638:1;4635;4628:12;4590:52;4674:9;4661:23;4651:33;;4703:38;4737:2;4726:9;4722:18;4703:38;:::i;4803:349::-;5005:2;4987:21;;;5044:2;5024:18;;;5017:30;5083:27;5078:2;5063:18;;5056:55;5143:2;5128:18;;4803:349::o;5157:380::-;5236:1;5232:12;;;;5279;;;5300:61;;5354:4;5346:6;5342:17;5332:27;;5300:61;5407:2;5399:6;5396:14;5376:18;5373:38;5370:161;;5453:10;5448:3;5444:20;5441:1;5434:31;5488:4;5485:1;5478:15;5516:4;5513:1;5506:15;5370:161;;5157:380;;;:::o;5952:127::-;6013:10;6008:3;6004:20;6001:1;5994:31;6044:4;6041:1;6034:15;6068:4;6065:1;6058:15;6084:128;6151:9;;;6172:11;;;6169:37;;;6186:18;;:::i;6217:411::-;6419:2;6401:21;;;6458:2;6438:18;;;6431:30;6497:34;6492:2;6477:18;;6470:62;-1:-1:-1;;;6563:2:1;6548:18;;6541:45;6618:3;6603:19;;6217:411::o;6633:125::-;6698:9;;;6719:10;;;6716:36;;;6732:18;;:::i;6763:350::-;6965:2;6947:21;;;7004:2;6984:18;;;6977:30;7043:28;7038:2;7023:18;;7016:56;7104:2;7089:18;;6763:350::o;7472:184::-;7542:6;7595:2;7583:9;7574:7;7570:23;7566:32;7563:52;;;7611:1;7608;7601:12;7563:52;-1:-1:-1;7634:16:1;;7472:184;-1:-1:-1;7472:184:1:o;9845:287::-;9974:3;10012:6;10006:13;10028:66;10087:6;10082:3;10075:4;10067:6;10063:17;10028:66;:::i;:::-;10110:16;;;;;9845:287;-1:-1:-1;;9845:287:1:o;10498:245::-;10565:6;10618:2;10606:9;10597:7;10593:23;10589:32;10586:52;;;10634:1;10631;10624:12;10586:52;10666:9;10660:16;10685:28;10707:5;10685:28;:::i

Swarm Source

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