code: public static ByteBuffer decode(byte[] source, int off, int limit) throws IOException {
          return Decoder.decode(source, off, limit, false);
      }
docs: Decodes a Base64 encoded byte array into a new byte buffer.  The returned byte buffer is a heap buffer,
  and it is therefor possible to retrieve the backing array using {@link java.nio.ByteBuffer#array()},
  {@link java.nio.ByteBuffer#arrayOffset()} and {@link java.nio.ByteBuffer#limit()}. The latter is very
  important since the decoded array may be larger than the decoded data. This is due to length estimation which
  avoids an unnecessary array copy.
  
  @param source the Base64 content to decode
  @param off position to start decoding from in source
  @param limit position to stop decoding in source (exclusive)
  @return a byte buffer containing the decoded output
  @throws IOException if the encoding is invalid or corrupted