ETH Price: $3,532.00 (+4.28%)

Token

Nation3 (NATION)
 

Overview

Max Total Supply

42,069 NATION

Holders

913 (0.00%)

Market

Price

$11.26 @ 0.003188 ETH

Onchain Market Cap

$473,696.94

Circulating Supply Market Cap

$217,810.00

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
0888o.eth
Balance
0.002181973163583428 NATION

Value
$0.02 ( ~5.66251780999827E-06 Eth) [0.0000%]
0x633e0863ae2f90cbb8fc9fb54a9d492611860722
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Sovereign cloud nation. Building a community of like-minded people creating a nation on the cloud.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NATION

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : NATION.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity =0.8.10;

import {ERC20} from "@rari-capital/solmate/src/tokens/ERC20.sol";
import {Controlled} from "../utils/Controlled.sol";

/// @notice Nation3 ERC20 token.
/// @author Nation3 (https://github.com/nation3/app/blob/master/contracts/contracts/tokens/NATION.sol).
/// @dev Mintable by controller.
contract NATION is ERC20, Controlled {
    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor() ERC20("Nation3", "NATION", 18) {}

    /*//////////////////////////////////////////////////////////////
                            CONTROLLER ACTIONS
    //////////////////////////////////////////////////////////////*/

    function mint(address to, uint256 amount) external onlyController {
        _mint(to, amount);
    }
}

File 2 of 3 : Controlled.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity =0.8.10;

/// @notice Minimal implementation of access control mechanism with two roles (owner & controller)
/// @dev Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol)
contract Controlled {
    /*///////////////////////////////////////////////////////////////
                                 ERRORS
    //////////////////////////////////////////////////////////////*/

    error CallerIsNotAuthorized();
    error TargetIsZeroAddress();

    /*///////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event ControlTransferred(address indexed previousController, address indexed newController);

    /*///////////////////////////////////////////////////////////////
                             ROLES STORAGE
    //////////////////////////////////////////////////////////////*/

    address private _owner;
    address private _controller;

    /*///////////////////////////////////////////////////////////////
                              CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor() {
        _transferOwnership(msg.sender);
        _transferControl(msg.sender);
    }

    /*///////////////////////////////////////////////////////////////
                               MODIFIERS
    //////////////////////////////////////////////////////////////*/

    modifier onlyOwner() {
        if (_owner != msg.sender) revert CallerIsNotAuthorized();
        _;
    }

    modifier onlyController() {
        if (_controller != msg.sender) revert CallerIsNotAuthorized();
        _;
    }

    modifier onlyOwnerOrController() {
        if (_owner != msg.sender && _controller != msg.sender) revert CallerIsNotAuthorized();
        _;
    }

    /*///////////////////////////////////////////////////////////////
                                VIEWS
    //////////////////////////////////////////////////////////////*/

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function controller() public view virtual returns (address) {
        return _controller;
    }

    /*///////////////////////////////////////////////////////////////
                               ACTIONS
    //////////////////////////////////////////////////////////////*/

    function renounceOwnership() external virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function removeControl() external virtual onlyOwnerOrController {
        _transferControl(address(0));
    }

    function transferOwnership(address newOwner) external virtual onlyOwner {
        if (newOwner == address(0)) revert TargetIsZeroAddress();
        _transferOwnership(newOwner);
    }

    function transferControl(address newController) external virtual onlyOwnerOrController {
        if (newController == address(0)) revert TargetIsZeroAddress();
        _transferControl(newController);
    }

    /*///////////////////////////////////////////////////////////////
                            INTERNAL LOGIC
    //////////////////////////////////////////////////////////////*/

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function _transferControl(address newController) internal virtual {
        address oldController = _controller;
        _controller = newController;
        emit ControlTransferred(oldController, newController);
    }
}

File 3 of 3 : ERC20.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
    /*///////////////////////////////////////////////////////////////
                                  EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /*///////////////////////////////////////////////////////////////
                             METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    /*///////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;

    mapping(address => mapping(address => uint256)) public allowance;

    /*///////////////////////////////////////////////////////////////
                             EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    bytes32 public constant PERMIT_TYPEHASH =
        keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    /*///////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals
    ) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    /*///////////////////////////////////////////////////////////////
                              ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);

        return true;
    }

    /*///////////////////////////////////////////////////////////////
                              EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            bytes32 digest = keccak256(
                abi.encodePacked(
                    "\x19\x01",
                    DOMAIN_SEPARATOR(),
                    keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
                )
            );

            address recoveredAddress = ecrecover(digest, v, r, s);

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    /*///////////////////////////////////////////////////////////////
                       INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        // Cannot underflow because a user's balance
        // will never be larger than the total supply.
        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CallerIsNotAuthorized","type":"error"},{"inputs":[],"name":"TargetIsZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousController","type":"address"},{"indexed":true,"internalType":"address","name":"newController","type":"address"}],"name":"ControlTransferred","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","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":[{"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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeControl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newController","type":"address"}],"name":"transferControl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e06040523480156200001157600080fd5b506040518060400160405280600781526020017f4e6174696f6e33000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4e4154494f4e0000000000000000000000000000000000000000000000000000815250601282600090805190602001906200009892919062000326565b508160019080519060200190620000b192919062000326565b508060ff1660808160ff16815250504660a08181525050620000d86200010a60201b60201c565b60c08181525050505050620000f3336200019a60201b60201c565b62000104336200026060201b60201c565b620005d7565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516200013e9190620004e6565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200017f9594939291906200057a565b60405160208183030381529060405280519060200120905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f260405160405180910390a35050565b828054620003349062000405565b90600052602060002090601f016020900481019282620003585760008555620003a4565b82601f106200037357805160ff1916838001178555620003a4565b82800160010185558215620003a4579182015b82811115620003a357825182559160200191906001019062000386565b5b509050620003b39190620003b7565b5090565b5b80821115620003d2576000816000905550600101620003b8565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200041e57607f821691505b60208210811415620004355762000434620003d6565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b600081546200046a8162000405565b6200047681866200043b565b94506001821660008114620004945760018114620004a657620004dd565b60ff19831686528186019350620004dd565b620004b18562000446565b60005b83811015620004d557815481890152600182019150602081019050620004b4565b838801955050505b50505092915050565b6000620004f482846200045b565b915081905092915050565b6000819050919050565b6200051481620004ff565b82525050565b6000819050919050565b6200052f816200051a565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005628262000535565b9050919050565b620005748162000555565b82525050565b600060a08201905062000591600083018862000509565b620005a0602083018762000509565b620005af604083018662000509565b620005be606083018562000524565b620005cd608083018462000569565b9695505050505050565b60805160a05160c051611d9c620006076000396000610815015260006107e1015260006107bb0152611d9c6000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb1461030f578063d505accf1461033f578063dd62ed3e1461035b578063f2fde38b1461038b578063f77c4791146103a75761012c565b8063715018a61461028f5780637bee684b146102995780637ecebe00146102a35780638da5cb5b146102d357806395d89b41146102f15761012c565b8063313ce567116100f4578063313ce567146101eb5780633644e5151461020957806340c10f19146102275780636d16fa411461024357806370a082311461025f5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d57806330adf81f146101cd575b600080fd5b6101396103c5565b604051610146919061156c565b60405180910390f35b61016960048036038101906101649190611627565b610453565b6040516101769190611682565b60405180910390f35b610187610545565b60405161019491906116ac565b60405180910390f35b6101b760048036038101906101b291906116c7565b61054b565b6040516101c49190611682565b60405180910390f35b6101d5610795565b6040516101e29190611733565b60405180910390f35b6101f36107b9565b604051610200919061176a565b60405180910390f35b6102116107dd565b60405161021e9190611733565b60405180910390f35b610241600480360381019061023c9190611627565b61083a565b005b61025d60048036038101906102589190611785565b6108cf565b005b61027960048036038101906102749190611785565b610a25565b60405161028691906116ac565b60405180910390f35b610297610a3d565b005b6102a1610ad0565b005b6102bd60048036038101906102b89190611785565b610bbf565b6040516102ca91906116ac565b60405180910390f35b6102db610bd7565b6040516102e891906117c1565b60405180910390f35b6102f9610c01565b604051610306919061156c565b60405180910390f35b61032960048036038101906103249190611627565b610c8f565b6040516103369190611682565b60405180910390f35b61035960048036038101906103549190611834565b610da3565b005b610375600480360381019061037091906118d6565b6110a2565b60405161038291906116ac565b60405180910390f35b6103a560048036038101906103a09190611785565b6110c7565b005b6103af6111c1565b6040516103bc91906117c1565b60405180910390f35b600080546103d290611945565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe90611945565b801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161053391906116ac565b60405180910390a36001905092915050565b60025481565b600080600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461068157828161060091906119a6565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106d091906119a6565b9250508190555082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161078191906116ac565b60405180910390a360019150509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000046146108135761080e6111eb565b610835565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c1576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108cb8282611277565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561097b57503373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156109b2576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a19576040517f1b8fe22300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2281611347565b50565b60036020528060005260406000206000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac4576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ace600061140d565b565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610b7c57503373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15610bb3576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bbd6000611347565b565b60056020528060005260406000206000915090505481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60018054610c0e90611945565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3a90611945565b8015610c875780601f10610c5c57610100808354040283529160200191610c87565b820191906000526020600020905b815481529060010190602001808311610c6a57829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ce091906119a6565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d9191906116ac565b60405180910390a36001905092915050565b42841015610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd90611a26565b60405180910390fd5b6000610df06107dd565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9898989600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001610e7896959493929190611a46565b60405160208183030381529060405280519060200120604051602001610e9f929190611b1f565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051610edc9493929190611b56565b6020604051602081039080840390855afa158015610efe573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610f7257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890611be7565b60405180910390fd5b86600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161109191906116ac565b60405180910390a350505050505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111b5576040517f1b8fe22300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111be8161140d565b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161121d9190611ca6565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161125c959493929190611cbd565b60405160208183030381529060405280519060200120905090565b80600260008282546112899190611d10565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161133b91906116ac565b60405180910390a35050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f260405160405180910390a35050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561150d5780820151818401526020810190506114f2565b8381111561151c576000848401525b50505050565b6000601f19601f8301169050919050565b600061153e826114d3565b61154881856114de565b93506115588185602086016114ef565b61156181611522565b840191505092915050565b600060208201905081810360008301526115868184611533565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115be82611593565b9050919050565b6115ce816115b3565b81146115d957600080fd5b50565b6000813590506115eb816115c5565b92915050565b6000819050919050565b611604816115f1565b811461160f57600080fd5b50565b600081359050611621816115fb565b92915050565b6000806040838503121561163e5761163d61158e565b5b600061164c858286016115dc565b925050602061165d85828601611612565b9150509250929050565b60008115159050919050565b61167c81611667565b82525050565b60006020820190506116976000830184611673565b92915050565b6116a6816115f1565b82525050565b60006020820190506116c1600083018461169d565b92915050565b6000806000606084860312156116e0576116df61158e565b5b60006116ee868287016115dc565b93505060206116ff868287016115dc565b925050604061171086828701611612565b9150509250925092565b6000819050919050565b61172d8161171a565b82525050565b60006020820190506117486000830184611724565b92915050565b600060ff82169050919050565b6117648161174e565b82525050565b600060208201905061177f600083018461175b565b92915050565b60006020828403121561179b5761179a61158e565b5b60006117a9848285016115dc565b91505092915050565b6117bb816115b3565b82525050565b60006020820190506117d660008301846117b2565b92915050565b6117e58161174e565b81146117f057600080fd5b50565b600081359050611802816117dc565b92915050565b6118118161171a565b811461181c57600080fd5b50565b60008135905061182e81611808565b92915050565b600080600080600080600060e0888a0312156118535761185261158e565b5b60006118618a828b016115dc565b97505060206118728a828b016115dc565b96505060406118838a828b01611612565b95505060606118948a828b01611612565b94505060806118a58a828b016117f3565b93505060a06118b68a828b0161181f565b92505060c06118c78a828b0161181f565b91505092959891949750929550565b600080604083850312156118ed576118ec61158e565b5b60006118fb858286016115dc565b925050602061190c858286016115dc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195d57607f821691505b6020821081141561197157611970611916565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119b1826115f1565b91506119bc836115f1565b9250828210156119cf576119ce611977565b5b828203905092915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b6000611a106017836114de565b9150611a1b826119da565b602082019050919050565b60006020820190508181036000830152611a3f81611a03565b9050919050565b600060c082019050611a5b6000830189611724565b611a6860208301886117b2565b611a7560408301876117b2565b611a82606083018661169d565b611a8f608083018561169d565b611a9c60a083018461169d565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000611ae8600283611aa7565b9150611af382611ab2565b600282019050919050565b6000819050919050565b611b19611b148261171a565b611afe565b82525050565b6000611b2a82611adb565b9150611b368285611b08565b602082019150611b468284611b08565b6020820191508190509392505050565b6000608082019050611b6b6000830187611724565b611b78602083018661175b565b611b856040830185611724565b611b926060830184611724565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000611bd1600e836114de565b9150611bdc82611b9b565b602082019050919050565b60006020820190508181036000830152611c0081611bc4565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154611c3481611945565b611c3e8186611c07565b94506001821660008114611c595760018114611c6a57611c9d565b60ff19831686528186019350611c9d565b611c7385611c12565b60005b83811015611c9557815481890152600182019150602081019050611c76565b838801955050505b50505092915050565b6000611cb28284611c27565b915081905092915050565b600060a082019050611cd26000830188611724565b611cdf6020830187611724565b611cec6040830186611724565b611cf9606083018561169d565b611d0660808301846117b2565b9695505050505050565b6000611d1b826115f1565b9150611d26836115f1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d5b57611d5a611977565b5b82820190509291505056fea2646970667358221220be6ae5335ce73cfa6f8b6b2b80a1a4222a23709e49362b302049dd155cd0cd5e64736f6c634300080a0033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb1461030f578063d505accf1461033f578063dd62ed3e1461035b578063f2fde38b1461038b578063f77c4791146103a75761012c565b8063715018a61461028f5780637bee684b146102995780637ecebe00146102a35780638da5cb5b146102d357806395d89b41146102f15761012c565b8063313ce567116100f4578063313ce567146101eb5780633644e5151461020957806340c10f19146102275780636d16fa411461024357806370a082311461025f5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d57806330adf81f146101cd575b600080fd5b6101396103c5565b604051610146919061156c565b60405180910390f35b61016960048036038101906101649190611627565b610453565b6040516101769190611682565b60405180910390f35b610187610545565b60405161019491906116ac565b60405180910390f35b6101b760048036038101906101b291906116c7565b61054b565b6040516101c49190611682565b60405180910390f35b6101d5610795565b6040516101e29190611733565b60405180910390f35b6101f36107b9565b604051610200919061176a565b60405180910390f35b6102116107dd565b60405161021e9190611733565b60405180910390f35b610241600480360381019061023c9190611627565b61083a565b005b61025d60048036038101906102589190611785565b6108cf565b005b61027960048036038101906102749190611785565b610a25565b60405161028691906116ac565b60405180910390f35b610297610a3d565b005b6102a1610ad0565b005b6102bd60048036038101906102b89190611785565b610bbf565b6040516102ca91906116ac565b60405180910390f35b6102db610bd7565b6040516102e891906117c1565b60405180910390f35b6102f9610c01565b604051610306919061156c565b60405180910390f35b61032960048036038101906103249190611627565b610c8f565b6040516103369190611682565b60405180910390f35b61035960048036038101906103549190611834565b610da3565b005b610375600480360381019061037091906118d6565b6110a2565b60405161038291906116ac565b60405180910390f35b6103a560048036038101906103a09190611785565b6110c7565b005b6103af6111c1565b6040516103bc91906117c1565b60405180910390f35b600080546103d290611945565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe90611945565b801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161053391906116ac565b60405180910390a36001905092915050565b60025481565b600080600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461068157828161060091906119a6565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106d091906119a6565b9250508190555082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161078191906116ac565b60405180910390a360019150509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b7f000000000000000000000000000000000000000000000000000000000000001281565b60007f000000000000000000000000000000000000000000000000000000000000000146146108135761080e6111eb565b610835565b7f71ff642fa9c3fbbb60179e32161a4af578d5ef2d16a2a17f51de72a2f4da31955b905090565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c1576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108cb8282611277565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561097b57503373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156109b2576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a19576040517f1b8fe22300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2281611347565b50565b60036020528060005260406000206000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac4576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ace600061140d565b565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610b7c57503373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15610bb3576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bbd6000611347565b565b60056020528060005260406000206000915090505481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60018054610c0e90611945565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3a90611945565b8015610c875780601f10610c5c57610100808354040283529160200191610c87565b820191906000526020600020905b815481529060010190602001808311610c6a57829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ce091906119a6565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d9191906116ac565b60405180910390a36001905092915050565b42841015610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd90611a26565b60405180910390fd5b6000610df06107dd565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9898989600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001610e7896959493929190611a46565b60405160208183030381529060405280519060200120604051602001610e9f929190611b1f565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051610edc9493929190611b56565b6020604051602081039080840390855afa158015610efe573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610f7257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890611be7565b60405180910390fd5b86600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161109191906116ac565b60405180910390a350505050505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f2e57521500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111b5576040517f1b8fe22300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111be8161140d565b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161121d9190611ca6565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161125c959493929190611cbd565b60405160208183030381529060405280519060200120905090565b80600260008282546112899190611d10565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161133b91906116ac565b60405180910390a35050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f260405160405180910390a35050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561150d5780820151818401526020810190506114f2565b8381111561151c576000848401525b50505050565b6000601f19601f8301169050919050565b600061153e826114d3565b61154881856114de565b93506115588185602086016114ef565b61156181611522565b840191505092915050565b600060208201905081810360008301526115868184611533565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115be82611593565b9050919050565b6115ce816115b3565b81146115d957600080fd5b50565b6000813590506115eb816115c5565b92915050565b6000819050919050565b611604816115f1565b811461160f57600080fd5b50565b600081359050611621816115fb565b92915050565b6000806040838503121561163e5761163d61158e565b5b600061164c858286016115dc565b925050602061165d85828601611612565b9150509250929050565b60008115159050919050565b61167c81611667565b82525050565b60006020820190506116976000830184611673565b92915050565b6116a6816115f1565b82525050565b60006020820190506116c1600083018461169d565b92915050565b6000806000606084860312156116e0576116df61158e565b5b60006116ee868287016115dc565b93505060206116ff868287016115dc565b925050604061171086828701611612565b9150509250925092565b6000819050919050565b61172d8161171a565b82525050565b60006020820190506117486000830184611724565b92915050565b600060ff82169050919050565b6117648161174e565b82525050565b600060208201905061177f600083018461175b565b92915050565b60006020828403121561179b5761179a61158e565b5b60006117a9848285016115dc565b91505092915050565b6117bb816115b3565b82525050565b60006020820190506117d660008301846117b2565b92915050565b6117e58161174e565b81146117f057600080fd5b50565b600081359050611802816117dc565b92915050565b6118118161171a565b811461181c57600080fd5b50565b60008135905061182e81611808565b92915050565b600080600080600080600060e0888a0312156118535761185261158e565b5b60006118618a828b016115dc565b97505060206118728a828b016115dc565b96505060406118838a828b01611612565b95505060606118948a828b01611612565b94505060806118a58a828b016117f3565b93505060a06118b68a828b0161181f565b92505060c06118c78a828b0161181f565b91505092959891949750929550565b600080604083850312156118ed576118ec61158e565b5b60006118fb858286016115dc565b925050602061190c858286016115dc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195d57607f821691505b6020821081141561197157611970611916565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119b1826115f1565b91506119bc836115f1565b9250828210156119cf576119ce611977565b5b828203905092915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b6000611a106017836114de565b9150611a1b826119da565b602082019050919050565b60006020820190508181036000830152611a3f81611a03565b9050919050565b600060c082019050611a5b6000830189611724565b611a6860208301886117b2565b611a7560408301876117b2565b611a82606083018661169d565b611a8f608083018561169d565b611a9c60a083018461169d565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000611ae8600283611aa7565b9150611af382611ab2565b600282019050919050565b6000819050919050565b611b19611b148261171a565b611afe565b82525050565b6000611b2a82611adb565b9150611b368285611b08565b602082019150611b468284611b08565b6020820191508190509392505050565b6000608082019050611b6b6000830187611724565b611b78602083018661175b565b611b856040830185611724565b611b926060830184611724565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000611bd1600e836114de565b9150611bdc82611b9b565b602082019050919050565b60006020820190508181036000830152611c0081611bc4565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154611c3481611945565b611c3e8186611c07565b94506001821660008114611c595760018114611c6a57611c9d565b60ff19831686528186019350611c9d565b611c7385611c12565b60005b83811015611c9557815481890152600182019150602081019050611c76565b838801955050505b50505092915050565b6000611cb28284611c27565b915081905092915050565b600060a082019050611cd26000830188611724565b611cdf6020830187611724565b611cec6040830186611724565b611cf9606083018561169d565b611d0660808301846117b2565b9695505050505050565b6000611d1b826115f1565b9150611d26836115f1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d5b57611d5a611977565b5b82820190509291505056fea2646970667358221220be6ae5335ce73cfa6f8b6b2b80a1a4222a23709e49362b302049dd155cd0cd5e64736f6c634300080a0033

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.