ETH Price: $3,195.69 (+5.34%)

Token

IUNGO (ING)
 

Overview

Max Total Supply

62,553,604.424620390886740952 ING

Holders

5,465 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.001937524032549458 ING

Value
$0.00
0x3679b3fff2033d60684c51bc54ee1e371c62a77b
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Decentralised global wireless internet provider

ICO Information

ICO Start Date : Dec 07, 2017 
ICO End Date : Jan 31, 2018
Hard Cap : 40,000,000 ING
Raised : $23,000,000
ICO Price  : 0.001 ETH
Bonus : 15%
Country : Estonia / Lithuania

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
IungoToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-16
*/

pragma solidity 0.4.18;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a * b;
        require(a == 0 || c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

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

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

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
    uint256 public totalSupply;
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;

    mapping(address => uint256) public balances;

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[msg.sender]);

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }

}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
  function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
    assert(token.transfer(to, value));
  }

  function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal {
    assert(token.transferFrom(from, to, value));
  }

  function safeApprove(ERC20 token, address spender, uint256 value) internal {
    assert(token.approve(spender, value));
  }
}

/**
 * @title TokenTimelock
 * @dev TokenTimelock is a token holder contract that will allow a
 * beneficiary to extract the tokens after a given release time
 */
contract TokenTimelock {
  using SafeERC20 for ERC20Basic;

  // ERC20 basic token contract being held
  ERC20Basic public token;

  // beneficiary of tokens after they are released
  address public beneficiary;

  // timestamp when token release is enabled
  uint64 public releaseTime;

  function TokenTimelock(ERC20Basic _token, address _beneficiary, uint64 _releaseTime) public {
    require(_releaseTime > uint64(block.timestamp));
    token = _token;
    beneficiary = _beneficiary;
    releaseTime = _releaseTime;
  }

  /**
   * @notice Transfers tokens held by timelock to beneficiary.
   */
  function release() public {
    require(uint64(block.timestamp) >= releaseTime);

    uint256 amount = token.balanceOf(this);
    require(amount > 0);

    token.safeTransfer(beneficiary, amount);
  }
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

    mapping (address => mapping (address => uint256)) internal allowed;


    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        Transfer(_from, _to, _value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     *
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     */
    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    /**
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     */
    function increaseApproval (address _spender, uint _addedValue) public returns (bool success) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

}

contract Owned {
    address public owner;

    function Owned() public {
        owner = msg.sender;
    }

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

contract IungoToken is StandardToken, Owned {
    string public constant name = "IUNGO token";
    string public constant symbol = "ING";
    uint8 public constant decimals = 18;

    /// Maximum tokens to be allocated (100 million)
    uint256 public constant HARD_CAP = 100000000 * 10**uint256(decimals);

    /// Maximum tokens to be allocated on the sale (64 million)
    uint256 public constant TOKENS_SALE_HARD_CAP = 64000000 * 10**uint256(decimals);

    /// The owner of this address is the Iungo Founders fund
    address public foundersFundAddress;

    /// The owner of this address is the Iungo Team Foundation fund
    address public teamFundAddress;

    /// The owner of this address is the Reserve fund
    address public reserveFundAddress;

    /// This address will be sent all the received ether
    address public fundsTreasury;

    /// This is the address of the timelock contract for 
    /// the first 1/3 of the Founders fund tokens
    address public foundersFundTimelock1Address;

    /// This is the address of the timelock contract for 
    /// the second 1/3 of the Founders fund tokens
    address public foundersFundTimelock2Address;

    /// This is the address of the timelock contract for 
    /// the third 1/3 of the Founders fund tokens
    address public foundersFundTimelock3Address;

    /// seconds since 01.01.1970 to 06.12.2017 12:00:00 UTC
    /// tier 1 start time
    uint64 private constant date06Dec2017 = 1512561600;

    /// seconds since 01.01.1970 to 21.12.2017 14:00:00 UTC
    /// tier 1 end time; tier 2 start time
    uint64 private constant date21Dec2017 = 1513864800;

    /// seconds since 01.01.1970 to 12.01.2018 14:00:00 UTC
    /// tier 2 end time; tier 3 start time
    uint64 private constant date12Jan2018 = 1515765600;

    /// seconds since 01.01.1970 to 21.01.2018 14:00:00 UTC
    /// tier 3 end time; tier 4 start time
    uint64 private constant date21Jan2018 = 1516543200;

    /// seconds since 01.01.1970 to 31.01.2018 23:59:59 UTC
    /// tier 4 end time; closing token sale; trading open
    uint64 private constant date31Jan2018 = 1517443199;

    /// Base exchange rate is set to 1 ETH = 1000 ING
    uint256 public constant BASE_RATE = 1000;

    /// no tokens can be ever issued when this is set to "true"
    bool public tokenSaleClosed = false;

    /// Issue event index starting from 0.
    uint256 public issueIndex = 0;

    /// Emitted for each sucuessful token purchase.
    event Issue(uint _issueIndex, address addr, uint tokenAmount);

    /// Require that the buyers can still purchase
    modifier inProgress {
        require(totalSupply < TOKENS_SALE_HARD_CAP
                && !tokenSaleClosed
                && !saleDue());
        _;
    }

    /// Allow the closing to happen only once 
    modifier beforeEnd {
        require(!tokenSaleClosed);
        _;
    }

    /// Require that the end of the sale has passed (time is 01 Feb 2018 or later)
    modifier tradingOpen {
        require(saleDue());
        _;
    }

    /**
     * CONSTRUCTOR
     *
     * @dev Initialize the IungoToken Token
     * @param _foundersFundAddress The owner of this address is the Iungo Founders fund
     * @param _teamFundAddress The owner of this address is the Iungo Team Foundation fund
     * @param _reserveFundAddress The owner of this address is the Reserve fund
     */
    function IungoToken (address _foundersFundAddress, address _teamFundAddress,
                         address _reserveFundAddress, address _fundsTreasury) public {
        foundersFundAddress = 0x9CB0016511Fb93EAc7bC585A2bc2f0C34DEcEa15;
        teamFundAddress = 0xDda7003998244f6161A5BBAf0F4ed5a40E908b51;
        reserveFundAddress = 0x9186b48Db83E63adEDaB43C19345f39c83928E3f;
        fundsTreasury = 0x31a633c4eE2C317DE2C65beb00593EAdD9f172d6;
    }

    /// @dev Returns the current price.
    function price() public view returns (uint256 tokens) {
        return computeTokenAmount(1 ether);
    }

    /// @dev This default function allows token to be purchased by directly
    /// sending ether to this smart contract.
    function () public payable {
        purchaseTokens(msg.sender);
    }

    /// @dev Issue token based on Ether received.
    /// @param _beneficiary Address that newly issued token will be sent to.
    function purchaseTokens(address _beneficiary) public payable inProgress {
        // only accept a minimum amount of ETH?
        require(msg.value >= 0.01 ether);

        uint256 tokens = computeTokenAmount(msg.value);
        doIssueTokens(_beneficiary, tokens);

        /// forward the raised funds to the fund address
        fundsTreasury.transfer(msg.value);
    }

    /// @dev Batch issue tokens on the presale
    /// @param _addresses addresses that the presale tokens will be sent to.
    /// @param _addresses the amounts of tokens, with decimals expanded (full).
    function issueTokensMulti(address[] _addresses, uint256[] _tokens) public onlyOwner inProgress {
        require(_addresses.length == _tokens.length);
        require(_addresses.length <= 100);

        for (uint256 i = 0; i < _tokens.length; i = i.add(1)) {
            doIssueTokens(_addresses[i], _tokens[i]);
        }
    }

    /// @dev Issue tokens for a single buyer on the presale
    /// @param _beneficiary addresses that the presale tokens will be sent to.
    /// @param _tokensAmount the amount of tokens, with decimals expanded (full).
    function issueTokens(address _beneficiary, uint256 _tokensAmount) public onlyOwner inProgress {
        doIssueTokens(_beneficiary, _tokensAmount);
    }

    /// @dev issue tokens for a single buyer
    /// @param _beneficiary addresses that the tokens will be sent to.
    /// @param _tokensAmount the amount of tokens, with decimals expanded (full).
    function doIssueTokens(address _beneficiary, uint256 _tokensAmount) internal {
        require(_beneficiary != address(0));

        // compute without actually increasing it
        uint256 increasedTotalSupply = totalSupply.add(_tokensAmount);
        // roll back if hard cap reached
        require(increasedTotalSupply <= TOKENS_SALE_HARD_CAP);

        // increase token total supply
        totalSupply = increasedTotalSupply;
        // update the buyer's balance to number of tokens sent
        balances[_beneficiary] = balances[_beneficiary].add(_tokensAmount);
        // event is fired when tokens issued
        Issue(
            issueIndex++,
            _beneficiary,
            _tokensAmount
        );
    }

    /// @dev Compute the amount of ING token that can be purchased.
    /// @param ethAmount Amount of Ether to purchase ING.
    /// @return Amount of ING token to purchase
    function computeTokenAmount(uint256 ethAmount) internal view returns (uint256 tokens) {
        /// the percentage value (0-100) of the discount for each tier
        uint64 discountPercentage = currentTierDiscountPercentage();

        uint256 tokenBase = ethAmount.mul(BASE_RATE);
        uint256 tokenBonus = tokenBase.mul(discountPercentage).div(100);

        tokens = tokenBase.add(tokenBonus);
    }

    /// @dev Determine the current sale tier.
    /// @return the index of the current sale tier.
    function currentTierDiscountPercentage() internal view returns (uint64) {
        uint64 _now = uint64(block.timestamp);
        require(_now <= date31Jan2018);

        if(_now > date21Jan2018) return 0;
        if(_now > date12Jan2018) return 15;
        if(_now > date21Dec2017) return 35;
        return 50;
    }

    // function getnow() public view returns (uint64) {
    //     return uint64(block.timestamp);
    // }
    // 
    // function setnow(uint64 time) public {
    //     _now = time;
    // }

    /// @dev Finalize the sale and distribute the reserve, team tokens, lock the founders tokens
    function close() public onlyOwner beforeEnd {
        uint64 _now = uint64(block.timestamp);

        /// Final (sold tokens) / (team + reserve + founders funds tokens) = 64 / 36 proportion = 0.5625
        /// (sold tokens) + (team + reserve + founders funds tokens) = 64% + 36% = 100%
        /// Therefore, (team + reserve + founders funds tokens) = 56.25% of the sold tokens = 36% of the total tokens
        uint256 totalTokens = totalSupply.add(totalSupply.mul(5625).div(10000));

        /// Tokens to be allocated to the Reserve fund (12% of total ING)
        uint256 reserveFundTokens = totalTokens.mul(12).div(100);
        balances[reserveFundAddress] = balances[reserveFundAddress].add(reserveFundTokens);
        totalSupply = totalSupply.add(reserveFundTokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            reserveFundAddress,
            reserveFundTokens
        );

        /// Tokens to be allocated to the Team fund (12% of total ING)
        uint256 teamFundTokens = totalTokens.mul(12).div(100);
        balances[teamFundAddress] = balances[teamFundAddress].add(teamFundTokens);
        totalSupply = totalSupply.add(teamFundTokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            teamFundAddress,
            teamFundTokens
        );

        /// Tokens to be allocated to the locked Founders fund
        /// 12% (3 x 4%) of total ING allocated to the Founders fund locked as follows:
        /// first 4% locked for 6 months (183 days)
        TokenTimelock lock1_6months = new TokenTimelock(this, foundersFundAddress, _now + 183*24*60*60);
        foundersFundTimelock1Address = address(lock1_6months);
        uint256 foundersFund1Tokens = totalTokens.mul(4).div(100);
        /// update the contract balance to number of tokens issued
        balances[foundersFundTimelock1Address] = balances[foundersFundTimelock1Address].add(foundersFund1Tokens);
        /// increase total supply respective to the tokens issued
        totalSupply = totalSupply.add(foundersFund1Tokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            foundersFundTimelock1Address,
            foundersFund1Tokens
        );

        /// second 4% locked for 12 months (365 days)
        TokenTimelock lock2_12months = new TokenTimelock(this, foundersFundAddress, _now + 365*24*60*60);
        foundersFundTimelock2Address = address(lock2_12months);
        uint256 foundersFund2Tokens = totalTokens.mul(4).div(100);
        balances[foundersFundTimelock2Address] = balances[foundersFundTimelock2Address].add(foundersFund2Tokens);
        /// increase total supply respective to the tokens issued
        totalSupply = totalSupply.add(foundersFund2Tokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            foundersFundTimelock2Address,
            foundersFund2Tokens
        );

        /// third 4% locked for 18 months (548 days)
        TokenTimelock lock3_18months = new TokenTimelock(this, foundersFundAddress, _now + 548*24*60*60);
        foundersFundTimelock3Address = address(lock3_18months);
        uint256 foundersFund3Tokens = totalTokens.mul(4).div(100);
        balances[foundersFundTimelock3Address] = balances[foundersFundTimelock3Address].add(foundersFund3Tokens);
        /// increase total supply respective to the tokens issued
        totalSupply = totalSupply.add(foundersFund3Tokens);
        /// fire event when tokens issued
        Issue(
            issueIndex++,
            foundersFundTimelock3Address,
            foundersFund3Tokens
        );

        /// burn the unallocated tokens - no more tokens can be issued after this line
        tokenSaleClosed = true;

        /// forward the raised funds to the fund address
        fundsTreasury.transfer(this.balance);
    }

    /// @return if the token sale is finished
    function saleDue() public view returns (bool) {
        return date31Jan2018 < uint64(block.timestamp);
    }

    /// Transfer limited by the tradingOpen modifier (time is 01 Feb 2018 or later)
    function transferFrom(address _from, address _to, uint256 _value) public tradingOpen returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    /// Transfer limited by the tradingOpen modifier (time is 01 Feb 2018 or later)
    function transfer(address _to, uint256 _value) public tradingOpen returns (bool) {
        return super.transfer(_to, _value);
    }
}

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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundsTreasury","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HARD_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BASE_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundersFundTimelock1Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_tokensAmount","type":"uint256"}],"name":"issueTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"reserveFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundersFundTimelock3Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"issueIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_tokens","type":"uint256[]"}],"name":"issueTokensMulti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleDue","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundersFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"purchaseTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"foundersFundTimelock2Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"tokenSaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_SALE_HARD_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_foundersFundAddress","type":"address"},{"name":"_teamFundAddress","type":"address"},{"name":"_reserveFundAddress","type":"address"},{"name":"_fundsTreasury","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_issueIndex","type":"uint256"},{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"Issue","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"},{"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"}]

60606040526000600a60146101000a81548160ff0219169083151502179055506000600b55341561002f57600080fd5b6040516080806134cd8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739cb0016511fb93eac7bc585a2bc2f0c34decea15600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dda7003998244f6161a5bbaf0f4ed5a40e908b51600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739186b48db83e63adedab43c19345f39c83928e3f600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507331a633c4ee2c317de2c65beb00593eadd9f172d6600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506132bf8061020e6000396000f30060606040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610196578063095ea7b31461022457806318160ddd1461027e57806323b872dd146102a757806327e235e314610320578063313ce5671461036d57806339f5b6b61461039c5780633a03171c146103f157806341910f901461041a57806343d726d6146104435780634446c98c14610458578063475a9fa9146104ad5780634b58d0bb146104ef5780635e8a60441461054457806366188463146105995780636a28f828146105f357806370a082311461061c5780637fdb6720146106695780638da5cb5b146106be57806392e8438c1461071357806395d89b41146107ad578063a035b1fe1461083b578063a9059cbb14610864578063bea4ae88146108be578063ca185022146108eb578063ce55703114610940578063d13bf7691461096e578063d73dd623146109c3578063dd62ed3e14610a1d578063e55a07c214610a89578063f946372c14610ab6575b61019433610adf565b005b34156101a157600080fd5b6101a9610bb9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e95780820151818401526020810190506101ce565b50505050905090810190601f1680156102165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022f57600080fd5b610264600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bf2565b604051808215151515815260200191505060405180910390f35b341561028957600080fd5b610291610ce4565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b610306600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cea565b604051808215151515815260200191505060405180910390f35b341561032b57600080fd5b610357600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d13565b6040518082815260200191505060405180910390f35b341561037857600080fd5b610380610d2b565b604051808260ff1660ff16815260200191505060405180910390f35b34156103a757600080fd5b6103af610d30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103fc57600080fd5b610404610d56565b6040518082815260200191505060405180910390f35b341561042557600080fd5b61042d610d67565b6040518082815260200191505060405180910390f35b341561044e57600080fd5b610456610d6d565b005b341561046357600080fd5b61046b611ad1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104b857600080fd5b6104ed600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611af7565b005b34156104fa57600080fd5b610502611ba8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054f57600080fd5b610557611bce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a457600080fd5b6105d9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611bf4565b604051808215151515815260200191505060405180910390f35b34156105fe57600080fd5b610606611e85565b6040518082815260200191505060405180910390f35b341561062757600080fd5b610653600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e8b565b6040518082815260200191505060405180910390f35b341561067457600080fd5b61067c611ed4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c957600080fd5b6106d1611efa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561071e57600080fd5b6107ab60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611f20565b005b34156107b857600080fd5b6107c061204c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108005780820151818401526020810190506107e5565b50505050905090810190601f16801561082d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561084657600080fd5b61084e612085565b6040518082815260200191505060405180910390f35b341561086f57600080fd5b6108a4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061209d565b604051808215151515815260200191505060405180910390f35b34156108c957600080fd5b6108d16120c4565b604051808215151515815260200191505060405180910390f35b34156108f657600080fd5b6108fe6120e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61096c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610adf565b005b341561097957600080fd5b61098161210c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109ce57600080fd5b610a03600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612132565b604051808215151515815260200191505060405180910390f35b3415610a2857600080fd5b610a73600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061232e565b6040518082815260200191505060405180910390f35b3415610a9457600080fd5b610a9c6123b5565b604051808215151515815260200191505060405180910390f35b3415610ac157600080fd5b610ac96123c8565b6040518082815260200191505060405180910390f35b6000601260ff16600a0a6303d0900002600054108015610b0c5750600a60149054906101000a900460ff16155b8015610b1d5750610b1b6120c4565b155b1515610b2857600080fd5b662386f26fc100003410151515610b3e57600080fd5b610b47346123d9565b9050610b53828261244f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610bb557600080fd5b5050565b6040805190810160405280600b81526020017f49554e474f20746f6b656e00000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b6000610cf46120c4565b1515610cff57600080fd5b610d0a8484846125e3565b90509392505050565b60016020528060005260406000206000915090505481565b601281565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260ff16600a0a6305f5e1000281565b6103e881565b600080600080600080600080600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dd857600080fd5b600a60149054906101000a900460ff16151515610df457600080fd5b429950610e36610e25612710610e176115f96000546129a290919063ffffffff16565b6129d890919063ffffffff16565b6000546129f390919063ffffffff16565b9850610e5f6064610e51600c8c6129a290919063ffffffff16565b6129d890919063ffffffff16565b9750610ed58860016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4f886000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16110216064611013600c8c6129a290919063ffffffff16565b6129d890919063ffffffff16565b96506110978760016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611111876000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662f142808c016111ee612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561128857600080fd5b955085600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112f260646112e460048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b94506113688560016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2856000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166301e133808c016114c0612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561155a57600080fd5b935083600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115c460646115b660048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b925061163a8360016000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116b4836000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166302d276008c01611792612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561182c57600080fd5b915081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611896606461188860048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b905061190c8160016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611986816000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001600a60146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611ac557600080fd5b50505050505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5357600080fd5b601260ff16600a0a6303d0900002600054108015611b7e5750600a60149054906101000a900460ff16155b8015611b8f5750611b8d6120c4565b155b1515611b9a57600080fd5b611ba4828261244f565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611d05576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d99565b611d188382612a1490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600b5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7e57600080fd5b601260ff16600a0a6303d0900002600054108015611fa95750600a60149054906101000a900460ff16155b8015611fba5750611fb86120c4565b155b1515611fc557600080fd5b81518351141515611fd557600080fd5b6064835111151515611fe657600080fd5b600090505b81518110156120475761202c838281518110151561200557fe5b90602001906020020151838381518110151561201d57fe5b9060200190602002015161244f565b6120406001826129f390919063ffffffff16565b9050611feb565b505050565b6040805190810160405280600381526020017f494e47000000000000000000000000000000000000000000000000000000000081525081565b6000612098670de0b6b3a76400006123d9565b905090565b60006120a76120c4565b15156120b257600080fd5b6120bc8383612a30565b905092915050565b60004267ffffffffffffffff16635a72587f67ffffffffffffffff1610905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121c382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60149054906101000a900460ff1681565b601260ff16600a0a6303d090000281565b6000806000806123e7612c54565b92506123fe6103e8866129a290919063ffffffff16565b915061243060646124228567ffffffffffffffff16856129a290919063ffffffff16565b6129d890919063ffffffff16565b905061244581836129f390919063ffffffff16565b9350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561248c57600080fd5b6124a1826000546129f390919063ffffffff16565b9050601260ff16600a0a6303d090000281111515156124bf57600080fd5b8060008190555061251882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b6000815480929190600101919050558484604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561262057600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561266e57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156126f957600080fd5b61274b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127e082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128b282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080828402905060008414806129c357508284828115156129c057fe5b04145b15156129ce57600080fd5b8091505092915050565b60008082848115156129e657fe5b0490508091505092915050565b6000808284019050838110151515612a0a57600080fd5b8091505092915050565b6000828211151515612a2557600080fd5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612a6d57600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612abb57600080fd5b612b0d82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ba282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080429050635a72587f67ffffffffffffffff168167ffffffffffffffff1611151515612c8157600080fd5b635a649ce067ffffffffffffffff168167ffffffffffffffff161115612caa5760009150612d01565b635a58bf6067ffffffffffffffff168167ffffffffffffffff161115612cd357600f9150612d01565b635a3bbe6067ffffffffffffffff168167ffffffffffffffff161115612cfc5760239150612d01565b603291505b5090565b60405161057e80612d168339019056006060604052341561000f57600080fd5b60405160608061057e833981016040528080519060200190919080519060200190919080519060200190919050504267ffffffffffffffff168167ffffffffffffffff1611151561005f57600080fd5b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050506104638061011b6000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806338af3eed1461006757806386d1a69f146100bc578063b91d4001146100d1578063fc0c546a1461010e575b600080fd5b341561007257600080fd5b61007a610163565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100c757600080fd5b6100cf610189565b005b34156100dc57600080fd5b6100e4610325565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561011957600080fd5b61012161033f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160149054906101000a900467ffffffffffffffff1667ffffffffffffffff164267ffffffffffffffff16101515156101c457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561028857600080fd5b6102c65a03f1151561029957600080fd5b5050506040518051905090506000811115156102b457600080fd5b610322600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166103649092919063ffffffff16565b50565b600160149054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561040f57600080fd5b6102c65a03f1151561042057600080fd5b50505060405180519050151561043257fe5b5050505600a165627a7a7230582037e046f4a517539791172a9c3cfb168d1293b8ece20fdc956cfee0a3a318496f0029a165627a7a7230582000d5d743b32024710ae7578eb25b92b1c95a6ebc2c640dc5ed001b989b5838780029

Deployed Bytecode

0x60606040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610196578063095ea7b31461022457806318160ddd1461027e57806323b872dd146102a757806327e235e314610320578063313ce5671461036d57806339f5b6b61461039c5780633a03171c146103f157806341910f901461041a57806343d726d6146104435780634446c98c14610458578063475a9fa9146104ad5780634b58d0bb146104ef5780635e8a60441461054457806366188463146105995780636a28f828146105f357806370a082311461061c5780637fdb6720146106695780638da5cb5b146106be57806392e8438c1461071357806395d89b41146107ad578063a035b1fe1461083b578063a9059cbb14610864578063bea4ae88146108be578063ca185022146108eb578063ce55703114610940578063d13bf7691461096e578063d73dd623146109c3578063dd62ed3e14610a1d578063e55a07c214610a89578063f946372c14610ab6575b61019433610adf565b005b34156101a157600080fd5b6101a9610bb9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e95780820151818401526020810190506101ce565b50505050905090810190601f1680156102165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022f57600080fd5b610264600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bf2565b604051808215151515815260200191505060405180910390f35b341561028957600080fd5b610291610ce4565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b610306600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cea565b604051808215151515815260200191505060405180910390f35b341561032b57600080fd5b610357600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d13565b6040518082815260200191505060405180910390f35b341561037857600080fd5b610380610d2b565b604051808260ff1660ff16815260200191505060405180910390f35b34156103a757600080fd5b6103af610d30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103fc57600080fd5b610404610d56565b6040518082815260200191505060405180910390f35b341561042557600080fd5b61042d610d67565b6040518082815260200191505060405180910390f35b341561044e57600080fd5b610456610d6d565b005b341561046357600080fd5b61046b611ad1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104b857600080fd5b6104ed600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611af7565b005b34156104fa57600080fd5b610502611ba8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054f57600080fd5b610557611bce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a457600080fd5b6105d9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611bf4565b604051808215151515815260200191505060405180910390f35b34156105fe57600080fd5b610606611e85565b6040518082815260200191505060405180910390f35b341561062757600080fd5b610653600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e8b565b6040518082815260200191505060405180910390f35b341561067457600080fd5b61067c611ed4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c957600080fd5b6106d1611efa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561071e57600080fd5b6107ab60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611f20565b005b34156107b857600080fd5b6107c061204c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108005780820151818401526020810190506107e5565b50505050905090810190601f16801561082d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561084657600080fd5b61084e612085565b6040518082815260200191505060405180910390f35b341561086f57600080fd5b6108a4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061209d565b604051808215151515815260200191505060405180910390f35b34156108c957600080fd5b6108d16120c4565b604051808215151515815260200191505060405180910390f35b34156108f657600080fd5b6108fe6120e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61096c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610adf565b005b341561097957600080fd5b61098161210c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109ce57600080fd5b610a03600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612132565b604051808215151515815260200191505060405180910390f35b3415610a2857600080fd5b610a73600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061232e565b6040518082815260200191505060405180910390f35b3415610a9457600080fd5b610a9c6123b5565b604051808215151515815260200191505060405180910390f35b3415610ac157600080fd5b610ac96123c8565b6040518082815260200191505060405180910390f35b6000601260ff16600a0a6303d0900002600054108015610b0c5750600a60149054906101000a900460ff16155b8015610b1d5750610b1b6120c4565b155b1515610b2857600080fd5b662386f26fc100003410151515610b3e57600080fd5b610b47346123d9565b9050610b53828261244f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610bb557600080fd5b5050565b6040805190810160405280600b81526020017f49554e474f20746f6b656e00000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b6000610cf46120c4565b1515610cff57600080fd5b610d0a8484846125e3565b90509392505050565b60016020528060005260406000206000915090505481565b601281565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260ff16600a0a6305f5e1000281565b6103e881565b600080600080600080600080600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dd857600080fd5b600a60149054906101000a900460ff16151515610df457600080fd5b429950610e36610e25612710610e176115f96000546129a290919063ffffffff16565b6129d890919063ffffffff16565b6000546129f390919063ffffffff16565b9850610e5f6064610e51600c8c6129a290919063ffffffff16565b6129d890919063ffffffff16565b9750610ed58860016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4f886000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16110216064611013600c8c6129a290919063ffffffff16565b6129d890919063ffffffff16565b96506110978760016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611111876000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662f142808c016111ee612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561128857600080fd5b955085600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112f260646112e460048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b94506113688560016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2856000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166301e133808c016114c0612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561155a57600080fd5b935083600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115c460646115b660048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b925061163a8360016000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116b4836000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a130600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166302d276008c01611792612d05565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff1681526020019350505050604051809103906000f080151561182c57600080fd5b915081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611896606461188860048c6129a290919063ffffffff16565b6129d890919063ffffffff16565b905061190c8160016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611986816000546129f390919063ffffffff16565b6000819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b600081548092919060010191905055600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16001600a60146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611ac557600080fd5b50505050505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5357600080fd5b601260ff16600a0a6303d0900002600054108015611b7e5750600a60149054906101000a900460ff16155b8015611b8f5750611b8d6120c4565b155b1515611b9a57600080fd5b611ba4828261244f565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611d05576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d99565b611d188382612a1490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600b5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7e57600080fd5b601260ff16600a0a6303d0900002600054108015611fa95750600a60149054906101000a900460ff16155b8015611fba5750611fb86120c4565b155b1515611fc557600080fd5b81518351141515611fd557600080fd5b6064835111151515611fe657600080fd5b600090505b81518110156120475761202c838281518110151561200557fe5b90602001906020020151838381518110151561201d57fe5b9060200190602002015161244f565b6120406001826129f390919063ffffffff16565b9050611feb565b505050565b6040805190810160405280600381526020017f494e47000000000000000000000000000000000000000000000000000000000081525081565b6000612098670de0b6b3a76400006123d9565b905090565b60006120a76120c4565b15156120b257600080fd5b6120bc8383612a30565b905092915050565b60004267ffffffffffffffff16635a72587f67ffffffffffffffff1610905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121c382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60149054906101000a900460ff1681565b601260ff16600a0a6303d090000281565b6000806000806123e7612c54565b92506123fe6103e8866129a290919063ffffffff16565b915061243060646124228567ffffffffffffffff16856129a290919063ffffffff16565b6129d890919063ffffffff16565b905061244581836129f390919063ffffffff16565b9350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561248c57600080fd5b6124a1826000546129f390919063ffffffff16565b9050601260ff16600a0a6303d090000281111515156124bf57600080fd5b8060008190555061251882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f3e1d8156c61243a0352920516bb9c7d0517fca750d6d6afebc0bed0d457a609b600b6000815480929190600101919050558484604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561262057600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561266e57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156126f957600080fd5b61274b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127e082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128b282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080828402905060008414806129c357508284828115156129c057fe5b04145b15156129ce57600080fd5b8091505092915050565b60008082848115156129e657fe5b0490508091505092915050565b6000808284019050838110151515612a0a57600080fd5b8091505092915050565b6000828211151515612a2557600080fd5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612a6d57600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612abb57600080fd5b612b0d82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ba282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080429050635a72587f67ffffffffffffffff168167ffffffffffffffff1611151515612c8157600080fd5b635a649ce067ffffffffffffffff168167ffffffffffffffff161115612caa5760009150612d01565b635a58bf6067ffffffffffffffff168167ffffffffffffffff161115612cd357600f9150612d01565b635a3bbe6067ffffffffffffffff168167ffffffffffffffff161115612cfc5760239150612d01565b603291505b5090565b60405161057e80612d168339019056006060604052341561000f57600080fd5b60405160608061057e833981016040528080519060200190919080519060200190919080519060200190919050504267ffffffffffffffff168167ffffffffffffffff1611151561005f57600080fd5b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050506104638061011b6000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806338af3eed1461006757806386d1a69f146100bc578063b91d4001146100d1578063fc0c546a1461010e575b600080fd5b341561007257600080fd5b61007a610163565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100c757600080fd5b6100cf610189565b005b34156100dc57600080fd5b6100e4610325565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561011957600080fd5b61012161033f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160149054906101000a900467ffffffffffffffff1667ffffffffffffffff164267ffffffffffffffff16101515156101c457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561028857600080fd5b6102c65a03f1151561029957600080fd5b5050506040518051905090506000811115156102b457600080fd5b610322600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166103649092919063ffffffff16565b50565b600160149054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561040f57600080fd5b6102c65a03f1151561042057600080fd5b50505060405180519050151561043257fe5b5050505600a165627a7a7230582037e046f4a517539791172a9c3cfb168d1293b8ece20fdc956cfee0a3a318496f0029a165627a7a7230582000d5d743b32024710ae7578eb25b92b1c95a6ebc2c640dc5ed001b989b5838780029

Swarm Source

bzzr://00d5d743b32024710ae7578eb25b92b1c95a6ebc2c640dc5ed001b989b583878
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.