code: @Nonnull
    public static String encodeBytes (@Nonnull final byte [] source, final int options) throws IOException
    {
      return encodeBytes (source, 0, source.length, options);
    }
docs: Encodes a byte array into Base64 notation.
  <p>
  Example options:
  
  <pre>
  GZIP: gzip-compresses object before encoding it.
  DO_BREAK_LINES: break lines at 76 characters
  Note: Technically, this makes your encoding non-compliant.
  </pre>
  <p>
  Example: <code>encodeBytes( myData, Base64.GZIP )</code> or
  <p>
  Example:
  <code>encodeBytes( myData, Base64.GZIP | Base64.DO_BREAK_LINES )</code>
  <p>
  As of v 2.3, if there is an error with the GZIP stream, the method will
  throw an IOException. <b>This is new to v2.3!</b> In earlier versions, it
  just returned a null value, but in retrospect that's a pretty poor way to
  handle it.
  </p>
  
  @param source
  The data to convert
  @param options
  Specified options
  @return The Base64-encoded data as a String
  @see Base64#GZIP
  @see Base64#DO_BREAK_LINES
  @throws IOException
  if there is an error
  @throws NullPointerException
  if source array is null
  @since 2.0