start moving beyond PMModelItemInfo spv
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 4 Jul 2020 06:45:20 +0000 (06:45 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 4 Jul 2020 06:45:20 +0000 (06:45 +0000)
dump-spo2.c
spo-notes

index 70622943e0057c8522bf5ab65b353860b727f380..9bef78c5668a6674a5567ca4c8d2e4cdeef36188 100644 (file)
@@ -793,13 +793,32 @@ parse_dimension(int i)
     parse_category(1, j, &n_leaves);
 }
 
+static void skip_item(const char *name);
+
 static void
 parse_PMModelItemInfo(void)
 {
   for (int i = 0; i < n_dims; i++)
     parse_dimension(i);
   printf("%#x: end of model\n", pos);
-  exit(0);
+
+  int n_units16 = get_u32();
+  match_u16_assert(0);
+  for (int j = 0; j < n_units16; j++)
+    get_u16();
+
+  n_units16 = get_u32();
+  match_u16_assert(1);
+  for (int j = 0; j < n_units16; j++)
+    get_u16();
+
+  match_byte_assert(0);
+  int n_units32 = get_u32();
+  match_u16_assert(0);
+  for (int j = 0; j < n_units32; j++)
+    match_u32_assert(j);
+
+  skip_item("end of PMModelItemInfo");
 }
 
 static void
@@ -996,17 +1015,38 @@ skip_item(const char *name)
 {
   int start_pos = pos;
   printf("%#x: skipping %s bytes...", pos, name);
-  while (data[pos + 1] != 0x80
+  while (pos < n
+         && data[pos + 1] != 0x80
          && !(data[pos] == 0xff && data[pos + 1] == 0xff
               && data[pos + 2] == 0 && data[pos + 3] == 0))
     {
-      assert(pos < n);
       pos++;
     }
   printf("until %#x:", pos);
   hex_dump(stdout, start_pos, pos - start_pos);
 }
 
+static void
+parse_DspAnnotation(void)
+{
+  match_zeros_assert(10);
+  match_u32_assert(1);
+}
+
+static void
+parse_DspTextComponentHandle(void)
+{
+  match_byte_assert(0);
+  match_DspString();
+  printf("after DspTextComponentHandle: ");
+  for (int i = 0; ; i++)
+    if (!memcmp(&data[pos + 6 + i], "PVView", 6))
+      {
+        hex_dump(stdout, pos, i);
+        exit(0);
+      }
+}
+
 static void
 parse_flexible(void)
 {
@@ -1075,6 +1115,10 @@ parse_flexible(void)
         parse_PVCellStyle();
       else if (!strcmp(heading, "PVTextStyle"))
         exit(0);
+      else if (!strcmp(heading, "DspAnnotation"))
+        parse_DspAnnotation();
+      else if (!strcmp(heading, "DspTextComponentHandle"))
+        parse_DspTextComponentHandle();
       else
         {
           fprintf(stderr, "don't know %s at offset 0x%x: ", heading, start);
@@ -1091,7 +1135,15 @@ parse_flexible(void)
       else if (data[pos] == 0x5 && data[pos + 1] == 0x80)
         match_DspString();
       else if (data[pos] == 0x7 && data[pos + 1] == 0x80)
-        match_NavTreeViewItem();
+        {
+          if (0)
+            match_NavTreeViewItem();
+          else
+            {
+              pos += 2;
+              skip_item("NavTreeViewItem");
+            }
+        }
       else if (data[pos] == 0x3 && data[pos + 1] == 0x80)
         match_DspSimpleText();
       else if ((data[pos] == 0x3c || data[pos] == 0x39)
@@ -1447,7 +1499,7 @@ main(int argc, char *argv[])
   match_u32_assert(1);
   match_byte_assert(0x63);
 
-  for (;;)
+  while (pos < n)
     {
       if (data[pos] == 0)
         {
@@ -1610,7 +1662,7 @@ main(int argc, char *argv[])
   match_byte_assert(0);
   match_zeros_assert(7);
 
-  while (data[pos] != 1)
+  while (pos < n)
     {
       if (data[pos] == 0)
         {
index b14c001cc8a5eeac98f764ce35e6070bcf023287..ea87e0cc6d06d3b7760ab76f03f4cc78c7a2ce1a 100644 (file)
--- a/spo-notes
+++ b/spo-notes
@@ -1593,3 +1593,123 @@ F40.2 00 01 "Perseverance"
 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00
 05 00 00 00 06 00 00 00 07 00 00 00 00 02 00 00
 00 01 00
+
+05 00 00 00 01 00 88 00 8c 00 90 00 94 00 98 00 00 05 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 03 00 00 00 01 00
+03 00 00 00 01 00 58 00 5c 00 60 00 00 03 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 00 01 00 00 00 01 00 ......X.\.`...........................
+05 00 00 00 01 00 f9 00 fd 00 05 01 09 01 0d 01 00 05 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 01 00 00 00 01 00
+03 00 00 00 01 00 a4 01 a8 01 ac 01 00 03 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 00 02 00 00 00 01 00
+08 00 00 00 01 00 83 06 87 06 8b 06 8f 06 93 06 97 06 9b 06 9f 06 00 08 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 00 02 00 00 00 01 00
+04 00 00 00 01 00 c3 01 c7 01 cb 01 cf 01 00 04 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 01 00 00 11 00 00 00 00 00 00 00 00 00 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 01 00 00 00 02 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00
+1e 00 00 00 01 00 47 04 4b 04 4f 04 53 04 57 04 5b 04 5f 04 63 04 67 04 6b 04 6f 04 73 04 77 04 7b 04 7f 04 83 04 87 04 8b 04 8f 04 93 04 97 04 9b 04 9f 04 a3 04 a7 04 ab 04 af 04 b3 04 b7 04 bb 04 00 1e 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0a 00 00 00 0b 00 00 00 0c 00 00 00 0d 00 00 00 0e 00 00 00 0f 00 00 00 10 00 00 00 11 00 00 00 12 00 00 00 13 00 00 00 14 00 00 00 15 00 00 00 16 00 00 00 17 00 00 00 18 00 00 00 19 00 00 00 1a 00 00 00 1b 00 00 00 1c 00 00 00 1d 00 00 00 00 00 00 00 00 01 00 00 11 00 00 00 00 00 00 00 00 00 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 02 00 00 00 00 02 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 ......G.K.O.S.W.[._.c.g.k.o.s.w.{..................................................................................................................................................................................K.............................................................
+04 00 00 00 01 00 8f 00 93 00 97 00 9b 00 00 04 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 01 00 00 11 00 00 00 00 00 00 00 00 00 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00
+0e 00 00 00 01 00 41 00 45 00 4d 00 51 00 55 00 59 00 5d 00 65 00 69 00 6d 00 75 00 7d 00 81 00 85 00 00 0e 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0a 00 00 00 0b 00 00 00 0c 00 00 00 0d 00 00 00 00 00 00 00 00 01 00 00 11 00 00 00 00 00 04 00 00 00 e1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 ......A.E.M.Q.U.Y.].e.i.m.u.}............................................................................................................................................
+03 00 00 00 01 00 4e 00 52 00 56 00 00 03 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 11 00 00 00 00 00 00 00 00 00 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 ......N.R.V......................................K.............................................................
+3c 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 4b 00 00 00 4b 00 00 00 00 02 00 00 00 00 00 00 00 00 00 3f 00 00 00 <................K...K..............?...
+49 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 4b 00 00 00 4b 00 00 00 4b 00 00 00 00 02 00 00 00 00 00 00 00 00 00 40 00 00 00 00 I................K...K...K..............@....
+04 00 00 00 01 00 57 00 5b 00 60 00 65 00 00 04 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 00 03 00 00 00 01 00 ......W.[.`.e...............................
+
+after DspTextComponentHandle:
+00 20 00 00 00
+i0 00
+i1 01 00
+03 80 00
+11 80 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "ANOVA"
+9c 80 00 00 00 00 00 00 00 00 00 00 01 00 00 00
+9e 80 00
+05 80 01 F40.2 00 01 "Predictors: (Constant), ..."
+00 50 00 00 00 00 00 00 00 00 01 00 00 00 01 00 5a 00
+9c 80 00 00 00 00 00 00 00 00 00 00 01 00 00 00
+9e 80 00
+05 80 01 F40.2 00 01 "Predictors: ..."
+00 28 00 05 02 00 00 00 00 00 01 00 00 00 01 00 5f 00
+00
+11 00 00 00 00 00 00 00 00 00
+4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 01 00 00 00 00 00 00 00 00 01 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00
+
+00 00 00 00 00
+i0 00
+i1 01 00
+16 00
+00
+11 00 00 00 00 00 00 00 00 00
+4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00
+
+00 28 00 05 02
+i0 00
+i1 01 00
+03 80 00
+11 80 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Coefficients"
+00
+11 00 00 00 00 00 00 00 00 00
+4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 01 00 00 00 00 00 00 00 00 01 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00
+
+00 00 00
+08 00
+i1 "**" 00
+i27 01 00 17 00 39 00 1c 00 3d 00 5d 00 20 00 41 00 61 00 24 00 45 00 65 00 28 00 49 00 69 00 89 00 2c 00 4d 00 6d 00 8d 00 30 00 51 00 71 00 91 00 34 00 55 00 75 00
+95 00
+b0 81 00 00 00 00 00 00 00 00 00 00 01 00 00 00 b2 81 00
+05 80 01 F40.2 00 01 "Correlation is significant..."
+00 00 00 2d 00
+i1 "*" 00
+i3 01 00 7d 00 81 00
+85 00 00
+11 00 00 00 00 00 00 00 00 00
+4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+02 00 00 00 00 00
+00 00 00 00
+02 00 00 00 00
+01 00 00 00 00 00
+01 00 00 00 00 00 00 00 00 00 00 00
+03 00 00 00
+01 00
+
+00 65 76 65 6c
+i1 "**" 00
+i2 01 00 17 00
+55 00
+a3 86 00 00 00 00 00 00 00 00 00 00 01 00 00 00 a5 86 00
+05 80 01 F40.2 00 01 "Correlation is significant..."
+00 50 00 00 00
+i1 "*" 00
+i10 01 00 0d 01 ce 01 6a 00 7f 00 49 04 09 05 1e 05 7c 01 3d 02
+fc 05 00
+11 00 00 00 00 00 00 00 00 00
+4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+01 00 00 00 00 00
+01 00 00 00 00
+01 00 00 00 00 00
+02 00 00 00 00
+01 00 00 00 00 00 00 00 00 00 00
+03 00 00 00
+01 00
+
+00 00 00 00 00
+i0 00
+i1 01 00
+5d 00
+69 80 00 00 00 00 00 00 00 00 00 00 01 00 00 00
+6b 80 00
+05 80 01 F40.2 00 01 "Using the asymptotic..."
+00 00 00 00 00
+i0 00
+i1 01 00
+62 00
+69 80 00 00 00 00 00 00 00 00 00 00 01 00 00 00
+6b 80 00
+05 80 01 F40.2 00 01 "Based on normal approximation"
+00 00 00 00 00
+i0 00
+i2 01 00 2f 00
+33 00 00
+11 00 00 00 00 00 00 00 00 00
+4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+01 00 00 00 00 00
+00 00 00 00 00
+01 00 00 00 00 00
+01 00 00 00 00 00 00 00 00 00 00
+00
+02 00 00 00
+01 00