Add: 00000001 [A], <grid>(3 cols, 0 rows)
Status: 1 nodes, 1 undos, 0 redos
  Node changes:
    00000001 [A]: [A  tT      dD  ], <grid>(3 cols, 0 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Add: 00000002 [B], <grid>(3 cols, 0 rows)
Status: 2 nodes, 2 undos, 0 redos
  Node changes:
    00000002 [B]: [A  tT      dD  ], <grid>(3 cols, 0 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Add: 00000003 [C], <grid>(4 cols, 0 rows)
Status: 3 nodes, 3 undos, 0 redos
  Node changes:
    00000003 [C]: [A  tT      dD  ], <grid>(4 cols, 0 rows), Base: {F10:s, F20:u4, F40:i4, F50:s}*
###
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Cfg: 00000003 [C], <grid>(4 cols, 10 rows)
Status: 3 nodes, 4 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000003 [C]: [           dD  ], <grid>(4 cols, 10 rows), Base: {F10:s, F20:u4, F40:i4, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
Sequence: Seq<{str,u4,i4,str}>
 0) { F10: V0, F20: 51, F40: 3, F50: %%% 0 }
 1) { F10: V1, F20: 52, F40: 4, F50: %%% 1 }
 2) { F10: V2, F20: 53, F40: 5, F50: %%% 2 }
 3) { F10: V3, F20: 54, F40: 6, F50: %%% 3 }
 4) { F10: V4, F20: 55, F40: 7, F50: %%% 4 }
 5) { F10: V5, F20: 56, F40: 8, F50: %%% 5 }
 6) { F10: V6, F20: 57, F40: 9, F50: %%% 6 }
 7) { F10: V7, F20: 58, F40: 10, F50: %%% 7 }
 8) { F10: V8, F20: 59, F40: 11, F50: %%% 8 }
 9) { F10: V9, F20: 60, F40: 12, F50: %%% 9 }
###

$$$$$ Row map section: No row map $$$$$

*** No column map: {F10:s, F20:u4, F40:i4, F50:s}
Cfg: 00000001 [A], <grid>(5 cols, 20 rows)
Cfg: 00000002 [B], <grid>(5 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 20 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 20 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V0, F20: 51, F30: <null>, F40: 3, F50: %%% 0 }
11) { F10: V1, F20: 52, F30: <null>, F40: 4, F50: %%% 1 }
12) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
13) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
14) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
15) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
16) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
17) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
18) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
19) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(5 cols, 20 rows)
Cfg: 00000002 [B], <grid>(5 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 20 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 20 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V0, F20: 51, F30: <null>, F40: 3, F50: %%% 0 }
11) { F10: V1, F20: 52, F30: <null>, F40: 4, F50: %%% 1 }
12) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
13) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
14) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
15) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
16) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
17) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
18) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
19) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** No columns: {}
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
16) { F30: <null>, F40: <null>, F50: <null> }
17) { F30: <null>, F40: <null>, F50: <null> }
18) { F30: <null>, F40: <null>, F50: <null> }
19) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
16) { F30: <null>, F40: <null>, F50: <null> }
17) { F30: <null>, F40: <null>, F50: <null> }
18) { F30: <null>, F40: <null>, F50: <null> }
19) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {A:u4}
Cfg: 00000001 [A], <grid>(4 cols, 20 rows)
Cfg: 00000002 [B], <grid>(4 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 20 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 20 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 51, F30: <null>, F40: <null>, F50: <null> }
11) { A: 52, F30: <null>, F40: <null>, F50: <null> }
12) { A: 53, F30: <null>, F40: <null>, F50: <null> }
13) { A: 54, F30: <null>, F40: <null>, F50: <null> }
14) { A: 55, F30: <null>, F40: <null>, F50: <null> }
15) { A: 56, F30: <null>, F40: <null>, F50: <null> }
16) { A: 57, F30: <null>, F40: <null>, F50: <null> }
17) { A: 58, F30: <null>, F40: <null>, F50: <null> }
18) { A: 59, F30: <null>, F40: <null>, F50: <null> }
19) { A: 60, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(4 cols, 20 rows)
Cfg: 00000002 [B], <grid>(4 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 20 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 20 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 51, F30: <null>, F40: <null>, F50: <null> }
11) { A: 52, F30: <null>, F40: <null>, F50: <null> }
12) { A: 53, F30: <null>, F40: <null>, F50: <null> }
13) { A: 54, F30: <null>, F40: <null>, F50: <null> }
14) { A: 55, F30: <null>, F40: <null>, F50: <null> }
15) { A: 56, F30: <null>, F40: <null>, F50: <null> }
16) { A: 57, F30: <null>, F40: <null>, F50: <null> }
17) { A: 58, F30: <null>, F40: <null>, F50: <null> }
18) { A: 59, F30: <null>, F40: <null>, F50: <null> }
19) { A: 60, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {F30:u4}
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 51, F40: <null>, F50: <null> }
11) { F30: 52, F40: <null>, F50: <null> }
12) { F30: 53, F40: <null>, F50: <null> }
13) { F30: 54, F40: <null>, F50: <null> }
14) { F30: 55, F40: <null>, F50: <null> }
15) { F30: 56, F40: <null>, F50: <null> }
16) { F30: 57, F40: <null>, F50: <null> }
17) { F30: 58, F40: <null>, F50: <null> }
18) { F30: 59, F40: <null>, F50: <null> }
19) { F30: 60, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 51, F40: <null>, F50: <null> }
11) { F30: 52, F40: <null>, F50: <null> }
12) { F30: 53, F40: <null>, F50: <null> }
13) { F30: 54, F40: <null>, F50: <null> }
14) { F30: 55, F40: <null>, F50: <null> }
15) { F30: 56, F40: <null>, F50: <null> }
16) { F30: 57, F40: <null>, F50: <null> }
17) { F30: 58, F40: <null>, F50: <null> }
18) { F30: 59, F40: <null>, F50: <null> }
19) { F30: 60, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Two columns: {F30:i4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-20
    00000002 [B]: [           dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-20
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 3, F40: <null>, F50: V0 }
11) { F30: 4, F40: <null>, F50: V1 }
12) { F30: 5, F40: <null>, F50: V2 }
13) { F30: 6, F40: <null>, F50: V3 }
14) { F30: 7, F40: <null>, F50: V4 }
15) { F30: 8, F40: <null>, F50: V5 }
16) { F30: 9, F40: <null>, F50: V6 }
17) { F30: 10, F40: <null>, F50: V7 }
18) { F30: 11, F40: <null>, F50: V8 }
19) { F30: 12, F40: <null>, F50: V9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 3, F40: <null>, F50: V0 }
11) { F30: 4, F40: <null>, F50: V1 }
12) { F30: 5, F40: <null>, F50: V2 }
13) { F30: 6, F40: <null>, F50: V3 }
14) { F30: 7, F40: <null>, F50: V4 }
15) { F30: 8, F40: <null>, F50: V5 }
16) { F30: 9, F40: <null>, F50: V6 }
17) { F30: 10, F40: <null>, F50: V7 }
18) { F30: 11, F40: <null>, F50: V8 }
19) { F30: 12, F40: <null>, F50: V9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Three columns, including dup: {F30:u4, F40:u4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 51, F40: 51, F50: %%% 0 }
11) { F30: 52, F40: 52, F50: %%% 1 }
12) { F30: 53, F40: 53, F50: %%% 2 }
13) { F30: 54, F40: 54, F50: %%% 3 }
14) { F30: 55, F40: 55, F50: %%% 4 }
15) { F30: 56, F40: 56, F50: %%% 5 }
16) { F30: 57, F40: 57, F50: %%% 6 }
17) { F30: 58, F40: 58, F50: %%% 7 }
18) { F30: 59, F40: 59, F50: %%% 8 }
19) { F30: 60, F40: 60, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 51, F40: 51, F50: %%% 0 }
11) { F30: 52, F40: 52, F50: %%% 1 }
12) { F30: 53, F40: 53, F50: %%% 2 }
13) { F30: 54, F40: 54, F50: %%% 3 }
14) { F30: 55, F40: 55, F50: %%% 4 }
15) { F30: 56, F40: 56, F50: %%% 5 }
16) { F30: 57, F40: 57, F50: %%% 6 }
17) { F30: 58, F40: 58, F50: %%% 7 }
18) { F30: 59, F40: 59, F50: %%% 8 }
19) { F30: 60, F40: 60, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###

$$$$$ Row map section: All rows $$$$$

*** No column map: {F10:s, F20:u4, F40:i4, F50:s}
Cfg: 00000001 [A], <grid>(5 cols, 20 rows)
Cfg: 00000002 [B], <grid>(5 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 20 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 20 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V0, F20: 51, F30: <null>, F40: 3, F50: %%% 0 }
11) { F10: V1, F20: 52, F30: <null>, F40: 4, F50: %%% 1 }
12) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
13) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
14) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
15) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
16) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
17) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
18) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
19) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(5 cols, 20 rows)
Cfg: 00000002 [B], <grid>(5 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 20 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 20 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V0, F20: 51, F30: <null>, F40: 3, F50: %%% 0 }
11) { F10: V1, F20: 52, F30: <null>, F40: 4, F50: %%% 1 }
12) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
13) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
14) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
15) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
16) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
17) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
18) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
19) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** No columns: {}
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
16) { F30: <null>, F40: <null>, F50: <null> }
17) { F30: <null>, F40: <null>, F50: <null> }
18) { F30: <null>, F40: <null>, F50: <null> }
19) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
16) { F30: <null>, F40: <null>, F50: <null> }
17) { F30: <null>, F40: <null>, F50: <null> }
18) { F30: <null>, F40: <null>, F50: <null> }
19) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {A:u4}
Cfg: 00000001 [A], <grid>(4 cols, 20 rows)
Cfg: 00000002 [B], <grid>(4 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 20 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 20 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 51, F30: <null>, F40: <null>, F50: <null> }
11) { A: 52, F30: <null>, F40: <null>, F50: <null> }
12) { A: 53, F30: <null>, F40: <null>, F50: <null> }
13) { A: 54, F30: <null>, F40: <null>, F50: <null> }
14) { A: 55, F30: <null>, F40: <null>, F50: <null> }
15) { A: 56, F30: <null>, F40: <null>, F50: <null> }
16) { A: 57, F30: <null>, F40: <null>, F50: <null> }
17) { A: 58, F30: <null>, F40: <null>, F50: <null> }
18) { A: 59, F30: <null>, F40: <null>, F50: <null> }
19) { A: 60, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(4 cols, 20 rows)
Cfg: 00000002 [B], <grid>(4 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 20 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 20 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 51, F30: <null>, F40: <null>, F50: <null> }
11) { A: 52, F30: <null>, F40: <null>, F50: <null> }
12) { A: 53, F30: <null>, F40: <null>, F50: <null> }
13) { A: 54, F30: <null>, F40: <null>, F50: <null> }
14) { A: 55, F30: <null>, F40: <null>, F50: <null> }
15) { A: 56, F30: <null>, F40: <null>, F50: <null> }
16) { A: 57, F30: <null>, F40: <null>, F50: <null> }
17) { A: 58, F30: <null>, F40: <null>, F50: <null> }
18) { A: 59, F30: <null>, F40: <null>, F50: <null> }
19) { A: 60, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {F30:u4}
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 51, F40: <null>, F50: <null> }
11) { F30: 52, F40: <null>, F50: <null> }
12) { F30: 53, F40: <null>, F50: <null> }
13) { F30: 54, F40: <null>, F50: <null> }
14) { F30: 55, F40: <null>, F50: <null> }
15) { F30: 56, F40: <null>, F50: <null> }
16) { F30: 57, F40: <null>, F50: <null> }
17) { F30: 58, F40: <null>, F50: <null> }
18) { F30: 59, F40: <null>, F50: <null> }
19) { F30: 60, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 51, F40: <null>, F50: <null> }
11) { F30: 52, F40: <null>, F50: <null> }
12) { F30: 53, F40: <null>, F50: <null> }
13) { F30: 54, F40: <null>, F50: <null> }
14) { F30: 55, F40: <null>, F50: <null> }
15) { F30: 56, F40: <null>, F50: <null> }
16) { F30: 57, F40: <null>, F50: <null> }
17) { F30: 58, F40: <null>, F50: <null> }
18) { F30: 59, F40: <null>, F50: <null> }
19) { F30: 60, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Two columns: {F30:i4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-20
    00000002 [B]: [           dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-20
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 3, F40: <null>, F50: V0 }
11) { F30: 4, F40: <null>, F50: V1 }
12) { F30: 5, F40: <null>, F50: V2 }
13) { F30: 6, F40: <null>, F50: V3 }
14) { F30: 7, F40: <null>, F50: V4 }
15) { F30: 8, F40: <null>, F50: V5 }
16) { F30: 9, F40: <null>, F50: V6 }
17) { F30: 10, F40: <null>, F50: V7 }
18) { F30: 11, F40: <null>, F50: V8 }
19) { F30: 12, F40: <null>, F50: V9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 20 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 3, F40: <null>, F50: V0 }
11) { F30: 4, F40: <null>, F50: V1 }
12) { F30: 5, F40: <null>, F50: V2 }
13) { F30: 6, F40: <null>, F50: V3 }
14) { F30: 7, F40: <null>, F50: V4 }
15) { F30: 8, F40: <null>, F50: V5 }
16) { F30: 9, F40: <null>, F50: V6 }
17) { F30: 10, F40: <null>, F50: V7 }
18) { F30: 11, F40: <null>, F50: V8 }
19) { F30: 12, F40: <null>, F50: V9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Three columns, including dup: {F30:u4, F40:u4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-20
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-20
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 51, F40: 51, F50: %%% 0 }
11) { F30: 52, F40: 52, F50: %%% 1 }
12) { F30: 53, F40: 53, F50: %%% 2 }
13) { F30: 54, F40: 54, F50: %%% 3 }
14) { F30: 55, F40: 55, F50: %%% 4 }
15) { F30: 56, F40: 56, F50: %%% 5 }
16) { F30: 57, F40: 57, F50: %%% 6 }
17) { F30: 58, F40: 58, F50: %%% 7 }
18) { F30: 59, F40: 59, F50: %%% 8 }
19) { F30: 60, F40: 60, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 20 rows)
Cfg: 00000002 [B], <grid>(3 cols, 20 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 20 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 51, F40: 51, F50: %%% 0 }
11) { F30: 52, F40: 52, F50: %%% 1 }
12) { F30: 53, F40: 53, F50: %%% 2 }
13) { F30: 54, F40: 54, F50: %%% 3 }
14) { F30: 55, F40: 55, F50: %%% 4 }
15) { F30: 56, F40: 56, F50: %%% 5 }
16) { F30: 57, F40: 57, F50: %%% 6 }
17) { F30: 58, F40: 58, F50: %%% 7 }
18) { F30: 59, F40: 59, F50: %%% 8 }
19) { F30: 60, F40: 60, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###

$$$$$ Row map section: No rows $$$$$

*** No column map: {F10:s, F20:u4, F40:i4, F50:s}
Cfg: 00000001 [A], <grid>(5 cols, 10 rows)
Cfg: 00000002 [B], <grid>(5 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 10 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 10 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(5 cols, 10 rows)
Cfg: 00000002 [B], <grid>(5 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 10 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 10 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** No columns: {}
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {A:u4}
Cfg: 00000001 [A], <grid>(4 cols, 10 rows)
Cfg: 00000002 [B], <grid>(4 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 10 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 10 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(4 cols, 10 rows)
Cfg: 00000002 [B], <grid>(4 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 10 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 10 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {F30:u4}
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Two columns: {F30:i4, F50:s}
Status: 3 nodes, 5 undos, 0 redos
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Status: 3 nodes, 4 undos, 1 redos
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Status: 3 nodes, 5 undos, 0 redos
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Status: 3 nodes, 4 undos, 1 redos
###
*** Three columns, including dup: {F30:u4, F40:u4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###

$$$$$ Row map section: One range $$$$$

*** No column map: {F10:s, F20:u4, F40:i4, F50:s}
Cfg: 00000001 [A], <grid>(5 cols, 13 rows)
Cfg: 00000002 [B], <grid>(5 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 13 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-13
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 13 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-13
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
11) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
12) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(5 cols, 13 rows)
Cfg: 00000002 [B], <grid>(5 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 13 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 13 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
11) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
12) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** No columns: {}
Cfg: 00000001 [A], <grid>(3 cols, 13 rows)
Cfg: 00000002 [B], <grid>(3 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-13
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-13
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 13 rows)
Cfg: 00000002 [B], <grid>(3 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {A:u4}
Cfg: 00000001 [A], <grid>(4 cols, 13 rows)
Cfg: 00000002 [B], <grid>(4 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 13 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-13
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 13 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-13
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 53, F30: <null>, F40: <null>, F50: <null> }
11) { A: 54, F30: <null>, F40: <null>, F50: <null> }
12) { A: 55, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(4 cols, 13 rows)
Cfg: 00000002 [B], <grid>(4 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 13 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 13 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 53, F30: <null>, F40: <null>, F50: <null> }
11) { A: 54, F30: <null>, F40: <null>, F50: <null> }
12) { A: 55, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {F30:u4}
Cfg: 00000001 [A], <grid>(3 cols, 13 rows)
Cfg: 00000002 [B], <grid>(3 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-13
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-13
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: <null>, F50: <null> }
11) { F30: 54, F40: <null>, F50: <null> }
12) { F30: 55, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 13 rows)
Cfg: 00000002 [B], <grid>(3 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: <null>, F50: <null> }
11) { F30: 54, F40: <null>, F50: <null> }
12) { F30: 55, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Two columns: {F30:i4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 13 rows)
Cfg: 00000002 [B], <grid>(3 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 13 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-13
    00000002 [B]: [           dD  ], <grid>(3 cols, 13 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-13
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 5, F40: <null>, F50: V2 }
11) { F30: 6, F40: <null>, F50: V3 }
12) { F30: 7, F40: <null>, F50: V4 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 13 rows)
Cfg: 00000002 [B], <grid>(3 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 13 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 13 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 5, F40: <null>, F50: V2 }
11) { F30: 6, F40: <null>, F50: V3 }
12) { F30: 7, F40: <null>, F50: V4 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Three columns, including dup: {F30:u4, F40:u4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 13 rows)
Cfg: 00000002 [B], <grid>(3 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-13
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-13
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: 53, F50: %%% 2 }
11) { F30: 54, F40: 54, F50: %%% 3 }
12) { F30: 55, F40: 55, F50: %%% 4 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 13 rows)
Cfg: 00000002 [B], <grid>(3 cols, 13 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 13 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: 53, F50: %%% 2 }
11) { F30: 54, F40: 54, F50: %%% 3 }
12) { F30: 55, F40: 55, F50: %%% 4 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###

$$$$$ Row map section: Two ranges $$$$$

*** No column map: {F10:s, F20:u4, F40:i4, F50:s}
Cfg: 00000001 [A], <grid>(5 cols, 16 rows)
Cfg: 00000002 [B], <grid>(5 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 16 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-16
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 16 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-16
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
11) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
12) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
13) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
14) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
15) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(5 cols, 16 rows)
Cfg: 00000002 [B], <grid>(5 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 16 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 16 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
11) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
12) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
13) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
14) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
15) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** No columns: {}
Cfg: 00000001 [A], <grid>(3 cols, 16 rows)
Cfg: 00000002 [B], <grid>(3 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-16
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-16
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 16 rows)
Cfg: 00000002 [B], <grid>(3 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {A:u4}
Cfg: 00000001 [A], <grid>(4 cols, 16 rows)
Cfg: 00000002 [B], <grid>(4 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 16 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-16
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 16 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-16
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 53, F30: <null>, F40: <null>, F50: <null> }
11) { A: 54, F30: <null>, F40: <null>, F50: <null> }
12) { A: 55, F30: <null>, F40: <null>, F50: <null> }
13) { A: 58, F30: <null>, F40: <null>, F50: <null> }
14) { A: 59, F30: <null>, F40: <null>, F50: <null> }
15) { A: 60, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(4 cols, 16 rows)
Cfg: 00000002 [B], <grid>(4 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 16 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 16 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 53, F30: <null>, F40: <null>, F50: <null> }
11) { A: 54, F30: <null>, F40: <null>, F50: <null> }
12) { A: 55, F30: <null>, F40: <null>, F50: <null> }
13) { A: 58, F30: <null>, F40: <null>, F50: <null> }
14) { A: 59, F30: <null>, F40: <null>, F50: <null> }
15) { A: 60, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {F30:u4}
Cfg: 00000001 [A], <grid>(3 cols, 16 rows)
Cfg: 00000002 [B], <grid>(3 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-16
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-16
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: <null>, F50: <null> }
11) { F30: 54, F40: <null>, F50: <null> }
12) { F30: 55, F40: <null>, F50: <null> }
13) { F30: 58, F40: <null>, F50: <null> }
14) { F30: 59, F40: <null>, F50: <null> }
15) { F30: 60, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 16 rows)
Cfg: 00000002 [B], <grid>(3 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: <null>, F50: <null> }
11) { F30: 54, F40: <null>, F50: <null> }
12) { F30: 55, F40: <null>, F50: <null> }
13) { F30: 58, F40: <null>, F50: <null> }
14) { F30: 59, F40: <null>, F50: <null> }
15) { F30: 60, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Two columns: {F30:i4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 16 rows)
Cfg: 00000002 [B], <grid>(3 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 16 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-16
    00000002 [B]: [           dD  ], <grid>(3 cols, 16 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-16
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 5, F40: <null>, F50: V2 }
11) { F30: 6, F40: <null>, F50: V3 }
12) { F30: 7, F40: <null>, F50: V4 }
13) { F30: 10, F40: <null>, F50: V7 }
14) { F30: 11, F40: <null>, F50: V8 }
15) { F30: 12, F40: <null>, F50: V9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 16 rows)
Cfg: 00000002 [B], <grid>(3 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 16 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 16 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 5, F40: <null>, F50: V2 }
11) { F30: 6, F40: <null>, F50: V3 }
12) { F30: 7, F40: <null>, F50: V4 }
13) { F30: 10, F40: <null>, F50: V7 }
14) { F30: 11, F40: <null>, F50: V8 }
15) { F30: 12, F40: <null>, F50: V9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Three columns, including dup: {F30:u4, F40:u4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 16 rows)
Cfg: 00000002 [B], <grid>(3 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-16
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-16
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: 53, F50: %%% 2 }
11) { F30: 54, F40: 54, F50: %%% 3 }
12) { F30: 55, F40: 55, F50: %%% 4 }
13) { F30: 58, F40: 58, F50: %%% 7 }
14) { F30: 59, F40: 59, F50: %%% 8 }
15) { F30: 60, F40: 60, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 16 rows)
Cfg: 00000002 [B], <grid>(3 cols, 16 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 16 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: 53, F50: %%% 2 }
11) { F30: 54, F40: 54, F50: %%% 3 }
12) { F30: 55, F40: 55, F50: %%% 4 }
13) { F30: 58, F40: 58, F50: %%% 7 }
14) { F30: 59, F40: 59, F50: %%% 8 }
15) { F30: 60, F40: 60, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###

$$$$$ Row map section: Overlapping ranges $$$$$

*** No column map: {F10:s, F20:u4, F40:i4, F50:s}
Cfg: 00000001 [A], <grid>(5 cols, 17 rows)
Cfg: 00000002 [B], <grid>(5 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 17 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-17
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 17 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-17
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
11) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
12) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
13) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
14) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
15) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
16) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(5 cols, 17 rows)
Cfg: 00000002 [B], <grid>(5 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 17 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 17 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
11) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
12) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
13) { F10: V3, F20: 54, F30: <null>, F40: 6, F50: %%% 3 }
14) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
15) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
16) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** No columns: {}
Cfg: 00000001 [A], <grid>(3 cols, 17 rows)
Cfg: 00000002 [B], <grid>(3 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-17
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-17
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
16) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 17 rows)
Cfg: 00000002 [B], <grid>(3 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
16) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {A:u4}
Cfg: 00000001 [A], <grid>(4 cols, 17 rows)
Cfg: 00000002 [B], <grid>(4 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 17 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-17
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 17 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-17
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 53, F30: <null>, F40: <null>, F50: <null> }
11) { A: 54, F30: <null>, F40: <null>, F50: <null> }
12) { A: 55, F30: <null>, F40: <null>, F50: <null> }
13) { A: 54, F30: <null>, F40: <null>, F50: <null> }
14) { A: 55, F30: <null>, F40: <null>, F50: <null> }
15) { A: 56, F30: <null>, F40: <null>, F50: <null> }
16) { A: 57, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(4 cols, 17 rows)
Cfg: 00000002 [B], <grid>(4 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 17 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 17 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 53, F30: <null>, F40: <null>, F50: <null> }
11) { A: 54, F30: <null>, F40: <null>, F50: <null> }
12) { A: 55, F30: <null>, F40: <null>, F50: <null> }
13) { A: 54, F30: <null>, F40: <null>, F50: <null> }
14) { A: 55, F30: <null>, F40: <null>, F50: <null> }
15) { A: 56, F30: <null>, F40: <null>, F50: <null> }
16) { A: 57, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {F30:u4}
Cfg: 00000001 [A], <grid>(3 cols, 17 rows)
Cfg: 00000002 [B], <grid>(3 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-17
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-17
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: <null>, F50: <null> }
11) { F30: 54, F40: <null>, F50: <null> }
12) { F30: 55, F40: <null>, F50: <null> }
13) { F30: 54, F40: <null>, F50: <null> }
14) { F30: 55, F40: <null>, F50: <null> }
15) { F30: 56, F40: <null>, F50: <null> }
16) { F30: 57, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 17 rows)
Cfg: 00000002 [B], <grid>(3 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: <null>, F50: <null> }
11) { F30: 54, F40: <null>, F50: <null> }
12) { F30: 55, F40: <null>, F50: <null> }
13) { F30: 54, F40: <null>, F50: <null> }
14) { F30: 55, F40: <null>, F50: <null> }
15) { F30: 56, F40: <null>, F50: <null> }
16) { F30: 57, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Two columns: {F30:i4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 17 rows)
Cfg: 00000002 [B], <grid>(3 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 17 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-17
    00000002 [B]: [           dD  ], <grid>(3 cols, 17 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-17
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 5, F40: <null>, F50: V2 }
11) { F30: 6, F40: <null>, F50: V3 }
12) { F30: 7, F40: <null>, F50: V4 }
13) { F30: 6, F40: <null>, F50: V3 }
14) { F30: 7, F40: <null>, F50: V4 }
15) { F30: 8, F40: <null>, F50: V5 }
16) { F30: 9, F40: <null>, F50: V6 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 17 rows)
Cfg: 00000002 [B], <grid>(3 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 17 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 17 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 5, F40: <null>, F50: V2 }
11) { F30: 6, F40: <null>, F50: V3 }
12) { F30: 7, F40: <null>, F50: V4 }
13) { F30: 6, F40: <null>, F50: V3 }
14) { F30: 7, F40: <null>, F50: V4 }
15) { F30: 8, F40: <null>, F50: V5 }
16) { F30: 9, F40: <null>, F50: V6 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Three columns, including dup: {F30:u4, F40:u4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 17 rows)
Cfg: 00000002 [B], <grid>(3 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-17
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-17
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: 53, F50: %%% 2 }
11) { F30: 54, F40: 54, F50: %%% 3 }
12) { F30: 55, F40: 55, F50: %%% 4 }
13) { F30: 54, F40: 54, F50: %%% 3 }
14) { F30: 55, F40: 55, F50: %%% 4 }
15) { F30: 56, F40: 56, F50: %%% 5 }
16) { F30: 57, F40: 57, F50: %%% 6 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 17 rows)
Cfg: 00000002 [B], <grid>(3 cols, 17 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 17 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 53, F40: 53, F50: %%% 2 }
11) { F30: 54, F40: 54, F50: %%% 3 }
12) { F30: 55, F40: 55, F50: %%% 4 }
13) { F30: 54, F40: 54, F50: %%% 3 }
14) { F30: 55, F40: 55, F50: %%% 4 }
15) { F30: 56, F40: 56, F50: %%% 5 }
16) { F30: 57, F40: 57, F50: %%% 6 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###

$$$$$ Row map section: More clip than src $$$$$

*** No column map: {F10:s, F20:u4, F40:i4, F50:s}
Cfg: 00000001 [A], <grid>(5 cols, 23 rows)
Cfg: 00000002 [B], <grid>(5 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 23 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-23
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 23 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-23
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
11) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
12) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
13) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
14) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
15) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
16) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
17) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
18) { F10: V1, F20: 52, F30: <null>, F40: 4, F50: %%% 1 }
19) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
20) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
21) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
22) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(5 cols, 23 rows)
Cfg: 00000002 [B], <grid>(5 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 23 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 23 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
11) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
12) { F10: V4, F20: 55, F30: <null>, F40: 7, F50: %%% 4 }
13) { F10: V5, F20: 56, F30: <null>, F40: 8, F50: %%% 5 }
14) { F10: V6, F20: 57, F30: <null>, F40: 9, F50: %%% 6 }
15) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
16) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
17) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
18) { F10: V1, F20: 52, F30: <null>, F40: 4, F50: %%% 1 }
19) { F10: V2, F20: 53, F30: <null>, F40: 5, F50: %%% 2 }
20) { F10: V7, F20: 58, F30: <null>, F40: 10, F50: %%% 7 }
21) { F10: V8, F20: 59, F30: <null>, F40: 11, F50: %%% 8 }
22) { F10: V9, F20: 60, F30: <null>, F40: 12, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** No columns: {}
Cfg: 00000001 [A], <grid>(3 cols, 23 rows)
Cfg: 00000002 [B], <grid>(3 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-23
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-23
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
16) { F30: <null>, F40: <null>, F50: <null> }
17) { F30: <null>, F40: <null>, F50: <null> }
18) { F30: <null>, F40: <null>, F50: <null> }
19) { F30: <null>, F40: <null>, F50: <null> }
20) { F30: <null>, F40: <null>, F50: <null> }
21) { F30: <null>, F40: <null>, F50: <null> }
22) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 23 rows)
Cfg: 00000002 [B], <grid>(3 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: <null>, F40: <null>, F50: <null> }
11) { F30: <null>, F40: <null>, F50: <null> }
12) { F30: <null>, F40: <null>, F50: <null> }
13) { F30: <null>, F40: <null>, F50: <null> }
14) { F30: <null>, F40: <null>, F50: <null> }
15) { F30: <null>, F40: <null>, F50: <null> }
16) { F30: <null>, F40: <null>, F50: <null> }
17) { F30: <null>, F40: <null>, F50: <null> }
18) { F30: <null>, F40: <null>, F50: <null> }
19) { F30: <null>, F40: <null>, F50: <null> }
20) { F30: <null>, F40: <null>, F50: <null> }
21) { F30: <null>, F40: <null>, F50: <null> }
22) { F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {A:u4}
Cfg: 00000001 [A], <grid>(4 cols, 23 rows)
Cfg: 00000002 [B], <grid>(4 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 23 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-23
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 23 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-23
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 56, F30: <null>, F40: <null>, F50: <null> }
11) { A: 57, F30: <null>, F40: <null>, F50: <null> }
12) { A: 55, F30: <null>, F40: <null>, F50: <null> }
13) { A: 56, F30: <null>, F40: <null>, F50: <null> }
14) { A: 57, F30: <null>, F40: <null>, F50: <null> }
15) { A: 58, F30: <null>, F40: <null>, F50: <null> }
16) { A: 59, F30: <null>, F40: <null>, F50: <null> }
17) { A: 60, F30: <null>, F40: <null>, F50: <null> }
18) { A: 52, F30: <null>, F40: <null>, F50: <null> }
19) { A: 53, F30: <null>, F40: <null>, F50: <null> }
20) { A: 58, F30: <null>, F40: <null>, F50: <null> }
21) { A: 59, F30: <null>, F40: <null>, F50: <null> }
22) { A: 60, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(4 cols, 23 rows)
Cfg: 00000002 [B], <grid>(4 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 23 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 23 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
10) { A: 56, F30: <null>, F40: <null>, F50: <null> }
11) { A: 57, F30: <null>, F40: <null>, F50: <null> }
12) { A: 55, F30: <null>, F40: <null>, F50: <null> }
13) { A: 56, F30: <null>, F40: <null>, F50: <null> }
14) { A: 57, F30: <null>, F40: <null>, F50: <null> }
15) { A: 58, F30: <null>, F40: <null>, F50: <null> }
16) { A: 59, F30: <null>, F40: <null>, F50: <null> }
17) { A: 60, F30: <null>, F40: <null>, F50: <null> }
18) { A: 52, F30: <null>, F40: <null>, F50: <null> }
19) { A: 53, F30: <null>, F40: <null>, F50: <null> }
20) { A: 58, F30: <null>, F40: <null>, F50: <null> }
21) { A: 59, F30: <null>, F40: <null>, F50: <null> }
22) { A: 60, F30: <null>, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {F30:u4}
Cfg: 00000001 [A], <grid>(3 cols, 23 rows)
Cfg: 00000002 [B], <grid>(3 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-23
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-23
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 56, F40: <null>, F50: <null> }
11) { F30: 57, F40: <null>, F50: <null> }
12) { F30: 55, F40: <null>, F50: <null> }
13) { F30: 56, F40: <null>, F50: <null> }
14) { F30: 57, F40: <null>, F50: <null> }
15) { F30: 58, F40: <null>, F50: <null> }
16) { F30: 59, F40: <null>, F50: <null> }
17) { F30: 60, F40: <null>, F50: <null> }
18) { F30: 52, F40: <null>, F50: <null> }
19) { F30: 53, F40: <null>, F50: <null> }
20) { F30: 58, F40: <null>, F50: <null> }
21) { F30: 59, F40: <null>, F50: <null> }
22) { F30: 60, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 23 rows)
Cfg: 00000002 [B], <grid>(3 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 56, F40: <null>, F50: <null> }
11) { F30: 57, F40: <null>, F50: <null> }
12) { F30: 55, F40: <null>, F50: <null> }
13) { F30: 56, F40: <null>, F50: <null> }
14) { F30: 57, F40: <null>, F50: <null> }
15) { F30: 58, F40: <null>, F50: <null> }
16) { F30: 59, F40: <null>, F50: <null> }
17) { F30: 60, F40: <null>, F50: <null> }
18) { F30: 52, F40: <null>, F50: <null> }
19) { F30: 53, F40: <null>, F50: <null> }
20) { F30: 58, F40: <null>, F50: <null> }
21) { F30: 59, F40: <null>, F50: <null> }
22) { F30: 60, F40: <null>, F50: <null> }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Two columns: {F30:i4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 23 rows)
Cfg: 00000002 [B], <grid>(3 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 23 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-23
    00000002 [B]: [           dD  ], <grid>(3 cols, 23 rows), Base: {F30:i4, F40:r8?, F50:s}*; stale rows: 10-23
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 8, F40: <null>, F50: V5 }
11) { F30: 9, F40: <null>, F50: V6 }
12) { F30: 7, F40: <null>, F50: V4 }
13) { F30: 8, F40: <null>, F50: V5 }
14) { F30: 9, F40: <null>, F50: V6 }
15) { F30: 10, F40: <null>, F50: V7 }
16) { F30: 11, F40: <null>, F50: V8 }
17) { F30: 12, F40: <null>, F50: V9 }
18) { F30: 4, F40: <null>, F50: V1 }
19) { F30: 5, F40: <null>, F50: V2 }
20) { F30: 10, F40: <null>, F50: V7 }
21) { F30: 11, F40: <null>, F50: V8 }
22) { F30: 12, F40: <null>, F50: V9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 23 rows)
Cfg: 00000002 [B], <grid>(3 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 23 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 23 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 8, F40: <null>, F50: V5 }
11) { F30: 9, F40: <null>, F50: V6 }
12) { F30: 7, F40: <null>, F50: V4 }
13) { F30: 8, F40: <null>, F50: V5 }
14) { F30: 9, F40: <null>, F50: V6 }
15) { F30: 10, F40: <null>, F50: V7 }
16) { F30: 11, F40: <null>, F50: V8 }
17) { F30: 12, F40: <null>, F50: V9 }
18) { F30: 4, F40: <null>, F50: V1 }
19) { F30: 5, F40: <null>, F50: V2 }
20) { F30: 10, F40: <null>, F50: V7 }
21) { F30: 11, F40: <null>, F50: V8 }
22) { F30: 12, F40: <null>, F50: V9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [           dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Three columns, including dup: {F30:u4, F40:u4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 23 rows)
Cfg: 00000002 [B], <grid>(3 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-23
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-23
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 56, F40: 56, F50: %%% 5 }
11) { F30: 57, F40: 57, F50: %%% 6 }
12) { F30: 55, F40: 55, F50: %%% 4 }
13) { F30: 56, F40: 56, F50: %%% 5 }
14) { F30: 57, F40: 57, F50: %%% 6 }
15) { F30: 58, F40: 58, F50: %%% 7 }
16) { F30: 59, F40: 59, F50: %%% 8 }
17) { F30: 60, F40: 60, F50: %%% 9 }
18) { F30: 52, F40: 52, F50: %%% 1 }
19) { F30: 53, F40: 53, F50: %%% 2 }
20) { F30: 58, F40: 58, F50: %%% 7 }
21) { F30: 59, F40: 59, F50: %%% 8 }
22) { F30: 60, F40: 60, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 23 rows)
Cfg: 00000002 [B], <grid>(3 cols, 23 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 23 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
10) { F30: 56, F40: 56, F50: %%% 5 }
11) { F30: 57, F40: 57, F50: %%% 6 }
12) { F30: 55, F40: 55, F50: %%% 4 }
13) { F30: 56, F40: 56, F50: %%% 5 }
14) { F30: 57, F40: 57, F50: %%% 6 }
15) { F30: 58, F40: 58, F50: %%% 7 }
16) { F30: 59, F40: 59, F50: %%% 8 }
17) { F30: 60, F40: 60, F50: %%% 9 }
18) { F30: 52, F40: 52, F50: %%% 1 }
19) { F30: 53, F40: 53, F50: %%% 2 }
20) { F30: 58, F40: 58, F50: %%% 7 }
21) { F30: 59, F40: 59, F50: %%% 8 }
22) { F30: 60, F40: 60, F50: %%% 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###

$$$$$ Row map section: Range past end src $$$$$

*** No column map: {F10:s, F20:u4, F40:i4, F50:s}
Cfg: 00000001 [A], <grid>(5 cols, 10 rows)
Cfg: 00000002 [B], <grid>(5 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 10 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 10 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(5 cols, 10 rows)
Cfg: 00000002 [B], <grid>(5 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(5 cols, 10 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(5 cols, 10 rows), Base: {F10:s, F20:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{str,u4,i4,r8,str}>
 0) { F10: <null>, F20: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { F10: <null>, F20: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { F10: <null>, F20: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { F10: <null>, F20: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { F10: <null>, F20: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { F10: <null>, F20: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { F10: <null>, F20: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { F10: <null>, F20: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { F10: <null>, F20: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { F10: <null>, F20: <null>, F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** No columns: {}
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {A:u4}
Cfg: 00000001 [A], <grid>(4 cols, 10 rows)
Cfg: 00000002 [B], <grid>(4 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 10 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 10 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(4 cols, 10 rows)
Cfg: 00000002 [B], <grid>(4 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(4 cols, 10 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(4 cols, 10 rows), Base: {A:u4?, F30:i4?, F40:r8?, F50:s}*
###
Sequence: Seq<{u4,i4,r8,str}>
 0) { A: <null>, F30: 1, F40: 0.5, F50: *** 0 }
 1) { A: <null>, F30: 2, F40: 1.5, F50: *** 1 }
 2) { A: <null>, F30: 3, F40: <null>, F50: *** 2 }
 3) { A: <null>, F30: 4, F40: 3.5, F50: *** 3 }
 4) { A: <null>, F30: 5, F40: 4.5, F50: *** 4 }
 5) { A: <null>, F30: 6, F40: 5.5, F50: *** 5 }
 6) { A: <null>, F30: 7, F40: 6.5, F50: *** 6 }
 7) { A: <null>, F30: 8, F40: <null>, F50: *** 7 }
 8) { A: <null>, F30: 9, F40: 8.5, F50: *** 8 }
 9) { A: <null>, F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** One column: {F30:u4}
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
*** Two columns: {F30:i4, F50:s}
Status: 3 nodes, 5 undos, 0 redos
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Status: 3 nodes, 4 undos, 1 redos
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Status: 3 nodes, 5 undos, 0 redos
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Status: 3 nodes, 4 undos, 1 redos
###
*** Three columns, including dup: {F30:u4, F40:u4, F50:s}
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-10
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*; stale rows: 0-10
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
Sequence: Seq<{i4,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Redo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 5 undos, 0 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i8, F40:r8?, F50:s}*
###
Sequence: Seq<{i8,r8,str}>
 0) { F30: 1, F40: 0.5, F50: *** 0 }
 1) { F30: 2, F40: 1.5, F50: *** 1 }
 2) { F30: 3, F40: <null>, F50: *** 2 }
 3) { F30: 4, F40: 3.5, F50: *** 3 }
 4) { F30: 5, F40: 4.5, F50: *** 4 }
 5) { F30: 6, F40: 5.5, F50: *** 5 }
 6) { F30: 7, F40: 6.5, F50: *** 6 }
 7) { F30: 8, F40: <null>, F50: *** 7 }
 8) { F30: 9, F40: 8.5, F50: *** 8 }
 9) { F30: 10, F40: 9.5, F50: *** 9 }
   === Match ===
###
*** Undo(1)
Cfg: 00000001 [A], <grid>(3 cols, 10 rows)
Cfg: 00000002 [B], <grid>(3 cols, 10 rows)
Status: 3 nodes, 4 undos, 1 redos
  Node changes:
    00000001 [A]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
    00000002 [B]: [   tT      dD  ], <grid>(3 cols, 10 rows), Base: {F30:i4, F40:r8?, F50:s}*
###
