unsigned int pos;
+static int n_dims;
+
#define XSTR(x) #x
#define STR(x) XSTR(x)
#define WHERE __FILE__":" STR(__LINE__)
match_u16_assert(0xffff);
match_u16_assert(0);
match_string2_assert(name);
+ printf("%#x: %s\n", pos, name);
}
static void
static void parse_flexible(void);
+static int count;
static void
parse_DspString(void)
{
- printf("%#x: DspString(", pos);
+ printf("%#x: DspString#%d(", pos, count++);
if (match_byte(2))
{
printf("%f, \"", get_double());
put_safe(get_string1());
printf("\")\n");
}
+
}
static void
}
static void
-match_DspSimpleText(void)
-{ /* 03 80 */
- match_byte_assert(3);
- match_byte_assert(0x80);
+parse_DspSimpleText(void)
+{
match_byte_assert(0);
if (match_byte(0))
{
match_byte_assert(0);
match_zeros_assert(4);
}
+ /* Followed by DspString or DspNumber. */
+}
+
+static void
+match_DspSimpleText(void)
+{ /* 03 80 */
+ match_byte_assert(3);
+ match_byte_assert(0x80);
+ parse_DspSimpleText();
}
static void
}
static void
-match_NavTreeViewItem(void)
+parse_NavTreeViewItem(void)
{ /* 07 80 */
- match_byte_assert(7);
- match_byte_assert(0x80);
+ int start_pos = pos;
match_zeros_assert(1);
- if (!match_byte(0) && !match_byte(7) && !match_byte(2))
+ if (!match_byte(0) && !match_byte(7) && !match_byte(2) && !match_byte(0xc))
match_byte_assert(8);
match_zeros_assert(3);
pos++;
match_zeros_assert(3);
}
//fprintf(stderr, "%#x ", pos - 16);
+ hex_dump(stdout, start_pos, pos - start_pos);
+}
+
+static void
+match_NavTreeViewItem(void)
+{
+ match_byte_assert(7);
+ match_byte_assert(0x80);
+ parse_NavTreeViewItem();
}
static void
parse_DspNumber(void)
{
+ printf("%#x: DspNumber#%d(", pos, count++);
match_byte_assert(1);
- printf("DspNumber(");
parse_format();
match_byte_assert(0x80);
match_byte(2);
static void
match_DspNumber(void)
{
- match_byte_assert(0x2a);
+ if (!match_byte(0x18) && !match_byte(0x19))
+ match_byte_assert(0x2a);
match_byte_assert(0x80);
parse_DspNumber();
}
parse_DspCell(void)
{
match_byte_assert(0);
- match_DspSimpleText();
- parse_flexible(); /* DspString or DspNumber. */
}
static void
}
static void
-parse_PMModelItemInfo(void)
-{ /* 54 80 */
- match_byte_assert(0);
- pos += 1; /* Counter */
- match_zeros_assert(7);
- pos += 3;
- if (!match_byte(0))
- match_byte_assert(0xe);
+parse_category(int j)
+{
+ get_u16(); match_byte_assert(0);
+ get_u16(); match_byte_assert(0);
+ match_u32_assert(j);
+ match_u32_assert(0);
+ if (get_u16() == 0xffff)
+ match_u16_assert(0xffff);
+ else
+ match_u16_assert(0x0e74);
match_byte_assert(0);
+ match_DspSimpleText();
+ match_DspString();
+ match_u32_assert(0);
+}
+
+static void
+parse_dimension(int i)
+{
+ printf ("%#x: dimension %d\n", pos, i);
+ if (i == 0)
+ {
+ match_zeros_assert(5);
+ match_u32_assert(1);
+ get_u16(); match_u16_assert(0x0e74); match_byte_assert(0);
+ match_DspSimpleText();
+ match_DspString();
+
+ int n_categories = get_u32();
+ for (int j = 0; j < n_categories; j++)
+ parse_category(j);
+ }
+ else
+ {
+ match_zeros_assert(6);
+
+ int 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++)
+ get_u32();
+
+ get_u16(); match_byte_assert(0);
+
+ get_u16(); match_byte_assert(0);
+ get_u16(); match_byte_assert(0);
+ match_u32_assert(0);
+ match_u32_assert(1);
+
+ get_u16(); match_u16_assert(0x0e74); match_byte_assert(0);
+ match_DspSimpleText();
+ match_DspString();
+
+ int n_categories = get_u32();
+ for (int j = 0; j < n_categories; j++)
+ parse_category(j);
+ }
+}
+
+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);
}
static void
match_byte_assert(0x54);
match_byte_assert(0x80);
parse_PMModelItemInfo();
- match_DspSimpleText();
- match_DspString();
+ /* DspSimpleText */
+ /* DspString */
}
static void
if (!match_byte(1))
match_byte_assert(0);
match_zeros_assert(3);
- match_DspSimpleText();
- parse_flexible();
+ /* DspSimpleText */
}
static void
parse_PVPivotView(void)
{
match_byte_assert(5);
- match_zeros_assert(4);
+ printf ("PVPivotView(%d)\n", get_u32());
}
static void
parse_NDimensional__DspCell(void)
{
match_byte_assert(0);
- match_u32_assert(1);
+ n_dims = get_u32();
+ printf ("NDimensional__DspCell(n_dims=%d)\n", n_dims);
}
static void
parse_IndexedCollection(void)
{
- match_byte_assert(0);
- if (match_byte(0))
+ printf("IndexedCollection");
+ for (size_t i = 0; ; i++)
{
- match_zeros_assert(12);
- }
- else
- {
- get_u32();
+ match_byte_assert(0);
+ printf("%c%d", i ? 'x' : '(', get_u32());
match_u16_assert(1);
+ if (!match_u16(0x8011))
+ break;
}
+ printf(")\n");
}
static void
match_zeros_assert(2);
}
+static void
+skip_item(const char *name)
+{
+ int start_pos = pos;
+ printf("%#x: skipping %s bytes...", pos, name);
+ while (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_flexible(void)
{
{
match_u16_assert(0);
char *heading = get_string2();
- if (!strcmp(heading, "DspCell"))
+ printf("%#x: %s\n", pos, heading);
+ if (!strcmp(heading, "NavRoot"))
+ {
+ match_byte_assert(2);
+ match_zeros_assert(32);
+ }
+ else if (!strcmp(heading, "NavPivot"))
+ {
+ hex_dump(stdout, pos, 021);
+ pos += 0x21;
+ }
+ else if (!strcmp(heading, "DspCell"))
parse_DspCell();
+ else if (!strcmp(heading, "DspSimpleText"))
+ parse_DspSimpleText();
else if (!strcmp(heading, "DspNumber"))
parse_DspNumber();
else if (!strcmp(heading, "DspString"))
parse_DspString();
else if (!strcmp(heading, "NavHead"))
parse_NavHead();
+ else if (!strcmp(heading, "NavTreeViewItem"))
+ {
+ if (0)
+ parse_NavTreeViewItem();
+ else
+ skip_item(heading);
+ }
else if (!strcmp(heading, "IndexedCollection"))
parse_IndexedCollection();
else if (!strcmp(heading, "NavOleItem"))
parse_PVSeparatorStyle();
else if (!strcmp(heading, "PVCellStyle"))
parse_PVCellStyle();
+ else if (!strcmp(heading, "PVTextStyle"))
+ exit(0);
else
{
fprintf(stderr, "don't know %s at offset 0x%x: ", heading, start);
}
else if (data[pos + 1] == 0x80)
{
- if (data[pos] == 0x2a && data[pos + 1] == 0x80)
+ if ((data[pos] == 0x2a || data[pos] == 0x18 || data[pos] == 0x19) && data[pos + 1] == 0x80)
match_DspNumber();
else if (data[pos] == 0x27 && data[pos + 1] == 0x80)
match_DspCell();
{
/* 3c 80 */
/* 39 80 */
+ printf("%#x: %02x %02x ", pos, data[pos], data[pos + 1]);
pos += 2;
parse_format();
+ printf ("\n");
/* match_byte_assert(0x01);
match_byte_assert(0x02);
match_byte_assert(0x0d); */
if (match_byte(2))
{
printf ("15 80(%f", get_double());
- printf (" %s)\n", get_string1());
+ printf (" \"%s\")\n", get_string1());
if (match_byte(1))
{
match_byte_assert(0);
match_byte_assert(0);
if (match_u32(0xc))
match_u16_assert(1);
- else
- match_zeros_assert(13);
}
}
else if (data[pos] == 0x9 && data[pos + 1] == 0x80)
match_NavOleItem();
else if (data[pos] == 0x11 || data[pos] == 0x13)
{
+ int type = data[pos];
pos += 2;
match_byte_assert(0);
- if (match_u32(0xc) || match_u32(0xd))
- match_u16_assert(1);
+ if (data[pos] != 0)
+ {
+ int x = get_u32();
+ int y = get_u16();
+ if (y == 0)
+ {
+ int index = get_u32();
+ printf("%02x 80(footnote %d)\n", type, index);
+ }
+ else
+ printf("%02x 80(%d %d)\n", type, x, y);
+ }
else
match_zeros_assert(13);
}
data[pos] == 0x3e ||
data[pos] == 0x46)
{
+ printf ("%#x: %02x %02x(%02x %02x %02x)\n",
+ pos, data[pos], data[pos + 1],
+ data[pos + 2], data[pos + 3], data[pos + 4]);
pos += 2;
- parse_format();
+ pos += 3;
}
else
{
}
}
#endif
- else //if (match_u16(2) || match_u16(3) || match_u16(4) || match_u16(5) || match_u16(6) || match_u16(7) || match_u16(8) || match_u16(9))
+ else if (match_u16(1))
{
- while (data[pos + 1] != 0x80
- && (data[pos] != 0xff || data[pos + 1] != 0xff))
- {
- assert(pos < n);
- pos++;
- }
+ int start_pos = pos;
+ char *title = get_string1();
+ printf("%#x: title(\"%s\", ", start_pos, title);
+ match_u32_assert(0);
+ char *id = get_string1();
+ printf("\"%s\")\n", id);
+ match_byte_assert(0);
+ match_u32_assert(3);
+ match_u16_assert(1);
}
+ else //if (match_u16(2) || match_u16(3) || match_u16(4) || match_u16(5) || match_u16(6) || match_u16(7) || match_u16(8) || match_u16(9))
+ skip_item("unknown");
#if 0
else if (match_byte(7) || match_byte(4) || match_byte(5) || match_byte(6) || match_byte(8) || match_byte(9) || match_byte(0xb) || match_byte(0xc) || match_byte(0x15) || match_byte(0x16) || match_byte(0x17) || match_byte(0x18) || match_byte(0x1e) || match_byte(0x1a))
{
data[n + i] = i % 2 ? 0xaa : 0x55;
close(fd);
- setvbuf (stdout, NULL, _IOLBF, 0);
+ setvbuf (stdout, NULL, _IONBF, 0);
match_byte_assert(4);
match_u32_assert(0);
match_u32_assert(1);
match_byte_assert(0x63);
+ for (;;)
+ {
+ if (data[pos] == 0)
+ {
+ //printf("zero\n");
+ pos++;
+ }
+ else
+ parse_flexible();
+ }
+ exit(0);
+
parse_heading("NavRoot");
match_byte_assert(2);
match_zeros_assert(32);
for (;;)
{
if (data[pos] == 0)
- pos++;
+ {
+ //printf("zero\n");
+ pos++;
+ }
else
parse_flexible();
}
while (data[pos] != 1)
{
if (data[pos] == 0)
- pos++;
+ {
+ printf("zero\n");
+ pos++;
+ }
else
parse_flexible();
}
80 02 <double>
80 01 02 28 05 00 01 <len1> <string>
80 01 02 28 05 00 01 ff <len2> <string>
-80 01 03 28 05 80 02 <double>
+80 01 03 28 05 80 02 <double>
80 00 03
80 00 00 00 00 00 00 00 00 00 00 ..
----------------------------------------------------------------------
rec:PMModelItemInfo 00
- .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Contents" 07 .. .. .. 55 80 .. 57 80 ..
+ .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Contents" 07 .. .. .. 55 80 .. 57 80 ..
00 .. .. .. .. .. .. .. 07 .. 74 0e cell F40.2 "Output Created" .. .. .. .. 55 80 .. 57 80 ..
01 .. .. .. .. .. .. .. 08 .. 74 0e cell F40.2 "Comments" .. .. .. .. 55 80 .. 57 80 ..
.. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Input" 06 .. .. .. 55 80 .. 57 80 ..
04 .. .. .. .. .. .. .. 0e .. 74 0e cell F40.2 "Filter" .. .. .. .. 55 80 .. 57 80 ..
05 .. .. .. .. .. .. .. 11 .. 74 0e cell F40.2 "Weight" .. .. .. .. 55 80 .. 57 80 ..
06 .. .. .. .. .. .. .. 12 .. 74 0e cell F40.2 "Split File" .. .. .. .. 55 80 .. 57 80 ..
- 07 .. .. .. .. .. .. .. 13 .. 74 0e cell F40.2 "N of Rows in Working Data File" .. .. .. .. 55 80 .. 57 80 ..
+ 07 .. .. .. .. .. .. .. 13 .. 74 0e cell F40.2 "N of Rows in Working Data File" .. .. .. .. 55 80 .. 57 80 ..
.. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Missing Value Handling" 02 .. .. .. 55 80 .. 57 80 ..
08 .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Definition of Missing" .. .. .. .. 55 80 .. 57 80 ..
09 .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Cases Used" .. .. .. .. 55 80 .. 57 80 ..
(This is a valid spot for the file to contain 00000000 then eof)
02ee ffff 0000 "NavLog"
-02fa 02 i0*2 i24
+02fa 02 i0*2 i24
0307 (i0 | i-40) (i691 | i987) (2-3 digit negative int) i1
0317 i0
0318 03 80 00*10
Notes
Output Created 16-JAN-2008 02:45:55
-Comments
+Comments
Input Data \\Ugly\amead\consulting\center\Dell\Exams\RE\analyses\Blended15\pilotdata-2008-01-15.csv
Active Dataset raw1
Filter <none>
N of Rows in Working Data File 366
Missing Value Handling Definition of Missing User-defined missing values are treated as missing.
Cases Used Statistics are based on all cases with valid data.
-Syntax FREQUENCIES\r VARIABLES=exam_id exam_name restarts\r /ORDER= ANALYSIS .\r
+Syntax FREQUENCIES\r VARIABLES=exam_id exam_name restarts\r /ORDER= ANALYSIS .
Resources Elapsed Time 0:00:00.02
Processor Time 0:00:00.03
+
+NavRoot appears to be a container node in the tree
+(not necessarily the actual root of the tree though).
+
+descriptives-only.spo
+ffff 0000 "DspNumber"
+01
+F40.5 80 02 257.0 "257"
+11 80 00 01 00 00 00 01 00
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00
+
+18 80
+01
+F40.5 80 02 1.0 "1"
+11 80 00 01 00 00 00 01 00
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00
+
+18 80
+01
+F40.5 80 02 3.0 "3"
+11 80 00 01 00 00 00 01 00
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00
+
+18 80
+01
+F40.2 80 02 1.13 "1.13"
+11 80 00 01 00 00 00 01 00
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00 18 80
+
+01
+F40.3 80 02 .383 ".383"
+11 80 00 02 00 00 00 01 00
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00 18 80
+
+01
+F40.3 80 02 2.986 "2.986"
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00 18 80
+
+01
+F40.3 80 02 .152 ".152"
+11 80 00 02 00 00 00 01 00
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00 18 80
+
+01
+F40.3 80 02 8.794 "8.794"
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00 18 80
+
+01
+F40.3 80 02 .303 ".303"
+11 80 00 07 00 00 00 01 00
+11 80 00 01 00 00 00 01 00
+
+15 80 00
+03 80 00 00 00 00 00 00 00 00 00 00 18 80
+01
+F40.5 80 02
+
+descriptives-only.spo:
+ffff 0000 "PMModelItemInfo"
+
+-- DIMENSION 1 --
+00
+00 00 00 00
+
+01 00 00 00
+13 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 "Stat Type" i2 # <- number of children
+
+13 84 00
+15 84 00
+00 00 00 00
+00 00 00 00
+14 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Statistic" i0
+
+13 84 00
+15 84 00
+01 00 00 00
+00 00 00 00
+17 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Std. Error" i0
+
+-- DIMENSION 2 --
+
+00 00
+
+00 00 00 00
+i2 # <-- number of 2-byte units below
+01 00
+19 04, 1d 04
+
+00
+
+i2 # <-- number of 4-byte units below
+00 00
+i0, i1
+
+11 84 00
+
+13 84 00
+15 84 00
+00 00 00 00
+01 00 00 00
+15 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Statistics" i7
+
+13 84 00
+15 84 00
+00 00 00 00
+00 00 00 00
+10 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "N" i0
+
+13 84 00
+15 84 00
+01 00 00 00
+00 00 00 00
+0e 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Minimum" i0
+
+13 84 00
+15 84 00
+02 00 00 00
+00 00 00 00
+0c 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Maximum" i0
+
+13 84 00
+15 84 00
+03 00 00 00
+00 00 00 00
+0d 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Mean" i0
+
+13 84 00
+15 84 00
+04 00 00 00
+00 00 00 00
+16 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Std. Deviation" i0
+
+13 84 00
+15 84 00
+05 00 00 00
+00 00 00 00
+12 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Skewness" i0
+
+13 84 00
+15 84 00
+06 00 00 00
+00 00 00 00
+0b 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Kurtosis" i0
+
+-- DIMENSION 3 --
+
+00 00 00 00 00 00
+i7 # <- number of 2-byte units below
+01 00
+26 04, 2a 04, 2e 04, 32 04, 36 04, 3a 04, 3e 04
+
+00
+
+i7 # <- number of 4-byte units below
+00 00
+i0, i1, i2, i3, i4, i5, i6
+
+11 84 00
+
+13 84 00
+15 84 00
+00 00 00 00
+01 00 00 00
+1a 07 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Variables" i30
+
+13 84 00
+15 84 00
+00 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "Race" i0
+
+13 84 00
+15
+
+
+
+IndexedCollection: correlations-only (8x19x3)
+00 08 00 00 00 01 00 11 80
+00 13 00 00 00 01 00 11 80
+00 03 00 00 00 01 00
+descriptives-only (30x7x1)
+00 1e 00 00 00 01 00 11 80
+00 07 00 00 00 01 00 11 80
+00 01 00 00 00 01 00
+
+correlations-only.spo:
+ffff 0000 "PMModelItemInfo"
+
+-- DIMENSION 1 --
+00
+00 00 00 00
+
+01 00 00 00
+91 1a 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Statistics" i3
+
+1b 86 00
+1d 86 00
+00 00 00 00
+00 00 00 00
+98 1a 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Pearson Correlation" i0
+
+1b 86 00
+1d 86 00
+01 00 00 00
+00 00 00 00
+99 1a 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Sig. (2-tailed)" i0
+
+1b 86 00
+1d 86 00
+02 00 00 00
+00 00 00 00
+94 1a 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "N" i0
+
+-- DIMENSION 2 --
+
+00 00
+
+00 00 00 00
+i3 # <-- number of 2-byte units below
+01 00
+21 06, 25 06, 29 06
+00
+
+i3 # <-- number of 4-byte units below
+00 00
+i0, i1, i2
+
+19 86 00
+
+1b 86 00
+1d 86 00
+00 00 00 00
+01 00 00 00
+90 1a 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Variables" i19
+
+1b 86 00
+1d 86 00
+00 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "OC" i0
+
+1b 86 00
+1d 86 00
+01 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "MA" i0
+
+1b 86 00
+1d 86 00
+02 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "SPL" i0
+
+1b 86 00
+1d 86 00
+03 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "EX" i0
+
+1b 86 00
+1d 86 00
+04 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "A" i0
+
+1b 86 00
+1d 86 00
+05 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "TM" i0
+
+1b 86 00
+1d 86 00
+06 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "IND" i0
+
+1b 86 00
+1d 86 00
+07 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "SC" i0
+
+1b 86 00
+1d 86 00
+08 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 "DOMINANT" i0
+
+1b 86 00
+1d 86 00
+09 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "PARTICIPATIVE" i0
+
+1b 86 00
+1d 86 00
+0a 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "AFFABLE" i0
+
+1b 86 00
+1d 86 00
+0b 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "DUTIFUL" i0
+
+1b 86 00
+1d 86 00
+0c 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "ORDERLY" i0
+
+1b 86 00
+1d 86 00
+0d 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "COMPETENT" i0
+
+1b 86 00
+1d 86 00
+0e 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "AGGRESSIVE" i0
+
+1b 86 00
+1d 86 00
+0f 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "DISTRUSTFUL" i0
+
+1b 86 00
+1d 86 00
+10 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "ARTISTIC" i0
+
+1b 86 00
+1d 86 00
+11 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "VISIONARY" i0
+
+1b 86 00
+1d 86 00
+12 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "CALM" i0
+
+-- DIMENSION 3 --
+
+00 00
+
+00 00 00 00
+i19 # <- number of 2-byte units below
+01 00
+32 06, 36 06, 3a 06, 3e 06, 42 06, 46 06, 4a 06, 4e 06, 52 06, 56 06, 5a 06, 5e 06, 62 06, 66 06, 6a 06, 6e 06, 72 06, 76 06, 7a 06
+
+00
+
+i19 # <- number of 4-byte units below
+00 00
+i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18
+
+19 86 00
+
+1b 86 00
+1d 86 00
+00 00 00 00
+01 00 00 00
+95 1a 74 0e 00
+03 80 00 00 00 00 00 00 00 00 00 00
+05 80 01 F40.2 00 01 "Variables" i8
+
+1b 86 00
+1d 86 00
+00 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "Quick learner" i0
+
+1b 86 00
+1d 86 00
+01 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "Work ethic" i0
+
+1b 86 00
+1d 86 00
+02 00 00 00
+00 00 00 00
+ff ff ff ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01 F40.2 00 01 "Team-orientation"
+00 00 00 00 1b 86
+00 1d 86 00 03 00 00 00 00 00 00 00 ff ff ff ff
+00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01
+F40.2 00 01 "Confidence/Resilience"
+00 00 00 00 1b
+86 00 1d 86 00 04 00 00 00 00 00 00 00 ff ff ff
+ff 00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80
+01 F40.2 00 01 "Initiative"
+00 00 00 00 1b 86 00 1d 86 00 05 00 00 00 00
+00 00 00 ff ff ff ff 00
+03 80 00 00 00 00 00 10
+00 00 00 00
+05 80 01 F40.2 00 01 "Conscientious"
+00 00 00 00 1b 86
+00 1d 86 00 06 00 00 00 00 00 00 00 ff ff ff ff
+00
+03 80 00 00 00 00 00 10 00 00 00 00
+05 80 01
+F40.2 00 01 "Perseverance"
+00 00 00 00 1b 86 00 1d 86 00 07 00 00 00
+00 00 00 00 ff ff ff ff 00
+03 80 00 00 00 00 00
+10 00 00 00 00
+05 80 01 F40.2 00 01 "Overall"
+00 00 00 00 00 00 00 00 00 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