contract FooToken is CappedToken {
  string public constant version="1.0.0";
  string public constant name = "Foo Token";
  string public constant symbol = "FOO"; 
  uint8 public constant decimals = 18; 
  uint256 public closingTime;

  //set cap token
  constructor(uint256 _closingTime) public CappedToken(uint256(100000000 * uint256(10 ** uint256(decimals)))) {
    require(block.timestamp < _closingTime);
    closingTime = _closingTime;
  }
  
  /** 
   * @dev Override mint for implement block mint when ICO finish
   * @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
  )
    public
    returns (bool)
  {
    require(block.timestamp < closingTime);
    return super.mint(_to, _amount);
  }
  /**
  * @dev function for change date finish mint
  * @param _closingTime date of closing mint
  */
  function changeClosingTime(uint256 _closingTime) public onlyOwner {
    require(block.timestamp < _closingTime);
    closingTime = _closingTime;
  }
  /**
  * @dev override transferFrom for block transfer before ico finish
  */
  function transferFrom(address _from,address _to,uint256 _value) public returns (bool) {
    require(block.timestamp >= closingTime);
    return super.transferFrom(_from,_to,_value);
  }
  /**
  * @dev override transfer for block transfer before ico finish
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(block.timestamp >= closingTime);
    return super.transfer(_to, _value);
  }
}
/**
 * @title FooToken
 * @dev Very simple ERC20 Token that can be minted with Cap.
 * Import contract CappedToken,MintableToken,StandardToken,ERC20,ERC20Basic,BasicToken,Ownable.
 * Import library SafeMath.
 */
function changeClosingTime(uint256 _closingTime) public onlyOwner {
    require(block.timestamp < _closingTime);
    closingTime = _closingTime;
  }
/**
 * @dev function for change date finish mint
 * @param _closingTime date of closing mint
 */