Latest 25 transactions from a total of 11483 transactions

TxHash Age From To Value [TxFee]
0x118cf02603c0913efc2a7863502caef38d4bfcf886aa222ca5f557d2bc46071221 hrs 53 mins ago0x66565dacc3ccaf5fe1241e4edc0a24156cc99e19  IN   NebulaAI0 Ether0.000186795
0x1f0fe16f31cc911d9718b1487eeea4a291e9205f4a3e8ce7deef922a37ed104822 hrs 48 mins ago0xe9c0adac9a9481e91dacc57bf2c018008f849b4b  IN   NebulaAI0 Ether0.00036079
0xe5db6a152bff60f5e8ee34de08033a7f8ca2734700213c4040794c5a97c670631 day 4 hrs ago0xe0293caf6c753aaad7bbc063ecddf8ed41e62eaf  IN   NebulaAI0 Ether0.00022377
0xf29ab9efa11138385644c949cddce4cd631a446c78e94068d26ad1af069b43cc1 day 4 hrs ago0x17cbb95aa1af37e90d076beafa1bbfff8d2d21d9  IN   NebulaAI0 Ether0.000297848
0xf1d823a5b449cb63bc7ec847c70595ca9395cac7497a5e206060f80430f674291 day 11 hrs ago0x32e43b25c4f5c13e1c1d277d189aa83e93f105d0  IN   NebulaAI0 Ether0.001529095
0x4c000b2d6d965eb1dd9b4d671ec5c2dc4d5b9534fe477d2b2914cfc1309ade181 day 16 hrs ago0x60d177f6a872c71db92d6d53f1d8a9b70bd40e59  IN   NebulaAI0 Ether0.00021655
0x4e877307a5b29be9fdee329dbc6786415e838b05e8a867ee7ea14dbbae4963e61 day 16 hrs ago0x155a35003bd26cc32acd99aabc922be3022cc096  IN   NebulaAI0 Ether0.00086364
0x465872312e99a0b007f0c78300a7abfe615d3542dda92b5745a7fdce578cff911 day 17 hrs ago0xec62f8fdb01549fb74ff45c921e037be2e82faf5  IN   NebulaAI0 Ether0.0003134571
0xf612d587c3bba5efe7879056acf8368a0ba05257e8c1083c254de0b33b1e46431 day 17 hrs ago0xd969884a8229860504b4768be58d54b586bcb8a1  IN   NebulaAI0 Ether0.000311234
0x63dfb85e92dc9e81edeac81658f72cf945f21fdde5394c93edc516587bbc713f1 day 17 hrs ago0xac99e112d2f12e6417aca04f79b232e63148c4c9  IN   NebulaAI0 Ether0.00066501
0xcb1e0ea82ef12ed109b657b6e0c63365e47b8722ebbbde7a7bf4e89fde9c36d41 day 17 hrs ago0x2a551603c129b6ab416adfb2275cb7cbbb71aa75  IN   NebulaAI0 Ether0.000311234
0x074bffd21eea6944688df952125e772eef5d5397ee870fdaf9f72171dcb86b1e1 day 17 hrs ago0x0a5542041d46c8694c770feb228018215db4e821  IN   NebulaAI0 Ether0.001529095
0x320b014df55b6f37ccab8c9d3c893a2decdd83e0198096534bdf5be749865f201 day 17 hrs ago0xac99e112d2f12e6417aca04f79b232e63148c4c9  IN   NebulaAI0 Ether0.00156309
0x50fdfba42f812dafefdb1b9da155e4a0d84ad05e67aec98611d77ba68a3b768e1 day 23 hrs ago0x32dd830730c96f1191c5ff5fa0f1a7abd66105f9  IN   NebulaAI0 Ether0.00021655
0xbce9f908618fd8203daa67ec09a8c36c047c51be80b7906cbb08dcbf922f7c071 day 23 hrs ago0xcbb0623a15dc1defcdbbba178e45d3fb10a63de5  IN   NebulaAI0 Ether0.00037295
0xdce97fd19e4fbf510ccf71df7b7c4fd5cdc143b12296fe76fb34d7cbe6dd73722 days 3 hrs ago0x6e65bb5a05f9f5afda78efcfad62e29fd93d0143  IN   NebulaAI0 Ether0.00021527
0x2c0f0b76a0cffd60494f85e8580309dc44fdb5929a5bdb7a2609c5e2afd9ca432 days 4 hrs ago0x1475feb12db37614656b2e379bb73b7b4f3bce7a  IN   NebulaAI0 Ether0.001523847
0x42a8c686234b15116a4506bd6c66e6e0ca0bda9d23220f249fcb635b002288122 days 5 hrs ago0xbb6e6a7b8d29e007bf17392425f390499fdd1255  IN   NebulaAI0 Ether0.00044462
0x9422a26cb41e9b40e24e82aceb90603167c409e8bf9c7d0d091c02385c6d35d52 days 17 hrs ago0xa9204f8ad532f557f74aa4a1aa204db22723e16b  IN   NebulaAI0 Ether0.00021591
0xa007988fa2638a249c299a4c65f94928b3bd099366efda9a7e1d955b7458e8c92 days 17 hrs ago0xa73184698139484aeb4af12ae236e4a6ddb93c8a  IN   NebulaAI0 Ether0.001526471
0x2e1f6fed13c1a3b81a520029b20fe8daf587cecdd2438775fb0d68375844a59d2 days 21 hrs ago0x8899af1aa48cdfdedbf394221ab5fb9b69f4ae7b  IN   NebulaAI0 Ether0.00036591
0x9c46d091a03a2dea89655d356bb4aadb1231c3fcce94291a621c7d6ecd0311b32 days 23 hrs ago0x79c7f57ca597305c3b2be8c07213b248b47b7deb  IN   NebulaAI0 Ether0.000732992
0xca49464628c0695bfff3f7a850ee77c71e624aac58532c63c026854b704b2da33 days 1 hr ago0x8899af1aa48cdfdedbf394221ab5fb9b69f4ae7b  IN   NebulaAI0 Ether0.00036655
0xbf4fad5a48a86f857c06618726c8536d50f3a4ea34a9da18a793d90d29c090f93 days 4 hrs agoCoinbene  IN   NebulaAI0 Ether0.00104718
0x6d34019672dfadde72b97909814234f0e0b98d77c4eb2294dc21804a9449f3743 days 10 hrs ago0x8ebd10fe696288c6ed1e024064fdf54541aa63e0  IN   NebulaAI0 Ether0.000732992
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x112ec3de38ddd1cf7723f74e6e561c3fc59e6b241f34306991e7e58febae07485477913278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xbfe428c70c392486a9c7de3bee94c0f63422de66b1f7bd559666b20509e8fb5f5477908278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x5bb4e8fa37f54a583a76de436a4d44b8d997be33eb7469ab4d418c57b8b56dfe5477899278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xb55ed660e826415e5495e41ac42a02eae893671445e353eac6842538b669cb8b5477875278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xa799cef55aa0681b10fbbf2d29fdf6e84158f0e412c0643381ffc45708e00f665477872278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xa64e65a0ab89d03a03276faf5fb928a1b629974713ac21ccbff7143d090bbbf65477852278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xe00d9074206ff0cd223a64d08caad03a5e37fc77d100fcda5b7196b92e6172415477846278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xad42331765a74fe42f8fffe1f605ef39555e4bc7c65ead267180b328ecd4f9265477827278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x02e41663886736052b6b885c7a7dd26ed00d5102022f96713f8a74f32bbc5f8e5477803278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x36b55e953d638ab30cc6a0f2ef9b380b3f1930b6052dbae1da3a6f5369a068195477787278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xf15ab007fb4b761cd8149f42a53296924c3cd7ecfdf717ce2caf39b121544fb45477782278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x3bede89e8ebedb1a9f19587128f212cc8fdab098712c0e2d11c46b39f1693aab5477765278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x682f38ca4d0548cffcfb480e678e7e42b886896fcb1446bd4675ff1f0142d2a85477760278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xa752fc4e8ad7a3250d2680a136ca8a3e5976d7f327b2ebe4179fedf7136e409c5477746278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x3d45f21b8ac5a7869a755e3efb66af9280a53ffe47ae550ddb3524bae9d92a3b5477739278 days 4 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xf1c268ba5452f662bb50e5de89d3b97e1ed506bd63fa024cccb114b25d053e6b5477721278 days 5 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x8b1b5b4cab1e352252623b793eac79c66606b3e0dca733ef6603f0dad1d49b125477721278 days 5 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xdbb769a29da745ab955de2b4318db2c1ec4f921a774e04881c50dd9c2d444dca5477691278 days 5 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x070eb2f5d1d2470148ad368599ab43bc483b9bbac10f2101d71b298cfba586a45477628278 days 5 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x9b01de9d8aaf0abbd9699d053d8ee44ce6ec3a1e972748500eeaf0a3a0d659e35477600278 days 5 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xb5d5a38b0ff62b7deda848cf38fcd60760e5c88e75f905276b8b2b7f1e5dd5e85477597278 days 5 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0xe1f716f105102eabfcfd7578f0f680365a31268f296377875eae725384d691335477499278 days 5 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x70daa74d0dcb8c31f222c3dae9780ef594e95ad22d15828f33640c5f742321525477451278 days 6 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x5130abc589168466161bf8f2f498a4550a5afe4359b5b9a88b77c2eb7dcfcd525477449278 days 6 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
0x411c84f5730ac2b69d00566d6c2079a2dbf95209ad87005cbd7095169ccd71695477413278 days 6 hrs ago0x17f8afb63dfcdcc90ebe6e84f060cc306a98257d  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: NebulaToken
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.19;

contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  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);
}

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

contract BasicToken is ERC20Basic {
  using SafeMath for uint256;
  mapping(address => uint256) balances;
  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @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];
  }

}
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) {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a 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
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    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 Ownable {
  address public owner;

  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}
contract MintableToken is StandardToken, Ownable {
  event Mint(address indexed to, uint256 amount);
  event MintFinished();

  bool public mintingFinished = false;


  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
    totalSupply_ = totalSupply_.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    Transfer(address(0), _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner canMint public returns (bool) {
    mintingFinished = true;
    MintFinished();
    return true;
  }
}

contract CappedToken is MintableToken {

  uint256 public cap;

  function CappedToken(uint256 _cap) public {
    require(_cap > 0);
    cap = _cap;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
    require(totalSupply_.add(_amount) <= cap);

    return super.mint(_to, _amount);
  }

}
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
  uint256 public releaseTime;

  function TokenTimelock(ERC20Basic _token, address _beneficiary, uint256 _releaseTime) public {
    require(_releaseTime > now);
    token = _token;
    beneficiary = _beneficiary;
    releaseTime = _releaseTime;
  }

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

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

    token.safeTransfer(beneficiary, amount);
  }
}
contract TokenVesting is Ownable {
  using SafeMath for uint256;
  using SafeERC20 for ERC20Basic;

  event Released(uint256 amount);
  event Revoked();

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

  uint256 public cliff;
  uint256 public start;
  uint256 public duration;

  bool public revocable;

  mapping (address => uint256) public released;
  mapping (address => bool) public revoked;

  /**
   * @dev Creates a vesting contract that vests its balance of any ERC20 token to the
   * _beneficiary, gradually in a linear fashion until _start + _duration. By then all
   * of the balance will have vested.
   * @param _beneficiary address of the beneficiary to whom vested tokens are transferred
   * @param _cliff duration in seconds of the cliff in which tokens will begin to vest
   * @param _duration duration in seconds of the period in which the tokens will vest
   * @param _revocable whether the vesting is revocable or not
   */
  function TokenVesting(address _beneficiary, uint256 _start, uint256 _cliff, uint256 _duration, bool _revocable) public {
    require(_beneficiary != address(0));
    require(_cliff <= _duration);

    beneficiary = _beneficiary;
    revocable = _revocable;
    duration = _duration;
    cliff = _start.add(_cliff);
    start = _start;
  }

  /**
   * @notice Transfers vested tokens to beneficiary.
   * @param token ERC20 token which is being vested
   */
  function release(ERC20Basic token) public {
    uint256 unreleased = releasableAmount(token);

    require(unreleased > 0);

    released[token] = released[token].add(unreleased);

    token.safeTransfer(beneficiary, unreleased);

    Released(unreleased);
  }

  /**
   * @notice Allows the owner to revoke the vesting. Tokens already vested
   * remain in the contract, the rest are returned to the owner.
   * @param token ERC20 token which is being vested
   */
  function revoke(ERC20Basic token) public onlyOwner {
    require(revocable);
    require(!revoked[token]);

    uint256 balance = token.balanceOf(this);

    uint256 unreleased = releasableAmount(token);
    uint256 refund = balance.sub(unreleased);

    revoked[token] = true;

    token.safeTransfer(owner, refund);

    Revoked();
  }

  /**
   * @dev Calculates the amount that has already vested but hasn't been released yet.
   * @param token ERC20 token which is being vested
   */
  function releasableAmount(ERC20Basic token) public view returns (uint256) {
    return vestedAmount(token).sub(released[token]);
  }

  /**
   * @dev Calculates the amount that has already vested.
   * @param token ERC20 token which is being vested
   */
  function vestedAmount(ERC20Basic token) public view returns (uint256) {
    uint256 currentBalance = token.balanceOf(this);
    uint256 totalBalance = currentBalance.add(released[token]);

    if (now < cliff) {
      return 0;
    } else if (now >= start.add(duration) || revoked[token]) {
      return totalBalance;
    } else {
      return totalBalance.mul(now.sub(start)).div(duration);
    }
  }
}
contract NebulaToken is CappedToken{
    using SafeMath for uint256;
    string public constant name = "Nebula AI Token";
    string public constant symbol = "NBAI";
    uint8 public constant decimals = 18;

    bool public pvt_plmt_set;
    uint256 public pvt_plmt_max_in_Wei;
    uint256 public pvt_plmt_remaining_in_Wei;
    uint256 public pvt_plmt_token_generated;

    TokenVesting public foundation_vesting_contract;
    uint256 public token_unlock_time = 1524887999; //April 27th 2018 23:59:59 GMT-4:00, 7 days after completion

    mapping(address => TokenTimelock[]) public time_locked_reclaim_addresses;

    //vesting starts on April 21th 2018 00:00 GMT-4:00
    //vesting duration is 3 years
    function NebulaToken() CappedToken(6700000000 * 1 ether) public{
        uint256 foundation_held = cap.mul(55).div(100);//55% fixed for early investors, partners, nebula internal and foundation
        address foundation_beneficiary_wallet = 0xD86FCe1890bf98fC086b264a66cA96C7E3B03B40;//multisig wallet
        foundation_vesting_contract = new TokenVesting(foundation_beneficiary_wallet, 1524283200, 0, 3 years, false);
        assert(mint(foundation_vesting_contract, foundation_held));
        FoundationTokenGenerated(foundation_vesting_contract, foundation_beneficiary_wallet, foundation_held);
    }

    //Crowdsale contract mints and stores tokens in time locked contracts during crowdsale.
    //Ownership is transferred back to the owner of crowdsale contract once crowdsale is finished(finalize())
    function create_public_sale_token(address _beneficiary, uint256 _token_amount) external onlyOwner returns(bool){
        assert(mint_time_locked_token(_beneficiary, _token_amount) != address(0));
        return true;
    }

    //@dev Can only set once
    function set_private_sale_total(uint256 _pvt_plmt_max_in_Wei) external onlyOwner returns(bool){
        require(!pvt_plmt_set && _pvt_plmt_max_in_Wei >= 5000 ether);//_pvt_plmt_max_in_wei is minimum the soft cap
        pvt_plmt_set = true;
        pvt_plmt_max_in_Wei = _pvt_plmt_max_in_Wei;
        pvt_plmt_remaining_in_Wei = pvt_plmt_max_in_Wei;
        PrivateSalePlacementLimitSet(pvt_plmt_max_in_Wei);
    }
    /**
     * Private sale distributor
     * private sale total is set once, irreversible and not modifiable
     * Once this amount in wei is reduced to 0, no more token can be generated as private sale!
     * Maximum token generated by private sale is pvt_plmt_max_in_Wei * 125000 (discount upper limit)
     * Note 1, Private sale limit is the balance of private sale fond wallet balance as of 23:59 UTC March 29th 2019
     * Note 2, no ether is transferred to neither the crowdsale contract nor this one for private sale
     * totalSupply_ = pvt_plmt_token_generated + foundation_held + weiRaised * 100000
     * _beneficiary: private sale buyer address
     * _wei_amount: amount in wei that the buyer bought
     * _rate: rate that the private sale buyer has agreed with NebulaAi
     */
    function distribute_private_sale_fund(address _beneficiary, uint256 _wei_amount, uint256 _rate) public onlyOwner returns(bool){
        require(pvt_plmt_set && _beneficiary != address(0) && pvt_plmt_remaining_in_Wei >= _wei_amount && _rate >= 100000 && _rate <= 125000);

        pvt_plmt_remaining_in_Wei = pvt_plmt_remaining_in_Wei.sub(_wei_amount);//remove from limit
        uint256 _token_amount = _wei_amount.mul(_rate); //calculate token amount to be generated
        pvt_plmt_token_generated = pvt_plmt_token_generated.add(_token_amount);//add generated amount to total private sale token

        //Mint token if unlocked time has been reached, directly mint to beneficiary, else create time locked contract
        address _ret;
        if(now < token_unlock_time) assert((_ret = mint_time_locked_token(_beneficiary, _token_amount))!=address(0));
        else assert(mint(_beneficiary, _token_amount));

        PrivateSaleTokenGenerated(_ret, _beneficiary, _token_amount);
        return true;
    }
    //used for private and public sale to create time locked contract before lock release time
    //Note: TokenTimelock constructor will throw after token unlock time is reached
    function mint_time_locked_token(address _beneficiary, uint256 _token_amount) internal returns(TokenTimelock _locked){
        _locked = new TokenTimelock(this, _beneficiary, token_unlock_time);
        time_locked_reclaim_addresses[_beneficiary].push(_locked);
        assert(mint(_locked, _token_amount));
    }

    //Release all tokens held by time locked contracts to the beneficiary address stored in the contract
    //Note: requirement is checked in time lock contract
    function release_all(address _beneficiary) external returns(bool){
        require(time_locked_reclaim_addresses[_beneficiary].length > 0);
        TokenTimelock[] memory _locks = time_locked_reclaim_addresses[_beneficiary];
        for(uint256 i = 0 ; i < _locks.length; ++i) _locks[i].release();
        return true;
    }

    //override to add a checker
    function finishMinting() onlyOwner canMint public returns (bool){
        require(pvt_plmt_set && pvt_plmt_remaining_in_Wei == 0);
        super.finishMinting();
    }

    function get_time_locked_contract_size(address _owner) external view returns(uint256){
        return time_locked_reclaim_addresses[_owner].length;
    }

    event PrivateSaleTokenGenerated(address indexed _time_locked, address indexed _beneficiary, uint256 _amount);
    event FoundationTokenGenerated(address indexed _vesting, address indexed _beneficiary, uint256 _amount);
    event PrivateSalePlacementLimitSet(uint256 _limit);
    function () public payable{revert();}//This contract is not payable
}
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  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;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}
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));
  }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_pvt_plmt_max_in_Wei","type":"uint256"}],"name":"set_private_sale_total","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"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":"foundation_vesting_contract","outputs":[{"name":"","type":"address"}],"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":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_wei_amount","type":"uint256"},{"name":"_rate","type":"uint256"}],"name":"distribute_private_sale_fund","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pvt_plmt_set","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"time_locked_reclaim_addresses","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_token_amount","type":"uint256"}],"name":"create_public_sale_token","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"release_all","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"pvt_plmt_max_in_Wei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"get_time_locked_contract_size","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_unlock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pvt_plmt_token_generated","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pvt_plmt_remaining_in_Wei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_time_locked","type":"address"},{"indexed":true,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"PrivateSaleTokenGenerated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_vesting","type":"address"},{"indexed":true,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"FoundationTokenGenerated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_limit","type":"uint256"}],"name":"PrivateSalePlacementLimitSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600360146101000a81548160ff021916908315150217905550635ae3f1bf600a5534156200003357600080fd5b6000806b15a61c2fc85b5b31ac00000033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000811115156200009457600080fd5b8060048190555050620000e56064620000c860376004546200029e6401000000000262002254179091906401000000009004565b620002dd640100000000026200251b179091906401000000009004565b915073d86fce1890bf98fc086b264a66ca96c7e3b03b40905080635adab74060006305a39a80600062000117620005fa565b808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018215151515815260200195505050505050604051809103906000f08015156200018457600080fd5b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000206600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683620002f9640100000000026200105d176401000000009004565b15156200020f57fe5b8073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa9aa5c04d88d4fa986f099fd5c5b5dbce10532eabba64fe122dbafcdef3bf865846040518082815260200191505060405180910390a350506200060b565b6000806000841415620002b55760009150620002d6565b8284029050828482811515620002c757fe5b04141515620002d257fe5b8091505b5092915050565b6000808284811515620002ec57fe5b0490508091505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200035857600080fd5b600360149054906101000a900460ff161515156200037557600080fd5b6004546200039d83600154620003d36401000000000262002050179091906401000000009004565b11151515620003ab57600080fd5b620003cb8383620003f2640100000000026200206e176401000000009004565b905092915050565b6000808284019050838110151515620003e857fe5b8091505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200045157600080fd5b600360149054906101000a900460ff161515156200046e57600080fd5b6200049382600154620003d36401000000000262002050179091906401000000009004565b600181905550620004fa826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620003d36401000000000262002050179091906401000000009004565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b604051610f3a806200307583390190565b612a5a806200061b6000396000f300606060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015773b61461017a57806305d2035b146101b557806306fdde03146101e2578063095ea7b31461027057806318160ddd146102ca57806323b872dd146102f3578063288365a71461036c578063313ce567146103c1578063355274ea146103f057806340c10f191461041957806345b17abb146104735780634854bde0146104d657806349f539b214610503578063661884631461058557806368e757a0146105df57806370a08231146106395780637d64bcb4146106865780638da5cb5b146106b357806395d89b41146107085780639c29379214610796578063a9059cbb146107e7578063cf0023ec14610841578063d73dd6231461086a578063dd62ed3e146108c4578063df713abd14610930578063e9e488421461097d578063f2fde38b146109a6578063f9084729146109df578063fd92579514610a08575b600080fd5b341561018557600080fd5b61019b6004808035906020019091905050610a31565b604051808215151515815260200191505060405180910390f35b34156101c057600080fd5b6101c8610b2a565b604051808215151515815260200191505060405180910390f35b34156101ed57600080fd5b6101f5610b3d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023557808201518184015260208101905061021a565b50505050905090810190601f1680156102625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027b57600080fd5b6102b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b76565b604051808215151515815260200191505060405180910390f35b34156102d557600080fd5b6102dd610c68565b6040518082815260200191505060405180910390f35b34156102fe57600080fd5b610352600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c72565b604051808215151515815260200191505060405180910390f35b341561037757600080fd5b61037f61102c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103cc57600080fd5b6103d4611052565b604051808260ff1660ff16815260200191505060405180910390f35b34156103fb57600080fd5b610403611057565b6040518082815260200191505060405180910390f35b341561042457600080fd5b610459600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061105d565b604051808215151515815260200191505060405180910390f35b341561047e57600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061110e565b604051808215151515815260200191505060405180910390f35b34156104e157600080fd5b6104e9611313565b604051808215151515815260200191505060405180910390f35b341561050e57600080fd5b610543600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611326565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561059057600080fd5b6105c5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611374565b604051808215151515815260200191505060405180910390f35b34156105ea57600080fd5b61061f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611605565b604051808215151515815260200191505060405180910390f35b341561064457600080fd5b610670600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116af565b6040518082815260200191505060405180910390f35b341561069157600080fd5b6106996116f7565b604051808215151515815260200191505060405180910390f35b34156106be57600080fd5b6106c66117a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561071357600080fd5b61071b6117cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561075b578082015181840152602081019050610740565b50505050905090810190601f1680156107885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107a157600080fd5b6107cd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611805565b604051808215151515815260200191505060405180910390f35b34156107f257600080fd5b610827600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119d9565b604051808215151515815260200191505060405180910390f35b341561084c57600080fd5b610854611bf8565b6040518082815260200191505060405180910390f35b341561087557600080fd5b6108aa600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611bfe565b604051808215151515815260200191505060405180910390f35b34156108cf57600080fd5b61091a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611dfa565b6040518082815260200191505060405180910390f35b341561093b57600080fd5b610967600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e81565b6040518082815260200191505060405180910390f35b341561098857600080fd5b610990611ecd565b6040518082815260200191505060405180910390f35b34156109b157600080fd5b6109dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ed3565b005b34156109ea57600080fd5b6109f261202b565b6040518082815260200191505060405180910390f35b3415610a1357600080fd5b610a1b612031565b6040518082815260200191505060405180910390f35b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8f57600080fd5b600560009054906101000a900460ff16158015610ab6575069010f0cf064dd592000008210155b1515610ac157600080fd5b6001600560006101000a81548160ff021916908315150217905550816006819055506006546007819055507f4a56b7e8268aa0185d492502b8b59d35b25ffe10aef8ec35413494ab264df9df6006546040518082815260200191505060405180910390a1919050565b600360149054906101000a900460ff1681565b6040805190810160405280600f81526020017f4e6562756c6120414920546f6b656e000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610caf57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610cfc57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d8757600080fd5b610dd8826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e6b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f3c82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b60045481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110bb57600080fd5b600360149054906101000a900460ff161515156110d757600080fd5b6004546110ef8360015461205090919063ffffffff16565b111515156110fc57600080fd5b611106838361206e565b905092915050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561116f57600080fd5b600560009054906101000a900460ff1680156111b85750600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156111c657508460075410155b80156111d55750620186a08410155b80156111e457506201e8488411155b15156111ef57600080fd5b6112048560075461203790919063ffffffff16565b60078190555061121d848661225490919063ffffffff16565b91506112348260085461205090919063ffffffff16565b600881905550600a5442101561128e57600073ffffffffffffffffffffffffffffffffffffffff16611266878461228f565b91508173ffffffffffffffffffffffffffffffffffffffff161415151561128957fe5b6112a1565b611298868361105d565b15156112a057fe5b5b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f553bfd209cdb4504e0b01494b3ad6acb6a67152e88b8e6bea244a80f33d7e3f9846040518082815260200191505060405180910390a36001925050509392505050565b600560009054906101000a900460ff1681565b600b6020528160005260406000208181548110151561134157fe5b90600052602060002090016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611485576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611519565b611498838261203790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561166357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16611685848461228f565b73ffffffffffffffffffffffffffffffffffffffff16141515156116a557fe5b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561175557600080fd5b600360149054906101000a900460ff1615151561177157600080fd5b600560009054906101000a900460ff16801561178f57506000600754145b151561179a57600080fd5b6117a26123de565b5090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f4e4241490000000000000000000000000000000000000000000000000000000081525081565b600061180f6124a6565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011151561186157600080fd5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561192057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116118d6575b50505050509150600090505b81518110156119ce57818181518110151561194357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166386d1a69f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15156119af57600080fd5b6102c65a03f115156119c057600080fd5b50505080600101905061192c565b600192505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a1657600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a6357600080fd5b611ab4826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b47826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60065481565b6000611c8f82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600a5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f6b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b60075481565b600082821115151561204557fe5b818303905092915050565b600080828401905083811015151561206457fe5b8091505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120cc57600080fd5b600360149054906101000a900460ff161515156120e857600080fd5b6120fd8260015461205090919063ffffffff16565b600181905550612154826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060008414156122695760009150612288565b828402905082848281151561227a57fe5b0414151561228457fe5b8091505b5092915050565b60003083600a5461229e6124ba565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f080151561232457600080fd5b9050600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161237791906124ca565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506123d0818361105d565b15156123d857fe5b92915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561243c57600080fd5b600360149054906101000a900460ff1615151561245857600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b602060405190810160405280600081525090565b6040516104f88061253783390190565b8154818355818115116124f1578183600052602060002091820191016124f091906124f6565b5b505050565b61251891905b808211156125145760008160009055506001016124fc565b5090565b90565b600080828481151561252957fe5b049050809150509291505056006060604052341561000f57600080fd5b6040516060806104f883398101604052808051906020019091908051906020019091908051906020019091905050428111151561004b57600080fd5b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550505050610413806100e56000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806338af3eed1461006757806386d1a69f146100bc578063b91d4001146100d1578063fc0c546a146100fa575b600080fd5b341561007257600080fd5b61007a61014f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100c757600080fd5b6100cf610175565b005b34156100dc57600080fd5b6100e46102e9565b6040518082815260200191505060405180910390f35b341561010557600080fd5b61010d6102ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254421015151561018857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561024c57600080fd5b6102c65a03f1151561025d57600080fd5b50505060405180519050905060008111151561027857600080fd5b6102e6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166103149092919063ffffffff16565b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156103bf57600080fd5b6102c65a03f115156103d057600080fd5b5050506040518051905015156103e257fe5b5050505600a165627a7a723058204757dbda1031a23e79cc25c87a302e4bbd6e299e75c1b1188df662ed6b856e5e0029a165627a7a723058200edb3945438ead0368c40e924401e8af0ae9c4eb9577ac129d422e67dc937dae00296060604052341561000f57600080fd5b60405160a080610f3a83398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156100cb57600080fd5b8183111515156100da57600080fd5b84600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548160ff0219169083151502179055508160048190555061015c838561017364010000000002610c27179091906401000000009004565b600281905550836003819055505050505050610191565b600080828401905083811015151561018757fe5b8091505092915050565b610d9a806101a06000396000f3006060604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630fb5a6b4146100ca57806313d033c0146100f35780631726cbc81461011c5780631916558714610169578063384711cc146101a257806338af3eed146101ef57806374a8f10314610244578063872a78101461027d5780638da5cb5b146102aa5780639852595c146102ff578063be9a65551461034c578063f2fde38b14610375578063fa01dc06146103ae575b600080fd5b34156100d557600080fd5b6100dd6103ff565b6040518082815260200191505060405180910390f35b34156100fe57600080fd5b610106610405565b6040518082815260200191505060405180910390f35b341561012757600080fd5b610153600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061040b565b6040518082815260200191505060405180910390f35b341561017457600080fd5b6101a0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061046e565b005b34156101ad57600080fd5b6101d9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506105a7565b6040518082815260200191505060405180910390f35b34156101fa57600080fd5b610202610793565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561024f57600080fd5b61027b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107b9565b005b341561028857600080fd5b610290610a43565b604051808215151515815260200191505060405180910390f35b34156102b557600080fd5b6102bd610a56565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030a57600080fd5b610336600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a7b565b6040518082815260200191505060405180910390f35b341561035757600080fd5b61035f610a93565b6040518082815260200191505060405180910390f35b341561038057600080fd5b6103ac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a99565b005b34156103b957600080fd5b6103e5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bee565b604051808215151515815260200191505060405180910390f35b60045481565b60025481565b6000610467600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610459846105a7565b610c0e90919063ffffffff16565b9050919050565b60006104798261040b565b905060008111151561048a57600080fd5b6104dc81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c2790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061056c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610c459092919063ffffffff16565b7ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c565816040518082815260200191505060405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561064f57600080fd5b6102c65a03f1151561066057600080fd5b5050506040518051905091506106be600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c2790919063ffffffff16565b90506002544210156106d3576000925061078c565b6106ea600454600354610c2790919063ffffffff16565b421015806107415750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561074e5780925061078c565b61078960045461077b61076c60035442610c0e90919063ffffffff16565b84610d1890919063ffffffff16565b610d5390919063ffffffff16565b92505b5050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561081957600080fd5b600560009054906101000a900460ff16151561083457600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561088d57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561093057600080fd5b6102c65a03f1151561094157600080fd5b5050506040518051905092506109568461040b565b915061096b8284610c0e90919063ffffffff16565b90506001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610a116000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828673ffffffffffffffffffffffffffffffffffffffff16610c459092919063ffffffff16565b7f44825a4b2df8acb19ce4e1afba9aa850c8b65cdb7942e2078f27d0b0960efee660405160405180910390a150505050565b600560009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090505481565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b3057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000828211151515610c1c57fe5b818303905092915050565b6000808284019050838110151515610c3b57fe5b8091505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610cf057600080fd5b6102c65a03f11515610d0157600080fd5b505050604051805190501515610d1357fe5b505050565b6000806000841415610d2d5760009150610d4c565b8284029050828482811515610d3e57fe5b04141515610d4857fe5b8091505b5092915050565b6000808284811515610d6157fe5b04905080915050929150505600a165627a7a7230582004c1987b1d71ac003044c610bd2af0c5eba1e35927499300b1e11a82cc0b70e70029

   Swarm Source:
bzzr://04c1987b1d71ac003044c610bd2af0c5eba1e35927499300b1e11a82cc0b70e7

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.