code: public long[] get(long index, final long dest[], final int offset, final int length) {
  		long from = borders.getLong(index++), to;
  		// We use the destination array to cache borders.
  		borders.get(index, dest, offset, length);
  
  		for(int i = 0; i < length; i++) {
  			to = dest[offset + i];
  			dest[offset + i] = ((1L << (to - from)) | bits.getLong(from, to)) - this.offset;
  			from = to;
  		}
  
  		return dest;
  	}
docs: Extracts a number of consecutive entries into a given array fragment.
  
  @param index the index of the first entry returned.
  @param dest the destination array; it will be filled with {@code length} consecutive entries starting at position {@code offset}.
  @param offset the first position written in {@code dest}.
  @param length the number of elements written in {@code dest} starting at {@code offset}.
  @return {@code dest}
  @see #get(long, long[])