docs: public int readIntVarint() throws IOException {
          int i = in.read();
          if (i < 0) {
              return 0;
          }
  
          boolean c = (i & 0x80) > 0;
          int out = (i & 0x7f);
  
          int shift = 0;
          while (c) {
              shift += 7;
              i = expectUInt8();
              c = (i & 0x80) > 0;
              out |= ((i & 0x7f) << shift);
          }
          return out;
      }