ETH Price: $3,487.75 (-0.10%)

Token

NIWIX (NWX)
 

Overview

Max Total Supply

999,993,505.4899999995 NWX

Holders

184

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Azbit 3
Balance
9,132 NWX

Value
$0.00
0x22682575e073736ed25258409b09e0e7af6d9c61
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-06-01
*/

pragma solidity ^0.5.0;



// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
} 


// ----------------------------------------------------------------------------
// ERC Toke n Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
// ----------------------------------------------------------------------------
contract ERC20Interface {
    function totalSupply() public view returns (uint);
    function balanceOf(address tokenOwner) public view returns (uint balance);
    function allowance(address tokenOwner, address spender) public view returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}


// ----------------------------------------------------------------------------
// Contract function to receive approval and execute function in one call
//
// Borrowed from MiniMeToken
// ----------------------------------------------------------------------------
contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes memory data) public;
}


// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = 0x9E48E9C4a696020cCFd07aAD7476a830eA14a819;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

contract ERC1132 {
    /**
     * @dev Reasons why a user's tokens have been locked
     */
    mapping(address => bytes32[]) public lockReason;

    /**
     * @dev locked token structure
     */
    struct lockToken {
        uint256 amount;
        uint256 validity;
        bool claimed;
    }

    /**
     * @dev Holds number & validity of tokens locked for a given reason for
     *      a specified address
     */
    mapping(address => mapping(bytes32 => lockToken)) public locked;

    /**
     * @dev Records data of all the tokens Locked
     */
    event Locked(
        address indexed _of,
        bytes32 indexed _reason,
        uint256 _amount,
        uint256 _validity
    );

    /**
     * @dev Records data of all the tokens unlocked
     */
    event Unlocked(
        address indexed _of,
        bytes32 indexed _reason,
        uint256 _amount
    );
    
    /**
     * @dev Locks a specified amount of tokens against an address,
     *      for a specified reason and time
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be locked
     * @param _time Lock time in seconds
     */
    function lock(bytes32 _reason, uint256 _amount, uint256 _time)
        public returns (bool);
  
    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     */
    function tokensLocked(address _of, bytes32 _reason)
        public view returns (uint256 amount);
    
    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason at a specific time
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     * @param _time The timestamp to query the lock tokens for
     */
    function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time)
        public view returns (uint256 amount);
    
    /**
     * @dev Returns total tokens held by an address (locked + transferable)
     * @param _of The address to query the total balance of
     */
    function totalBalanceOf(address _of)
        public view returns (uint256 amount);
    
    /**
     * @dev Extends lock for a specified reason and time
     * @param _reason The reason to lock tokens
     * @param _time Lock extension time in seconds
     */
    function extendLock(bytes32 _reason, uint256 _time)
        public returns (bool);
    
    /**
     * @dev Increase number of tokens locked for a specified reason
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be increased
     */
    function increaseLockAmount(bytes32 _reason, uint256 _amount)
        public returns (bool);

    /**
     * @dev Returns unlockable tokens for a specified address for a specified reason
     * @param _of The address to query the the unlockable token count of
     * @param _reason The reason to query the unlockable tokens for
     */
    function tokensUnlockable(address _of, bytes32 _reason)
        public view returns (uint256 amount);
 
    /**
     * @dev Unlocks the unlockable tokens of a specified address
     * @param _of Address of user, claiming back unlockable tokens
     */
    function unlock(address _of)
        public returns (uint256 unlockableTokens);

    /**
     * @dev Gets the unlockable tokens of a specified address
     * @param _of The address to query the the unlockable token count of
     */
    function getUnlockableTokens(address _of)
        public view returns (uint256 unlockableTokens);

}




// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and a
// fixed supply
// ----------------------------------------------------------------------------
contract Token is ERC1132, ERC20Interface, Owned {
    using SafeMath for uint;
    
    string internal constant ALREADY_LOCKED = 'Tokens already locked';
    string internal constant NOT_LOCKED = 'No tokens locked';
    string internal constant AMOUNT_ZERO = 'Amount can not be 0';

    string public symbol;
    string public  name;
    uint8 public decimals;
    uint _totalSupply;

    mapping(address => uint) balances;
    mapping(address => mapping(address => uint)) allowed;


    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor() public { 
        name = "NIWIX";
        symbol = "NWX";
        decimals = 18;
        _totalSupply = 1000000000 * 10**uint(decimals);
        balances[owner] = _totalSupply;
        emit Transfer(address(0), owner, _totalSupply);
    }


    // ------------------------------------------------------------------------
    // Total supply
    // ------------------------------------------------------------------------
    function totalSupply() public view returns (uint) {
        return _totalSupply.sub(balances[address(0)]);
    }


    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // ------------------------------------------------------------------------
    function balanceOf(address tokenOwner) public view returns (uint balance) {
        return balances[tokenOwner];
    }


    // ------------------------------------------------------------------------
    // Transfer the balance from token owner's account to `to` account
    // - Owner's account must have sufficient balance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transfer(address to, uint tokens) public returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(msg.sender, to, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account
    //
    // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
    // recommends that there are no checks for the approval double-spend attack
    // as this should be implemented in user interfaces
    // ------------------------------------------------------------------------
    function approve(address spender, uint tokens) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Transfer `tokens` from the `from` account to the `to` account
    //
    // The calling account must already have sufficient tokens approve(...)-d
    // for spending from the `from` account and
    // - From account must have sufficient balance to transfer
    // - Spender must have sufficient allowance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        balances[from] = balances[from].sub(tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(from, to, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Returns the amount of tokens approved by the owner that can be
    // transferred to the spender's account
    // ------------------------------------------------------------------------
    function allowance(address tokenOwner, address spender) public view returns (uint remaining) {
        return allowed[tokenOwner][spender];
    }


    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account. The `spender` contract function
    // `receiveApproval(...)` is then executed
    // ------------------------------------------------------------------------
    function approveAndCall(address spender, uint tokens, bytes memory data) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data);
        return true;
    }


    // ------------------------------------------------------------------------
    // Don't accept ETH
    // ------------------------------------------------------------------------
    function () external payable {
        revert();
    }


    // ------------------------------------------------------------------------
    // Owner can transfer out any accidentally sent ERC20 tokens
    // ------------------------------------------------------------------------
    function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
    
    function mint(address account, uint256 amount) onlyOwner public returns (bool) {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        balances[account] = balances[account].add(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) onlyOwner public returns (bool) {
        require(account != address(0), "ERC20: burn from the zero address");

        balances[account] = balances[account].sub(amount);
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }
    
    
     /**
     * @dev Locks a specified amount of tokens against an address,
     *      for a specified reason and time
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be locked
     * @param _time Lock time in seconds
     */
    function lock(bytes32 _reason, uint256 _amount, uint256 _time)
        public
        returns (bool)
    {
        uint256 validUntil = now.add(_time); //solhint-disable-line

        // If tokens are already locked, then functions extendLock or
        // increaseLockAmount should be used to make any changes
        require(tokensLocked(msg.sender, _reason) == 0, ALREADY_LOCKED);
        require(_amount != 0, AMOUNT_ZERO);

        if (locked[msg.sender][_reason].amount == 0)
            lockReason[msg.sender].push(_reason);

        transfer(address(this), _amount);

        locked[msg.sender][_reason] = lockToken(_amount, validUntil, false);

        emit Locked(msg.sender, _reason, _amount, validUntil);
        return true;
    }
    
    /**
     * @dev Transfers and Locks a specified amount of tokens,
     *      for a specified reason and time
     * @param _to adress to which tokens are to be transfered
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be transfered and locked
     * @param _time Lock time in seconds
     */
    function transferWithLock(address _to, bytes32 _reason, uint256 _amount, uint256 _time)
        public
        returns (bool)
    {
        uint256 validUntil = now.add(_time); //solhint-disable-line

        require(tokensLocked(_to, _reason) == 0, ALREADY_LOCKED);
        require(_amount != 0, AMOUNT_ZERO);

        if (locked[_to][_reason].amount == 0)
            lockReason[_to].push(_reason);

        transfer(address(this), _amount);

        locked[_to][_reason] = lockToken(_amount, validUntil, false);
        
        emit Locked(_to, _reason, _amount, validUntil);
        return true;
    }

    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     */
    function tokensLocked(address _of, bytes32 _reason)
        public
        view
        returns (uint256 amount)
    {
        if (!locked[_of][_reason].claimed)
            amount = locked[_of][_reason].amount;
    }
    
    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason at a specific time
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     * @param _time The timestamp to query the lock tokens for
     */
    function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time)
        public
        view
        returns (uint256 amount)
    {
        if (locked[_of][_reason].validity > _time)
            amount = locked[_of][_reason].amount;
    }

    /**
     * @dev Returns total tokens held by an address (locked + transferable)
     * @param _of The address to query the total balance of
     */
    function totalBalanceOf(address _of)
        public
        view
        returns (uint256 amount)
    {
        amount = balanceOf(_of);

        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            amount = amount.add(tokensLocked(_of, lockReason[_of][i]));
        }   
    }    
    
    /**
     * @dev Extends lock for a specified reason and time
     * @param _reason The reason to lock tokens
     * @param _time Lock extension time in seconds
     */
    function extendLock(bytes32 _reason, uint256 _time)
        public
        returns (bool)
    {
        require(tokensLocked(msg.sender, _reason) > 0, NOT_LOCKED);

        locked[msg.sender][_reason].validity = locked[msg.sender][_reason].validity.add(_time);

        emit Locked(msg.sender, _reason, locked[msg.sender][_reason].amount, locked[msg.sender][_reason].validity);
        return true;
    }
    
    /**
     * @dev Increase number of tokens locked for a specified reason
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be increased
     */
    function increaseLockAmount(bytes32 _reason, uint256 _amount)
        public
        returns (bool)
    {
        require(tokensLocked(msg.sender, _reason) > 0, NOT_LOCKED);
        transfer(address(this), _amount);

        locked[msg.sender][_reason].amount = locked[msg.sender][_reason].amount.add(_amount);

        emit Locked(msg.sender, _reason, locked[msg.sender][_reason].amount, locked[msg.sender][_reason].validity);
        return true;
    }

    /**
     * @dev Returns unlockable tokens for a specified address for a specified reason
     * @param _of The address to query the the unlockable token count of
     * @param _reason The reason to query the unlockable tokens for
     */
    function tokensUnlockable(address _of, bytes32 _reason)
        public
        view
        returns (uint256 amount)
    {
        if (locked[_of][_reason].validity <= now && !locked[_of][_reason].claimed) //solhint-disable-line
            amount = locked[_of][_reason].amount;
    }

    /**
     * @dev Unlocks the unlockable tokens of a specified address
     * @param _of Address of user, claiming back unlockable tokens
     */
    function unlock(address _of)
        public
        returns (uint256 unlockableTokens)
    {
        uint256 lockedTokens;

        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            lockedTokens = tokensUnlockable(_of, lockReason[_of][i]);
            if (lockedTokens > 0) {
                unlockableTokens = unlockableTokens.add(lockedTokens);
                locked[_of][lockReason[_of][i]].claimed = true;
                emit Unlocked(_of, lockReason[_of][i], lockedTokens);
            }
        }  

        if (unlockableTokens > 0)
            this.transfer(_of, unlockableTokens);
    }

    /**
     * @dev Gets the unlockable tokens of a specified address
     * @param _of The address to query the the unlockable token count of
     */
    function getUnlockableTokens(address _of)
        public
        view
        returns (uint256 unlockableTokens)
    {
        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            unlockableTokens = unlockableTokens.add(tokensUnlockable(_of, lockReason[_of][i]));
        }  
    }
    
    
   
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_of","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_reason","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_validity","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","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":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_of","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_reason","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Unlocked","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"extendLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"getUnlockableTokens","outputs":[{"internalType":"uint256","name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"increaseLockAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"lock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockReason","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"locked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"validity","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"bytes32","name":"_reason","type":"bytes32"}],"name":"tokensLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"tokensLockedAtTime","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"bytes32","name":"_reason","type":"bytes32"}],"name":"tokensUnlockable","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"totalBalanceOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"unlock","outputs":[{"internalType":"uint256","name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50600280546001600160a01b031916739e48e9c4a696020ccfd07aad7476a830ea14a8191790556040805180820190915260058082526409c92ae92b60db1b602090920191825262000064918162000118565b506040805180820190915260038082526209caeb60eb1b6020909201918252620000919160049162000118565b5060068054601260ff19909116179081905560ff16600a0a633b9aca00026007819055600280546001600160a01b039081166000908152600860209081526040808320869055935484519586529351939092169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3620001bd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015b57805160ff19168380011785556200018b565b828001600101855582156200018b579182015b828111156200018b5782518255916020019190600101906200016e565b50620001999291506200019d565b5090565b620001ba91905b80821115620001995760008155600101620001a4565b90565b611c0880620001cd6000396000f3fe6080604052600436106101c25760003560e01c806371d66f00116100f7578063a9dab16711610095578063d71be8db11610064578063d71be8db146107a9578063dc39d06d14610802578063dd62ed3e1461083b578063f2fde38b14610876576101c2565b8063a9dab16714610669578063ab4a2eb314610699578063cae9ca51146106cc578063d4ee1d9014610794576101c2565b80638da5cb5b116100d15780638da5cb5b146105b157806395d89b41146105e25780639dc29fac146105f7578063a9059cbb14610630576101c2565b806371d66f001461053157806379ba50971461056a57806381fc4d9014610581576101c2565b8063313ce567116101645780634cb5465f1161013e5780634cb5465f146104475780635294d0e81461048c5780635ca48d8c146104c557806370a08231146104fe576101c2565b8063313ce567146103b057806340c10f19146103db5780634b0ee02a14610414576101c2565b806318160ddd116101a057806318160ddd146102ef57806323b872dd146103045780632e82aaf2146103475780632f6c493c1461037d576101c2565b806306fdde03146101c7578063095ea7b314610251578063179e91f11461029e575b600080fd5b3480156101d357600080fd5b506101dc6108a9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025d57600080fd5b5061028a6004803603604081101561027457600080fd5b506001600160a01b038135169060200135610937565b604080519115158252519081900360200190f35b3480156102aa57600080fd5b506102dd600480360360608110156102c157600080fd5b506001600160a01b03813516906020810135906040013561099e565b60408051918252519081900360200190f35b3480156102fb57600080fd5b506102dd6109f7565b34801561031057600080fd5b5061028a6004803603606081101561032757600080fd5b506001600160a01b03813581169160208101359091169060400135610a3a565b34801561035357600080fd5b5061028a6004803603606081101561036a57600080fd5b5080359060208101359060400135610b33565b34801561038957600080fd5b506102dd600480360360208110156103a057600080fd5b50356001600160a01b0316610d50565b3480156103bc57600080fd5b506103c5610f2b565b6040805160ff9092168252519081900360200190f35b3480156103e757600080fd5b5061028a600480360360408110156103fe57600080fd5b506001600160a01b038135169060200135610f34565b34801561042057600080fd5b506102dd6004803603602081101561043757600080fd5b50356001600160a01b0316611030565b34801561045357600080fd5b5061028a6004803603608081101561046a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356110bd565b34801561049857600080fd5b506102dd600480360360408110156104af57600080fd5b506001600160a01b0381351690602001356112b9565b3480156104d157600080fd5b506102dd600480360360408110156104e857600080fd5b506001600160a01b038135169060200135611342565b34801561050a57600080fd5b506102dd6004803603602081101561052157600080fd5b50356001600160a01b0316611399565b34801561053d57600080fd5b506102dd6004803603604081101561055457600080fd5b506001600160a01b0381351690602001356113b4565b34801561057657600080fd5b5061057f6113e2565b005b34801561058d57600080fd5b5061028a600480360360408110156105a457600080fd5b508035906020013561145f565b3480156105bd57600080fd5b506105c6611568565b604080516001600160a01b039092168252519081900360200190f35b3480156105ee57600080fd5b506101dc611577565b34801561060357600080fd5b5061028a6004803603604081101561061a57600080fd5b506001600160a01b0381351690602001356115d2565b34801561063c57600080fd5b5061028a6004803603604081101561065357600080fd5b506001600160a01b0381351690602001356116be565b34801561067557600080fd5b5061028a6004803603604081101561068c57600080fd5b508035906020013561175c565b3480156106a557600080fd5b506102dd600480360360208110156106bc57600080fd5b50356001600160a01b0316611860565b3480156106d857600080fd5b5061028a600480360360608110156106ef57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561071f57600080fd5b82018360208201111561073157600080fd5b8035906020019184600183028401116401000000008311171561075357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118c4945050505050565b3480156107a057600080fd5b506105c6611a0c565b3480156107b557600080fd5b506107e2600480360360408110156107cc57600080fd5b506001600160a01b038135169060200135611a1b565b604080519384526020840192909252151582820152519081900360600190f35b34801561080e57600080fd5b5061028a6004803603604081101561082557600080fd5b506001600160a01b038135169060200135611a46565b34801561084757600080fd5b506102dd6004803603604081101561085e57600080fd5b506001600160a01b0381358116916020013516611ae9565b34801561088257600080fd5b5061057f6004803603602081101561089957600080fd5b50356001600160a01b0316611b14565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b505050505081565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6001600160a01b0383166000908152600160208181526040808420868552909152822001548210156109f057506001600160a01b03831660009081526001602090815260408083208584529091529020545b9392505050565b600080805260086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c754600754610a359163ffffffff611b4d16565b905090565b6001600160a01b038316600090815260086020526040812054610a63908363ffffffff611b4d16565b6001600160a01b0385166000908152600860209081526040808320939093556009815282822033835290522054610aa0908363ffffffff611b4d16565b6001600160a01b038086166000908152600960209081526040808320338452825280832094909455918616815260089091522054610ae4908363ffffffff611b6216565b6001600160a01b038085166000818152600860209081526040918290209490945580518681529051919392881692600080516020611b9383398151915292918290030190a35060019392505050565b600080610b46428463ffffffff611b6216565b9050610b523386611342565b604080518082019091526015815274151bdad95b9cc8185b1c9958591e481b1bd8dad959605a1b60208201529015610c085760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bcd578181015183820152602001610bb5565b50505050905090810190601f168015610bfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506040805180820190915260138152720416d6f756e742063616e206e6f74206265203606c1b602082015284610c7f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b50336000908152600160209081526040808320888452909152902054610cc05733600090815260208181526040822080546001810182559083529120018590555b610cca30856116be565b5060408051606081018252858152602080820184815260008385018181523380835260018086528784208d855286529287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905282518893600080516020611b73833981519152928290030190a3506001949350505050565b600080805b6001600160a01b038416600090815260208190526040902054811015610ea2576001600160a01b03841660009081526020819052604090208054610daf91869184908110610d9f57fe5b90600052602060002001546112b9565b91508115610e9a57610dc7838363ffffffff611b6216565b6001600160a01b0385166000908152600160208181526040808420918490528320805494975091939092919085908110610dfd57fe5b60009182526020808320919091015483528281019390935260409182018120600201805460ff1916941515949094179093556001600160a01b0387168352908290529020805482908110610e4d57fe5b9060005260206000200154846001600160a01b03167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b600101610d55565b508115610f25576040805163a9059cbb60e01b81526001600160a01b0385166004820152602481018490529051309163a9059cbb9160448083019260209291908290030181600087803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b505050506040513d6020811015610f2257600080fd5b50505b50919050565b60065460ff1681565b6002546000906001600160a01b03163314610f4e57600080fd5b6001600160a01b038316610fa9576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600754610fbc908363ffffffff611b6216565b6007556001600160a01b038316600090815260086020526040902054610fe8908363ffffffff611b6216565b6001600160a01b0384166000818152600860209081526040808320949094558351868152935192939192600080516020611b938339815191529281900390910190a392915050565b600061103b82611399565b905060005b6001600160a01b038316600090815260208190526040902054811015610f25576110b36110a684600080876001600160a01b03166001600160a01b03168152602001908152602001600020848154811061109657fe5b9060005260206000200154611342565b839063ffffffff611b6216565b9150600101611040565b6000806110d0428463ffffffff611b6216565b90506110dc8686611342565b604080518082019091526015815274151bdad95b9cc8185b1c9958591e481b1bd8dad959605a1b602082015290156111555760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506040805180820190915260138152720416d6f756e742063616e206e6f74206265203606c1b6020820152846111cc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506001600160a01b038616600090815260016020908152604080832088845290915290205461121f576001600160a01b038616600090815260208181526040822080546001810182559083529120018590555b61122930856116be565b5060408051606081018252858152602080820184815260008385018181526001600160a01b038c1680835260018086528784208d855286529287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905282518893600080516020611b73833981519152928290030190a350600195945050505050565b6001600160a01b038216600090815260016020818152604080842085855290915282200154421080159061131457506001600160a01b038316600090815260016020908152604080832085845290915290206002015460ff16155b1561099857506001600160a01b03919091166000908152600160209081526040808320938352929052205490565b6001600160a01b038216600090815260016020908152604080832084845290915281206002015460ff1661099857506001600160a01b03919091166000908152600160209081526040808320938352929052205490565b6001600160a01b031660009081526008602052604090205490565b600060205281600052604060002081815481106113cd57fe5b90600052602060002001600091509150505481565b6003546001600160a01b031633146113f957600080fd5b6003546002546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60008061146c3385611342565b116040518060400160405280601081526020016f139bc81d1bdad95b9cc81b1bd8dad95960821b815250906114e25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506114ed30836116be565b50336000908152600160209081526040808320868452909152902054611519908363ffffffff611b6216565b3360008181526001602081815260408084208985528252928390208581559091015482519485529084015280518693600080516020611b7383398151915292908290030190a350600192915050565b6002546001600160a01b031681565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b6002546000906001600160a01b031633146115ec57600080fd5b6001600160a01b0383166116315760405162461bcd60e51b8152600401808060200182810382526021815260200180611bb36021913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205461165a908363ffffffff611b4d16565b6001600160a01b038416600090815260086020526040902055600754611686908363ffffffff611b4d16565b6007556040805183815290516000916001600160a01b03861691600080516020611b938339815191529181900360200190a392915050565b336000908152600860205260408120546116de908363ffffffff611b4d16565b33600090815260086020526040808220929092556001600160a01b03851681522054611710908363ffffffff611b6216565b6001600160a01b038416600081815260086020908152604091829020939093558051858152905191923392600080516020611b938339815191529281900390910190a350600192915050565b6000806117693385611342565b116040518060400160405280601081526020016f139bc81d1bdad95b9cc81b1bd8dad95960821b815250906117df5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b50336000908152600160208181526040808420878552909152909120015461180d908363ffffffff611b6216565b336000818152600160208181526040808420898552825292839020918201859055905482519081529081019390935280518693600080516020611b7383398151915292908290030190a350600192915050565b6000805b6001600160a01b038316600090815260208190526040902054811015610f25576118ba6110a684600080876001600160a01b03166001600160a01b031681526020019081526020016000208481548110610d9f57fe5b9150600101611864565b3360008181526009602090815260408083206001600160a01b038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a3604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561199b578181015183820152602001611983565b50505050905090810190601f1680156119c85780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156119ea57600080fd5b505af11580156119fe573d6000803e3d6000fd5b506001979650505050505050565b6003546001600160a01b031681565b6001602081815260009384526040808520909152918352912080549181015460029091015460ff1683565b6002546000906001600160a01b03163314611a6057600080fd5b6002546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519185169163a9059cbb916044808201926020929091908290030181600087803b158015611ab657600080fd5b505af1158015611aca573d6000803e3d6000fd5b505050506040513d6020811015611ae057600080fd5b50519392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6002546001600160a01b03163314611b2b57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600082821115611b5c57600080fd5b50900390565b8181018281101561099857600080fdfeea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafddddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f2061646472657373a265627a7a723158203321a918c5f5c3c79259d09e35b2429b7f004db74d315e796a241c392e204e9864736f6c63430005110032

Deployed Bytecode

0x6080604052600436106101c25760003560e01c806371d66f00116100f7578063a9dab16711610095578063d71be8db11610064578063d71be8db146107a9578063dc39d06d14610802578063dd62ed3e1461083b578063f2fde38b14610876576101c2565b8063a9dab16714610669578063ab4a2eb314610699578063cae9ca51146106cc578063d4ee1d9014610794576101c2565b80638da5cb5b116100d15780638da5cb5b146105b157806395d89b41146105e25780639dc29fac146105f7578063a9059cbb14610630576101c2565b806371d66f001461053157806379ba50971461056a57806381fc4d9014610581576101c2565b8063313ce567116101645780634cb5465f1161013e5780634cb5465f146104475780635294d0e81461048c5780635ca48d8c146104c557806370a08231146104fe576101c2565b8063313ce567146103b057806340c10f19146103db5780634b0ee02a14610414576101c2565b806318160ddd116101a057806318160ddd146102ef57806323b872dd146103045780632e82aaf2146103475780632f6c493c1461037d576101c2565b806306fdde03146101c7578063095ea7b314610251578063179e91f11461029e575b600080fd5b3480156101d357600080fd5b506101dc6108a9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025d57600080fd5b5061028a6004803603604081101561027457600080fd5b506001600160a01b038135169060200135610937565b604080519115158252519081900360200190f35b3480156102aa57600080fd5b506102dd600480360360608110156102c157600080fd5b506001600160a01b03813516906020810135906040013561099e565b60408051918252519081900360200190f35b3480156102fb57600080fd5b506102dd6109f7565b34801561031057600080fd5b5061028a6004803603606081101561032757600080fd5b506001600160a01b03813581169160208101359091169060400135610a3a565b34801561035357600080fd5b5061028a6004803603606081101561036a57600080fd5b5080359060208101359060400135610b33565b34801561038957600080fd5b506102dd600480360360208110156103a057600080fd5b50356001600160a01b0316610d50565b3480156103bc57600080fd5b506103c5610f2b565b6040805160ff9092168252519081900360200190f35b3480156103e757600080fd5b5061028a600480360360408110156103fe57600080fd5b506001600160a01b038135169060200135610f34565b34801561042057600080fd5b506102dd6004803603602081101561043757600080fd5b50356001600160a01b0316611030565b34801561045357600080fd5b5061028a6004803603608081101561046a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356110bd565b34801561049857600080fd5b506102dd600480360360408110156104af57600080fd5b506001600160a01b0381351690602001356112b9565b3480156104d157600080fd5b506102dd600480360360408110156104e857600080fd5b506001600160a01b038135169060200135611342565b34801561050a57600080fd5b506102dd6004803603602081101561052157600080fd5b50356001600160a01b0316611399565b34801561053d57600080fd5b506102dd6004803603604081101561055457600080fd5b506001600160a01b0381351690602001356113b4565b34801561057657600080fd5b5061057f6113e2565b005b34801561058d57600080fd5b5061028a600480360360408110156105a457600080fd5b508035906020013561145f565b3480156105bd57600080fd5b506105c6611568565b604080516001600160a01b039092168252519081900360200190f35b3480156105ee57600080fd5b506101dc611577565b34801561060357600080fd5b5061028a6004803603604081101561061a57600080fd5b506001600160a01b0381351690602001356115d2565b34801561063c57600080fd5b5061028a6004803603604081101561065357600080fd5b506001600160a01b0381351690602001356116be565b34801561067557600080fd5b5061028a6004803603604081101561068c57600080fd5b508035906020013561175c565b3480156106a557600080fd5b506102dd600480360360208110156106bc57600080fd5b50356001600160a01b0316611860565b3480156106d857600080fd5b5061028a600480360360608110156106ef57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561071f57600080fd5b82018360208201111561073157600080fd5b8035906020019184600183028401116401000000008311171561075357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118c4945050505050565b3480156107a057600080fd5b506105c6611a0c565b3480156107b557600080fd5b506107e2600480360360408110156107cc57600080fd5b506001600160a01b038135169060200135611a1b565b604080519384526020840192909252151582820152519081900360600190f35b34801561080e57600080fd5b5061028a6004803603604081101561082557600080fd5b506001600160a01b038135169060200135611a46565b34801561084757600080fd5b506102dd6004803603604081101561085e57600080fd5b506001600160a01b0381358116916020013516611ae9565b34801561088257600080fd5b5061057f6004803603602081101561089957600080fd5b50356001600160a01b0316611b14565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b505050505081565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6001600160a01b0383166000908152600160208181526040808420868552909152822001548210156109f057506001600160a01b03831660009081526001602090815260408083208584529091529020545b9392505050565b600080805260086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c754600754610a359163ffffffff611b4d16565b905090565b6001600160a01b038316600090815260086020526040812054610a63908363ffffffff611b4d16565b6001600160a01b0385166000908152600860209081526040808320939093556009815282822033835290522054610aa0908363ffffffff611b4d16565b6001600160a01b038086166000908152600960209081526040808320338452825280832094909455918616815260089091522054610ae4908363ffffffff611b6216565b6001600160a01b038085166000818152600860209081526040918290209490945580518681529051919392881692600080516020611b9383398151915292918290030190a35060019392505050565b600080610b46428463ffffffff611b6216565b9050610b523386611342565b604080518082019091526015815274151bdad95b9cc8185b1c9958591e481b1bd8dad959605a1b60208201529015610c085760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bcd578181015183820152602001610bb5565b50505050905090810190601f168015610bfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506040805180820190915260138152720416d6f756e742063616e206e6f74206265203606c1b602082015284610c7f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b50336000908152600160209081526040808320888452909152902054610cc05733600090815260208181526040822080546001810182559083529120018590555b610cca30856116be565b5060408051606081018252858152602080820184815260008385018181523380835260018086528784208d855286529287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905282518893600080516020611b73833981519152928290030190a3506001949350505050565b600080805b6001600160a01b038416600090815260208190526040902054811015610ea2576001600160a01b03841660009081526020819052604090208054610daf91869184908110610d9f57fe5b90600052602060002001546112b9565b91508115610e9a57610dc7838363ffffffff611b6216565b6001600160a01b0385166000908152600160208181526040808420918490528320805494975091939092919085908110610dfd57fe5b60009182526020808320919091015483528281019390935260409182018120600201805460ff1916941515949094179093556001600160a01b0387168352908290529020805482908110610e4d57fe5b9060005260206000200154846001600160a01b03167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b600101610d55565b508115610f25576040805163a9059cbb60e01b81526001600160a01b0385166004820152602481018490529051309163a9059cbb9160448083019260209291908290030181600087803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b505050506040513d6020811015610f2257600080fd5b50505b50919050565b60065460ff1681565b6002546000906001600160a01b03163314610f4e57600080fd5b6001600160a01b038316610fa9576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600754610fbc908363ffffffff611b6216565b6007556001600160a01b038316600090815260086020526040902054610fe8908363ffffffff611b6216565b6001600160a01b0384166000818152600860209081526040808320949094558351868152935192939192600080516020611b938339815191529281900390910190a392915050565b600061103b82611399565b905060005b6001600160a01b038316600090815260208190526040902054811015610f25576110b36110a684600080876001600160a01b03166001600160a01b03168152602001908152602001600020848154811061109657fe5b9060005260206000200154611342565b839063ffffffff611b6216565b9150600101611040565b6000806110d0428463ffffffff611b6216565b90506110dc8686611342565b604080518082019091526015815274151bdad95b9cc8185b1c9958591e481b1bd8dad959605a1b602082015290156111555760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506040805180820190915260138152720416d6f756e742063616e206e6f74206265203606c1b6020820152846111cc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506001600160a01b038616600090815260016020908152604080832088845290915290205461121f576001600160a01b038616600090815260208181526040822080546001810182559083529120018590555b61122930856116be565b5060408051606081018252858152602080820184815260008385018181526001600160a01b038c1680835260018086528784208d855286529287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905282518893600080516020611b73833981519152928290030190a350600195945050505050565b6001600160a01b038216600090815260016020818152604080842085855290915282200154421080159061131457506001600160a01b038316600090815260016020908152604080832085845290915290206002015460ff16155b1561099857506001600160a01b03919091166000908152600160209081526040808320938352929052205490565b6001600160a01b038216600090815260016020908152604080832084845290915281206002015460ff1661099857506001600160a01b03919091166000908152600160209081526040808320938352929052205490565b6001600160a01b031660009081526008602052604090205490565b600060205281600052604060002081815481106113cd57fe5b90600052602060002001600091509150505481565b6003546001600160a01b031633146113f957600080fd5b6003546002546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60008061146c3385611342565b116040518060400160405280601081526020016f139bc81d1bdad95b9cc81b1bd8dad95960821b815250906114e25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506114ed30836116be565b50336000908152600160209081526040808320868452909152902054611519908363ffffffff611b6216565b3360008181526001602081815260408084208985528252928390208581559091015482519485529084015280518693600080516020611b7383398151915292908290030190a350600192915050565b6002546001600160a01b031681565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b6002546000906001600160a01b031633146115ec57600080fd5b6001600160a01b0383166116315760405162461bcd60e51b8152600401808060200182810382526021815260200180611bb36021913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205461165a908363ffffffff611b4d16565b6001600160a01b038416600090815260086020526040902055600754611686908363ffffffff611b4d16565b6007556040805183815290516000916001600160a01b03861691600080516020611b938339815191529181900360200190a392915050565b336000908152600860205260408120546116de908363ffffffff611b4d16565b33600090815260086020526040808220929092556001600160a01b03851681522054611710908363ffffffff611b6216565b6001600160a01b038416600081815260086020908152604091829020939093558051858152905191923392600080516020611b938339815191529281900390910190a350600192915050565b6000806117693385611342565b116040518060400160405280601081526020016f139bc81d1bdad95b9cc81b1bd8dad95960821b815250906117df5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b50336000908152600160208181526040808420878552909152909120015461180d908363ffffffff611b6216565b336000818152600160208181526040808420898552825292839020918201859055905482519081529081019390935280518693600080516020611b7383398151915292908290030190a350600192915050565b6000805b6001600160a01b038316600090815260208190526040902054811015610f25576118ba6110a684600080876001600160a01b03166001600160a01b031681526020019081526020016000208481548110610d9f57fe5b9150600101611864565b3360008181526009602090815260408083206001600160a01b038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a3604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561199b578181015183820152602001611983565b50505050905090810190601f1680156119c85780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156119ea57600080fd5b505af11580156119fe573d6000803e3d6000fd5b506001979650505050505050565b6003546001600160a01b031681565b6001602081815260009384526040808520909152918352912080549181015460029091015460ff1683565b6002546000906001600160a01b03163314611a6057600080fd5b6002546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519185169163a9059cbb916044808201926020929091908290030181600087803b158015611ab657600080fd5b505af1158015611aca573d6000803e3d6000fd5b505050506040513d6020811015611ae057600080fd5b50519392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6002546001600160a01b03163314611b2b57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600082821115611b5c57600080fd5b50900390565b8181018281101561099857600080fdfeea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafddddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f2061646472657373a265627a7a723158203321a918c5f5c3c79259d09e35b2429b7f004db74d315e796a241c392e204e9864736f6c63430005110032

Deployed Bytecode Sourcemap

6977:13311:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12179:8;;;7300:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7300:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7300:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9712:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9712:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9712:208:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;16465:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16465:253:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16465:253:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8117:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8117:114:0;;;:::i;10463:343::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10463:343:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10463:343:0;;;;;;;;;;;;;;;;;:::i;13913:763::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13913:763:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13913:763:0;;;;;;;;;;;;:::i;19165:631::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19165:631:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19165:631:0;-1:-1:-1;;;;;19165:631:0;;:::i;7326:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7326:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12629:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12629:328:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12629:328:0;;;;;;;;:::i;16882:301::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16882:301:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16882:301:0;-1:-1:-1;;;;;16882:301:0;;:::i;15036:624::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15036:624:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;15036:624:0;;;;;;;;;;;;;;;;;;:::i;18714:291::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18714:291:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18714:291:0;;;;;;;;:::i;15907:224::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15907:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15907:224:0;;;;;;;;:::i;8458:120::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8458:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8458:120:0;-1:-1:-1;;;;;8458:120:0;;:::i;3037:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3037:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3037:47:0;;;;;;;;:::i;2734:196::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2734:196:0;;;:::i;:::-;;17994:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17994:465:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17994:465:0;;;;;;;:::i;2304:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2304:20:0;;;:::i;:::-;;;;-1:-1:-1;;;;;2304:20:0;;;;;;;;;;;;;;7273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7273:20:0;;;:::i;13289:330::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13289:330:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13289:330:0;;;;;;;;:::i;8929:267::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8929:267:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8929:267:0;;;;;;;;:::i;17376:414::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17376:414:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17376:414:0;;;;;;;:::i;19959:303::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19959:303:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19959:303:0;-1:-1:-1;;;;;19959:303:0;;:::i;11609:333::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11609:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;11609:333:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;11609:333:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11609:333:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11609:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11609:333:0;;-1:-1:-1;11609:333:0;;-1:-1:-1;;;;;11609:333:0:i;2331:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2331:23:0;;;:::i;3383:63::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3383:63:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3383:63:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12433:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12433:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12433:184:0;;;;;;;;:::i;11094:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11094:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11094:147:0;;;;;;;;;;:::i;2626:102::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2626:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2626:102:0;-1:-1:-1;;;;;2626:102:0;;:::i;7300:19::-;;;;;;;;;;;;;;;-1:-1:-1;;7300:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9712:208::-;9808:10;9775:12;9800:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9800:28:0;;;;;;;;;;;:37;;;9853;;;;;;;9775:12;;9800:28;;9808:10;;9853:37;;;;;;;;-1:-1:-1;9908:4:0;9712:208;;;;;:::o;16465:253::-;-1:-1:-1;;;;;16622:11:0;;16586:14;16622:11;;;:6;:11;;;;;;;;:20;;;;;;;;:29;;:37;-1:-1:-1;16618:92:0;;;-1:-1:-1;;;;;;16683:11:0;;;;;;:6;:11;;;;;;;;:20;;;;;;;;:27;16618:92;16465:253;;;;;:::o;8117:114::-;8161:4;8202:20;;;:8;:20;;;;8185:12;;:38;;;:16;:38;:::i;:::-;8178:45;;8117:114;:::o;10463:343::-;-1:-1:-1;;;;;10582:14:0;;10540:12;10582:14;;;:8;:14;;;;;;:26;;10601:6;10582:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;10565:14:0;;;;;;:8;:14;;;;;;;;:43;;;;10647:7;:13;;;;;10661:10;10647:25;;;;;;:37;;10677:6;10647:37;:29;:37;:::i;:::-;-1:-1:-1;;;;;10619:13:0;;;;;;;:7;:13;;;;;;;;10633:10;10619:25;;;;;;;:65;;;;10710:12;;;;;:8;:12;;;;;:24;;10727:6;10710:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;10695:12:0;;;;;;;:8;:12;;;;;;;;;:39;;;;10750:26;;;;;;;10695:12;;10750:26;;;;-1:-1:-1;;;;;;;;;;;10750:26:0;;;;;;;;-1:-1:-1;10794:4:0;10463:343;;;;;:::o;13913:763::-;14010:4;;14053:14;:3;14061:5;14053:14;:7;:14;:::i;:::-;14032:35;;14248:33;14261:10;14273:7;14248:12;:33::i;:::-;14288:14;;;;;;;;;;;;-1:-1:-1;;;14288:14:0;;;;;14248:38;14240:63;;;;-1:-1:-1;;;14240:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14240:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14336:11:0;;;;;;;;;;;;-1:-1:-1;;;14336:11:0;;;;14322:12;14314:34;;;;-1:-1:-1;;;14314:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;14314:34:0;-1:-1:-1;14372:10:0;14365:18;;;;:6;:18;;;;;;;;:27;;;;;;;;:34;14361:94;;14430:10;14419;:22;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;14419:36:0;;;;;;;;;14361:94;14468:32;14485:4;14492:7;14468:8;:32::i;:::-;-1:-1:-1;14543:37:0;;;;;;;;;;;;;;;;;;-1:-1:-1;14543:37:0;;;;;;14520:10;14513:18;;;14543:37;14513:18;;;;;;:27;;;;;;;;;:67;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14513:67:0;;;;;;;;;;;14598:48;;;;;;;;;;;;;14513:27;;-1:-1:-1;;;;;;;;;;;14598:48:0;;;;;;;-1:-1:-1;14664:4:0;;13913:763;-1:-1:-1;;;;13913:763:0:o;19165:631::-;19228:24;;;19303:396;-1:-1:-1;;;;;19327:15:0;;:10;:15;;;;;;;;;;:22;19323:26;;19303:396;;;-1:-1:-1;;;;;19408:15:0;;:10;:15;;;;;;;;;;:18;;19386:41;;19403:3;;19424:1;;19408:18;;;;;;;;;;;;;;19386:16;:41::i;:::-;19371:56;-1:-1:-1;19446:16:0;;19442:246;;19502:34;:16;19523:12;19502:34;:20;:34;:::i;:::-;-1:-1:-1;;;;;19555:11:0;;;;;;19597:4;19555:11;;;;;;;;19567:15;;;;;;:18;;19483:53;;-1:-1:-1;19597:4:0;;19555:11;;;19567:15;19583:1;;19567:18;;;;;;;;;;;;;;;;;;;19555:31;;;;;;;;;;;;;;;:39;;:46;;-1:-1:-1;;19555:46:0;;;;;;;;;;;-1:-1:-1;;;;;19639:15:0;;;;;;;;;;:18;;19655:1;;19639:18;;;;;;;;;;;;;;19634:3;-1:-1:-1;;;;;19625:47:0;;19659:12;19625:47;;;;;;;;;;;;;;;;;;19442:246;19351:3;;19303:396;;;-1:-1:-1;19717:20:0;;19713:75;;19752:36;;;-1:-1:-1;;;19752:36:0;;-1:-1:-1;;;;;19752:36:0;;;;;;;;;;;;;;:4;;:13;;:36;;;;;;;;;;;;;;-1:-1:-1;19752:4:0;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;19752:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19752:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;19713:75:0;19165:631;;;;:::o;7326:21::-;;;;;;:::o;12629:328::-;2592:5;;12702:4;;-1:-1:-1;;;;;2592:5:0;2578:10;:19;2570:28;;;;;;-1:-1:-1;;;;;12727:21:0;;12719:65;;;;;-1:-1:-1;;;12719:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12812:12;;:24;;12829:6;12812:24;:16;:24;:::i;:::-;12797:12;:39;-1:-1:-1;;;;;12867:17:0;;;;;;:8;:17;;;;;;:29;;12889:6;12867:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;12847:17:0;;;;;;:8;:17;;;;;;;;:49;;;;12912:37;;;;;;;12847:17;;;;-1:-1:-1;;;;;;;;;;;12912:37:0;;;;;;;;;12629:328;;;;:::o;16882:301::-;16967:14;17008;17018:3;17008:9;:14::i;:::-;16999:23;-1:-1:-1;17040:9:0;17035:138;-1:-1:-1;;;;;17059:15:0;;:10;:15;;;;;;;;;;:22;17055:26;;17035:138;;;17112:49;17123:37;17136:3;17141:10;:15;17152:3;-1:-1:-1;;;;;17141:15:0;-1:-1:-1;;;;;17141:15:0;;;;;;;;;;;;17157:1;17141:18;;;;;;;;;;;;;;;;17123:12;:37::i;:::-;17112:6;;:49;:10;:49;:::i;:::-;17103:58;-1:-1:-1;17083:3:0;;17035:138;;15036:624;15158:4;;15201:14;:3;15209:5;15201:14;:7;:14;:::i;:::-;15180:35;;15259:26;15272:3;15277:7;15259:12;:26::i;:::-;15292:14;;;;;;;;;;;;-1:-1:-1;;;15292:14:0;;;;;15259:31;15251:56;;;;-1:-1:-1;;;15251:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;15251:56:0;-1:-1:-1;15340:11:0;;;;;;;;;;;;-1:-1:-1;;;15340:11:0;;;;15326:12;15318:34;;;;-1:-1:-1;;;15318:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;15318:34:0;-1:-1:-1;;;;;;15369:11:0;;;;;;:6;:11;;;;;;;;:20;;;;;;;;:27;15365:80;;-1:-1:-1;;;;;15416:15:0;;:10;:15;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;15416:29:0;;;;;;;;;15365:80;15458:32;15475:4;15482:7;15458:8;:32::i;:::-;-1:-1:-1;15526:37:0;;;;;;;;;;;;;;;;;;-1:-1:-1;15526:37:0;;;;;;-1:-1:-1;;;;;15503:11:0;;;;;15526:37;15503:11;;;;;;:20;;;;;;;;;:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15503:60:0;;;;;;;;;;;15589:41;;;;;;;;;;;;;15503:20;;-1:-1:-1;;;;;;;;;;;15589:41:0;;;;;;;-1:-1:-1;15648:4:0;;15036:624;-1:-1:-1;;;;;15036:624:0:o;18714:291::-;-1:-1:-1;;;;;18854:11:0;;18818:14;18854:11;;;:6;:11;;;;;;;;:20;;;;;;;;:29;;18887:3;-1:-1:-1;18854:36:0;;;:69;;-1:-1:-1;;;;;;18895:11:0;;;;;;:6;:11;;;;;;;;:20;;;;;;;;:28;;;;;18894:29;18854:69;18850:147;;;-1:-1:-1;;;;;;18970:11:0;;;;;;;;:6;:11;;;;;;;;:20;;;;;;;:27;;18714:291::o;15907:224::-;-1:-1:-1;;;;;16044:11:0;;16007:14;16044:11;;;:6;:11;;;;;;;;:20;;;;;;;;:28;;;;;16039:84;;-1:-1:-1;;;;;;16096:11:0;;;;;;;;:6;:11;;;;;;;;:20;;;;;;;:27;;15907:224::o;8458:120::-;-1:-1:-1;;;;;8550:20:0;8518:12;8550:20;;;:8;:20;;;;;;;8458:120::o;3037:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2734:196::-;2801:8;;-1:-1:-1;;;;;2801:8:0;2787:10;:22;2779:31;;;;;;2854:8;;2847:5;;2826:37;;-1:-1:-1;;;;;2854:8:0;;;;2847:5;;;;2826:37;;2854:8;;2826:37;2882:8;;;2874:5;:16;;-1:-1:-1;;;;;;2874:16:0;;;-1:-1:-1;;;;;2882:8:0;;2874:16;;;;2901:21;;;2734:196::o;17994:465::-;18090:4;18156:1;18120:33;18133:10;18145:7;18120:12;:33::i;:::-;:37;18159:10;;;;;;;;;;;;;-1:-1:-1;;;18159:10:0;;;18112:58;;;;;-1:-1:-1;;;18112:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;18112:58:0;;18181:32;18198:4;18205:7;18181:8;:32::i;:::-;-1:-1:-1;18270:10:0;18263:18;;;;:6;:18;;;;;;;;:27;;;;;;;;:34;:47;;18302:7;18263:47;:38;:47;:::i;:::-;18233:10;18226:18;;;;:6;:18;;;;;;;;:27;;;;;;;;;:84;;;18392:36;;;;18328:101;;;;;;;;;;;18226:27;;-1:-1:-1;;;;;;;;;;;18328:101:0;;;;;;;;-1:-1:-1;18447:4:0;17994:465;;;;:::o;2304:20::-;;;-1:-1:-1;;;;;2304:20:0;;:::o;7273:::-;;;;;;;;;;;;;;;-1:-1:-1;;7273:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13289:330;2592:5;;13362:4;;-1:-1:-1;;;;;2592:5:0;2578:10;:19;2570:28;;;;;;-1:-1:-1;;;;;13387:21:0;;13379:67;;;;-1:-1:-1;;;13379:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13479:17:0;;;;;;:8;:17;;;;;;:29;;13501:6;13479:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;13459:17:0;;;;;;:8;:17;;;;;:49;13534:12;;:24;;13551:6;13534:24;:16;:24;:::i;:::-;13519:12;:39;13574:37;;;;;;;;13600:1;;-1:-1:-1;;;;;13574:37:0;;;-1:-1:-1;;;;;;;;;;;13574:37:0;;;;;;;;13289:330;;;;:::o;8929:267::-;9045:10;8988:12;9036:20;;;:8;:20;;;;;;:32;;9061:6;9036:32;:24;:32;:::i;:::-;9022:10;9013:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;9094:12:0;;;;;;:24;;9111:6;9094:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;9079:12:0;;;;;;:8;:12;;;;;;;;;:39;;;;9134:32;;;;;;;9079:12;;9143:10;;-1:-1:-1;;;;;;;;;;;9134:32:0;;;;;;;;;-1:-1:-1;9184:4:0;8929:267;;;;:::o;17376:414::-;17462:4;17528:1;17492:33;17505:10;17517:7;17492:12;:33::i;:::-;:37;17531:10;;;;;;;;;;;;;-1:-1:-1;;;17531:10:0;;;17484:58;;;;;-1:-1:-1;;;17484:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;17484:58:0;-1:-1:-1;17601:10:0;17594:18;;;;:6;:18;;;;;;;;:27;;;;;;;;;:36;;:47;;17635:5;17594:47;:40;:47;:::i;:::-;17562:10;17555:18;;;;:6;:18;;;;;;;;:27;;;;;;;;;:36;;;:86;;;17687:34;;17659:101;;;;;;;;;;;;;;17555:27;;-1:-1:-1;;;;;;;;;;;17659:101:0;;;;;;;;-1:-1:-1;17778:4:0;17376:414;;;;:::o;19959:303::-;20049:24;;20091:162;-1:-1:-1;;;;;20115:15:0;;:10;:15;;;;;;;;;;:22;20111:26;;20091:162;;;20178:63;20199:41;20216:3;20221:10;:15;20232:3;-1:-1:-1;;;;;20221:15:0;-1:-1:-1;;;;;20221:15:0;;;;;;;;;;;;20237:1;20221:18;;;;;;;20178:63;20159:82;-1:-1:-1;20139:3:0;;20091:162;;11609:333;11731:10;11698:12;11723:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11723:28:0;;;;;;;;;;;:37;;;11776;;;;;;;11698:12;;11723:28;;11731:10;;11776:37;;;;;;;;11824:88;;-1:-1:-1;;;11824:88:0;;11872:10;11824:88;;;;;;;;;;;;11900:4;11824:88;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11824:47:0;;;;;11872:10;11884:6;;11900:4;11907;;11824:88;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11824:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11824:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11930:4:0;;11609:333;-1:-1:-1;;;;;;;11609:333:0:o;2331:23::-;;;-1:-1:-1;;;;;2331:23:0;;:::o;3383:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12433:184::-;2592:5;;12525:12;;-1:-1:-1;;;;;2592:5:0;2578:10;:19;2570:28;;;;;;12595:5;;12557:52;;;-1:-1:-1;;;12557:52:0;;-1:-1:-1;;;;;12595:5:0;;;12557:52;;;;;;;;;;;;:37;;;;;;:52;;;;;;;;;;;;;;;12595:5;12557:37;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;12557:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12557:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12557:52:0;;12433:184;-1:-1:-1;;;12433:184:0:o;11094:147::-;-1:-1:-1;;;;;11205:19:0;;;11171:14;11205:19;;;:7;:19;;;;;;;;:28;;;;;;;;;;;;;11094:147::o;2626:102::-;2592:5;;-1:-1:-1;;;;;2592:5:0;2578:10;:19;2570:28;;;;;;2700:8;:20;;-1:-1:-1;;;;;;2700:20:0;-1:-1:-1;;;;;2700:20:0;;;;;;;;;;2626:102::o;352:114::-;404:6;436:1;431;:6;;423:15;;;;;;-1:-1:-1;453:5:0;;;352:114::o;232:::-;307:5;;;331:6;;;;323:15;;;;

Swarm Source

bzzr://3321a918c5f5c3c79259d09e35b2429b7f004db74d315e796a241c392e204e98
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.