docs: public static String preambleToString(final Memory srcMem) {
      final long pre0 = checkPreambleSize(srcMem); //make sure we can get the assumed preamble
      final int preLongs = extractPreLongs(pre0);   //byte 0
      final int serVer = extractSerVer(pre0);       //byte 1
      final Family family = Family.idToFamily(extractFamilyID(pre0)); //byte 2
      final int lgMaxMapSize = extractLgMaxMapSize(pre0); //byte 3
      final int lgCurMapSize = extractLgCurMapSize(pre0); //byte 4
      final int flags = extractFlags(pre0);         //byte 5
      final int type = extractSerDeId(pre0);        //byte 6
  
      final String flagsStr = zeroPad(Integer.toBinaryString(flags), 8) + ", " + (flags);
      final boolean empty = (flags & EMPTY_FLAG_MASK) > 0;
      final int maxMapSize = 1 << lgMaxMapSize;
      final int curMapSize = 1 << lgCurMapSize;
      final int maxPreLongs = Family.FREQUENCY.getMaxPreLongs();
  
      //Assumed if preLongs == 1
      int activeItems = 0;
      long streamLength = 0;
      long offset = 0;
  
      //Assumed if preLongs == maxPreLongs
  
      if (preLongs == maxPreLongs) {
        //get full preamble
        final long[] preArr = new long[preLongs];
        srcMem.getLongArray(0, preArr, 0, preLongs);
        activeItems =  extractActiveItems(preArr[1]);
        streamLength = preArr[2];
        offset = preArr[3];
      }
  
      final StringBuilder sb = new StringBuilder();
      sb.append(LS)
        .append("### FREQUENCY SKETCH PREAMBLE SUMMARY:").append(LS)
        .append("Byte  0: Preamble Longs       : ").append(preLongs).append(LS)
        .append("Byte  1: Serialization Version: ").append(serVer).append(LS)
        .append("Byte  2: Family               : ").append(family.toString()).append(LS)
        .append("Byte  3: MaxMapSize           : ").append(maxMapSize).append(LS)
        .append("Byte  4: CurMapSize           : ").append(curMapSize).append(LS)
        .append("Byte  5: Flags Field          : ").append(flagsStr).append(LS)
        .append("  EMPTY                       : ").append(empty).append(LS)
        .append("Byte  6: Freq Sketch Type     : ").append(type).append(LS);
  
      if (preLongs == 1) {
        sb.append(" --ABSENT, ASSUMED:").append(LS);
      } else { //preLongs == maxPreLongs
        sb.append("Bytes 8-11 : ActiveItems      : ").append(activeItems).append(LS);
        sb.append("Bytes 16-23: StreamLength     : ").append(streamLength).append(LS)
          .append("Bytes 24-31: Offset           : ").append(offset).append(LS);
      }
  
      sb.append(  "Preamble Bytes                : ").append(preLongs * 8).append(LS);
      sb.append(  "TOTAL Sketch Bytes            : ").append((preLongs + (activeItems * 2)) << 3)
        .append(LS)
        .append("### END FREQUENCY SKETCH PREAMBLE SUMMARY").append(LS);
      return sb.toString();
    }