docs: public int expectUInt24() throws IOException {
          int b1 = in.read();
          if (b1 < 0) {
              throw new IOException("Missing byte 1 to expected uint24");
          }
          int b2 = in.read();
          if (b2 < 0) {
              throw new IOException("Missing byte 2 to expected uint24");
          }
          int b3 = in.read();
          if (b3 < 0) {
              throw new IOException("Missing byte 3 to expected uint24");
          }
          return unshift3bytes(b1, b2, b3);
      }