docs: final void fillIDs(long keyPart, int intIndex, GHIntHashSet set, int depth) {
          long pointer = (long) intIndex << 2;
          if (depth == entries.length) {
              int nextIntPointer = dataAccess.getInt(pointer);
              if (nextIntPointer < 0) {
                  // single data entries (less disc space)
                  set.add(-(nextIntPointer + 1));
              } else {
                  long max = (long) nextIntPointer * 4;
                  // leaf entry => nextIntPointer is maxPointer
                  for (long leafIndex = pointer + 4; leafIndex < max; leafIndex += 4) {
                      set.add(dataAccess.getInt(leafIndex));
                  }
              }
              return;
          }
          int offset = (int) (bitmasks[depth] & keyPart) << 2;
          int nextIntPointer = dataAccess.getInt(pointer + offset);
          if (nextIntPointer > 0) {
              // tree entry => negative value points to subentries
              fillIDs(keyPart >>> shifts[depth], nextIntPointer, set, depth + 1);
          }
      }