contract HeliosToken is StandardToken, Ownable {
	/*
    NOTE:
    The following variables are OPTIONAL vanities. One does not have to include them.
    They allow one to customize the token contract & in no way influences the core functionality.
    Some wallets/interfaces might not even bother to look at this information.
    */
    string  public constant name = "Helios Token";
    string  public constant symbol = "HLS";
    uint8   public constant decimals = 18;
	
	uint256 public constant INITIAL_SUPPLY = 300000000 * (10 ** uint256(decimals));
	uint256 public constant YEAR_TWO_SUPPLY = 30000000 * (10 ** uint256(decimals));
	uint256 public constant YEAR_THREE_SUPPLY = 20000000 * (10 ** uint256(decimals));
	
	bool public yearTwoClaimed;
	bool public yearThreeClaimed;
	
	//March 1, 2018
	uint256 public startTime = 1519862400;


    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor() public {
        yearTwoClaimed = false;
		yearThreeClaimed = false;
		
        totalSupply_ = INITIAL_SUPPLY + YEAR_TWO_SUPPLY + YEAR_THREE_SUPPLY;
        
		//send 1st year team tokens, exchange tokens, incubator tokens
		balances[owner] = INITIAL_SUPPLY;
		emit Transfer(0x0, owner, INITIAL_SUPPLY);
		
    }

	// ------------------------------------------------------------------------
    // Team can claim their tokens after lock up period
    // ------------------------------------------------------------------------
	function teamClaim(uint256 year) public onlyOwner returns (bool success) {
		if(year == 2)
		{
			require (block.timestamp > (startTime + 31536000)  && yearTwoClaimed == false);
			balances[owner] = balances[owner].add(YEAR_TWO_SUPPLY);
			emit Transfer(0x0, owner, YEAR_TWO_SUPPLY);
			yearTwoClaimed = true;
		}
		if(year == 3)
		{
			require (block.timestamp > (startTime + 63072000) && yearThreeClaimed == false);
			balances[owner] = balances[owner].add(YEAR_THREE_SUPPLY);
			emit Transfer(0x0, owner, YEAR_THREE_SUPPLY);
			yearThreeClaimed = true;
		}
		return true;
	}
	

    // do not allow deposits
    function() public{
        revert();
    }

}
// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and assisted
// token transfers
// ----------------------------------------------------------------------------
function() public{
    revert();
}

// do not allow deposits