abstract contract BlockNumber {
  /// @dev Method that exists purely to be overridden for tests
  /// @return The current block number
  function _blockNumber() internal view virtual returns (uint256) {
    return block.number;
  }
}
/// @title Function for getting block number
/// @dev Base contract that is overridden for tests
function _blockNumber() internal view virtual returns (uint256) {
  return block.number;
}

/// @dev Method that exists purely to be overridden for tests
/// @return The current block number