ETH Price: $3,171.47 (+4.75%)

Contract

0x516Cd1cff644C1eE71462026143AeA8eA80910B4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve122082872021-04-09 22:15:511310 days ago1618006551IN
0x516Cd1cf...eA80910B4
0 ETH0.0042197490
0x60806040122082762021-04-09 22:13:531310 days ago1618006433IN
 Contract Creation
0 ETH0.3566264100

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x4342b553...4cce0bd94
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Token

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-04-09
*/

pragma solidity ^0.4.24;

contract ERC20Interface {
    function totalSupply()
        public
        view
        returns (uint256);

    function balanceOf(
        address _address)
        public
        view
        returns (uint256 balance);

    function allowance(
        address _address,
        address _to)
        public
        view
        returns (uint256 remaining);

    function transfer(
        address _to,
        uint256 _value)
        public
        returns (bool success);

    function approve(
        address _to,
        uint256 _value)
        public
        returns (bool success);

    function transferFrom(
        address _from,
        address _to,
        uint256 _value)
        public
        returns (bool success);

    event Transfer(
        address indexed _from,
        address indexed _to,
        uint256 _value
    );

    event Approval(
        address indexed _owner,
        address indexed _spender,
        uint256 _value
    );
}


contract Owned {
    address owner;
    address newOwner;
    uint32 transferCount;

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

    constructor() public {
        owner = msg.sender;
        transferCount = 0;
    }

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

    function transferOwnership(
        address _newOwner)
        public
        onlyOwner
    {
        newOwner = _newOwner;
    }

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

    function viewTransferCount()
        public
        view
        onlyOwner
        returns (uint32)
    {
        return transferCount;
    }

    function isTransferPending()
        public
        view
        returns (bool) {
        require(
            msg.sender == owner ||
            msg.sender == newOwner);
        return newOwner != address(0);
    }

    function acceptOwnership()
         public
    {
        require(msg.sender == newOwner);

        owner = newOwner;
        newOwner = address(0);
        transferCount++;

        emit TransferOwnership(
            owner,
            newOwner
        );
    }
}

library SafeMath {
    function add(
        uint256 a,
        uint256 b)
        internal
        pure
        returns(uint256 c)
    {
        c = a + b;
        require(c >= a);
    }

    function sub(
        uint256 a,
        uint256 b)
        internal
        pure
        returns(uint256 c)
    {
        require(b <= a);
        c = a - b;
    }

    function mul(
        uint256 a,
        uint256 b)
        internal
        pure
        returns(uint256 c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }

    function div(
        uint256 a,
        uint256 b)
        internal
        pure
        returns(uint256 c) {
        require(b > 0);
        c = a / b;
    }
}

contract ApproveAndCallFallBack {
    function receiveApproval(
        address _from,
        uint256 _value,
        address token,
        bytes data)
        public
        returns (bool success);
}


contract Pausable is Owned {
  event Pause();
  event Unpause();

  bool public paused = false;

  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  modifier whenPaused() {
    require(paused);
    _;
  }

  function pause() onlyOwner whenNotPaused public {
    paused = true;
    emit Pause();
  }

  function unpause() onlyOwner whenPaused public {
    paused = false;
    emit Unpause();
  }
}


/**
 * @title ERC1132 interface
 * @dev see https://github.com/ethereum/EIPs/issues/1132
 */
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);

}


contract Token is ERC20Interface, Owned, Pausable, ERC1132 {
    using SafeMath for uint256;

    string public symbol;
    string public name;
    uint8 public decimals;
    uint256 private _totalSupply;
    
    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';

    /* always capped by 10B tokens */
    uint256 internal constant MAX_TOTAL_SUPPLY = 10000000000;

    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint256)) allowed;
    mapping(address => uint256) incomes;
    mapping(address => uint256) expenses;
    mapping(address => bool) frozenAccount;

    event FreezeAccount(address _address, bool frozen);

    constructor(
        uint256 _totalSupply_,
        string _name,
        string _symbol,
        uint8 _decimals)
        public
    {
        symbol = _symbol;
        name = _name;
        decimals = _decimals;
        _totalSupply = _totalSupply_ * 10**uint256(_decimals);
        balances[owner] = _totalSupply;

        emit Transfer(address(0), owner, _totalSupply);
    }

    function totalSupply()
        public
        view
        returns (uint256)
    {
        return _totalSupply;
    }

    function _transfer(
        address _from,
        address _to,
        uint256 _value)
        internal
        returns (bool success)
    {
        require (_to != 0x0);
        require (balances[_from] >= _value);
        require(!frozenAccount[_from]);
        require(!frozenAccount[_to]);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);

        incomes[_to] = incomes[_to].add(_value);
        expenses[_from] = expenses[_from].add(_value);

        emit Transfer(_from, _to, _value);

        return true;
    }

    function transfer(
        address _to,
        uint256 _value)
        public
        whenNotPaused
        returns (bool success)
    {
        return _transfer(msg.sender, _to, _value);
    }

    function approve(
        address _spender,
        uint256 _value)
        public
        whenNotPaused
        returns (bool success)
    {
        require (_spender != 0x0);
        require(!frozenAccount[msg.sender]);
        require(!frozenAccount[_spender]);

        allowed[msg.sender][_spender] = _value;

        emit Approval(msg.sender, _spender, _value);

        return true;
    }

    function transferFrom(
        address _from,
        address _to,
        uint256 _value)
        public
        whenNotPaused
        returns (bool success)
    {
        require(!frozenAccount[msg.sender]);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        return _transfer(_from, _to, _value);
    }

    function balanceOf(
        address _address)
        public
        view
        returns (uint256 remaining)
    {
        require(_address != 0x0);

        return balances[_address];
    }

    function incomeOf(
        address _address)
        public
        view
        returns (uint256 income)
    {
        require(_address != 0x0);

        return incomes[_address];
    }

    function expenseOf(
        address _address)
        public
        view
        returns (uint256 expense)
    {
        require(_address != 0x0);

        return expenses[_address];
    }

    function allowance(
        address _owner,
        address _spender)
        public
        view
        returns (uint256 remaining)
    {
        require(_owner != 0x0);
        require(_spender != 0x0);
        return allowed[_owner][_spender];
    }

    function approveAndCall(
        address _spender,
        uint256 _value,
        bytes _data)
        public
        whenNotPaused
        returns (bool success)
    {
        if (approve(_spender, _value)) {
            require(ApproveAndCallFallBack(_spender).receiveApproval(msg.sender, _value, this, _data) == true);
            return true;
        }
        return false;
    }

    function freezeAccount(
        address _address,
        bool freeze)
        public
        onlyOwner
        returns (bool success)
    {
        frozenAccount[_address] = freeze;
        emit FreezeAccount(_address, freeze);
        return true;
    }

    function isFrozenAccount(
        address _address)
        public
        view
        returns (bool frozen)
    {
        require(_address != 0x0);
        return frozenAccount[_address];
    }

    function mint(
        uint256 amount) 
        public 
        onlyOwner 
        returns (bool success)
    {
        uint256 newSupply = _totalSupply + amount;
        require(newSupply <= MAX_TOTAL_SUPPLY * 10 **uint256(decimals), "ERC20: exceed maximum total supply");

        _totalSupply = newSupply;
        balances[owner] += amount;
        emit Transfer(address(0), owner, amount);
        return true;
    }

    function burn(
        uint256 amount) 
        public 
        whenNotPaused
        returns (bool success)
    {
        require (balances[msg.sender] >= amount);
        require(!frozenAccount[msg.sender]);
        balances[msg.sender] = balances[msg.sender].sub(amount);
        _totalSupply -= amount;

        emit Transfer(msg.sender, address(0), amount);
        return true;
    }

     function lock(
         bytes32 _reason, 
         uint256 _amount, 
         uint256 _time)
        public
        whenNotPaused
        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;
    }

    function transferWithLock(address _to, bytes32 _reason, uint256 _amount, uint256 _time)
        public
        whenNotPaused
        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;
    }

    function tokensLocked(address _of, bytes32 _reason)
        public
        view
        returns (uint256 amount)
    {
        if (!locked[_of][_reason].claimed)
            amount = locked[_of][_reason].amount;
    }

    function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time)
        public
        view
        returns (uint256 amount)
    {
        if (locked[_of][_reason].validity > _time)
            amount = locked[_of][_reason].amount;
    }

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

     function extendLock(bytes32 _reason, uint256 _time)
        public
        whenNotPaused
        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;
    }

    function increaseLockAmount(bytes32 _reason, uint256 _amount)
        public
        whenNotPaused
        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;
    }

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

    function unlock(address _of)
        public
        whenNotPaused
        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);
    }

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

    function () public payable {
        revert();
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_time","type":"uint256"}],"name":"tokensLockedAtTime","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferPending","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_time","type":"uint256"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_of","type":"address"}],"name":"unlock","outputs":[{"name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isFrozenAccount","outputs":[{"name":"frozen","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"totalBalanceOf","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_time","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensUnlockable","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensLocked","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockReason","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"}],"name":"increaseLockAmount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"viewTransferCount","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"incomeOf","outputs":[{"name":"income","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reason","type":"bytes32"},{"name":"_time","type":"uint256"}],"name":"extendLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"getUnlockableTokens","outputs":[{"name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"viewOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"}],"name":"locked","outputs":[{"name":"amount","type":"uint256"},{"name":"validity","type":"uint256"},{"name":"claimed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"expenseOf","outputs":[{"name":"expense","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_totalSupply_","type":"uint256"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FreezeAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_validity","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Unlocked","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"TransferOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

Deployed Bytecode

0x6080604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101c7578063095ea7b314610257578063179e91f1146102bc5780631801c4081461032b57806318160ddd1461035a57806323b872dd146103855780632e82aaf21461040a5780632f6c493c14610467578063313ce567146104be5780633f4ba83a146104ef5780634028db791461050657806342966c68146105615780634b0ee02a146105a65780634cb5465f146105fd5780635294d0e81461067a5780635c975abb146106df5780635ca48d8c1461070e57806370a082311461077357806371d66f00146107ca57806379ba50971461083357806381fc4d901461084a5780638456cb591461089d57806384aa2602146108b457806395d89b41146108eb5780639b03bea61461097b578063a0712d68146109d2578063a9059cbb14610a17578063a9dab16714610a7c578063ab4a2eb314610acf578063bc677b4614610b26578063cae9ca5114610b7d578063d71be8db14610c28578063dd62ed3e14610c9f578063dff96f8a14610d16578063e724529c14610d6d578063f2fde38b14610dd4575b600080fd5b3480156101d357600080fd5b506101dc610e17565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021c578082015181840152602081019050610201565b50505050905090810190601f1680156102495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026357600080fd5b506102a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eb5565b604051808215151515815260200191505060405180910390f35b3480156102c857600080fd5b50610315600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291908035906020019092919050505061109b565b6040518082815260200191505060405180910390f35b34801561033757600080fd5b50610340611166565b604051808215151515815260200191505060405180910390f35b34801561036657600080fd5b5061036f611273565b6040518082815260200191505060405180910390f35b34801561039157600080fd5b506103f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061127d565b604051808215151515815260200191505060405180910390f35b34801561041657600080fd5b5061044d60048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050611417565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b506104a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061180f565b6040518082815260200191505060405180910390f35b3480156104ca57600080fd5b506104d3611b70565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104fb57600080fd5b50610504611b83565b005b34801561051257600080fd5b50610547600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c42565b604051808215151515815260200191505060405180910390f35b34801561056d57600080fd5b5061058c60048036038101908080359060200190929190505050611cbd565b604051808215151515815260200191505060405180910390f35b3480156105b257600080fd5b506105e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e96565b6040518082815260200191505060405180910390f35b34801561060957600080fd5b50610660600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291908035906020019092919080359060200190929190505050611f7a565b604051808215151515815260200191505060405180910390f35b34801561068657600080fd5b506106c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050612373565b6040518082815260200191505060405180910390f35b3480156106eb57600080fd5b506106f46124b0565b604051808215151515815260200191505060405180910390f35b34801561071a57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506124c3565b6040518082815260200191505060405180910390f35b34801561077f57600080fd5b506107b4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612599565b6040518082815260200191505060405180910390f35b3480156107d657600080fd5b50610815600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612607565b60405180826000191660001916815260200191505060405180910390f35b34801561083f57600080fd5b50610848612637565b005b34801561085657600080fd5b50610883600480360381019080803560001916906020019092919080359060200190929190505050612811565b604051808215151515815260200191505060405180910390f35b3480156108a957600080fd5b506108b2612b0e565b005b3480156108c057600080fd5b506108c9612bcd565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156108f757600080fd5b50610900612c42565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610940578082015181840152602081019050610925565b50505050905090810190601f16801561096d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561098757600080fd5b506109bc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ce0565b6040518082815260200191505060405180910390f35b3480156109de57600080fd5b506109fd60048036038101908080359060200190929190505050612d4e565b604051808215151515815260200191505060405180910390f35b348015610a2357600080fd5b50610a62600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f73565b604051808215151515815260200191505060405180910390f35b348015610a8857600080fd5b50610ab5600480360381019080803560001916906020019092919080359060200190929190505050612fa4565b604051808215151515815260200191505060405180910390f35b348015610adb57600080fd5b50610b10600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613296565b6040518082815260200191505060405180910390f35b348015610b3257600080fd5b50610b3b61336f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b8957600080fd5b50610c0e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613398565b604051808215151515815260200191505060405180910390f35b348015610c3457600080fd5b50610c77600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919050505061356b565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b348015610cab57600080fd5b50610d00600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135af565b6040518082815260200191505060405180910390f35b348015610d2257600080fd5b50610d57600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613681565b6040518082815260200191505060405180910390f35b348015610d7957600080fd5b50610dba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506136ef565b604051808215151515815260200191505060405180910390f35b348015610de057600080fd5b50610e15600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061381c565b005b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ead5780601f10610e8257610100808354040283529160200191610ead565b820191906000526020600020905b815481529060010190602001808311610e9057829003601f168201915b505050505081565b6000600160189054906101000a900460ff16151515610ed357600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610ef957600080fd5b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f5257600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610fab57600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000856000191660001916815260200190815260200160002060010154111561115f57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084600019166000191681526020019081526020016000206000015490505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112105750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561121b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415905090565b6000600754905090565b6000600160189054906101000a900460ff1615151561129b57600080fd5b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156112f457600080fd5b61138382600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138bb90919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061140e8484846138d7565b90509392505050565b600080600160189054906101000a900460ff1615151561143657600080fd5b6114498342613cc290919063ffffffff16565b9050600061145733876124c3565b146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000815250901515611536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114fb5780820151818401526020810190506114e0565b50505050905090810190601f1680156115285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008414156040805190810160405280601381526020017f416d6f756e742063616e206e6f7420626520300000000000000000000000000081525090151561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156115df5780820151818401526020810190506115c4565b50505050905090810190601f16801561160c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087600019166000191681526020019081526020016000206000015414156116ef57600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b6116f93085612f73565b5060606040519081016040528085815260200182815260200160001515815250600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008760001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505084600019163373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd8684604051808381526020018281526020019250505060405180910390a360019150509392505050565b6000806000600160189054906101000a900460ff1615151561183057600080fd5b600090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611a80576118df84600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156118cf57fe5b9060005260206000200154612373565b91506000821115611a73576118fd8284613cc290919063ffffffff16565b92506001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561198e57fe5b90600052602060002001546000191660001916815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481101515611a1557fe5b9060005260206000200154600019168473ffffffffffffffffffffffffffffffffffffffff167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b8080600101915050611835565b6000831115611b69573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b2c57600080fd5b505af1158015611b40573d6000803e3d6000fd5b505050506040513d6020811015611b5657600080fd5b8101908080519060200190929190505050505b5050919050565b600660009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bde57600080fd5b600160189054906101000a900460ff161515611bf957600080fd5b6000600160186101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000808273ffffffffffffffffffffffffffffffffffffffff1614151515611c6957600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160189054906101000a900460ff16151515611cdb57600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611d2957600080fd5b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611d8257600080fd5b611dd482600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138bb90919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b600080611ea283612599565b9150600090505b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611f7457611f65611f5684600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515611f4657fe5b90600052602060002001546124c3565b83613cc290919063ffffffff16565b91508080600101915050611ea9565b50919050565b600080600160189054906101000a900460ff16151515611f9957600080fd5b611fac8342613cc290919063ffffffff16565b90506000611fba87876124c3565b146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000815250901515612099576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561205e578082015181840152602081019050612043565b50505050905090810190601f16801561208b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008414156040805190810160405280601381526020017f416d6f756e742063616e206e6f7420626520300000000000000000000000000081525090151561217d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612142578082015181840152602081019050612127565b50505050905090810190601f16801561216f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154141561225257600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b61225c3085612f73565b5060606040519081016040528085815260200182815260200160001515815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008760001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505084600019168673ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd8684604051808381526020018281526020019250505060405180910390a36001915050949350505050565b600042600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846000191660001916815260200190815260200160002060010154111580156124465750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff16155b156124aa57600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b600160189054906101000a900460ff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff16151561259357600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b6000808273ffffffffffffffffffffffffffffffffffffffff16141515156125c057600080fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60026020528160005260406000208181548110151561262257fe5b90600052602060002001600091509150505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561269357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601481819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a3565b6000600160189054906101000a900460ff1615151561282f57600080fd5b600061283b33856124c3565b116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b65640000000000000000000000000000000081525090151561291a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128df5780820151818401526020810190506128c4565b50505050905090810190601f16801561290c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506129253083612f73565b5061299482600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866000191660001916815260200190815260200160002060000154613cc290919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085600019166000191681526020019081526020016000206000018190555082600019163373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000886000191660001916815260200190815260200160002060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b6957600080fd5b600160189054906101000a900460ff16151515612b8557600080fd5b60018060186101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c2a57600080fd5b600160149054906101000a900463ffffffff16905090565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cd85780601f10612cad57610100808354040283529160200191612cd8565b820191906000526020600020905b815481529060010190602001808311612cbb57829003601f168201915b505050505081565b6000808273ffffffffffffffffffffffffffffffffffffffff1614151515612d0757600080fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dac57600080fd5b82600754019050600660009054906101000a900460ff1660ff16600a0a6402540be400028111151515612e6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20657863656564206d6178696d756d20746f74616c207375707081526020017f6c7900000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060078190555082600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b6000600160189054906101000a900460ff16151515612f9157600080fd5b612f9c3384846138d7565b905092915050565b6000600160189054906101000a900460ff16151515612fc257600080fd5b6000612fce33856124c3565b116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b6564000000000000000000000000000000008152509015156130ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613072578082015181840152602081019050613057565b50505050905090810190601f16801561309f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061311c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866000191660001916815260200190815260200160002060010154613cc290919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085600019166000191681526020019081526020016000206001018190555082600019163373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000886000191660001916815260200190815260200160002060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b600080600090505b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156133695761335a61334b84600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561333b57fe5b9060005260206000200154612373565b83613cc290919063ffffffff16565b9150808060010191505061329e565b50919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160189054906101000a900460ff161515156133b657600080fd5b6133c08484610eb5565b1561355f57600115158473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156134be5780820151818401526020810190506134a3565b50505050905090810190601f1680156134eb5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561350d57600080fd5b505af1158015613521573d6000803e3d6000fd5b505050506040513d602081101561353757600080fd5b8101908080519060200190929190505050151514151561355657600080fd5b60019050613564565b600090505b9392505050565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020160009054906101000a900460ff16905083565b6000808373ffffffffffffffffffffffffffffffffffffffff16141515156135d657600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141515156135fc57600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff16141515156136a857600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561374c57600080fd5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd16a7a4ba83c78a07676c543502e8155f633ecd3c35abb1da51bcbf129758b0f8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a16001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561387757600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156138cc57600080fd5b818303905092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16141515156138fe57600080fd5b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561394c57600080fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156139a557600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156139fe57600080fd5b613a5082600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138bb90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ae582600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cc290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b7a82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cc290919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c0f82600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cc290919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515613cd857600080fd5b929150505600a165627a7a723058200fea733077a85a837bf692f0e146124919669e05f06d0ff1f4d155a35b3dd8c50029

Deployed Bytecode Sourcemap

7621:10121:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17723:8;;;7749:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7749:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7749:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9796:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9796:411:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14908:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14908:253:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1841:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1841:223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8848:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8848:123:0;;;;;;;;;;;;;;;;;;;;;;;10215:349;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10215:349:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13202:819;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13202:819:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16716:652;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16716:652:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7774:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7774:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3656:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3656:95:0;;;;;;12139:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12139:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12791:402;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12791:402:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15169:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15169:298:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14029:639;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14029:639:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16417:291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16417:291:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3392:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3392:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14676:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14676:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10572:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10572:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3957:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3957:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2072:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2072:275:0;;;;;;15921:488;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15921:488:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3557:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3557:93:0;;;;;;1685:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1685:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7722:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7722:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7722:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10780:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10780:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12350:433;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12350:433:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9586:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9586:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15476:437;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15476:437:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17376:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17376:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1563:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11460:398;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11460:398:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4303:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11189:263;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11189:263:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10983:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10983:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11866:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11866:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1420:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1420:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7749:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9796:411::-;9923:12;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;9974:3;9962:8;:15;;;;9953:25;;;;;;;;9998:13;:25;10012:10;9998:25;;;;;;;;;;;;;;;;;;;;;;;;;9997:26;9989:35;;;;;;;;10044:13;:23;10058:8;10044:23;;;;;;;;;;;;;;;;;;;;;;;;;10043:24;10035:33;;;;;;;;10113:6;10081:7;:19;10089:10;10081:19;;;;;;;;;;;;;;;:29;10101:8;10081:29;;;;;;;;;;;;;;;:38;;;;10158:8;10137:38;;10146:10;10137:38;;;10168:6;10137:38;;;;;;;;;;;;;;;;;;10195:4;10188:11;;9796:411;;;;:::o;14908:253::-;15029:14;15097:5;15065:6;:11;15072:3;15065:11;;;;;;;;;;;;;;;:20;15077:7;15065:20;;;;;;;;;;;;;;;;;:29;;;:37;15061:92;;;15126:6;:11;15133:3;15126:11;;;;;;;;;;;;;;;:20;15138:7;15126:20;;;;;;;;;;;;;;;;;:27;;;15117:36;;15061:92;14908:253;;;;;:::o;1841:223::-;1918:4;1971:5;;;;;;;;;;;1957:19;;:10;:19;;;:58;;;;2007:8;;;;;;;;;;;1993:22;;:10;:22;;;1957:58;1935:81;;;;;;;;2054:1;2034:22;;:8;;;;;;;;;;;:22;;;;2027:29;;1841:223;:::o;8848:123::-;8919:7;8951:12;;8944:19;;8848:123;:::o;10215:349::-;10366:12;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;10405:13;:25;10419:10;10405:25;;;;;;;;;;;;;;;;;;;;;;;;;10404:26;10396:35;;;;;;;;10471:38;10502:6;10471:7;:14;10479:5;10471:14;;;;;;;;;;;;;;;:26;10486:10;10471:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;10442:7;:14;10450:5;10442:14;;;;;;;;;;;;;;;:26;10457:10;10442:26;;;;;;;;;;;;;;;:67;;;;10527:29;10537:5;10544:3;10549:6;10527:9;:29::i;:::-;10520:36;;10215:349;;;;;:::o;13202:819::-;13355:4;13377:18;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;13398:14;13406:5;13398:3;:7;;:14;;;;:::i;:::-;13377:35;;13630:1;13593:33;13606:10;13618:7;13593:12;:33::i;:::-;:38;13633:14;;;;;;;;;;;;;;;;;;13585:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13585:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13678:1;13667:7;:12;;13681:11;;;;;;;;;;;;;;;;;;13659:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13659:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13748:1;13710:6;:18;13717:10;13710:18;;;;;;;;;;;;;;;:27;13729:7;13710:27;;;;;;;;;;;;;;;;;:34;;;:39;13706:94;;;13764:10;:22;13775:10;13764:22;;;;;;;;;;;;;;;13792:7;13764:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;13764:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13706:94;13813:32;13830:4;13837:7;13813:8;:32::i;:::-;;13888:37;;;;;;;;;13898:7;13888:37;;;;13907:10;13888:37;;;;13919:5;13888:37;;;;;13858:6;:18;13865:10;13858:18;;;;;;;;;;;;;;;:27;13877:7;13858:27;;;;;;;;;;;;;;;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13962:7;13943:48;;;13950:10;13943:48;;;13971:7;13980:10;13943:48;;;;;;;;;;;;;;;;;;;;;;;;14009:4;14002:11;;13202:819;;;;;;:::o;16716:652::-;16802:24;16844:20;16882:9;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;16894:1;16882:13;;16877:396;16901:10;:15;16912:3;16901:15;;;;;;;;;;;;;;;:22;;;;16897:1;:26;16877:396;;;16960:41;16977:3;16982:10;:15;16993:3;16982:15;;;;;;;;;;;;;;;16998:1;16982:18;;;;;;;;;;;;;;;;;;16960:16;:41::i;:::-;16945:56;;17035:1;17020:12;:16;17016:246;;;17076:34;17097:12;17076:16;:20;;:34;;;;:::i;:::-;17057:53;;17171:4;17129:6;:11;17136:3;17129:11;;;;;;;;;;;;;;;:31;17141:10;:15;17152:3;17141:15;;;;;;;;;;;;;;;17157:1;17141:18;;;;;;;;;;;;;;;;;;17129:31;;;;;;;;;;;;;;;;;:39;;;:46;;;;;;;;;;;;;;;;;;17213:10;:15;17224:3;17213:15;;;;;;;;;;;;;;;17229:1;17213:18;;;;;;;;;;;;;;;;;;17199:47;;;17208:3;17199:47;;;17233:12;17199:47;;;;;;;;;;;;;;;;;;17016:246;16925:3;;;;;;;16877:396;;;17308:1;17289:16;:20;17285:75;;;17324:4;:13;;;17338:3;17343:16;17324:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17324:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17324:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17324:36:0;;;;;;;;;;;;;;;;;17285:75;16716:652;;;;;:::o;7774:21::-;;;;;;;;;;;;;:::o;3656:95::-;1386:5;;;;;;;;;;;1372:19;;:10;:19;;;1364:28;;;;;;;;3530:6;;;;;;;;;;;3522:15;;;;;;;;3719:5;3710:6;;:14;;;;;;;;;;;;;;;;;;3736:9;;;;;;;;;;3656:95::o;12139:203::-;12240:11;12289:3;12277:8;:15;;;;12269:24;;;;;;;;12311:13;:23;12325:8;12311:23;;;;;;;;;;;;;;;;;;;;;;;;;12304:30;;12139:203;;;:::o;12791:402::-;12890:12;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;12953:6;12929:8;:20;12938:10;12929:20;;;;;;;;;;;;;;;;:30;;12920:40;;;;;;;;12980:13;:25;12994:10;12980:25;;;;;;;;;;;;;;;;;;;;;;;;;12979:26;12971:35;;;;;;;;13040:32;13065:6;13040:8;:20;13049:10;13040:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13017:8;:20;13026:10;13017:20;;;;;;;;;;;;;;;:55;;;;13099:6;13083:12;;:22;;;;;;;;;;;13152:1;13123:40;;13132:10;13123:40;;;13156:6;13123:40;;;;;;;;;;;;;;;;;;13181:4;13174:11;;12791:402;;;:::o;15169:298::-;15254:14;15327:9;15295:14;15305:3;15295:9;:14::i;:::-;15286:23;;15339:1;15327:13;;15322:138;15346:10;:15;15357:3;15346:15;;;;;;;;;;;;;;;:22;;;;15342:1;:26;15322:138;;;15399:49;15410:37;15423:3;15428:10;:15;15439:3;15428:15;;;;;;;;;;;;;;;15444:1;15428:18;;;;;;;;;;;;;;;;;;15410:12;:37::i;:::-;15399:6;:10;;:49;;;;:::i;:::-;15390:58;;15370:3;;;;;;;15322:138;;;15169:298;;;;:::o;14029:639::-;14174:4;14196:18;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;14217:14;14225:5;14217:3;:7;;:14;;;;:::i;:::-;14196:35;;14305:1;14275:26;14288:3;14293:7;14275:12;:26::i;:::-;:31;14308:14;;;;;;;;;;;;;;;;;;14267:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14267:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14353:1;14342:7;:12;;14356:11;;;;;;;;;;;;;;;;;;14334:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14334:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14416:1;14385:6;:11;14392:3;14385:11;;;;;;;;;;;;;;;:20;14397:7;14385:20;;;;;;;;;;;;;;;;;:27;;;:32;14381:80;;;14432:10;:15;14443:3;14432:15;;;;;;;;;;;;;;;14453:7;14432:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;14432:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14381:80;14474:32;14491:4;14498:7;14474:8;:32::i;:::-;;14542:37;;;;;;;;;14552:7;14542:37;;;;14561:10;14542:37;;;;14573:5;14542:37;;;;;14519:6;:11;14526:3;14519:11;;;;;;;;;;;;;;;:20;14531:7;14519:20;;;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14609:7;14597:41;;;14604:3;14597:41;;;14618:7;14627:10;14597:41;;;;;;;;;;;;;;;;;;;;;;;;14656:4;14649:11;;14029:639;;;;;;;:::o;16417:291::-;16521:14;16590:3;16557:6;:11;16564:3;16557:11;;;;;;;;;;;;;;;:20;16569:7;16557:20;;;;;;;;;;;;;;;;;:29;;;:36;;:69;;;;;16598:6;:11;16605:3;16598:11;;;;;;;;;;;;;;;:20;16610:7;16598:20;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;16597:29;16557:69;16553:147;;;16673:6;:11;16680:3;16673:11;;;;;;;;;;;;;;;:20;16685:7;16673:20;;;;;;;;;;;;;;;;;:27;;;16664:36;;16553:147;16417:291;;;;:::o;3392:26::-;;;;;;;;;;;;;:::o;14676:224::-;14776:14;14813:6;:11;14820:3;14813:11;;;;;;;;;;;;;;;:20;14825:7;14813:20;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;14812:29;14808:84;;;14865:6;:11;14872:3;14865:11;;;;;;;;;;;;;;;:20;14877:7;14865:20;;;;;;;;;;;;;;;;;:27;;;14856:36;;14808:84;14676:224;;;;:::o;10572:200::-;10667:17;10722:3;10710:8;:15;;;;10702:24;;;;;;;;10746:8;:18;10755:8;10746:18;;;;;;;;;;;;;;;;10739:25;;10572:200;;;:::o;3957:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2072:275::-;2154:8;;;;;;;;;;;2140:22;;:10;:22;;;2132:31;;;;;;;;2184:8;;;;;;;;;;;2176:5;;:16;;;;;;;;;;;;;;;;;;2222:1;2203:8;;:21;;;;;;;;;;;;;;;;;;2235:13;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2320:8;;;;;;;;;;;2268:71;;2300:5;;;;;;;;;;;2268:71;;;;;;;;;;;;2072:275::o;15921:488::-;16040:4;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;16106:1;16070:33;16083:10;16095:7;16070:12;:33::i;:::-;:37;16109:10;;;;;;;;;;;;;;;;;;16062:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;16062:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16131:32;16148:4;16155:7;16131:8;:32::i;:::-;;16213:47;16252:7;16213:6;:18;16220:10;16213:18;;;;;;;;;;;;;;;:27;16232:7;16213:27;;;;;;;;;;;;;;;;;:34;;;:38;;:47;;;;:::i;:::-;16176:6;:18;16183:10;16176:18;;;;;;;;;;;;;;;:27;16195:7;16176:27;;;;;;;;;;;;;;;;;:34;;:84;;;;16297:7;16278:101;;;16285:10;16278:101;;;16306:6;:18;16313:10;16306:18;;;;;;;;;;;;;;;:27;16325:7;16306:27;;;;;;;;;;;;;;;;;:34;;;16342:6;:18;16349:10;16342:18;;;;;;;;;;;;;;;:27;16361:7;16342:27;;;;;;;;;;;;;;;;;:36;;;16278:101;;;;;;;;;;;;;;;;;;;;;;;;16397:4;16390:11;;15921:488;;;;:::o;3557:93::-;1386:5;;;;;;;;;;;1372:19;;:10;:19;;;1364:28;;;;;;;;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;3621:4;3612:6;;:13;;;;;;;;;;;;;;;;;;3637:7;;;;;;;;;;3557:93::o;1685:148::-;1781:6;1386:5;;;;;;;;;;;1372:19;;:10;:19;;;1364:28;;;;;;;;1812:13;;;;;;;;;;;1805:20;;1685:148;:::o;7722:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10780:195::-;10874:14;10926:3;10914:8;:15;;;;10906:24;;;;;;;;10950:7;:17;10958:8;10950:17;;;;;;;;;;;;;;;;10943:24;;10780:195;;;:::o;12350:433::-;12446:12;12476:17;1386:5;;;;;;;;;;;1372:19;;:10;:19;;;1364:28;;;;;;;;12511:6;12496:12;;:21;12476:41;;12581:8;;;;;;;;;;;12573:17;;12568:2;:22;8131:11;12549:41;12536:9;:54;;12528:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12657:9;12642:12;:24;;;;12696:6;12677:8;:15;12686:5;;;;;;;;;;;12677:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;12739:5;;;;;;;;;;;12718:35;;12735:1;12718:35;;;12746:6;12718:35;;;;;;;;;;;;;;;;;;12771:4;12764:11;;12350:433;;;;:::o;9586:202::-;9709:12;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;9746:34;9756:10;9768:3;9773:6;9746:9;:34::i;:::-;9739:41;;9586:202;;;;:::o;15476:437::-;15585:4;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;15651:1;15615:33;15628:10;15640:7;15615:12;:33::i;:::-;:37;15654:10;;;;;;;;;;;;;;;;;;15607:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15607:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15717:47;15758:5;15717:6;:18;15724:10;15717:18;;;;;;;;;;;;;;;:27;15736:7;15717:27;;;;;;;;;;;;;;;;;:36;;;:40;;:47;;;;:::i;:::-;15678:6;:18;15685:10;15678:18;;;;;;;;;;;;;;;:27;15697:7;15678:27;;;;;;;;;;;;;;;;;:36;;:86;;;;15801:7;15782:101;;;15789:10;15782:101;;;15810:6;:18;15817:10;15810:18;;;;;;;;;;;;;;;:27;15829:7;15810:27;;;;;;;;;;;;;;;;;:34;;;15846:6;:18;15853:10;15846:18;;;;;;;;;;;;;;;:27;15865:7;15846:27;;;;;;;;;;;;;;;;;:36;;;15782:101;;;;;;;;;;;;;;;;;;;;;;;;15901:4;15894:11;;15476:437;;;;:::o;17376:301::-;17466:24;17513:9;17525:1;17513:13;;17508:162;17532:10;:15;17543:3;17532:15;;;;;;;;;;;;;;;:22;;;;17528:1;:26;17508:162;;;17595:63;17616:41;17633:3;17638:10;:15;17649:3;17638:15;;;;;;;;;;;;;;;17654:1;17638:18;;;;;;;;;;;;;;;;;;17616:16;:41::i;:::-;17595:16;:20;;:63;;;;:::i;:::-;17576:82;;17556:3;;;;;;;17508:162;;;17376:301;;;;:::o;1563:114::-;1632:7;1664:5;;;;;;;;;;;1657:12;;1563:114;:::o;11460:398::-;11616:12;3466:6;;;;;;;;;;;3465:7;3457:16;;;;;;;;11650:25;11658:8;11668:6;11650:7;:25::i;:::-;11646:182;;;11785:4;11700:89;;11723:8;11700:48;;;11749:10;11761:6;11769:4;11775:5;11700:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11700:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11700:81:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11700:81:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11700:81:0;;;;;;;;;;;;;;;;:89;;;11692:98;;;;;;;;11812:4;11805:11;;;;11646:182;11845:5;11838:12;;3480:1;11460:398;;;;;:::o;4303:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11189:263::-;11309:17;11362:3;11352:6;:13;;;;11344:22;;;;;;;;11397:3;11385:8;:15;;;;11377:24;;;;;;;;11419:7;:15;11427:6;11419:15;;;;;;;;;;;;;;;:25;11435:8;11419:25;;;;;;;;;;;;;;;;11412:32;;11189:263;;;;:::o;10983:198::-;11078:15;11131:3;11119:8;:15;;;;11111:24;;;;;;;;11155:8;:18;11164:8;11155:18;;;;;;;;;;;;;;;;11148:25;;10983:198;;;:::o;11866:265::-;11992:12;1386:5;;;;;;;;;;;1372:19;;:10;:19;;;1364:28;;;;;;;;12048:6;12022:13;:23;12036:8;12022:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12070:31;12084:8;12094:6;12070:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12119:4;12112:11;;11866:265;;;;:::o;1420:135::-;1386:5;;;;;;;;;;;1372:19;;:10;:19;;;1364:28;;;;;;;;1538:9;1527:8;;:20;;;;;;;;;;;;;;;;;;1420:135;:::o;2559:173::-;2662:9;2702:1;2697;:6;;2689:15;;;;;;;;2723:1;2719;:5;2715:9;;2559:173;;;;:::o;8979:599::-;9106:12;9152:3;9145;:10;;;;9136:20;;;;;;;;9195:6;9176:8;:15;9185:5;9176:15;;;;;;;;;;;;;;;;:25;;9167:35;;;;;;;;9222:13;:20;9236:5;9222:20;;;;;;;;;;;;;;;;;;;;;;;;;9221:21;9213:30;;;;;;;;9263:13;:18;9277:3;9263:18;;;;;;;;;;;;;;;;;;;;;;;;;9262:19;9254:28;;;;;;;;9313:27;9333:6;9313:8;:15;9322:5;9313:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9295:8;:15;9304:5;9295:15;;;;;;;;;;;;;;;:45;;;;9367:25;9385:6;9367:8;:13;9376:3;9367:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9351:8;:13;9360:3;9351:13;;;;;;;;;;;;;;;:41;;;;9420:24;9437:6;9420:7;:12;9428:3;9420:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;9405:7;:12;9413:3;9405:12;;;;;;;;;;;;;;;:39;;;;9473:27;9493:6;9473:8;:15;9482:5;9473:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9455:8;:15;9464:5;9455:15;;;;;;;;;;;;;;;:45;;;;9534:3;9518:28;;9527:5;9518:28;;;9539:6;9518:28;;;;;;;;;;;;;;;;;;9566:4;9559:11;;8979:599;;;;;:::o;2378:173::-;2481:9;2516:1;2512;:5;2508:9;;2541:1;2536;:6;;2528:15;;;;;;;;2378:173;;;;:::o

Swarm Source

bzzr://0fea733077a85a837bf692f0e146124919669e05f06d0ff1f4d155a35b3dd8c5

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.