func: function isRefundAllowed() internal view returns (bool);
  }
  
  contract Crowdsale is RefundableCrowdsale {
  
      using SafeMath for uint256;
  
      enum State { ICO, REFUND, DONE }
      State public state = State.ICO;
  
      uint256 public constant maxTokenAmount = 75000000 * 10**18; 
      uint256 public constant bountyTokens =   15000000 * 10**18; 
      uint256 public constant softCapTokens =  6000000 * 10**18; 
  
      uint public constant unblockTokenTime = 1519880400; 
  
      RENTCoin public token;
  
      uint256 public leftTokens = 0;
  
      uint256 public totalAmount = 0;
      uint public transactionCounter = 0;
  
      bool public bonusesPayed = false;
  
      uint256 public constant rateToEther = 1000; 
  
      uint256 public constant minAmountForDeal = 10**16; 
  
      uint256 public soldTokens = 0;
  
      modifier canBuy() {
          require(!isFinished());
          require(isPreICO() || isICO());
          _;
      }