rudb-parse 0.2.5

The SQL lexer, parser and AST, with a textual form that round trips.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
//! DuckDB's grammar, compiled to a table the matcher walks.
//!
//! @generated by `cargo xtask gen-grammar` from the vendored grammar. Do not edit.
//! `cargo xtask gen-grammar --check` runs in the gate and fails if this file and the
//! grammar disagree.
//!
//! `NODES` is the whole grammar. A node is twenty four bytes and carries its FIRST set
//! and its nullable bit, so deciding whether an alternative can match the token in hand
//! and then walking it read the same twenty four bytes. A `Rule` node carries the index
//! of its body as well as the index of the rule, so entering a rule never reads `RULES`.
//! `CHILDREN` holds the child lists of sequences and choices, contiguous per node, so a
//! sequence is a slice rather than a chase. Rules are the only nodes that are not
//! expanded in place, which is what keeps the table finite in the face of a recursive
//! grammar.
//!
//! Every table carries `#[rustfmt::skip]`, because the generator and rustfmt disagree
//! about `CHILDREN` and `SYMBOLS` and something has to win. rustfmt packs an
//! array whose elements are short onto as many per line as fit, so `cargo fmt` rewrote
//! this file and then `gen-grammar --check` failed on it, with both halves of the gate
//! correct and the working tree unable to satisfy them at once. One element a line is the
//! better answer anyway: a packed array reflows a whole block of lines when one entry
//! changes, and the point of checking this file in is that a grammar bump is a diff
//! somebody reads. The attribute is on all four rather than the two, so that a change to
//! rustfmt's width threshold cannot bring the disagreement back.

use crate::rules::{Node, Op, Rule, Suggestion};

/// The root. `Program` is what a whole script parses as.
pub const PROGRAM: u32 = 702;

/// The other root upstream requires, for parsing one statement rather than a script.
pub const TOP_LEVEL_STATEMENT: u32 = 960;

/// The nodes. Each one carries what it can start with, as a set of token keys, and that
/// set is a superset always: a bit that is set may still fail to match, and a bit that is
/// clear cannot possibly match, which is the only direction a filter is allowed to be
/// wrong in. `Node::NULLABLE` in `flags` says the node can match nothing at all, and a
/// node like that is never filtered out.
#[rustfmt::skip]
pub static NODES: [Node; 4720] = [
    Node { op: Op::Keyword, flags: 0, a: 0, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 368, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Choice, flags: 0, a: 0, b: 2, first: 0x0000000004000040 },
    Node { op: Op::Keyword, flags: 0, a: 4, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 63, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Optional, flags: 2, a: 4, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 6, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 2, b: 18, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2, b: 4, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 267, b: 1230, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 11, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 393, b: 1818, first: 0x0080000004000000 },
    Node { op: Op::Optional, flags: 2, a: 13, b: 0, first: 0x0080000004000000 },
    Node { op: Op::Rule, flags: 0, a: 130, b: 628, first: 0x2203140000000200 },
    Node { op: Op::Repeat, flags: 0, a: 15, b: 0, first: 0x2203140000000200 },
    Node { op: Op::Optional, flags: 2, a: 16, b: 0, first: 0x2203140000000200 },
    Node { op: Op::Sequence, flags: 0, a: 6, b: 4, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 4, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 958, b: 4140, first: 0x2201040000800000 },
    Node { op: Op::Sequence, flags: 0, a: 10, b: 2, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 12, b: 3, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 4, b: 25, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 274, b: 1269, first: 0x0000000000004000 },
    Node { op: Op::Choice, flags: 0, a: 15, b: 2, first: 0x0004000000004000 },
    Node { op: Op::Rule, flags: 0, a: 560, b: 2574, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 7, b: 36, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 30, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 31, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 17, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 948, b: 4113, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 560, b: 2574, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 19, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 115, b: 560, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 329, b: 1570, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 330, b: 1574, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 21, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 9, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 11, b: 0, first: 0x0000000000020000 },
    Node { op: Op::Keyword, flags: 0, a: 63, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Optional, flags: 2, a: 43, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Rule, flags: 0, a: 581, b: 2678, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 11, b: 51, first: 0x000c000000004000 },
    Node { op: Op::Sequence, flags: 0, a: 24, b: 4, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 5, b: 28, first: 0x0004000000004000 },
    Node { op: Op::Rule, flags: 0, a: 102, b: 479, first: 0x0004000000004000 },
    Node { op: Op::Rule, flags: 0, a: 20, b: 120, first: 0x000c000000000000 },
    Node { op: Op::Choice, flags: 0, a: 28, b: 3, first: 0x000c000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 90, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 53, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 8, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 31, b: 7, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 19, b: 112, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 21, b: 126, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 16, b: 81, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 12, b: 60, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 14, b: 72, first: 0x0000000200000000 },
    Node { op: Op::Choice, flags: 0, a: 38, b: 5, first: 0x0000204203000000 },
    Node { op: Op::Keyword, flags: 0, a: 375, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 68, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 737, b: 3258, first: 0x0000000000000400 },
    Node { op: Op::Sequence, flags: 0, a: 43, b: 4, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 738, b: 3259, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 841, b: 3626, first: 0x0000041021050200 },
    Node { op: Op::Choice, flags: 0, a: 47, b: 2, first: 0x0000041021050600 },
    Node { op: Op::Keyword, flags: 0, a: 387, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 77, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 708, b: 3150, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 15, b: 75, first: 0x0000041021050600 },
    Node { op: Op::Sequence, flags: 0, a: 49, b: 4, first: 0x0000200000000000 },
    Node { op: Op::Keyword, flags: 0, a: 11, b: 0, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 13, b: 66, first: 0x0000204203000000 },
    Node { op: Op::Sequence, flags: 0, a: 53, b: 2, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 1, b: 9, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 273, b: 1266, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 272, b: 1258, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 10, b: 47, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 3, b: 21, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 102, b: 479, first: 0x0004000000004000 },
    Node { op: Op::Rule, flags: 0, a: 739, b: 3266, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 737, b: 3258, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 839, b: 3621, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 764, b: 3359, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 843, b: 3638, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 765, b: 3363, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 838, b: 3606, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 763, b: 3355, first: 0x0000000000008000 },
    Node { op: Op::Choice, flags: 0, a: 55, b: 14, first: 0x000400000002c400 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 101, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 18, b: 99, first: 0x000400000002c400 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 69, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 106, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 107, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 109, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 71, b: 3, first: 0x000400000002c400 },
    Node { op: Op::Sequence, flags: 0, a: 74, b: 4, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 833, b: 3592, first: 0x0004000000000000 },
    Node { op: Op::Optional, flags: 2, a: 113, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 451, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 116, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 1033, b: 4475, first: 0x0000000000000200 },
    Node { op: Op::Optional, flags: 2, a: 118, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Sequence, flags: 0, a: 78, b: 4, first: 0x000c000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 482, b: 0, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 122, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 737, b: 3258, first: 0x0000000000000400 },
    Node { op: Op::Sequence, flags: 0, a: 82, b: 4, first: 0x0000000001000000 },
    Node { op: Op::Keyword, flags: 0, a: 12, b: 0, first: 0x0000000000040000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 86, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Choice, flags: 0, a: 88, b: 2, first: 0x0000400000040000 },
    Node { op: Op::Keyword, flags: 0, a: 14, b: 0, first: 0x0000000000100000 },
    Node { op: Op::Keyword, flags: 0, a: 13, b: 0, first: 0x0000000000080000 },
    Node { op: Op::Choice, flags: 0, a: 90, b: 2, first: 0x0000000000180000 },
    Node { op: Op::Rule, flags: 0, a: 23, b: 134, first: 0x0000000000180000 },
    Node { op: Op::Rule, flags: 0, a: 26, b: 145, first: 0x0000000000400000 },
    Node { op: Op::Optional, flags: 2, a: 136, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 25, b: 144, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 138, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 92, b: 3, first: 0x0000000000180000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 562, b: 2588, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 142, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 95, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 480, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Keyword, flags: 0, a: 15, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 97, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Symbol, flags: 0, a: 1, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 16, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 32, b: 194, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 33, b: 197, first: 0x0000000000808000 },
    Node { op: Op::Sequence, flags: 0, a: 99, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 30, b: 153, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 2, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 3, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 4, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 5, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 6, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 7, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 8, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 9, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 10, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 11, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 12, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 13, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 14, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 15, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 16, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 17, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 18, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 19, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 20, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 21, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 22, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 23, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 24, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 25, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 26, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 27, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 28, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 29, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 30, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 31, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 32, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 33, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 34, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 35, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 36, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 37, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 38, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 39, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 40, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 101, b: 39, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 907, b: 3939, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 906, b: 3938, first: 0x0000000000008000 },
    Node { op: Op::Choice, flags: 0, a: 140, b: 2, first: 0x0000000000808000 },
    Node { op: Op::Rule, flags: 0, a: 568, b: 2610, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 572, b: 2624, first: 0x0000000002000000 },
    Node { op: Op::Choice, flags: 0, a: 142, b: 2, first: 0x0000000003000000 },
    Node { op: Op::Keyword, flags: 0, a: 19, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Optional, flags: 2, a: 201, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 71, b: 370, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 144, b: 2, first: 0x0000000002000008 },
    Node { op: Op::Rule, flags: 0, a: 38, b: 212, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 888, b: 3846, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 37, b: 209, first: 0x0000000002000000 },
    Node { op: Op::Choice, flags: 0, a: 146, b: 3, first: 0x0000000002000008 },
    Node { op: Op::Keyword, flags: 0, a: 19, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 19, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 888, b: 3846, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 149, b: 2, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 19, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 151, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 154, b: 2, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 21, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Keyword, flags: 0, a: 22, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Choice, flags: 0, a: 156, b: 2, first: 0x0000000008000001 },
    Node { op: Op::Keyword, flags: 0, a: 23, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Keyword, flags: 0, a: 27, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 43, b: 232, first: 0x0000002000800000 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 158, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 161, b: 2, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 47, b: 247, first: 0x0000002000800000 },
    Node { op: Op::Symbol, flags: 0, a: 43, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 163, b: 3, first: 0x0000002000800000 },
    Node { op: Op::Rule, flags: 0, a: 696, b: 3102, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 45, b: 240, first: 0x0000000200000000 },
    Node { op: Op::Repeat, flags: 0, a: 234, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Optional, flags: 2, a: 235, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Sequence, flags: 0, a: 166, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 46, b: 244, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 696, b: 3102, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 168, b: 2, first: 0x0000000200000000 },
    Node { op: Op::Keyword, flags: 0, a: 27, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Keyword, flags: 0, a: 436, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 513, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 170, b: 3, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 1049, b: 4564, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 954, b: 4129, first: 0x0000002000000000 },
    Node { op: Op::Choice, flags: 0, a: 173, b: 2, first: 0x0000002000800000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 175, b: 2, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 397, b: 1837, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 28, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 637, b: 2834, first: 0x0000000000000040 },
    Node { op: Op::Optional, flags: 2, a: 253, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 255, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 214, b: 1045, first: 0x0000004000000000 },
    Node { op: Op::Optional, flags: 2, a: 257, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 215, b: 1046, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 48, b: 250, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 260, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 49, b: 251, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 262, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 177, b: 7, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 184, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 267, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 268, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 270, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 186, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 874, b: 3770, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 444, b: 2016, first: 0x000000000000000a },
    Node { op: Op::Optional, flags: 2, a: 274, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 189, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 1014, b: 4366, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 278, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 191, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 711, b: 3164, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 1011, b: 4357, first: 0xffffffffffffffc5 },
    Node { op: Op::Choice, flags: 0, a: 194, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 923, b: 3992, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 285, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 921, b: 3984, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 288, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 42, b: 228, first: 0x0000000200000000 },
    Node { op: Op::Optional, flags: 2, a: 290, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 780, b: 3418, first: 0x0000000008000200 },
    Node { op: Op::Optional, flags: 2, a: 292, b: 0, first: 0x0000000008000200 },
    Node { op: Op::Sequence, flags: 0, a: 196, b: 5, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 201, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 895, b: 3869, first: 0x0000008000000200 },
    Node { op: Op::Rule, flags: 0, a: 963, b: 4162, first: 0x0000012000000000 },
    Node { op: Op::Optional, flags: 2, a: 300, b: 0, first: 0x0000012000000000 },
    Node { op: Op::Rule, flags: 0, a: 720, b: 3190, first: 0x0080000000000000 },
    Node { op: Op::Optional, flags: 2, a: 302, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 203, b: 3, first: 0x0000008000000200 },
    Node { op: Op::Keyword, flags: 0, a: 34, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 645, b: 2874, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 15, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 645, b: 2874, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 206, b: 4, first: 0x0000010000000000 },
    Node { op: Op::Keyword, flags: 0, a: 34, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 363, b: 1701, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 15, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 363, b: 1701, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 210, b: 4, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 645, b: 2874, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 62, b: 322, first: 0x2280110000210008 },
    Node { op: Op::Optional, flags: 2, a: 316, b: 0, first: 0x2280110000210008 },
    Node { op: Op::Sequence, flags: 0, a: 214, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 319, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 63, b: 326, first: 0x2280010000210008 },
    Node { op: Op::Sequence, flags: 0, a: 216, b: 2, first: 0x2280110000210008 },
    Node { op: Op::Rule, flags: 0, a: 59, b: 309, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 433, b: 1973, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 507, b: 2328, first: 0x2280000000010008 },
    Node { op: Op::Choice, flags: 0, a: 218, b: 3, first: 0x2280010000210008 },
    Node { op: Op::Keyword, flags: 0, a: 35, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 36, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Symbol, flags: 0, a: 37, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 38, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 22, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 23, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 221, b: 4, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 37, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Keyword, flags: 0, a: 479, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 335, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 225, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 339, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 340, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 342, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 227, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 230, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 347, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 233, b: 3, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 6, b: 33, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 69, b: 357, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 351, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 352, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 236, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 66, b: 333, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 6, b: 33, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 238, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 38, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Symbol, flags: 0, a: 44, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 240, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 362, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 363, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 365, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 242, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 367, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 45, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 245, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 260, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Sequence, flags: 0, a: 248, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 451, b: 2038, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 453, b: 2042, first: 0x0000400000000000 },
    Node { op: Op::Choice, flags: 0, a: 250, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 405, b: 0, first: 0x8000000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 252, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 74, b: 379, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 76, b: 385, first: 0x0000400000000000 },
    Node { op: Op::Choice, flags: 0, a: 254, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 429, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Sequence, flags: 0, a: 256, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 79, b: 396, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 78, b: 392, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 258, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 896, b: 3906, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 260, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 263, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 42, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 710, b: 3161, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 927, b: 4019, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 266, b: 3, first: 0x0001000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 44, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 44, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 126, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 269, b: 2, first: 0x0000000000010000 },
    Node { op: Op::Keyword, flags: 0, a: 46, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 407, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 85, b: 419, first: 0x0000000040000000 },
    Node { op: Op::Repeat, flags: 0, a: 409, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 83, b: 405, first: 0x0000000000010000 },
    Node { op: Op::Optional, flags: 2, a: 411, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Keyword, flags: 0, a: 130, b: 0, first: 0x0000000000100000 },
    Node { op: Op::Sequence, flags: 0, a: 271, b: 5, first: 0x0010000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 488, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 434, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 276, b: 4, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 280, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 90, b: 436, first: 0x0022000000000000 },
    Node { op: Op::Rule, flags: 0, a: 86, b: 423, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 283, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 286, b: 2, first: 0x0022000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 47, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Symbol, flags: 0, a: 46, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 288, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 88, b: 430, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 986, b: 4238, first: 0x0002000000000000 },
    Node { op: Op::Choice, flags: 0, a: 290, b: 2, first: 0x0022000000000000 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::CatalogName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 91, b: 437, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 91, b: 437, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 292, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 443, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 444, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 753, b: 3337, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 294, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 449, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 755, b: 3341, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 297, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 756, b: 3342, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 300, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 458, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 760, b: 3348, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 303, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 761, b: 3351, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 752, b: 3336, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 306, b: 4, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 468, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 762, b: 3352, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 310, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 91, b: 437, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 50, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 49, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Choice, flags: 0, a: 313, b: 2, first: 0x0180000000000000 },
    Node { op: Op::Rule, flags: 0, a: 280, b: 1315, first: 0x0004000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 275, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 315, b: 3, first: 0x0004000000004000 },
    Node { op: Op::Rule, flags: 0, a: 104, b: 507, first: 0x0c00005000010000 },
    Node { op: Op::Rule, flags: 0, a: 994, b: 4295, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 481, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 318, b: 2, first: 0x0c00005000010000 },
    Node { op: Op::Keyword, flags: 0, a: 53, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 479, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 485, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 320, b: 2, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 52, b: 0, first: 0x0400000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 479, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 489, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 322, b: 2, first: 0x0400000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 262, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 53, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 479, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 494, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 324, b: 3, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 262, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 52, b: 0, first: 0x0400000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 479, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 499, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 327, b: 3, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 264, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Keyword, flags: 0, a: 479, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 503, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 330, b: 2, first: 0x0000004000000000 },
    Node { op: Op::Keyword, flags: 0, a: 474, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Choice, flags: 0, a: 332, b: 6, first: 0x0c00005000010000 },
    Node { op: Op::Keyword, flags: 0, a: 55, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 338, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 341, b: 2, first: 0x2000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 157, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 106, b: 514, first: 0x0000800000000000 },
    Node { op: Op::Optional, flags: 2, a: 515, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Keyword, flags: 0, a: 56, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 91, b: 437, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 518, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 343, b: 3, first: 0x4000800000000000 },
    Node { op: Op::Keyword, flags: 0, a: 60, b: 0, first: 0x0000000000000100 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 346, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 524, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 525, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 527, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 348, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 351, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 354, b: 2, first: 0x0000000000000100 },
    Node { op: Op::Rule, flags: 0, a: 484, b: 2221, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 110, b: 541, first: 0x0000000000200000 },
    Node { op: Op::Repeat, flags: 0, a: 535, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 536, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 356, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 15, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 484, b: 2221, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 358, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 109, b: 538, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 112, b: 549, first: 0x0000000000000040 },
    Node { op: Op::Repeat, flags: 0, a: 543, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Optional, flags: 2, a: 544, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Sequence, flags: 0, a: 360, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 290, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 109, b: 538, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 362, b: 2, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 1012, b: 4358, first: 0xffffffffffffffc0 },
    Node { op: Op::Rule, flags: 0, a: 136, b: 661, first: 0xcd9ffff39015f500 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 364, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 367, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 48, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 369, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 900, b: 3913, first: 0x0000000000000004 },
    Node { op: Op::Choice, flags: 0, a: 372, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 374, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 117, b: 566, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 376, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 569, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 570, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 572, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 378, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 381, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 757, b: 3343, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 1012, b: 4358, first: 0xffffffffffffffc0 },
    Node { op: Op::Rule, flags: 0, a: 136, b: 661, first: 0xcd9ffff39015f500 },
    Node { op: Op::Rule, flags: 0, a: 379, b: 1757, first: 0x2a94b436a9452c00 },
    Node { op: Op::Rule, flags: 0, a: 997, b: 4298, first: 0x2a96f436a9453c00 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 384, b: 6, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 119, b: 584, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 120, b: 585, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 900, b: 3913, first: 0x0000000000000004 },
    Node { op: Op::Choice, flags: 0, a: 390, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 49, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 119, b: 584, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 392, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 44, b: 237, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 124, b: 599, first: 0x0000000000000200 },
    Node { op: Op::Repeat, flags: 0, a: 593, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Optional, flags: 2, a: 594, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Sequence, flags: 0, a: 394, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 125, b: 600, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 44, b: 237, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 396, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 61, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 398, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 604, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 605, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 607, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 400, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 403, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 61, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 267, b: 1230, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 406, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 69, b: 0, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 408, b: 3, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 592, b: 2713, first: 0x0002100000000000 },
    Node { op: Op::Rule, flags: 0, a: 1000, b: 4315, first: 0x0200000000000000 },
    Node { op: Op::Rule, flags: 0, a: 701, b: 3121, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 231, b: 1097, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 105, b: 513, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 362, b: 1697, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 128, b: 615, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 129, b: 619, first: 0x0000000000000200 },
    Node { op: Op::Choice, flags: 0, a: 411, b: 8, first: 0x2203140000000200 },
    Node { op: Op::Rule, flags: 0, a: 111, b: 546, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 267, b: 1230, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 631, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 393, b: 1818, first: 0x0080000004000000 },
    Node { op: Op::Optional, flags: 2, a: 633, b: 0, first: 0x0080000004000000 },
    Node { op: Op::Rule, flags: 0, a: 162, b: 751, first: 0x0000000000800000 },
    Node { op: Op::Optional, flags: 2, a: 635, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 130, b: 628, first: 0x2203140000000200 },
    Node { op: Op::Repeat, flags: 0, a: 637, b: 0, first: 0x2203140000000200 },
    Node { op: Op::Optional, flags: 2, a: 638, b: 0, first: 0x2203140000000200 },
    Node { op: Op::Sequence, flags: 0, a: 419, b: 5, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 424, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 643, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 644, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 646, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 426, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 429, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 432, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 654, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 655, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 657, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 434, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::ColumnName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::KeywordClass, flags: 0, a: 4, b: 0, first: 0xcd9ffff39015f500 },
    Node { op: Op::Rule, flags: 0, a: 582, b: 2685, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 98, b: 466, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 801, b: 3484, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 937, b: 4063, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 581, b: 2678, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 437, b: 5, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 893, b: 3863, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 668, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 64, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 442, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 445, b: 3, first: 0x0000000000001008 },
    Node { op: Op::Keyword, flags: 0, a: 63, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Keyword, flags: 0, a: 90, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Keyword, flags: 0, a: 163, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 193, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 238, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 238, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Sequence, flags: 0, a: 448, b: 2, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 149, b: 705, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 147, b: 697, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 141, b: 678, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 144, b: 683, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 143, b: 680, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 152, b: 710, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 140, b: 677, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 142, b: 679, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 146, b: 696, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 150, b: 706, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 139, b: 676, first: 0x0000000000000800 },
    Node { op: Op::Choice, flags: 0, a: 450, b: 11, first: 0x0028204203001800 },
    Node { op: Op::Keyword, flags: 0, a: 375, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Keyword, flags: 0, a: 387, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Keyword, flags: 0, a: 65, b: 0, first: 0x0000000000002000 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 145, b: 695, first: 0x0028204203001800 },
    Node { op: Op::Rule, flags: 0, a: 267, b: 1230, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 212, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 151, b: 709, first: 0x0002000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 461, b: 6, first: 0x0000000000002000 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 451, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 601, b: 2736, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 901, b: 3914, first: 0x0000000000000004 },
    Node { op: Op::Choice, flags: 0, a: 467, b: 2, first: 0x0002000000000004 },
    Node { op: Op::Keyword, flags: 0, a: 482, b: 0, first: 0x0000000001000000 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 67, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 699, b: 3117, first: 0x0020020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 371, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Sequence, flags: 0, a: 469, b: 4, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 67, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 130, b: 0, first: 0x0000000000100000 },
    Node { op: Op::Choice, flags: 0, a: 473, b: 2, first: 0x0000000000108000 },
    Node { op: Op::Rule, flags: 0, a: 154, b: 718, first: 0x0000000000108000 },
    Node { op: Op::Rule, flags: 0, a: 963, b: 4162, first: 0x0000012000000000 },
    Node { op: Op::Optional, flags: 2, a: 720, b: 0, first: 0x0000012000000000 },
    Node { op: Op::Sequence, flags: 0, a: 475, b: 2, first: 0x0000000000108000 },
    Node { op: Op::Rule, flags: 0, a: 61, b: 318, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 157, b: 732, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 724, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 725, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 477, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 158, b: 739, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 585, b: 2691, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 729, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 61, b: 318, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 479, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 623, b: 2810, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 629, b: 2818, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 626, b: 2813, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 624, b: 2811, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 627, b: 2814, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 625, b: 2812, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 482, b: 6, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 73, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 830, b: 3581, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 741, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 488, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 601, b: 2736, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 984, b: 4232, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 344, b: 1631, first: 0x0000008000000000 },
    Node { op: Op::Choice, flags: 0, a: 490, b: 3, first: 0x0002208000000000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 75, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 493, b: 2, first: 0x0000000000800000 },
    Node { op: Op::Keyword, flags: 0, a: 89, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Rule, flags: 0, a: 795, b: 3465, first: 0x0000002200000000 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 495, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 166, b: 764, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 169, b: 767, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 167, b: 765, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 168, b: 766, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 498, b: 4, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 652, b: 2909, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 653, b: 2913, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 502, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 423, b: 1935, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 172, b: 778, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 173, b: 784, first: 0x0008000000000000 },
    Node { op: Op::Choice, flags: 0, a: 504, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 90, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 164, b: 756, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 506, b: 6, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 90, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 512, b: 5, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 640, b: 2849, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 664, b: 2993, first: 0x0000000000600000 },
    Node { op: Op::Rule, flags: 0, a: 395, b: 1825, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 517, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 174, b: 788, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 520, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 791, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 792, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 794, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 522, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 525, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 175, b: 799, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 886, b: 3837, first: 0x0266840100e40200 },
    Node { op: Op::Choice, flags: 0, a: 528, b: 2, first: 0x0266840100e40208 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::Variable as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 804, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 176, b: 802, first: 0x0266840100e40208 },
    Node { op: Op::Sequence, flags: 0, a: 530, b: 2, first: 0x0266840500e40208 },
    Node { op: Op::Keyword, flags: 0, a: 375, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 532, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 165, b: 761, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 178, b: 807, first: 0x0266840500e40208 },
    Node { op: Op::Optional, flags: 2, a: 815, b: 0, first: 0x0266840500e40208 },
    Node { op: Op::Sequence, flags: 0, a: 535, b: 4, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 80, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 184, b: 833, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 539, b: 2, first: 0x0000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 454, b: 2046, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 822, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 373, b: 1739, first: 0x0008004000000000 },
    Node { op: Op::Rule, flags: 0, a: 165, b: 761, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 178, b: 807, first: 0x0266840500e40208 },
    Node { op: Op::Optional, flags: 2, a: 826, b: 0, first: 0x0266840500e40208 },
    Node { op: Op::Sequence, flags: 0, a: 541, b: 5, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 182, b: 828, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 180, b: 817, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 171, b: 771, first: 0x0008000000000000 },
    Node { op: Op::Choice, flags: 0, a: 546, b: 3, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 200, b: 971, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 834, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 549, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 663, b: 2986, first: 0x4000000000400000 },
    Node { op: Op::Optional, flags: 2, a: 839, b: 0, first: 0x4000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 1068, b: 4654, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 841, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Sequence, flags: 0, a: 552, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 82, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 637, b: 2834, first: 0x0000000000000040 },
    Node { op: Op::Optional, flags: 2, a: 845, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 145, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Keyword, flags: 0, a: 356, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 849, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 750, b: 3320, first: 0x0000000400000001 },
    Node { op: Op::Rule, flags: 0, a: 751, b: 3335, first: 0x0000000000000201 },
    Node { op: Op::Optional, flags: 2, a: 853, b: 0, first: 0x0000000000000201 },
    Node { op: Op::Sequence, flags: 0, a: 555, b: 8, first: 0x0000000040000000 },
    Node { op: Op::Keyword, flags: 0, a: 82, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Keyword, flags: 0, a: 147, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Keyword, flags: 0, a: 358, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 48, b: 250, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 860, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 334, b: 1589, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 862, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 563, b: 6, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 1001, b: 4316, first: 0x0200000000000000 },
    Node { op: Op::Optional, flags: 2, a: 865, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 193, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 868, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 441, b: 2006, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 870, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 454, b: 2046, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 874, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 442, b: 2009, first: 0x0000000000000200 },
    Node { op: Op::Optional, flags: 2, a: 876, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 440, b: 2005, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 569, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 880, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 881, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 883, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 571, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 574, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 888, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1068, b: 4654, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 890, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 1053, b: 4574, first: 0x0000000080000000 },
    Node { op: Op::Optional, flags: 2, a: 892, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Sequence, flags: 0, a: 577, b: 11, first: 0x0200000002000000 },
    Node { op: Op::Rule, flags: 0, a: 533, b: 2441, first: 0x0020000000001000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 896, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 530, b: 2434, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 588, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 901, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 902, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 904, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 590, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 593, b: 4, first: 0x0020000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 343, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 375, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 910, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 597, b: 3, first: 0x0000000200000000 },
    Node { op: Op::Keyword, flags: 0, a: 382, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 915, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 804, b: 3491, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 917, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 805, b: 3494, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 919, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 397, b: 1837, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 600, b: 5, first: 0x0000010000000000 },
    Node { op: Op::Keyword, flags: 0, a: 383, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 387, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 925, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 828, b: 3576, first: 0x0000041021050200 },
    Node { op: Op::Repeat, flags: 0, a: 928, b: 0, first: 0x0000041021050200 },
    Node { op: Op::Optional, flags: 2, a: 929, b: 0, first: 0x0000041021050200 },
    Node { op: Op::Sequence, flags: 0, a: 605, b: 4, first: 0x0000200000000000 },
    Node { op: Op::Keyword, flags: 0, a: 82, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 637, b: 2834, first: 0x0000000000000040 },
    Node { op: Op::Optional, flags: 2, a: 933, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 946, b: 4109, first: 0x0000000144000000 },
    Node { op: Op::Optional, flags: 2, a: 935, b: 0, first: 0x0000000144000000 },
    Node { op: Op::Rule, flags: 0, a: 196, b: 948, first: 0x0a282b0203001000 },
    Node { op: Op::Sequence, flags: 0, a: 609, b: 4, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 203, b: 983, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 189, b: 907, first: 0x0020000000001000 },
    Node { op: Op::Rule, flags: 0, a: 194, b: 931, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 207, b: 1009, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 191, b: 913, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 208, b: 1024, first: 0x0800020001000000 },
    Node { op: Op::Rule, flags: 0, a: 188, b: 894, first: 0x0200000002000000 },
    Node { op: Op::Rule, flags: 0, a: 192, b: 922, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 204, b: 997, first: 0x0000080000000000 },
    Node { op: Op::Choice, flags: 0, a: 613, b: 9, first: 0x0a282b0203001000 },
    Node { op: Op::Rule, flags: 0, a: 425, b: 1949, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 949, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 663, b: 2986, first: 0x4000000000400000 },
    Node { op: Op::Optional, flags: 2, a: 951, b: 0, first: 0x4000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 1068, b: 4654, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 953, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 896, b: 3906, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 1066, b: 4648, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 957, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Sequence, flags: 0, a: 622, b: 6, first: 0x4000000404400008 },
    Node { op: Op::Rule, flags: 0, a: 132, b: 640, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 198, b: 960, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 201, b: 972, first: 0x2201040000800000 },
    Node { op: Op::Choice, flags: 0, a: 628, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 199, b: 963, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 630, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 966, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 967, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 969, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 632, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 958, b: 4140, first: 0x2201040000800000 },
    Node { op: Op::Rule, flags: 0, a: 197, b: 959, first: 0x4000000404400008 },
    Node { op: Op::Rule, flags: 0, a: 185, b: 843, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 635, b: 2, first: 0x4000000404400008 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 977, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 202, b: 975, first: 0x4000000404400008 },
    Node { op: Op::Rule, flags: 0, a: 153, b: 715, first: 0x0800000000000000 },
    Node { op: Op::Optional, flags: 2, a: 981, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 637, b: 5, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 443, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 985, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 975, b: 4197, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 976, b: 4201, first: 0x0000006000001000 },
    Node { op: Op::Rule, flags: 0, a: 969, b: 4186, first: 0x0020000800000040 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 724, b: 3198, first: 0x4000000000000000 },
    Node { op: Op::Optional, flags: 2, a: 992, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 354, b: 1664, first: 0x0000400000000000 },
    Node { op: Op::Optional, flags: 2, a: 994, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 967, b: 4173, first: 0x0020000c00080040 },
    Node { op: Op::Sequence, flags: 0, a: 642, b: 10, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 296, b: 1420, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 297, b: 1434, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 206, b: 1002, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 652, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 451, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1004, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 205, b: 1001, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 655, b: 5, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 193, b: 923, first: 0x0000020000000000 },
    Node { op: Op::Optional, flags: 2, a: 1010, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 190, b: 908, first: 0x0800000000000000 },
    Node { op: Op::Optional, flags: 2, a: 1012, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 482, b: 0, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 429, b: 1960, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1015, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 454, b: 2046, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1018, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1068, b: 4654, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 1020, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Sequence, flags: 0, a: 660, b: 9, first: 0x0800020001000000 },
    Node { op: Op::Keyword, flags: 0, a: 83, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Keyword, flags: 0, a: 84, b: 0, first: 0x0000000100000000 },
    Node { op: Op::Keyword, flags: 0, a: 85, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 211, b: 1027, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 774, b: 3388, first: 0x0000000008000000 },
    Node { op: Op::Choice, flags: 0, a: 669, b: 2, first: 0x0000000208000000 },
    Node { op: Op::Rule, flags: 0, a: 212, b: 1030, first: 0x0000000208000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 671, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1034, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1035, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1037, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 673, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 1039, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 676, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 679, b: 2, first: 0x0000000208000000 },
    Node { op: Op::Keyword, flags: 0, a: 90, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 92, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Keyword, flags: 0, a: 93, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Choice, flags: 0, a: 681, b: 2, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 216, b: 1049, first: 0x0000030000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 418, b: 1919, first: 0x0000000000001800 },
    Node { op: Op::Sequence, flags: 0, a: 683, b: 3, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 216, b: 1049, first: 0x0000030000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 557, b: 2562, first: 0x0000000018000000 },
    Node { op: Op::Sequence, flags: 0, a: 686, b: 3, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 216, b: 1049, first: 0x0000030000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 803, b: 3490, first: 0x000000c000000000 },
    Node { op: Op::Sequence, flags: 0, a: 689, b: 3, first: 0x0000030000000000 },
    Node { op: Op::Keyword, flags: 0, a: 323, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Keyword, flags: 0, a: 94, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 220, b: 1062, first: 0x0000008000000000 },
    Node { op: Op::Optional, flags: 2, a: 1064, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 692, b: 3, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 95, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 994, b: 4295, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1069, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 695, b: 2, first: 0x0000080000000000 },
    Node { op: Op::Keyword, flags: 0, a: 96, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 97, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Choice, flags: 0, a: 697, b: 2, first: 0x0000300000000000 },
    Node { op: Op::Rule, flags: 0, a: 352, b: 1660, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 225, b: 1083, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 222, b: 1071, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 607, b: 2753, first: 0x0010000000000000 },
    Node { op: Op::Choice, flags: 0, a: 699, b: 4, first: 0x0010580000000000 },
    Node { op: Op::Keyword, flags: 0, a: 98, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 994, b: 4295, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1081, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 703, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 228, b: 1092, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 229, b: 1093, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Rule, flags: 0, a: 584, b: 2689, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 227, b: 1091, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 705, b: 6, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 757, b: 3343, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 601, b: 2736, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 131, b: 629, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 711, b: 2, first: 0x0001000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 473, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Sequence, flags: 0, a: 713, b: 2, first: 0x0001000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 105, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 501, b: 2296, first: 0x0004040000100000 },
    Node { op: Op::Sequence, flags: 0, a: 715, b: 3, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 105, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 105, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1065, b: 4645, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 1107, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 105, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 944, b: 4104, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 237, b: 1128, first: 0x0000000000000200 },
    Node { op: Op::Optional, flags: 2, a: 1112, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 1053, b: 4574, first: 0x0000000080000000 },
    Node { op: Op::Optional, flags: 2, a: 1114, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 771, b: 3379, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 1116, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 718, b: 7, first: 0x0020000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 725, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1122, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1123, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1125, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 727, b: 3, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 730, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 106, b: 0, first: 0x0040000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 1130, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 732, b: 3, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 241, b: 1140, first: 0x0200000000000001 },
    Node { op: Op::Rule, flags: 0, a: 40, b: 221, first: 0x0000000008000001 },
    Node { op: Op::Choice, flags: 0, a: 735, b: 2, first: 0x0200000008000001 },
    Node { op: Op::Keyword, flags: 0, a: 109, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 109, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 110, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Choice, flags: 0, a: 737, b: 2, first: 0x0200000000000001 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 245, b: 1149, first: 0x0a00000000200000 },
    Node { op: Op::Rule, flags: 0, a: 250, b: 1166, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 1143, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 739, b: 2, first: 0x0a00000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 111, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 246, b: 1152, first: 0x0a00000000000000 },
    Node { op: Op::Rule, flags: 0, a: 919, b: 3980, first: 0x0000000000200000 },
    Node { op: Op::Choice, flags: 0, a: 741, b: 2, first: 0x0a00000000200000 },
    Node { op: Op::Rule, flags: 0, a: 244, b: 1146, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 240, b: 1137, first: 0x0200000000000000 },
    Node { op: Op::Choice, flags: 0, a: 743, b: 2, first: 0x0a00000000000000 },
    Node { op: Op::Rule, flags: 0, a: 245, b: 1149, first: 0x0a00000000200000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Sequence, flags: 0, a: 745, b: 2, first: 0x0a00000000200000 },
    Node { op: Op::Rule, flags: 0, a: 865, b: 3705, first: 0x0a40000000000000 },
    Node { op: Op::Rule, flags: 0, a: 859, b: 3684, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 247, b: 1155, first: 0x0a00000000200000 },
    Node { op: Op::Rule, flags: 0, a: 856, b: 3676, first: 0x0a40000000000000 },
    Node { op: Op::Rule, flags: 0, a: 857, b: 3680, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 243, b: 1145, first: 0x0a00000000200000 },
    Node { op: Op::Choice, flags: 0, a: 747, b: 6, first: 0x0a40000000200000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 242, b: 1141, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 249, b: 1163, first: 0x0000000000000004 },
    Node { op: Op::Choice, flags: 0, a: 753, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 112, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 147, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Keyword, flags: 0, a: 358, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 755, b: 4, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 113, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 214, b: 1045, first: 0x0000004000000000 },
    Node { op: Op::Optional, flags: 2, a: 1173, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1175, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 91, b: 437, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 759, b: 4, first: 0x2000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 117, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 571, b: 2623, first: 0x0000000000000100 },
    Node { op: Op::Rule, flags: 0, a: 577, b: 2661, first: 0x0100000000000000 },
    Node { op: Op::Choice, flags: 0, a: 763, b: 2, first: 0x0100000000000100 },
    Node { op: Op::Keyword, flags: 0, a: 9, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 258, b: 1191, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 255, b: 1183, first: 0x0000000000008000 },
    Node { op: Op::Choice, flags: 0, a: 765, b: 2, first: 0x0000000000008200 },
    Node { op: Op::Keyword, flags: 0, a: 119, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 119, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 259, b: 1204, first: 0x0800000000000000 },
    Node { op: Op::Optional, flags: 2, a: 1189, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 767, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 769, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1195, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1196, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1198, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 771, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 774, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 777, b: 2, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 257, b: 1187, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 9, b: 41, first: 0x0000000000008000 },
    Node { op: Op::Choice, flags: 0, a: 779, b: 2, first: 0x0000000000008200 },
    Node { op: Op::Keyword, flags: 0, a: 120, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 271, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Sequence, flags: 0, a: 781, b: 2, first: 0x0000000000000400 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 119, b: 584, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 783, b: 2, first: 0x000000000000000a },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 119, b: 584, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 785, b: 2, first: 0x000000000000000a },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 787, b: 2, first: 0x000000000000000a },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 548, b: 2527, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 789, b: 2, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 265, b: 1222, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 263, b: 1216, first: 0x000000000000000a },
    Node { op: Op::Choice, flags: 0, a: 791, b: 2, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 262, b: 1213, first: 0x000000000000000a },
    Node { op: Op::Repeat, flags: 0, a: 1227, b: 0, first: 0x000000000000000a },
    Node { op: Op::Optional, flags: 2, a: 1228, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 793, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 267, b: 1230, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 123, b: 0, first: 0x0000000000002000 },
    Node { op: Op::Keyword, flags: 0, a: 321, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Sequence, flags: 0, a: 795, b: 2, first: 0x0000000000002000 },
    Node { op: Op::Rule, flags: 0, a: 81, b: 401, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 768, b: 3370, first: 0x0000000000100000 },
    Node { op: Op::Choice, flags: 0, a: 797, b: 2, first: 0x0004000000100000 },
    Node { op: Op::Keyword, flags: 0, a: 62, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1239, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 126, b: 601, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 799, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1243, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1244, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1246, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 801, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 804, b: 3, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 124, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 63, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Optional, flags: 2, a: 1251, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1253, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 581, b: 2678, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 270, b: 1237, first: 0x0004000000100000 },
    Node { op: Op::Optional, flags: 2, a: 1256, b: 0, first: 0x0004000000100000 },
    Node { op: Op::Sequence, flags: 0, a: 807, b: 5, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 124, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 75, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1261, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 270, b: 1237, first: 0x0004000000100000 },
    Node { op: Op::Optional, flags: 2, a: 1264, b: 0, first: 0x0004000000100000 },
    Node { op: Op::Sequence, flags: 0, a: 812, b: 5, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 124, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 817, b: 2, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 286, b: 1368, first: 0x0000000003020000 },
    Node { op: Op::Rule, flags: 0, a: 287, b: 1380, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 277, b: 1299, first: 0x0020000000001000 },
    Node { op: Op::Rule, flags: 0, a: 281, b: 1327, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 278, b: 1311, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 284, b: 1351, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 271, b: 1249, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 289, b: 1399, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 282, b: 1336, first: 0x0000010144000000 },
    Node { op: Op::Rule, flags: 0, a: 288, b: 1387, first: 0x0000080000000000 },
    Node { op: Op::Choice, flags: 0, a: 819, b: 10, first: 0x0028290347021400 },
    Node { op: Op::Keyword, flags: 0, a: 124, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 145, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Keyword, flags: 0, a: 356, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1284, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 829, b: 5, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 390, b: 1803, first: 0x0020000000001000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1289, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 385, b: 1796, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 834, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1293, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1294, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1296, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 836, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 839, b: 3, first: 0x0020000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 193, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1301, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 703, b: 3128, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 842, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1305, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1306, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1308, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 844, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 847, b: 3, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 124, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 279, b: 1312, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 837, b: 3603, first: 0x0004000000000000 },
    Node { op: Op::Choice, flags: 0, a: 850, b: 2, first: 0x0004000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 375, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1317, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 852, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1321, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1322, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1324, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 854, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 857, b: 3, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 946, b: 4109, first: 0x0000000144000000 },
    Node { op: Op::Optional, flags: 2, a: 1328, b: 0, first: 0x0000000144000000 },
    Node { op: Op::Keyword, flags: 0, a: 382, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1331, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 804, b: 3491, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 283, b: 1339, first: 0x0008000000000000 },
    Node { op: Op::Optional, flags: 2, a: 1334, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 860, b: 5, first: 0x0000010144000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 865, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 387, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1341, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 708, b: 3150, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 867, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1345, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1346, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1348, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 869, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 872, b: 3, first: 0x0000200000000000 },
    Node { op: Op::Keyword, flags: 0, a: 124, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 275, b: 1280, first: 0x0028290347021400 },
    Node { op: Op::Rule, flags: 0, a: 270, b: 1237, first: 0x0004000000100000 },
    Node { op: Op::Optional, flags: 2, a: 1354, b: 0, first: 0x0004000000100000 },
    Node { op: Op::Sequence, flags: 0, a: 875, b: 3, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 932, b: 4037, first: 0x0000000003020000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1358, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 878, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1362, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1363, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1365, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 880, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 883, b: 3, first: 0x0000000003020000 },
    Node { op: Op::Rule, flags: 0, a: 144, b: 683, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1370, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 929, b: 4029, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 886, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1374, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1375, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1377, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 888, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 891, b: 3, first: 0x0000000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 443, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1382, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 975, b: 4197, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 894, b: 5, first: 0x0000080000000000 },
    Node { op: Op::Keyword, flags: 0, a: 451, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 428, b: 1956, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 1389, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 712, b: 3168, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 899, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1393, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1394, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1396, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 901, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 904, b: 3, first: 0x0008000000000000 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 907, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 128, b: 0, first: 0x0000000000040000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 909, b: 2, first: 0x0000000000040000 },
    Node { op: Op::EndOfInput, flags: 0, a: 0, b: 0, first: 0x0000000000000020 },
    Node { op: Op::Symbol, flags: 0, a: 48, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 295, b: 1414, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 1408, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 911, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 29, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 294, b: 1411, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 913, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 131, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 915, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 918, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 131, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 920, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1424, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1425, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1427, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 922, b: 3, first: 0x0000000000000004 },
    Node { op: Op::Optional, flags: 2, a: 1429, b: 0, first: 0x0000000000000004 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 925, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 928, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 132, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 1436, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 930, b: 2, first: 0x0000000000400000 },
    Node { op: Op::Keyword, flags: 0, a: 133, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 1440, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 932, b: 3, first: 0x0000000000800000 },
    Node { op: Op::Keyword, flags: 0, a: 133, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 156, b: 727, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 935, b: 2, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 86, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 370, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Sequence, flags: 0, a: 937, b: 2, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 267, b: 1230, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 171, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 312, b: 1482, first: 0x000000000c000000 },
    Node { op: Op::Rule, flags: 0, a: 309, b: 1473, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 939, b: 2, first: 0x000000000c000000 },
    Node { op: Op::Rule, flags: 0, a: 303, b: 1451, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 301, b: 1447, first: 0xffffffffffffffc5 },
    Node { op: Op::Choice, flags: 0, a: 941, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 306, b: 1458, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 943, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1461, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1462, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1464, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 945, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 948, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 306, b: 1458, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 307, b: 1469, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 308, b: 1470, first: 0xffffffffffffffc5 },
    Node { op: Op::Choice, flags: 0, a: 951, b: 2, first: 0xffffffffffffffcd },
    Node { op: Op::Keyword, flags: 0, a: 268, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 293, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Sequence, flags: 0, a: 953, b: 2, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 137, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Keyword, flags: 0, a: 277, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 955, b: 2, first: 0x0000000008000000 },
    Node { op: Op::Keyword, flags: 0, a: 137, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Keyword, flags: 0, a: 136, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Choice, flags: 0, a: 957, b: 2, first: 0x000000000c000000 },
    Node { op: Op::Keyword, flags: 0, a: 435, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Keyword, flags: 0, a: 140, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 927, b: 4019, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1486, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 959, b: 3, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 317, b: 1508, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 1490, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 962, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 315, b: 1492, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 964, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1495, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1496, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1498, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 966, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 969, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 23, b: 134, first: 0x0000000000180000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 379, b: 1757, first: 0x2a94b436a9452c00 },
    Node { op: Op::Rule, flags: 0, a: 997, b: 4298, first: 0x2a96f436a9453c00 },
    Node { op: Op::Choice, flags: 0, a: 972, b: 4, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Keyword, flags: 0, a: 142, b: 0, first: 0x0000000100000000 },
    Node { op: Op::Rule, flags: 0, a: 23, b: 134, first: 0x0000000000180000 },
    Node { op: Op::Optional, flags: 2, a: 1511, b: 0, first: 0x0000000000180000 },
    Node { op: Op::Rule, flags: 0, a: 316, b: 1503, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1513, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 320, b: 1538, first: 0x4a6d8c8c7e3ac648 },
    Node { op: Op::Sequence, flags: 0, a: 976, b: 4, first: 0x0000000100000000 },
    Node { op: Op::Rule, flags: 0, a: 17, b: 84, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 24, b: 140, first: 0x0000000000180000 },
    Node { op: Op::Rule, flags: 0, a: 80, b: 400, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 107, b: 520, first: 0x4000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 181, b: 820, first: 0x0000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 195, b: 938, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 221, b: 1067, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 236, b: 1118, first: 0x0020000400000000 },
    Node { op: Op::Rule, flags: 0, a: 285, b: 1356, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 314, b: 1488, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 460, b: 2080, first: 0x0000000c00000000 },
    Node { op: Op::Rule, flags: 0, a: 522, b: 2404, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 545, b: 2518, first: 0x0000000400080000 },
    Node { op: Op::Rule, flags: 0, a: 693, b: 3093, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 698, b: 3114, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 318, b: 1509, first: 0x4a4808043a208008 },
    Node { op: Op::Rule, flags: 0, a: 964, b: 4166, first: 0x0000008004108240 },
    Node { op: Op::Rule, flags: 0, a: 1027, b: 4442, first: 0x0000000400000040 },
    Node { op: Op::Rule, flags: 0, a: 1040, b: 4520, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 844, b: 3641, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 766, b: 3366, first: 0x0000000000008000 },
    Node { op: Op::Choice, flags: 0, a: 980, b: 21, first: 0x4a6d8c8c7e3ac648 },
    Node { op: Op::Symbol, flags: 0, a: 33, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 25, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1001, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 123, b: 596, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 323, b: 1549, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1543, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1544, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1003, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 321, b: 1541, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 123, b: 596, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1005, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 144, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 91, b: 437, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1007, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 143, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Keyword, flags: 0, a: 90, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 325, b: 1553, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 1556, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 397, b: 1837, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1559, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1009, b: 5, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 503, b: 2306, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 115, b: 560, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 329, b: 1570, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1014, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 121, b: 588, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 1017, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 1572, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1020, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 328, b: 1566, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1022, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1577, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1578, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1580, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1024, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1027, b: 2, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 186, b: 855, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 276, b: 1287, first: 0x0000000000004000 },
    Node { op: Op::Choice, flags: 0, a: 1029, b: 2, first: 0x0000000040004000 },
    Node { op: Op::Rule, flags: 0, a: 397, b: 1837, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 187, b: 864, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 730, b: 3222, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 251, b: 1171, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 860, b: 3690, first: 0x0040000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1031, b: 4, first: 0x0040000040000001 },
    Node { op: Op::Rule, flags: 0, a: 339, b: 1617, first: 0x01b833c1bfe01800 },
    Node { op: Op::Rule, flags: 0, a: 341, b: 1624, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 342, b: 1625, first: 0x0000000000000004 },
    Node { op: Op::Choice, flags: 0, a: 1035, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 336, b: 1598, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1038, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 1079, b: 4691, first: 0x0030000000000000 },
    Node { op: Op::Rule, flags: 0, a: 559, b: 2569, first: 0x0000000180000000 },
    Node { op: Op::Rule, flags: 0, a: 216, b: 1049, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 418, b: 1919, first: 0x0000000000001800 },
    Node { op: Op::Rule, flags: 0, a: 557, b: 2562, first: 0x0000000018000000 },
    Node { op: Op::Rule, flags: 0, a: 803, b: 3490, first: 0x000000c000000000 },
    Node { op: Op::Rule, flags: 0, a: 554, b: 2557, first: 0x0000000006000000 },
    Node { op: Op::Rule, flags: 0, a: 552, b: 2551, first: 0x0000000000600000 },
    Node { op: Op::Rule, flags: 0, a: 1052, b: 4571, first: 0x0000000030000000 },
    Node { op: Op::Rule, flags: 0, a: 714, b: 3174, first: 0x0018000000000000 },
    Node { op: Op::Rule, flags: 0, a: 223, b: 1074, first: 0x0000300000000000 },
    Node { op: Op::Rule, flags: 0, a: 101, b: 475, first: 0x0180000000000000 },
    Node { op: Op::Rule, flags: 0, a: 553, b: 2554, first: 0x0000000001800000 },
    Node { op: Op::Choice, flags: 0, a: 1041, b: 13, first: 0x01b833c1bfe01800 },
    Node { op: Op::Rule, flags: 0, a: 338, b: 1616, first: 0x01b833c1bfe01800 },
    Node { op: Op::Keyword, flags: 0, a: 148, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 337, b: 1602, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1054, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1057, b: 2, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Symbol, flags: 0, a: 30, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 31, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 24, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 32, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1059, b: 4, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 149, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Keyword, flags: 0, a: 151, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 351, b: 1653, first: 0x00000a0000000000 },
    Node { op: Op::Rule, flags: 0, a: 347, b: 1639, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 776, b: 3405, first: 0x0000000030000000 },
    Node { op: Op::Keyword, flags: 0, a: 286, b: 0, first: 0x1000000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1063, b: 5, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 345, b: 1637, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 152, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 350, b: 1650, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1068, b: 2, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 489, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Optional, flags: 2, a: 1643, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1070, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 349, b: 1646, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1072, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 153, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Keyword, flags: 0, a: 267, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Choice, flags: 0, a: 1075, b: 2, first: 0x00000a0000000000 },
    Node { op: Op::Keyword, flags: 0, a: 154, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1077, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1658, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1080, b: 2, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 155, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 355, b: 1668, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 356, b: 1672, first: 0x0000400000000000 },
    Node { op: Op::Choice, flags: 0, a: 1082, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 156, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 125, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 370, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Sequence, flags: 0, a: 1084, b: 3, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 156, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 125, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 410, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Sequence, flags: 0, a: 1087, b: 3, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 156, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1090, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 157, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 358, b: 1676, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 1678, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 275, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 134, b: 659, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1092, b: 4, first: 0x0000800000000000 },
    Node { op: Op::Keyword, flags: 0, a: 157, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 360, b: 1683, first: 0x0000800000000000 },
    Node { op: Op::Optional, flags: 2, a: 1684, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Keyword, flags: 0, a: 337, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 894, b: 3866, first: 0xffffffffffffffc9 },
    Node { op: Op::Sequence, flags: 0, a: 1096, b: 3, first: 0x0020800000000000 },
    Node { op: Op::Keyword, flags: 0, a: 345, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 134, b: 659, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1099, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1694, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 2, a: 502, b: 2301, first: 0x0800000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1102, b: 4, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 368, b: 1718, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 365, b: 1709, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 366, b: 1712, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1106, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 369, b: 1722, first: 0x0040000020000040 },
    Node { op: Op::Rule, flags: 0, a: 367, b: 1715, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 1056, b: 4591, first: 0x0000000008000000 },
    Node { op: Op::Optional, flags: 2, a: 1704, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Sequence, flags: 0, a: 1109, b: 3, first: 0x0040000020000040 },
    Node { op: Op::Keyword, flags: 0, a: 86, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 370, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Sequence, flags: 0, a: 1112, b: 2, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 695, b: 3097, first: 0x0000201000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1114, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 60, b: 314, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 875, b: 3771, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1116, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 453, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 695, b: 3097, first: 0x0000201000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1118, b: 2, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 779, b: 3413, first: 0x0000000020000000 },
    Node { op: Op::Rule, flags: 0, a: 717, b: 3183, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 415, b: 1912, first: 0x0000000000000040 },
    Node { op: Op::Choice, flags: 0, a: 1120, b: 3, first: 0x0040000020000040 },
    Node { op: Op::Keyword, flags: 0, a: 160, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1123, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1727, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1728, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1730, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1125, b: 3, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 1128, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1130, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 170, b: 768, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 183, b: 829, first: 0x0000004000000000 },
    Node { op: Op::Choice, flags: 0, a: 1132, b: 2, first: 0x0008004000000000 },
    Node { op: Op::Rule, flags: 0, a: 371, b: 1733, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 807, b: 3503, first: 0x0000080000000000 },
    Node { op: Op::Optional, flags: 2, a: 1741, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1134, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 376, b: 1749, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 377, b: 1752, first: 0x0008000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1136, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1138, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 1140, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 162, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 295, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Optional, flags: 2, a: 1754, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Sequence, flags: 0, a: 1142, b: 2, first: 0x0010000000000000 },
    Node { op: Op::KeywordClass, flags: 0, a: 8, b: 0, first: 0x2a94b436a9452c00 },
    Node { op: Op::Rule, flags: 0, a: 563, b: 2589, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 685, b: 3065, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1144, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 380, b: 1760, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1146, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1763, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1764, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1766, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1148, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 385, b: 1796, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 384, b: 1792, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1076, b: 4686, first: 0x0000000800000000 },
    Node { op: Op::Optional, flags: 2, a: 1771, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 348, b: 1642, first: 0x0000040000000000 },
    Node { op: Op::Optional, flags: 2, a: 1773, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 324, b: 1550, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 1775, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 647, b: 2880, first: 0x0000000000001000 },
    Node { op: Op::Optional, flags: 2, a: 1777, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Sequence, flags: 0, a: 1151, b: 6, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 260, b: 1207, first: 0x0000000000008200 },
    Node { op: Op::Optional, flags: 2, a: 1780, b: 0, first: 0x0000000000008200 },
    Node { op: Op::Rule, flags: 0, a: 381, b: 1768, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 1782, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 639, b: 2844, first: 0x0000000000000080 },
    Node { op: Op::Optional, flags: 2, a: 1784, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 431, b: 1966, first: 0x0000000000048000 },
    Node { op: Op::Optional, flags: 2, a: 1786, b: 0, first: 0x0000000000048000 },
    Node { op: Op::Sequence, flags: 2, a: 1157, b: 4, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 2, a: 383, b: 1788, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1161, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 94, b: 447, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 797, b: 3471, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 388, b: 1799, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 1164, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 163, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::ScalarFunctionName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 387, b: 1798, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 163, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 391, b: 1804, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 389, b: 1800, first: 0x0020000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1167, b: 2, first: 0x0020000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 238, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 165, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Rule, flags: 0, a: 22, b: 131, first: 0x0000400000040000 },
    Node { op: Op::Optional, flags: 2, a: 1806, b: 0, first: 0x0000400000040000 },
    Node { op: Op::Sequence, flags: 0, a: 1169, b: 2, first: 0x0080000000000000 },
    Node { op: Op::Rule, flags: 0, a: 392, b: 1808, first: 0x0080000000000000 },
    Node { op: Op::Optional, flags: 2, a: 1809, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1171, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 394, b: 1821, first: 0x0000000004008000 },
    Node { op: Op::Optional, flags: 2, a: 1816, b: 0, first: 0x0000000004008000 },
    Node { op: Op::Sequence, flags: 0, a: 1174, b: 4, first: 0x0080000004000000 },
    Node { op: Op::Rule, flags: 0, a: 1051, b: 4568, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 898, b: 3911, first: 0x0000000000008000 },
    Node { op: Op::Choice, flags: 0, a: 1178, b: 2, first: 0x0000000004008000 },
    Node { op: Op::Rule, flags: 0, a: 177, b: 803, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 400, b: 1845, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 1823, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1180, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 395, b: 1825, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1182, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1829, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1830, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1832, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1184, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1187, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 399, b: 1842, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 642, b: 2863, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1190, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 398, b: 1838, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 396, b: 1826, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1193, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 166, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1195, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1850, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1198, b: 2, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 167, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Symbol, flags: 0, a: 9, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1200, b: 2, first: 0x0200000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 168, b: 0, first: 0x0400000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 9, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 171, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 408, b: 1870, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1202, b: 3, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 290, b: 1402, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 213, b: 1044, first: 0x0000000208000000 },
    Node { op: Op::Rule, flags: 0, a: 414, b: 1911, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 405, b: 1858, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1205, b: 4, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 409, b: 1878, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 404, b: 1857, first: 0x0000000000008000 },
    Node { op: Op::Choice, flags: 0, a: 1209, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 407, b: 1867, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1211, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1873, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1874, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1876, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1213, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 413, b: 1897, first: 0xc000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1216, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1882, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1883, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1885, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1218, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 1887, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1221, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1224, b: 2, first: 0xc000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 173, b: 0, first: 0x8000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 172, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 412, b: 1894, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 411, b: 1893, first: 0x8000000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1226, b: 2, first: 0xc000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 172, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 394, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 407, b: 1867, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1228, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1902, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1903, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1905, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1230, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1233, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1236, b: 3, first: 0x4000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 174, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 176, b: 0, first: 0x0000000000000100 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1239, b: 2, first: 0x0000000000000100 },
    Node { op: Op::Keyword, flags: 0, a: 177, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 179, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Keyword, flags: 0, a: 180, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Choice, flags: 0, a: 1241, b: 2, first: 0x0000000000001800 },
    Node { op: Op::Rule, flags: 0, a: 418, b: 1919, first: 0x0000000000001800 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 557, b: 2562, first: 0x0000000018000000 },
    Node { op: Op::Sequence, flags: 0, a: 1243, b: 3, first: 0x0000000000001800 },
    Node { op: Op::Rule, flags: 0, a: 418, b: 1919, first: 0x0000000000001800 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 803, b: 3490, first: 0x000000c000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1246, b: 3, first: 0x0000000000001800 },
    Node { op: Op::Keyword, flags: 0, a: 184, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Symbol, flags: 0, a: 8, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1249, b: 2, first: 0x0000000000010008 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::Variable as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1251, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 1254, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1256, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1941, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1942, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1944, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1258, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1261, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Choice, flags: 0, a: 1264, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 182, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 141, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Sequence, flags: 0, a: 1266, b: 2, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 182, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 141, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Sequence, flags: 0, a: 1268, b: 3, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 183, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 277, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1271, b: 2, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 430, b: 1963, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 767, b: 3369, first: 0x0000000000040000 },
    Node { op: Op::Choice, flags: 0, a: 1273, b: 2, first: 0x0000000000048000 },
    Node { op: Op::Keyword, flags: 0, a: 188, b: 0, first: 0x0000000000100000 },
    Node { op: Op::Keyword, flags: 0, a: 90, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 1275, b: 3, first: 0x0000000000100000 },
    Node { op: Op::Keyword, flags: 0, a: 189, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 435, b: 1978, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1278, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 645, b: 2874, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 436, b: 1989, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 437, b: 1993, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 434, b: 1974, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1280, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1283, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 1981, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1982, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 1984, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1285, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1288, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1291, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 190, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Keyword, flags: 0, a: 277, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1294, b: 2, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 438, b: 1996, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 311, b: 1479, first: 0x0000000008000000 },
    Node { op: Op::Choice, flags: 0, a: 1296, b: 2, first: 0x0000000008400000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 239, b: 1136, first: 0x0200000008000001 },
    Node { op: Op::Optional, flags: 2, a: 2001, b: 0, first: 0x0200000008000001 },
    Node { op: Op::Rule, flags: 0, a: 603, b: 2742, first: 0x0008000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2003, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1298, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::Variable as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1301, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 89, b: 433, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 266, b: 1225, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 880, b: 3790, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 687, b: 3067, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1303, b: 4, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 443, b: 2014, first: 0x000000000000000a },
    Node { op: Op::Repeat, flags: 0, a: 2015, b: 0, first: 0x000000000000000a },
    Node { op: Op::Symbol, flags: 0, a: 3, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 4, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1307, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 199, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 1044, b: 4550, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 925, b: 3999, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 940, b: 4075, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 55, b: 294, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 655, b: 2928, first: 0xffffffffffffffcd },
    Node { op: Op::Choice, flags: 0, a: 1309, b: 5, first: 0xffffffffffffffcd },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1314, b: 2, first: 0x0000000004000000 },
    Node { op: Op::Keyword, flags: 0, a: 260, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 73, b: 376, first: 0x0000400000000000 },
    Node { op: Op::Optional, flags: 2, a: 2031, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Symbol, flags: 0, a: 30, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2033, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 2, a: 1316, b: 2, first: 0x0000400000000008 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 449, b: 2030, first: 0x0000000400000000 },
    Node { op: Op::Sequence, flags: 0, a: 1318, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 317, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 452, b: 2039, first: 0x0000000200000000 },
    Node { op: Op::Sequence, flags: 0, a: 1320, b: 2, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 134, b: 659, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1322, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 473, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Sequence, flags: 0, a: 1325, b: 2, first: 0x0001000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 203, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 2, a: 457, b: 2057, first: 0x0001400000008008 },
    Node { op: Op::Optional, flags: 2, a: 2051, b: 0, first: 0x0001400000008008 },
    Node { op: Op::Sequence, flags: 0, a: 1327, b: 2, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 463, b: 2102, first: 0x0000000000008008 },
    Node { op: Op::Rule, flags: 0, a: 455, b: 2049, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 2, a: 450, b: 2035, first: 0x0000400000000008 },
    Node { op: Op::Choice, flags: 2, a: 1329, b: 3, first: 0x0001400000008008 },
    Node { op: Op::Keyword, flags: 0, a: 290, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 183, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Sequence, flags: 0, a: 1332, b: 2, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 290, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 354, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Sequence, flags: 0, a: 1334, b: 2, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 1065, b: 4645, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 2064, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 203, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 636, b: 2831, first: 0x0000000000000040 },
    Node { op: Op::Optional, flags: 2, a: 2067, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 210, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 461, b: 2084, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 73, b: 376, first: 0x0000400000000000 },
    Node { op: Op::Optional, flags: 2, a: 2071, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 454, b: 2046, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2073, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 462, b: 2087, first: 0x4a4908043a208008 },
    Node { op: Op::Rule, flags: 0, a: 617, b: 2786, first: 0x0800000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2076, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 771, b: 3379, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 2078, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 1336, b: 10, first: 0x0000000c00000000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 448, b: 2029, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 2082, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Sequence, flags: 0, a: 1346, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 810, b: 3511, first: 0x4a4808043a208008 },
    Node { op: Op::Rule, flags: 0, a: 232, b: 1100, first: 0x0001000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1348, b: 2, first: 0x4a4908043a208008 },
    Node { op: Op::Rule, flags: 0, a: 454, b: 2046, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2088, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 473, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1350, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2093, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2094, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2096, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1352, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1355, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1358, b: 3, first: 0x0000000000008008 },
    Node { op: Op::Keyword, flags: 0, a: 15, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 232, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Sequence, flags: 0, a: 1361, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 157, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Optional, flags: 2, a: 2106, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Keyword, flags: 0, a: 204, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 464, b: 2105, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 2109, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 426, b: 1952, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 375, b: 1746, first: 0x0008000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2112, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1050, b: 4567, first: 0x0000000000800000 },
    Node { op: Op::Optional, flags: 2, a: 2114, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Sequence, flags: 0, a: 1363, b: 6, first: 0x0000801000000000 },
    Node { op: Op::Keyword, flags: 0, a: 206, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Keyword, flags: 0, a: 207, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 806, b: 3497, first: 0x4a4808003a208008 },
    Node { op: Op::Rule, flags: 0, a: 469, b: 2126, first: 0x0000010000000000 },
    Node { op: Op::Repeat, flags: 0, a: 2120, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Optional, flags: 2, a: 2121, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1369, b: 2, first: 0x4a4808003a208008 },
    Node { op: Op::Rule, flags: 0, a: 835, b: 3599, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 806, b: 3497, first: 0x4a4808003a208008 },
    Node { op: Op::Sequence, flags: 0, a: 1371, b: 2, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 476, b: 2168, first: 0x0030030018001800 },
    Node { op: Op::Rule, flags: 0, a: 1079, b: 4691, first: 0x0030000000000000 },
    Node { op: Op::Rule, flags: 0, a: 559, b: 2569, first: 0x0000000180000000 },
    Node { op: Op::Rule, flags: 0, a: 216, b: 1049, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 418, b: 1919, first: 0x0000000000001800 },
    Node { op: Op::Rule, flags: 0, a: 557, b: 2562, first: 0x0000000018000000 },
    Node { op: Op::Rule, flags: 0, a: 803, b: 3490, first: 0x000000c000000000 },
    Node { op: Op::Rule, flags: 0, a: 554, b: 2557, first: 0x0000000006000000 },
    Node { op: Op::Rule, flags: 0, a: 552, b: 2551, first: 0x0000000000600000 },
    Node { op: Op::Rule, flags: 0, a: 1052, b: 4571, first: 0x0000000030000000 },
    Node { op: Op::Rule, flags: 0, a: 714, b: 3174, first: 0x0018000000000000 },
    Node { op: Op::Rule, flags: 0, a: 223, b: 1074, first: 0x0000300000000000 },
    Node { op: Op::Rule, flags: 0, a: 101, b: 475, first: 0x0180000000000000 },
    Node { op: Op::Rule, flags: 0, a: 553, b: 2554, first: 0x0000000001800000 },
    Node { op: Op::Choice, flags: 0, a: 1373, b: 14, first: 0x01b833c1bfe01800 },
    Node { op: Op::Rule, flags: 0, a: 481, b: 2209, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 482, b: 2210, first: 0x0000020000000000 },
    Node { op: Op::Choice, flags: 0, a: 1387, b: 2, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 209, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 474, b: 2159, first: 0x000000000000000e },
    Node { op: Op::Rule, flags: 0, a: 470, b: 2141, first: 0x01b833c1bfe01800 },
    Node { op: Op::Optional, flags: 2, a: 2147, b: 0, first: 0x01b833c1bfe01800 },
    Node { op: Op::Sequence, flags: 0, a: 1389, b: 3, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 209, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1392, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1395, b: 2, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 475, b: 2160, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Rule, flags: 0, a: 653, b: 2913, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1397, b: 3, first: 0x000000000000000e },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 1080, b: 4695, first: 0x0030000000000000 },
    Node { op: Op::Rule, flags: 0, a: 217, b: 1053, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 218, b: 1057, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 219, b: 1061, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 419, b: 1923, first: 0x0000000000001800 },
    Node { op: Op::Rule, flags: 0, a: 420, b: 1927, first: 0x0000000000001800 },
    Node { op: Op::Rule, flags: 0, a: 558, b: 2566, first: 0x0000000018000000 },
    Node { op: Op::Choice, flags: 0, a: 1400, b: 7, first: 0x0030030018001800 },
    Node { op: Op::Rule, flags: 0, a: 1079, b: 4691, first: 0x0030000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 559, b: 2569, first: 0x0000000180000000 },
    Node { op: Op::Sequence, flags: 0, a: 1407, b: 3, first: 0x0030000000000000 },
    Node { op: Op::Rule, flags: 0, a: 216, b: 1049, first: 0x0000030000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 418, b: 1919, first: 0x0000000000001800 },
    Node { op: Op::Sequence, flags: 0, a: 1410, b: 3, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 216, b: 1049, first: 0x0000030000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 557, b: 2562, first: 0x0000000018000000 },
    Node { op: Op::Sequence, flags: 0, a: 1413, b: 3, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 216, b: 1049, first: 0x0000030000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 803, b: 3490, first: 0x000000c000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1416, b: 3, first: 0x0000030000000000 },
    Node { op: Op::Rule, flags: 0, a: 418, b: 1919, first: 0x0000000000001800 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 557, b: 2562, first: 0x0000000018000000 },
    Node { op: Op::Sequence, flags: 0, a: 1419, b: 3, first: 0x0000000000001800 },
    Node { op: Op::Rule, flags: 0, a: 418, b: 1919, first: 0x0000000000001800 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 803, b: 3490, first: 0x000000c000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1422, b: 3, first: 0x0000000000001800 },
    Node { op: Op::Rule, flags: 0, a: 557, b: 2562, first: 0x0000000018000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 803, b: 3490, first: 0x000000c000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1425, b: 3, first: 0x0000000018000000 },
    Node { op: Op::Choice, flags: 0, a: 1428, b: 7, first: 0x0030030018001800 },
    Node { op: Op::Rule, flags: 0, a: 471, b: 2144, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 473, b: 2155, first: 0x0000020000000000 },
    Node { op: Op::Choice, flags: 0, a: 1435, b: 2, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 209, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 477, b: 2197, first: 0x0030030018001800 },
    Node { op: Op::Sequence, flags: 0, a: 1437, b: 2, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 209, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 470, b: 2141, first: 0x01b833c1bfe01800 },
    Node { op: Op::Sequence, flags: 0, a: 1439, b: 2, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 479, b: 2203, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 480, b: 2206, first: 0x0000020000000000 },
    Node { op: Op::Choice, flags: 0, a: 1441, b: 2, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 209, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 210, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 260, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 1041, b: 4523, first: 0x000000000000c000 },
    Node { op: Op::Rule, flags: 0, a: 634, b: 2825, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 1443, b: 5, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 156, b: 727, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 486, b: 2230, first: 0x0000100000000000 },
    Node { op: Op::Repeat, flags: 0, a: 2218, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 2219, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1448, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 212, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 2223, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 119, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1450, b: 4, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 485, b: 2227, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 156, b: 727, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1454, b: 2, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 484, b: 2221, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 492, b: 2251, first: 0x0000b00000000000 },
    Node { op: Op::Repeat, flags: 0, a: 2232, b: 0, first: 0x0000b00000000000 },
    Node { op: Op::Optional, flags: 2, a: 2233, b: 0, first: 0x0000b00000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1456, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 212, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 2237, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 489, b: 2245, first: 0x0402208000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1458, b: 3, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 984, b: 4232, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 344, b: 1631, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 601, b: 2736, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1002, b: 4317, first: 0x0400000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1461, b: 4, first: 0x0402208000000000 },
    Node { op: Op::Rule, flags: 0, a: 491, b: 2247, first: 0x0000200000000000 },
    Node { op: Op::Keyword, flags: 0, a: 213, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 488, b: 2240, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 590, b: 2707, first: 0x0000900000000000 },
    Node { op: Op::Rule, flags: 0, a: 490, b: 2246, first: 0x0000200000000000 },
    Node { op: Op::Choice, flags: 0, a: 1465, b: 3, first: 0x0000b00000000000 },
    Node { op: Op::Keyword, flags: 0, a: 215, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 451, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 119, b: 584, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1468, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1470, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 497, b: 2278, first: 0x0800000000000200 },
    Node { op: Op::Sequence, flags: 0, a: 1473, b: 5, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 493, b: 2262, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 731, b: 3230, first: 0x08109000a1400000 },
    Node { op: Op::Rule, flags: 0, a: 499, b: 2289, first: 0x0000002480000000 },
    Node { op: Op::Rule, flags: 0, a: 575, b: 2653, first: 0x0810900081400000 },
    Node { op: Op::Choice, flags: 0, a: 1478, b: 4, first: 0x08109024a1400000 },
    Node { op: Op::Rule, flags: 0, a: 494, b: 2267, first: 0x08109024a1400000 },
    Node { op: Op::Rule, flags: 0, a: 933, b: 4045, first: 0x0000000008000000 },
    Node { op: Op::Rule, flags: 0, a: 941, b: 4085, first: 0x4000000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1482, b: 3, first: 0x48109024a9400000 },
    Node { op: Op::Rule, flags: 0, a: 209, b: 1025, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 567, b: 2609, first: 0x0000002000000000 },
    Node { op: Op::Rule, flags: 0, a: 686, b: 3066, first: 0x0000000400000000 },
    Node { op: Op::Choice, flags: 0, a: 1485, b: 3, first: 0x0000002480000000 },
    Node { op: Op::Rule, flags: 0, a: 615, b: 2777, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1032, b: 4472, first: 0x0000000000000200 },
    Node { op: Op::Choice, flags: 0, a: 1488, b: 2, first: 0x0800000000000200 },
    Node { op: Op::Rule, flags: 0, a: 378, b: 1756, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 506, b: 2323, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 772, b: 3383, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 817, b: 3538, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 29, b: 150, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 446, b: 2020, first: 0x0000000080000000 },
    Node { op: Op::Choice, flags: 0, a: 1490, b: 6, first: 0x0810100081400000 },
    Node { op: Op::Rule, flags: 0, a: 496, b: 2275, first: 0x0000002480000000 },
    Node { op: Op::Keyword, flags: 0, a: 215, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 447, b: 2026, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 1496, b: 3, first: 0x0000002480000000 },
    Node { op: Op::Symbol, flags: 0, a: 5, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 583, b: 2688, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 769, b: 3371, first: 0x0000000000100000 },
    Node { op: Op::Rule, flags: 0, a: 82, b: 402, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 836, b: 3602, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 834, b: 3595, first: 0x0004000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1499, b: 5, first: 0x0004040000100000 },
    Node { op: Op::Rule, flags: 0, a: 1013, b: 4362, first: 0x0800000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2297, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 233, b: 1104, first: 0x0800000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2299, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Sequence, flags: 2, a: 1504, b: 2, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 528, b: 2423, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 873, b: 3749, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2303, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2304, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1506, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 220, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1508, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2310, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2311, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2313, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1510, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 48, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1513, b: 4, first: 0x0010000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 224, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 227, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 295, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Optional, flags: 2, a: 2321, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Sequence, flags: 0, a: 1517, b: 2, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 509, b: 2342, first: 0x2280000000010008 },
    Node { op: Op::Rule, flags: 0, a: 645, b: 2874, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 300, b: 1446, first: 0x0000000000800000 },
    Node { op: Op::Optional, flags: 2, a: 2326, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Sequence, flags: 0, a: 1519, b: 3, first: 0x2280000000010008 },
    Node { op: Op::Keyword, flags: 0, a: 229, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Symbol, flags: 0, a: 27, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1522, b: 2, first: 0x2000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 867, b: 3713, first: 0x0080000000000000 },
    Node { op: Op::Rule, flags: 0, a: 728, b: 3212, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 729, b: 3213, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 421, b: 1930, first: 0x0000000000010008 },
    Node { op: Op::Rule, flags: 0, a: 508, b: 2331, first: 0x2000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 402, b: 1855, first: 0x0200000000000008 },
    Node { op: Op::Rule, flags: 0, a: 586, b: 2692, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 588, b: 2694, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 595, b: 2718, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 596, b: 2719, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1524, b: 10, first: 0x2280000000010008 },
    Node { op: Op::Keyword, flags: 0, a: 9, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 230, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 516, b: 2366, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1534, b: 2, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 32, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2348, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1536, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Keyword, flags: 0, a: 309, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Sequence, flags: 0, a: 1538, b: 2, first: 0x0000000000000002 },
    Node { op: Op::Rule, flags: 0, a: 515, b: 2362, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 610, b: 2762, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 611, b: 2766, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 346, b: 1638, first: 0x0000020000000000 },
    Node { op: Op::Choice, flags: 0, a: 1540, b: 4, first: 0x4100020000000000 },
    Node { op: Op::Rule, flags: 0, a: 511, b: 2346, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 609, b: 2759, first: 0x0100000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2360, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1544, b: 2, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 510, b: 2343, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 513, b: 2353, first: 0x0000000000000002 },
    Node { op: Op::Rule, flags: 0, a: 512, b: 2350, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1546, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 44, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 156, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1549, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2372, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2373, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2375, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1551, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 189, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 518, b: 2386, first: 0x0000000000004000 },
    Node { op: Op::Optional, flags: 2, a: 2380, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Symbol, flags: 0, a: 45, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1554, b: 8, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 182, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1562, b: 2, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 35, b: 204, first: 0x0000000002000008 },
    Node { op: Op::Rule, flags: 0, a: 39, b: 218, first: 0x0000000002000000 },
    Node { op: Op::Choice, flags: 0, a: 1564, b: 2, first: 0x0000000002000008 },
    Node { op: Op::Symbol, flags: 0, a: 14, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 15, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 16, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1566, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Rule, flags: 0, a: 160, b: 747, first: 0x0002208000000000 },
    Node { op: Op::Choice, flags: 0, a: 1569, b: 3, first: 0x0002208000000006 },
    Node { op: Op::Keyword, flags: 0, a: 232, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 375, b: 1746, first: 0x0008000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2400, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 332, b: 1585, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 2402, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Sequence, flags: 0, a: 1572, b: 4, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 233, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Keyword, flags: 0, a: 233, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 527, b: 2418, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 526, b: 2414, first: 0x0000000000200000 },
    Node { op: Op::Repeat, flags: 0, a: 2408, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 2409, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 1576, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 15, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 527, b: 2418, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1578, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 585, b: 2691, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 2415, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 487, b: 2235, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1580, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 525, b: 2411, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 529, b: 2426, first: 0x0000000000000040 },
    Node { op: Op::Repeat, flags: 0, a: 2420, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Optional, flags: 2, a: 2421, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Sequence, flags: 0, a: 1582, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 290, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 525, b: 2411, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1584, b: 2, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 535, b: 2452, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 2427, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1586, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 531, b: 2437, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1589, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 930, b: 4032, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 792, b: 3460, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1592, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 238, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 532, b: 2438, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 386, b: 1797, first: 0x0020000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1594, b: 2, first: 0x0020000000001000 },
    Node { op: Op::Rule, flags: 0, a: 565, b: 2602, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 869, b: 3725, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 1596, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 534, b: 2444, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1598, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2447, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2448, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2450, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1600, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 239, b: 0, first: 0x0000000000002000 },
    Node { op: Op::Rule, flags: 0, a: 537, b: 2467, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1603, b: 2, first: 0x0000000000002000 },
    Node { op: Op::Symbol, flags: 0, a: 50, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 538, b: 2471, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1605, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2459, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2460, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2462, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1607, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 2464, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 51, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1610, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 48, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1613, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 239, b: 0, first: 0x0000000000002000 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1616, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2475, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2476, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2478, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1618, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1621, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2483, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1624, b: 2, first: 0x0000000000002000 },
    Node { op: Op::Keyword, flags: 0, a: 488, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Keyword, flags: 0, a: 242, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Rule, flags: 0, a: 27, b: 148, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 2488, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 434, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 541, b: 2498, first: 0x0020000800400440 },
    Node { op: Op::Sequence, flags: 0, a: 1626, b: 5, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 1017, b: 4386, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 234, b: 1105, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 456, b: 2053, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 261, b: 1210, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 298, b: 1438, first: 0x0000000000400000 },
    Node { op: Op::Choice, flags: 0, a: 1631, b: 5, first: 0x0020000800400440 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 2499, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 243, b: 0, first: 0x0000000000020000 },
    Node { op: Op::Sequence, flags: 0, a: 1636, b: 2, first: 0x0000100000020000 },
    Node { op: Op::Keyword, flags: 0, a: 243, b: 0, first: 0x0000000000020000 },
    Node { op: Op::Keyword, flags: 0, a: 482, b: 0, first: 0x0000000001000000 },
    Node { op: Op::Sequence, flags: 0, a: 1638, b: 2, first: 0x0000000000020000 },
    Node { op: Op::Keyword, flags: 0, a: 244, b: 0, first: 0x0000000000040000 },
    Node { op: Op::Rule, flags: 0, a: 1065, b: 4645, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 2507, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 245, b: 0, first: 0x0000000000080000 },
    Node { op: Op::Keyword, flags: 0, a: 210, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 944, b: 4104, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 546, b: 2521, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 497, b: 2278, first: 0x0800000000000200 },
    Node { op: Op::Rule, flags: 0, a: 547, b: 2524, first: 0x0000000040000000 },
    Node { op: Op::Repeat, flags: 0, a: 2514, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 771, b: 3379, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 2516, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 1640, b: 8, first: 0x0000000400080000 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 1648, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 540, b: 2492, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 589, b: 2704, first: 0x0000000040000000 },
    Node { op: Op::Choice, flags: 0, a: 1650, b: 2, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 119, b: 584, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 550, b: 2540, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1652, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 260, b: 1207, first: 0x0000000000008200 },
    Node { op: Op::Optional, flags: 2, a: 2528, b: 0, first: 0x0000000000008200 },
    Node { op: Op::Rule, flags: 0, a: 551, b: 2548, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 2530, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 639, b: 2844, first: 0x0000000000000080 },
    Node { op: Op::Optional, flags: 2, a: 2532, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 431, b: 1966, first: 0x0000000000048000 },
    Node { op: Op::Optional, flags: 2, a: 2534, b: 0, first: 0x0000000000048000 },
    Node { op: Op::Sequence, flags: 2, a: 1654, b: 4, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 2, a: 549, b: 2536, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1658, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 380, b: 1760, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1661, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2543, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2544, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2546, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1663, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 247, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 248, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Choice, flags: 0, a: 1666, b: 2, first: 0x0000000000600000 },
    Node { op: Op::Keyword, flags: 0, a: 250, b: 0, first: 0x0000000001000000 },
    Node { op: Op::Keyword, flags: 0, a: 249, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Choice, flags: 0, a: 1668, b: 2, first: 0x0000000001800000 },
    Node { op: Op::Keyword, flags: 0, a: 251, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 252, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Choice, flags: 0, a: 1670, b: 2, first: 0x0000000006000000 },
    Node { op: Op::Keyword, flags: 0, a: 255, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Symbol, flags: 0, a: 29, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 253, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Keyword, flags: 0, a: 254, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Choice, flags: 0, a: 1672, b: 2, first: 0x0000000018000000 },
    Node { op: Op::Rule, flags: 0, a: 557, b: 2562, first: 0x0000000018000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 803, b: 3490, first: 0x000000c000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1674, b: 3, first: 0x0000000018000000 },
    Node { op: Op::Keyword, flags: 0, a: 257, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Keyword, flags: 0, a: 258, b: 0, first: 0x0000000100000000 },
    Node { op: Op::Choice, flags: 0, a: 1677, b: 2, first: 0x0000000180000000 },
    Node { op: Op::Rule, flags: 0, a: 322, b: 1546, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 561, b: 2577, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2571, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2572, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1679, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 343, b: 1630, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 322, b: 1546, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1681, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1683, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2580, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2581, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2583, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1685, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1688, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 565, b: 2602, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 706, b: 3139, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 445, b: 2019, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 500, b: 2290, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 520, b: 2393, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 902, b: 3917, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 628, b: 2815, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1691, b: 6, first: 0x2000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 991, b: 4269, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 2598, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 566, b: 2605, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1697, b: 4, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 52, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 43, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1701, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 263, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Rule, flags: 0, a: 498, b: 2285, first: 0x0810100081400000 },
    Node { op: Op::Optional, flags: 2, a: 2607, b: 0, first: 0x0810100081400000 },
    Node { op: Op::Sequence, flags: 0, a: 1703, b: 2, first: 0x0000002000000000 },
    Node { op: Op::Keyword, flags: 0, a: 18, b: 0, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 580, b: 2673, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 578, b: 2668, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 579, b: 2672, first: 0x0100000000000008 },
    Node { op: Op::Rule, flags: 0, a: 570, b: 2622, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 576, b: 2660, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1705, b: 5, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 42, b: 228, first: 0x0000000200000000 },
    Node { op: Op::Optional, flags: 2, a: 2618, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 780, b: 3418, first: 0x0000000008000200 },
    Node { op: Op::Optional, flags: 2, a: 2620, b: 0, first: 0x0000000008000200 },
    Node { op: Op::Sequence, flags: 0, a: 1710, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 118, b: 0, first: 0x0000000000000100 },
    Node { op: Op::Keyword, flags: 0, a: 135, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 498, b: 2285, first: 0x0810100081400000 },
    Node { op: Op::Optional, flags: 2, a: 2625, b: 0, first: 0x0810100081400000 },
    Node { op: Op::Keyword, flags: 0, a: 215, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 34, b: 200, first: 0x0000000003000000 },
    Node { op: Op::Optional, flags: 2, a: 2629, b: 0, first: 0x0000000003000000 },
    Node { op: Op::Keyword, flags: 0, a: 265, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Optional, flags: 2, a: 2632, b: 0, first: 0x0000000000000002 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 254, b: 1182, first: 0x0100000000000100 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1713, b: 9, first: 0x0810900081400000 },
    Node { op: Op::Rule, flags: 0, a: 498, b: 2285, first: 0x0810100081400000 },
    Node { op: Op::Optional, flags: 2, a: 2638, b: 0, first: 0x0810100081400000 },
    Node { op: Op::Keyword, flags: 0, a: 215, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 569, b: 2616, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 34, b: 200, first: 0x0000000003000000 },
    Node { op: Op::Optional, flags: 2, a: 2642, b: 0, first: 0x0000000003000000 },
    Node { op: Op::Keyword, flags: 0, a: 265, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Optional, flags: 2, a: 2645, b: 0, first: 0x0000000000000002 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 254, b: 1182, first: 0x0100000000000100 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1722, b: 9, first: 0x0810900081400000 },
    Node { op: Op::Rule, flags: 0, a: 574, b: 2650, first: 0x0810900081400000 },
    Node { op: Op::Rule, flags: 0, a: 573, b: 2637, first: 0x0810900081400000 },
    Node { op: Op::Choice, flags: 0, a: 1731, b: 2, first: 0x0810900081400000 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1733, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 780, b: 3418, first: 0x0000000008000200 },
    Node { op: Op::Optional, flags: 2, a: 2658, b: 0, first: 0x0000000008000200 },
    Node { op: Op::Sequence, flags: 0, a: 1736, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 398, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 505, b: 2319, first: 0x0100000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2662, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 710, b: 3161, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 927, b: 4019, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1073, b: 4668, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 2666, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Sequence, flags: 0, a: 1738, b: 4, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 505, b: 2319, first: 0x0100000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2669, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 911, b: 3951, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1742, b: 2, first: 0x0100000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1042, b: 4533, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 424, b: 1938, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 2674, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 2675, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 135, b: 660, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1744, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 759, b: 3347, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 2682, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 752, b: 3336, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 1746, b: 5, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 268, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 3, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Sequence, flags: 0, a: 1751, b: 2, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 269, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 587, b: 2693, first: 0x0000100000000000 },
    Node { op: Op::Repeat, flags: 0, a: 2690, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Symbol, flags: 0, a: 2, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Symbol, flags: 0, a: 6, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 488, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 242, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Rule, flags: 0, a: 75, b: 382, first: 0x0000400000000000 },
    Node { op: Op::Optional, flags: 2, a: 2698, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 27, b: 148, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 2700, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 434, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 541, b: 2498, first: 0x0020000800400440 },
    Node { op: Op::Sequence, flags: 0, a: 1753, b: 7, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 593, b: 2716, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 594, b: 2717, first: 0x0000800000000000 },
    Node { op: Op::Choice, flags: 0, a: 1760, b: 2, first: 0x0000900000000000 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 275, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1762, b: 2, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 598, b: 2725, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 591, b: 2710, first: 0x0000100000000000 },
    Node { op: Op::Choice, flags: 0, a: 1764, b: 2, first: 0x0002100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 275, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1766, b: 2, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 273, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Symbol, flags: 0, a: 7, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 11, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 275, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 2721, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 1768, b: 3, first: 0x0002000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 275, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1771, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 276, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 599, b: 2729, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1774, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1777, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 275, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 277, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 153, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1779, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 602, b: 2739, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 604, b: 2745, first: 0x0008000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1781, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 277, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 223, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1783, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Number, flags: 0, a: 0, b: 0, first: 0x0000000000000002 },
    Node { op: Op::Symbol, flags: 0, a: 49, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Sequence, flags: 0, a: 1785, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 278, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 994, b: 4295, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2751, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1787, b: 2, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 868, b: 3721, first: 0x090012c000002000 },
    Node { op: Op::Rule, flags: 0, a: 224, b: 1079, first: 0x0010580000000000 },
    Node { op: Op::Choice, flags: 0, a: 1789, b: 2, first: 0x09105ac000002000 },
    Node { op: Op::Keyword, flags: 0, a: 282, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 612, b: 2770, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1791, b: 2, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 609, b: 2759, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 345, b: 1637, first: 0x0000020000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1793, b: 2, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 609, b: 2759, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 511, b: 2346, first: 0x4000000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2764, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1795, b: 2, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 776, b: 3405, first: 0x0000000030000000 },
    Node { op: Op::Optional, flags: 2, a: 2768, b: 0, first: 0x0000000030000000 },
    Node { op: Op::Sequence, flags: 0, a: 1797, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 1072, b: 4665, first: 0x0000001400000000 },
    Node { op: Op::Keyword, flags: 0, a: 283, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1799, b: 2, first: 0x0000001400000000 },
    Node { op: Op::Keyword, flags: 0, a: 283, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1801, b: 2, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 622, b: 2807, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 620, b: 2797, first: 0x0000000000000400 },
    Node { op: Op::Choice, flags: 0, a: 1803, b: 2, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 72, b: 0, first: 0x0000000000100000 },
    Node { op: Op::Rule, flags: 0, a: 621, b: 2800, first: 0x0800000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2783, b: 0, first: 0x0800000000000008 },
    Node { op: Op::Rule, flags: 0, a: 616, b: 2780, first: 0x0000000000000400 },
    Node { op: Op::Sequence, flags: 0, a: 1805, b: 4, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 133, b: 651, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1053, b: 4574, first: 0x0000000080000000 },
    Node { op: Op::Optional, flags: 2, a: 2788, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Sequence, flags: 0, a: 1809, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 75, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 161, b: 748, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 1811, b: 3, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 120, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 271, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1814, b: 2, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 618, b: 2790, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 619, b: 2794, first: 0x0800000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1816, b: 2, first: 0x0800000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 120, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 464, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1022, b: 4399, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 1053, b: 4574, first: 0x0000000080000000 },
    Node { op: Op::Optional, flags: 2, a: 2805, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Sequence, flags: 0, a: 1818, b: 5, first: 0x0000000000000400 },
    Node { op: Op::Symbol, flags: 0, a: 36, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 21, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1823, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 35, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 18, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 34, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 17, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Operator, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 20, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 19, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1825, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 23, b: 134, first: 0x0000000000180000 },
    Node { op: Op::Keyword, flags: 0, a: 160, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 162, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 480, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 657, b: 2951, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 51, b: 272, first: 0xffffffffffffffc5 },
    Node { op: Op::Choice, flags: 0, a: 1827, b: 2, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 871, b: 3743, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 870, b: 3739, first: 0x0008080000000000 },
    Node { op: Op::Choice, flags: 0, a: 1829, b: 2, first: 0x0008080000000008 },
    Node { op: Op::Rule, flags: 0, a: 459, b: 2063, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 458, b: 2060, first: 0x0000000000000040 },
    Node { op: Op::Choice, flags: 0, a: 1831, b: 2, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 290, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 354, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Sequence, flags: 0, a: 1833, b: 2, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 9, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 239, b: 1136, first: 0x0200000008000001 },
    Node { op: Op::Optional, flags: 2, a: 2836, b: 0, first: 0x0200000008000001 },
    Node { op: Op::Rule, flags: 0, a: 603, b: 2742, first: 0x0008000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2838, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1835, b: 3, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 291, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 643, b: 2866, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1838, b: 3, first: 0x0000000000000080 },
    Node { op: Op::Keyword, flags: 0, a: 291, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 400, b: 1845, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 2847, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1841, b: 3, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 239, b: 1136, first: 0x0200000008000001 },
    Node { op: Op::Optional, flags: 2, a: 2851, b: 0, first: 0x0200000008000001 },
    Node { op: Op::Rule, flags: 0, a: 603, b: 2742, first: 0x0008000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2853, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1844, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 641, b: 2855, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1847, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2858, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2859, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2861, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1849, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 638, b: 2840, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 642, b: 2863, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1852, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 31, b: 154, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 564, b: 2596, first: 0x2000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1854, b: 2, first: 0x2000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 68, b: 354, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 646, b: 2877, first: 0x2000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2871, b: 0, first: 0x2000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2872, b: 0, first: 0x2000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1856, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 644, b: 2869, first: 0x2000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 68, b: 354, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1858, b: 2, first: 0x2000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 296, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 1058, b: 4600, first: 0xffffffffffffffc9 },
    Node { op: Op::Sequence, flags: 0, a: 1860, b: 2, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 651, b: 2904, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 650, b: 2897, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1862, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 298, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 648, b: 2883, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1864, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1867, b: 2, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1869, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2892, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2893, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2895, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1871, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 314, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 372, b: 1736, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 357, b: 1675, first: 0x0000400000000000 },
    Node { op: Op::Optional, flags: 2, a: 2902, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1874, b: 5, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 715, b: 3177, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 28, b: 149, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 606, b: 2749, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 122, b: 591, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1879, b: 4, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1883, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1886, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 923, b: 3992, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 2918, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1889, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 921, b: 3984, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 2924, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 780, b: 3418, first: 0x0000000008000200 },
    Node { op: Op::Optional, flags: 2, a: 2926, b: 0, first: 0x0000000008000200 },
    Node { op: Op::Sequence, flags: 0, a: 1892, b: 4, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1896, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2931, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2932, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2934, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1898, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 2936, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1901, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1904, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2943, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2944, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2946, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1906, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1909, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 134, b: 659, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1912, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 891, b: 3860, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 658, b: 2955, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 877, b: 3778, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 1915, b: 3, first: 0xffffffffffffffc9 },
    Node { op: Op::Keyword, flags: 0, a: 305, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 306, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Choice, flags: 0, a: 1918, b: 2, first: 0x0000000000600000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 659, b: 2959, first: 0xffffffffffffffc9 },
    Node { op: Op::Sequence, flags: 0, a: 1920, b: 3, first: 0x0000000000600000 },
    Node { op: Op::Rule, flags: 0, a: 662, b: 2983, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 883, b: 3809, first: 0x4000000000000000 },
    Node { op: Op::Optional, flags: 2, a: 2967, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1923, b: 2, first: 0x0000000000400000 },
    Node { op: Op::Keyword, flags: 0, a: 306, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1925, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 2974, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2975, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 2977, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1927, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1930, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1933, b: 3, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 661, b: 2969, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 882, b: 3795, first: 0x4000000000000000 },
    Node { op: Op::Choice, flags: 0, a: 1936, b: 2, first: 0x4000000000400000 },
    Node { op: Op::Keyword, flags: 0, a: 305, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 306, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Choice, flags: 0, a: 1938, b: 2, first: 0x0000000000600000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 400, b: 1845, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 2991, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1940, b: 3, first: 0x0000000000600000 },
    Node { op: Op::Keyword, flags: 0, a: 310, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 669, b: 3014, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 679, b: 3047, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 667, b: 2999, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 1943, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 666, b: 2998, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1946, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3002, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3003, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3005, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1948, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 52, b: 276, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 189, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1951, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1954, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 171, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 634, b: 2825, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 1957, b: 3, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 52, b: 276, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 311, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Keyword, flags: 0, a: 313, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Choice, flags: 0, a: 1960, b: 2, first: 0x0000000028000000 },
    Node { op: Op::Rule, flags: 0, a: 677, b: 3040, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 668, b: 3007, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1962, b: 2, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 673, b: 3023, first: 0x0000000028000000 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 675, b: 3027, first: 0x0800000000000000 },
    Node { op: Op::Optional, flags: 2, a: 3030, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 678, b: 3043, first: 0x0000000000000200 },
    Node { op: Op::Optional, flags: 2, a: 3032, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 671, b: 3019, first: 0x2000000000000000 },
    Node { op: Op::Optional, flags: 2, a: 3034, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 1964, b: 5, first: 0x0000000028000000 },
    Node { op: Op::Rule, flags: 0, a: 943, b: 4098, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1969, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 943, b: 4098, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1972, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 672, b: 3020, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 189, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 680, b: 3050, first: 0xffffffffffffffc9 },
    Node { op: Op::Sequence, flags: 0, a: 1974, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 670, b: 3015, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 674, b: 3024, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 1977, b: 2, first: 0xffffffffffffffc9 },
    Node { op: Op::Symbol, flags: 0, a: 28, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 645, b: 2874, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 189, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1979, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 317, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 682, b: 3055, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1982, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1985, b: 2, first: 0x0000000200000000 },
    Node { op: Op::Symbol, flags: 0, a: 53, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Sequence, flags: 0, a: 1987, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 318, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Symbol, flags: 0, a: 40, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 853, b: 3666, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 36, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1046, b: 4561, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 1989, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 688, b: 3071, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 690, b: 3078, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 1992, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 691, b: 3079, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 692, b: 3090, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3076, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1994, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::PragmaName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1996, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3082, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3083, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3085, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 1998, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2001, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 319, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 689, b: 3074, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2004, b: 2, first: 0x0000000800000000 },
    Node { op: Op::Keyword, flags: 0, a: 320, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 694, b: 3094, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 353, b: 1661, first: 0x0000200000000000 },
    Node { op: Op::Choice, flags: 0, a: 2006, b: 2, first: 0x0000201000000000 },
    Node { op: Op::Rule, flags: 0, a: 697, b: 3107, first: 0x2000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3098, b: 0, first: 0x2000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3099, b: 0, first: 0x2000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 52, b: 276, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2008, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 706, b: 3139, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 556, b: 2559, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 681, b: 3051, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 949, b: 4114, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2010, b: 4, first: 0x2000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 323, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 992, b: 4280, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3110, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 896, b: 3906, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2014, b: 5, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 700, b: 3118, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 235, b: 1106, first: 0x0020000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2019, b: 2, first: 0x0020020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 325, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 326, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 217, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2021, b: 2, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 960, b: 4152, first: 0xffffffffffffffff },
    Node { op: Op::Repeat, flags: 0, a: 3122, b: 0, first: 0xffffffffffffffff },
    Node { op: Op::Optional, flags: 2, a: 3123, b: 0, first: 0xffffffffffffffff },
    Node { op: Op::Rule, flags: 0, a: 96, b: 456, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 799, b: 3477, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 704, b: 3129, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2023, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 441, b: 2006, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 95, b: 452, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 798, b: 3474, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 426, b: 1952, first: 0xffffffffffffffc5 },
    Node { op: Op::Choice, flags: 0, a: 2026, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 287, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 707, b: 3144, first: 0xffffffffffffffc9 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2029, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2032, b: 2, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 114, b: 556, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 3140, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 3141, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 32, b: 194, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2034, b: 2, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 3145, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 796, b: 3468, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 3147, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 827, b: 3569, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2036, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 712, b: 3168, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 994, b: 4295, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3152, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2039, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 93, b: 441, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 3155, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 796, b: 3468, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 3157, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 3158, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 929, b: 4029, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2041, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 97, b: 461, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 800, b: 3480, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2044, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 99, b: 471, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 802, b: 3487, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 996, b: 4297, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2046, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 334, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2049, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 335, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 336, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2051, b: 2, first: 0x0018000000000000 },
    Node { op: Op::Symbol, flags: 0, a: 1, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Sequence, flags: 0, a: 2053, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 337, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 3179, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 2055, b: 3, first: 0x0020000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 338, b: 0, first: 0x0040000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 286, b: 0, first: 0x1000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 718, b: 3184, first: 0x1000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 721, b: 3191, first: 0x0000008000000000 },
    Node { op: Op::Choice, flags: 0, a: 2058, b: 2, first: 0x1000008000000000 },
    Node { op: Op::Keyword, flags: 0, a: 339, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Rule, flags: 0, a: 719, b: 3187, first: 0x1000008000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2060, b: 2, first: 0x0080000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 497, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Keyword, flags: 0, a: 340, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 343, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 346, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 725, b: 3201, first: 0x0400010000000000 },
    Node { op: Op::Rule, flags: 0, a: 725, b: 3201, first: 0x0400010000000000 },
    Node { op: Op::Optional, flags: 2, a: 3196, b: 0, first: 0x0400010000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2062, b: 3, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 726, b: 3206, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 727, b: 3211, first: 0x0400000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2065, b: 2, first: 0x0400010000000000 },
    Node { op: Op::Keyword, flags: 0, a: 266, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2067, b: 4, first: 0x0000010000000000 },
    Node { op: Op::Keyword, flags: 0, a: 284, b: 0, first: 0x0400000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2071, b: 4, first: 0x0400000000000000 },
    Node { op: Op::Symbol, flags: 0, a: 10, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 39, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 348, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 147, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Keyword, flags: 0, a: 358, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 48, b: 250, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 3218, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2075, b: 7, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 41, b: 222, first: 0x0000000020000000 },
    Node { op: Op::Optional, flags: 2, a: 3223, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Rule, flags: 0, a: 498, b: 2285, first: 0x0810100081400000 },
    Node { op: Op::Optional, flags: 2, a: 3225, b: 0, first: 0x0810100081400000 },
    Node { op: Op::Keyword, flags: 0, a: 215, b: 0, first: 0x0000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 497, b: 2278, first: 0x0800000000000200 },
    Node { op: Op::Sequence, flags: 0, a: 2082, b: 5, first: 0x08109000a1400000 },
    Node { op: Op::Rule, flags: 0, a: 735, b: 3251, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 733, b: 3237, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3232, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2087, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 36, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 226, b: 1090, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2089, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 732, b: 3234, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2091, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3240, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3241, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3243, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2093, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2096, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 268, b: 1231, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Choice, flags: 0, a: 2099, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 734, b: 3248, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 613, b: 2773, first: 0x0000001400000000 },
    Node { op: Op::Choice, flags: 0, a: 2101, b: 2, first: 0x0000001400000008 },
    Node { op: Op::Keyword, flags: 0, a: 352, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2103, b: 3, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 737, b: 3258, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 352, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 63, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Optional, flags: 2, a: 3261, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Rule, flags: 0, a: 581, b: 2678, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2106, b: 5, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 742, b: 3284, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 878, b: 3779, first: 0xffffffffffffffc5 },
    Node { op: Op::Choice, flags: 0, a: 2111, b: 2, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 306, b: 1458, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2113, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 741, b: 3273, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2116, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3276, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3277, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3279, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2118, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2121, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 352, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 740, b: 3269, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 2124, b: 2, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 353, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Rule, flags: 0, a: 789, b: 3453, first: 0x0000000000000002 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2126, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2129, b: 2, first: 0x0000000000000800 },
    Node { op: Op::Rule, flags: 0, a: 748, b: 3312, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 747, b: 3311, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2131, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 137, b: 667, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2133, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 746, b: 3300, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2136, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3303, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3304, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3306, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2138, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2141, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 746, b: 3300, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 354, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 745, b: 3296, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2144, b: 2, first: 0x0000000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 3316, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 322, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 2146, b: 3, first: 0x0000000400000001 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Optional, flags: 2, a: 3321, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 332, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 218, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 217, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2149, b: 2, first: 0x0002000000000001 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2151, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3329, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3330, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3332, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2153, b: 3, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 2156, b: 4, first: 0x0000000000000201 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::ColumnName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::ScalarFunctionName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::Variable as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 754, b: 3338, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Choice, flags: 0, a: 2160, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::Variable as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::Variable as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::SchemaName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 758, b: 3344, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 2162, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::TableName as u32, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 760, b: 3348, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 2164, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Identifier, flags: 1, a: Suggestion::TypeName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 357, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 734, b: 3248, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2166, b: 2, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 357, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 306, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2168, b: 3, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 357, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 404, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2171, b: 3, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 357, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 847, b: 3651, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2174, b: 2, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 360, b: 0, first: 0x0000000000040000 },
    Node { op: Op::Keyword, flags: 0, a: 277, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2176, b: 2, first: 0x0000000000040000 },
    Node { op: Op::Keyword, flags: 0, a: 362, b: 0, first: 0x0000000000100000 },
    Node { op: Op::Keyword, flags: 0, a: 362, b: 0, first: 0x0000000000100000 },
    Node { op: Op::Rule, flags: 0, a: 639, b: 2844, first: 0x0000000000000080 },
    Node { op: Op::Optional, flags: 2, a: 3372, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 514, b: 2358, first: 0x4100020000000000 },
    Node { op: Op::Optional, flags: 2, a: 3374, b: 0, first: 0x4100020000000000 },
    Node { op: Op::Sequence, flags: 2, a: 2178, b: 2, first: 0x4100020000000080 },
    Node { op: Op::Keyword, flags: 0, a: 363, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 943, b: 4098, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2180, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 366, b: 0, first: 0x0000000001000000 },
    Node { op: Op::Keyword, flags: 0, a: 295, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Optional, flags: 2, a: 3381, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Sequence, flags: 0, a: 2182, b: 2, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 0, b: 2, first: 0x0000000004000040 },
    Node { op: Op::Rule, flags: 0, a: 963, b: 4162, first: 0x0000012000000000 },
    Node { op: Op::Optional, flags: 2, a: 3385, b: 0, first: 0x0000012000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2184, b: 2, first: 0x0000000004000040 },
    Node { op: Op::Keyword, flags: 0, a: 369, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Keyword, flags: 0, a: 370, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2186, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3392, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3393, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3395, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2188, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 3397, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2191, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2194, b: 2, first: 0x0000000010000000 },
    Node { op: Op::Keyword, flags: 0, a: 370, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Keyword, flags: 0, a: 371, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Choice, flags: 0, a: 2196, b: 2, first: 0x0000000030000000 },
    Node { op: Op::Keyword, flags: 0, a: 370, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Keyword, flags: 0, a: 418, b: 0, first: 0x0000000000040000 },
    Node { op: Op::Choice, flags: 0, a: 2198, b: 2, first: 0x0000000010040000 },
    Node { op: Op::Rule, flags: 0, a: 777, b: 3408, first: 0x0000000010040000 },
    Node { op: Op::Rule, flags: 0, a: 118, b: 577, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3410, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2200, b: 2, first: 0x0000000010040000 },
    Node { op: Op::Keyword, flags: 0, a: 371, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Rule, flags: 0, a: 938, b: 4064, first: 0x0000000008000000 },
    Node { op: Op::Rule, flags: 0, a: 1035, b: 4485, first: 0x0000000000000200 },
    Node { op: Op::Choice, flags: 0, a: 2202, b: 2, first: 0x0000000008000200 },
    Node { op: Op::Rule, flags: 0, a: 782, b: 3425, first: 0xffffffffffffffcb },
    Node { op: Op::Sequence, flags: 0, a: 2204, b: 2, first: 0x0000000008000200 },
    Node { op: Op::Rule, flags: 0, a: 791, b: 3459, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 790, b: 3456, first: 0x0000000022000008 },
    Node { op: Op::Optional, flags: 2, a: 3420, b: 0, first: 0x0000000022000008 },
    Node { op: Op::Sequence, flags: 0, a: 2206, b: 2, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 784, b: 3441, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 783, b: 3432, first: 0x000000000000000a },
    Node { op: Op::Choice, flags: 0, a: 2208, b: 2, first: 0xffffffffffffffcb },
    Node { op: Op::Rule, flags: 0, a: 781, b: 3422, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 787, b: 3451, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2210, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3430, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2213, b: 2, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 785, b: 3442, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 3433, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 781, b: 3422, first: 0x000000000000000a },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2215, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 744, b: 3293, first: 0x0000000000000800 },
    Node { op: Op::Optional, flags: 2, a: 3439, b: 0, first: 0x0000000000000800 },
    Node { op: Op::Sequence, flags: 0, a: 2218, b: 3, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 32, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 309, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Choice, flags: 0, a: 2221, b: 2, first: 0x0000000002000008 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 789, b: 3453, first: 0x0000000000000002 },
    Node { op: Op::Sequence, flags: 0, a: 2223, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3449, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2225, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 371, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Rule, flags: 0, a: 786, b: 3445, first: 0x0000000002000008 },
    Node { op: Op::Rule, flags: 0, a: 788, b: 3452, first: 0x0000000020000000 },
    Node { op: Op::Choice, flags: 0, a: 2227, b: 2, first: 0x0000000022000008 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Rule, flags: 0, a: 652, b: 2909, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2229, b: 2, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::SchemaName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 793, b: 3461, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 179, b: 808, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 163, b: 752, first: 0x0000002000000000 },
    Node { op: Op::Choice, flags: 0, a: 2231, b: 2, first: 0x0000002200000000 },
    Node { op: Op::Rule, flags: 0, a: 793, b: 3461, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 2233, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 796, b: 3468, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 753, b: 3337, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2235, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 796, b: 3468, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 755, b: 3341, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2237, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 796, b: 3468, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 756, b: 3342, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2239, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 796, b: 3468, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 760, b: 3348, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2241, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 796, b: 3468, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 761, b: 3351, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 752, b: 3336, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2243, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 796, b: 3468, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 762, b: 3352, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2246, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 380, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Keyword, flags: 0, a: 381, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Choice, flags: 0, a: 2248, b: 2, first: 0x000000c000000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 189, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2250, b: 2, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 811, b: 3515, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 816, b: 3537, first: 0x4a4808003a208008 },
    Node { op: Op::Choice, flags: 0, a: 2252, b: 2, first: 0x4a4808003a208008 },
    Node { op: Op::Keyword, flags: 0, a: 385, b: 0, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 256, b: 1186, first: 0x0000000000008200 },
    Node { op: Op::Optional, flags: 2, a: 3499, b: 0, first: 0x0000000000008200 },
    Node { op: Op::Rule, flags: 0, a: 943, b: 4098, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 3501, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2254, b: 3, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 809, b: 3510, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 374, b: 1743, first: 0x0008000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2257, b: 2, first: 0x0008080000000000 },
    Node { op: Op::Rule, flags: 0, a: 807, b: 3503, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 371, b: 1733, first: 0x0008000000000000 },
    Node { op: Op::Optional, flags: 2, a: 3508, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2259, b: 2, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2261, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 468, b: 2123, first: 0x4a4808003a208008 },
    Node { op: Op::Rule, flags: 0, a: 813, b: 3523, first: 0x0100000004000000 },
    Node { op: Op::Repeat, flags: 0, a: 3517, b: 0, first: 0x0100000004000000 },
    Node { op: Op::Optional, flags: 2, a: 3518, b: 0, first: 0x0100000004000000 },
    Node { op: Op::Sequence, flags: 0, a: 2264, b: 2, first: 0x4a4808003a208008 },
    Node { op: Op::Rule, flags: 0, a: 849, b: 3660, first: 0x0100000004000000 },
    Node { op: Op::Rule, flags: 0, a: 468, b: 2123, first: 0x4a4808003a208008 },
    Node { op: Op::Sequence, flags: 0, a: 2266, b: 2, first: 0x0100000004000000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Rule, flags: 0, a: 1065, b: 4645, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 3525, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 812, b: 3520, first: 0x4a4808003a208008 },
    Node { op: Op::Rule, flags: 2, a: 770, b: 3376, first: 0x4100020000000080 },
    Node { op: Op::Optional, flags: 2, a: 3528, b: 0, first: 0x4100020000000080 },
    Node { op: Op::Sequence, flags: 0, a: 2268, b: 3, first: 0x4a4808043a208008 },
    Node { op: Op::Rule, flags: 0, a: 635, b: 2828, first: 0x0008080000000008 },
    Node { op: Op::Rule, flags: 0, a: 1042, b: 4533, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 248, b: 1162, first: 0x0a40000000200000 },
    Node { op: Op::Rule, flags: 0, a: 939, b: 4067, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 676, b: 3036, first: 0x0000000028000000 },
    Node { op: Op::Rule, flags: 0, a: 1008, b: 4348, first: 0x4000000010000000 },
    Node { op: Op::Choice, flags: 0, a: 2271, b: 6, first: 0x4a4808003a208008 },
    Node { op: Op::Keyword, flags: 0, a: 386, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 88, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 555, b: 2558, first: 0x0000000020000000 },
    Node { op: Op::Rule, flags: 0, a: 544, b: 2506, first: 0x0000000000040000 },
    Node { op: Op::Choice, flags: 0, a: 2277, b: 2, first: 0x0000000020040000 },
    Node { op: Op::Keyword, flags: 0, a: 268, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 88, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2279, b: 2, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 268, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 819, b: 3542, first: 0x0000000020040000 },
    Node { op: Op::Sequence, flags: 0, a: 2281, b: 2, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 300, b: 0, first: 0x0000000000010000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2283, b: 3, first: 0x0000000000010000 },
    Node { op: Op::Rule, flags: 0, a: 818, b: 3539, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 820, b: 3545, first: 0x0000040000000000 },
    Node { op: Op::Choice, flags: 0, a: 2286, b: 2, first: 0x0000041000000000 },
    Node { op: Op::Keyword, flags: 0, a: 192, b: 0, first: 0x0000000001000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Optional, flags: 2, a: 3557, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2288, b: 3, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 819, b: 3542, first: 0x0000000020040000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2291, b: 2, first: 0x0000000020040000 },
    Node { op: Op::Keyword, flags: 0, a: 409, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 3565, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2293, b: 3, first: 0x0000000000000200 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::Variable as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 823, b: 3555, first: 0x0000041000000000 },
    Node { op: Op::Rule, flags: 0, a: 824, b: 3560, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 825, b: 3563, first: 0x0000000020040000 },
    Node { op: Op::Rule, flags: 0, a: 821, b: 3548, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 826, b: 3568, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 822, b: 3552, first: 0x0000000000010000 },
    Node { op: Op::Choice, flags: 0, a: 2296, b: 6, first: 0x0000041021050200 },
    Node { op: Op::Keyword, flags: 0, a: 391, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 524, b: 2406, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 903, b: 3921, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 100, b: 472, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2302, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 1045, b: 4553, first: 0x0000004000000008 },
    Node { op: Op::Rule, flags: 0, a: 1046, b: 4561, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2305, b: 2, first: 0x0000004000000008 },
    Node { op: Op::Rule, flags: 0, a: 840, b: 3624, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 889, b: 3849, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 845, b: 3645, first: 0x0000001000000000 },
    Node { op: Op::Choice, flags: 0, a: 2307, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 89, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Optional, flags: 2, a: 3590, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2310, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2312, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 208, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Rule, flags: 0, a: 260, b: 1207, first: 0x0000000000008200 },
    Node { op: Op::Optional, flags: 2, a: 3597, b: 0, first: 0x0000000000008200 },
    Node { op: Op::Sequence, flags: 0, a: 2314, b: 2, first: 0x0000010000000000 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 275, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2316, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 734, b: 3248, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2318, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 306, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2320, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3612, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3613, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3615, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2322, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2325, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2328, b: 4, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 375, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 2332, b: 2, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 828, b: 3576, first: 0x0000041021050200 },
    Node { op: Op::Repeat, flags: 0, a: 3625, b: 0, first: 0x0000041021050200 },
    Node { op: Op::Rule, flags: 0, a: 854, b: 3670, first: 0x0402000000000080 },
    Node { op: Op::Optional, flags: 2, a: 3627, b: 0, first: 0x0402000000000080 },
    Node { op: Op::Rule, flags: 0, a: 853, b: 3666, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2334, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 404, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 643, b: 2866, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2336, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2339, b: 4, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 832, b: 3588, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2343, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 436, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 513, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1087, b: 4719, first: 0xffffffffffffffc7 },
    Node { op: Op::Sequence, flags: 0, a: 2345, b: 3, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 1047, b: 4562, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2348, b: 2, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 846, b: 3648, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 842, b: 3630, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2350, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 393, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2352, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 851, b: 3664, first: 0x0100000004000000 },
    Node { op: Op::Rule, flags: 0, a: 260, b: 1207, first: 0x0000000000008200 },
    Node { op: Op::Optional, flags: 2, a: 3656, b: 0, first: 0x0000000000008200 },
    Node { op: Op::Rule, flags: 0, a: 72, b: 373, first: 0x0000400000000000 },
    Node { op: Op::Optional, flags: 2, a: 3658, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2354, b: 3, first: 0x0100000004000000 },
    Node { op: Op::Keyword, flags: 0, a: 136, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 852, b: 3665, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 850, b: 3661, first: 0x0000000004000000 },
    Node { op: Op::Choice, flags: 0, a: 2357, b: 2, first: 0x0100000004000000 },
    Node { op: Op::Keyword, flags: 0, a: 456, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::SettingName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 523, b: 2405, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 829, b: 3577, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 403, b: 1856, first: 0x0400000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2359, b: 3, first: 0x0402000000000080 },
    Node { op: Op::Keyword, flags: 0, a: 9, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 861, b: 3693, first: 0x0a40000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 9, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 426, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 3674, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Sequence, flags: 0, a: 2362, b: 3, first: 0x0a40000000000000 },
    Node { op: Op::Rule, flags: 0, a: 862, b: 3694, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 866, b: 3710, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 3678, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2365, b: 2, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 711, b: 3164, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 862, b: 3694, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Sequence, flags: 0, a: 2367, b: 2, first: 0x0040000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 396, b: 0, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 855, b: 3671, first: 0x0000000000008000 },
    Node { op: Op::Optional, flags: 2, a: 3686, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 147, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Keyword, flags: 0, a: 359, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Sequence, flags: 0, a: 2369, b: 4, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 862, b: 3694, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 246, b: 1152, first: 0x0a00000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2373, b: 2, first: 0x0a40000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 396, b: 0, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 853, b: 3666, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 91, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 376, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 426, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Keyword, flags: 0, a: 476, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Choice, flags: 0, a: 2375, b: 4, first: 0x0000000404000001 },
    Node { op: Op::Rule, flags: 0, a: 861, b: 3693, first: 0x0a40000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 426, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 705, b: 3133, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2379, b: 4, first: 0x0a40000000000000 },
    Node { op: Op::Rule, flags: 0, a: 858, b: 3681, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 863, b: 3695, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 249, b: 1163, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 864, b: 3700, first: 0x0000000404000001 },
    Node { op: Op::Choice, flags: 0, a: 2383, b: 4, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 397, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2387, b: 2, first: 0x0080000000000000 },
    Node { op: Op::Rule, flags: 0, a: 466, b: 2117, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 467, b: 2118, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 881, b: 3791, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 64, b: 327, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 722, b: 3192, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 70, b: 358, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 269, b: 1234, first: 0x0000000000002000 },
    Node { op: Op::Choice, flags: 0, a: 2389, b: 7, first: 0x090012c000002000 },
    Node { op: Op::Rule, flags: 0, a: 991, b: 4269, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 3723, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2396, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 808, b: 3506, first: 0x0008080000000000 },
    Node { op: Op::Rule, flags: 0, a: 1053, b: 4574, first: 0x0000000080000000 },
    Node { op: Op::Optional, flags: 2, a: 3727, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 406, b: 1862, first: 0x2000000000000000 },
    Node { op: Op::Optional, flags: 2, a: 3729, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 416, b: 1915, first: 0x0000000000000100 },
    Node { op: Op::Optional, flags: 2, a: 3731, b: 0, first: 0x0000000000000100 },
    Node { op: Op::Rule, flags: 0, a: 1054, b: 4584, first: 0x0000000200000000 },
    Node { op: Op::Optional, flags: 2, a: 3733, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 713, b: 3171, first: 0x0004000000000000 },
    Node { op: Op::Optional, flags: 2, a: 3735, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 780, b: 3418, first: 0x0000000008000200 },
    Node { op: Op::Optional, flags: 2, a: 3737, b: 0, first: 0x0000000008000200 },
    Node { op: Op::Sequence, flags: 0, a: 2398, b: 7, first: 0x0008080000000000 },
    Node { op: Op::Rule, flags: 0, a: 870, b: 3739, first: 0x0008080000000000 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2405, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 103, b: 483, first: 0x0c00005000010000 },
    Node { op: Op::Rule, flags: 0, a: 709, b: 3154, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2408, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 26, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 528, b: 2423, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2410, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 653, b: 2913, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 521, b: 2397, first: 0x0002208000000006 },
    Node { op: Op::Rule, flags: 0, a: 652, b: 2909, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 909, b: 3946, first: 0x0000100080000008 },
    Node { op: Op::Rule, flags: 0, a: 884, b: 3822, first: 0x2014104210105109 },
    Node { op: Op::Rule, flags: 0, a: 656, b: 2940, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 472, b: 2149, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 993, b: 4283, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 84, b: 414, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 890, b: 3859, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 87, b: 429, first: 0x0022000000000000 },
    Node { op: Op::Rule, flags: 0, a: 410, b: 1892, first: 0xc000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 536, b: 2455, first: 0x0000000000002000 },
    Node { op: Op::Rule, flags: 0, a: 382, b: 1779, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 137, b: 667, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 517, b: 2383, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 519, b: 2389, first: 0x0000000002000008 },
    Node { op: Op::Rule, flags: 0, a: 904, b: 3933, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 684, b: 3064, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 230, b: 1094, first: 0x0001000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2412, b: 20, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 363, b: 1701, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 65, b: 328, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 370, b: 1723, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 614, b: 2774, first: 0x0200000000000000 },
    Node { op: Op::Rule, flags: 0, a: 210, b: 1026, first: 0x0000000100000000 },
    Node { op: Op::Rule, flags: 0, a: 417, b: 1916, first: 0x0000000000000200 },
    Node { op: Op::Choice, flags: 0, a: 2432, b: 5, first: 0x0204040100000200 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 741, b: 3273, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 3780, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 293, b: 1410, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3782, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 897, b: 3910, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3784, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 2, a: 2437, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 44, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 2, a: 879, b: 3786, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 45, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2440, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 401, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 883, b: 3809, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 662, b: 2983, first: 0x0000000000400000 },
    Node { op: Op::Optional, flags: 2, a: 3793, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Sequence, flags: 0, a: 2443, b: 2, first: 0x4000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 404, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2445, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3800, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3801, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3803, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2447, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2450, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2453, b: 3, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 108, b: 533, first: 0x0000000000000100 },
    Node { op: Op::Rule, flags: 0, a: 1003, b: 4323, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 987, b: 4244, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 138, b: 675, first: 0x0000000000001008 },
    Node { op: Op::Rule, flags: 0, a: 340, b: 1623, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 504, b: 2318, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 600, b: 2735, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 683, b: 3061, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 775, b: 3402, first: 0x0000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 913, b: 3960, first: 0x0000000000100000 },
    Node { op: Op::Rule, flags: 0, a: 980, b: 4225, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 649, b: 2889, first: 0x0000000000004000 },
    Node { op: Op::Choice, flags: 0, a: 2456, b: 12, first: 0x2014104210105109 },
    Node { op: Op::Rule, flags: 0, a: 876, b: 3777, first: 0x0204040100000200 },
    Node { op: Op::Rule, flags: 0, a: 597, b: 2724, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 238, b: 1133, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 299, b: 1443, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 291, b: 1405, first: 0x0000000000040000 },
    Node { op: Op::Rule, flags: 0, a: 716, b: 3182, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 361, b: 1688, first: 0x0020800000000000 },
    Node { op: Op::Rule, flags: 0, a: 660, b: 2965, first: 0x0000000000600000 },
    Node { op: Op::Rule, flags: 0, a: 359, b: 1682, first: 0x0000800000000000 },
    Node { op: Op::Choice, flags: 0, a: 2468, b: 9, first: 0x0266840100e40200 },
    Node { op: Op::Rule, flags: 0, a: 885, b: 3832, first: 0x0266840100e40200 },
    Node { op: Op::Rule, flags: 0, a: 887, b: 3841, first: 0x0266840100e40208 },
    Node { op: Op::Repeat, flags: 0, a: 3834, b: 0, first: 0x0266840100e40208 },
    Node { op: Op::Optional, flags: 2, a: 3835, b: 0, first: 0x0266840100e40208 },
    Node { op: Op::Sequence, flags: 0, a: 2477, b: 2, first: 0x0266840100e40200 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3838, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 885, b: 3832, first: 0x0266840100e40200 },
    Node { op: Op::Sequence, flags: 0, a: 2479, b: 2, first: 0x0266840100e40208 },
    Node { op: Op::Symbol, flags: 0, a: 44, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 3843, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 45, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2481, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 847, b: 3651, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 831, b: 3584, first: 0x0000004000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2484, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 892, b: 3862, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 3850, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 30, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 305, b: 1455, first: 0x000000000c000000 },
    Node { op: Op::Optional, flags: 2, a: 3853, b: 0, first: 0x000000000c000000 },
    Node { op: Op::Rule, flags: 0, a: 749, b: 3315, first: 0x0000000000001000 },
    Node { op: Op::Optional, flags: 2, a: 3855, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 743, b: 3287, first: 0x0000000000000400 },
    Node { op: Op::Optional, flags: 2, a: 3857, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Sequence, flags: 0, a: 2486, b: 5, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 893, b: 3863, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 114, b: 556, first: 0xffffffffffffffc1 },
    Node { op: Op::Repeat, flags: 0, a: 3861, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 30, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 893, b: 3863, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 134, b: 659, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2491, b: 2, first: 0xffffffffffffffc9 },
    Node { op: Op::Keyword, flags: 0, a: 409, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 33, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Choice, flags: 0, a: 2493, b: 2, first: 0x0000008000000200 },
    Node { op: Op::Rule, flags: 0, a: 335, b: 1594, first: 0x0040000040000001 },
    Node { op: Op::Rule, flags: 0, a: 333, b: 1588, first: 0x0000000040004000 },
    Node { op: Op::Rule, flags: 0, a: 195, b: 938, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 814, b: 3524, first: 0x4a4808043a208008 },
    Node { op: Op::Rule, flags: 0, a: 844, b: 3641, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 693, b: 3093, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 80, b: 400, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 460, b: 2080, first: 0x0000000c00000000 },
    Node { op: Op::Rule, flags: 0, a: 285, b: 1356, first: 0x0000000000004000 },
    Node { op: Op::Rule, flags: 0, a: 181, b: 820, first: 0x0000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 319, b: 1516, first: 0x0000000100000000 },
    Node { op: Op::Rule, flags: 0, a: 1027, b: 4442, first: 0x0000000400000040 },
    Node { op: Op::Rule, flags: 0, a: 698, b: 3114, first: 0x0000008000000000 },
    Node { op: Op::Rule, flags: 0, a: 314, b: 1488, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 17, b: 84, first: 0x0000000000020000 },
    Node { op: Op::Rule, flags: 0, a: 964, b: 4166, first: 0x0000008004108240 },
    Node { op: Op::Rule, flags: 0, a: 236, b: 1118, first: 0x0020000400000000 },
    Node { op: Op::Rule, flags: 0, a: 50, b: 264, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 1029, b: 4448, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 252, b: 1178, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 107, b: 520, first: 0x4000800000000000 },
    Node { op: Op::Rule, flags: 0, a: 1040, b: 4520, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 0, a: 766, b: 3366, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 326, b: 1561, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 432, b: 1970, first: 0x0000000000100000 },
    Node { op: Op::Rule, flags: 0, a: 148, b: 704, first: 0x0000000000002000 },
    Node { op: Op::Rule, flags: 0, a: 221, b: 1067, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 985, b: 4237, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 522, b: 2404, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 465, b: 2116, first: 0x0000801000000000 },
    Node { op: Op::Rule, flags: 0, a: 1016, b: 4382, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 24, b: 140, first: 0x0000000000180000 },
    Node { op: Op::Rule, flags: 0, a: 545, b: 2518, first: 0x0000000400080000 },
    Node { op: Op::Rule, flags: 0, a: 159, b: 743, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 253, b: 1179, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 331, b: 1582, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 2495, b: 36, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 48, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 3908, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2531, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 415, b: 0, first: 0x0000000000008000 },
    Node { op: Op::String, flags: 0, a: 0, b: 0, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Symbol, flags: 0, a: 12, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 13, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2533, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 397, b: 1837, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3919, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2535, b: 2, first: 0x0000000000000004 },
    Node { op: Op::Symbol, flags: 0, a: 50, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 905, b: 3937, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2537, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3925, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3926, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3928, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2539, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 3930, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 51, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2542, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 48, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2545, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 9, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Keyword, flags: 0, a: 17, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Keyword, flags: 0, a: 141, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 910, b: 3947, first: 0x0000100000000000 },
    Node { op: Op::Optional, flags: 2, a: 3941, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 908, b: 3940, first: 0x0000000080000000 },
    Node { op: Op::Optional, flags: 2, a: 3943, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 911, b: 3951, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2548, b: 3, first: 0x0000100080000008 },
    Node { op: Op::Keyword, flags: 0, a: 270, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2551, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 918, b: 3979, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 914, b: 3968, first: 0xffffffffffffffcf },
    Node { op: Op::Choice, flags: 0, a: 2554, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 420, b: 0, first: 0x0000000000100000 },
    Node { op: Op::Rule, flags: 0, a: 912, b: 3954, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2556, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2559, b: 2, first: 0x0000000000100000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2561, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 3963, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3964, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3966, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2563, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 357, b: 1675, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 917, b: 3976, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 915, b: 3969, first: 0x0000400000000000 },
    Node { op: Op::Choice, flags: 0, a: 2566, b: 2, first: 0x0008400000000000 },
    Node { op: Op::Rule, flags: 0, a: 372, b: 1736, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 357, b: 1675, first: 0x0000400000000000 },
    Node { op: Op::Optional, flags: 2, a: 3974, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2568, b: 2, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 916, b: 3972, first: 0x0008400000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2570, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 920, b: 3981, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 421, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 922, b: 3989, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 924, b: 3996, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2572, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 426, b: 1952, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 127, b: 612, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3987, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2574, b: 3, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 48, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2577, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 127, b: 612, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 3994, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2579, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 928, b: 4028, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 926, b: 4007, first: 0xffffffffffffffc5 },
    Node { op: Op::Choice, flags: 0, a: 2581, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 923, b: 3992, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 710, b: 3161, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 927, b: 4019, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1073, b: 4668, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 4003, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 780, b: 3418, first: 0x0000000008000200 },
    Node { op: Op::Optional, flags: 2, a: 4005, b: 0, first: 0x0000000008000200 },
    Node { op: Op::Sequence, flags: 0, a: 2583, b: 5, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 380, b: 1760, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2588, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4010, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4011, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4013, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2590, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 4015, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2593, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 505, b: 2319, first: 0x0100000000000000 },
    Node { op: Op::Optional, flags: 2, a: 4020, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 710, b: 3161, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 927, b: 4019, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1073, b: 4668, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 4024, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 921, b: 3984, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 4026, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2596, b: 5, first: 0xffffffffffffffc1 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::TableFunctionName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 815, b: 3530, first: 0x4a4808043a208008 },
    Node { op: Op::Sequence, flags: 0, a: 2601, b: 2, first: 0x0000000002000000 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::TableName as u32, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 149, b: 705, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 152, b: 710, first: 0x0000000001000000 },
    Node { op: Op::Rule, flags: 0, a: 543, b: 2505, first: 0x0000000000020000 },
    Node { op: Op::Choice, flags: 0, a: 2603, b: 3, first: 0x0000000003020000 },
    Node { op: Op::Keyword, flags: 0, a: 311, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Rule, flags: 0, a: 934, b: 4052, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2606, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 921, b: 3984, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 4043, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2609, b: 3, first: 0x0000000008000000 },
    Node { op: Op::Rule, flags: 0, a: 943, b: 4098, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 156, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 679, b: 3047, first: 0xffffffffffffffcf },
    Node { op: Op::Repeat, flags: 0, a: 4048, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 671, b: 3019, first: 0x2000000000000000 },
    Node { op: Op::Optional, flags: 2, a: 4050, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2612, b: 4, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 931, b: 4033, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 2616, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 447, b: 2026, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 495, b: 2271, first: 0x48109024a9400000 },
    Node { op: Op::Repeat, flags: 0, a: 4057, b: 0, first: 0x48109024a9400000 },
    Node { op: Op::Optional, flags: 2, a: 4058, b: 0, first: 0x48109024a9400000 },
    Node { op: Op::Sequence, flags: 0, a: 2618, b: 2, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 935, b: 4055, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 752, b: 3336, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2620, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 427, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2622, b: 2, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 923, b: 3992, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 4068, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 505, b: 2319, first: 0x0100000000000000 },
    Node { op: Op::Optional, flags: 2, a: 4070, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 911, b: 3951, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 921, b: 3984, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 4073, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2624, b: 4, first: 0xffffffffffffffcd },
    Node { op: Op::Keyword, flags: 0, a: 462, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 439, b: 1999, first: 0x0000000008400000 },
    Node { op: Op::Optional, flags: 2, a: 4077, b: 0, first: 0x0000000008400000 },
    Node { op: Op::Rule, flags: 0, a: 942, b: 4090, first: 0xffffffffffffffcd },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2628, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 921, b: 3984, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 4083, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2631, b: 4, first: 0x4000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1004, b: 4326, first: 0xffffffffffffffcd },
    Node { op: Op::Keyword, flags: 0, a: 156, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 1010, b: 4356, first: 0xffffffffffffffcd },
    Node { op: Op::Repeat, flags: 0, a: 4088, b: 0, first: 0xffffffffffffffcd },
    Node { op: Op::Sequence, flags: 0, a: 2635, b: 3, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 8, b: 40, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2638, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4093, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4094, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4096, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2640, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 4100, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 4102, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2643, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 430, b: 0, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 665, b: 2994, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 945, b: 4105, first: 0x0000000040000000 },
    Node { op: Op::Rule, flags: 0, a: 947, b: 4110, first: 0x0000000100000000 },
    Node { op: Op::Choice, flags: 0, a: 2646, b: 3, first: 0x0000000144000000 },
    Node { op: Op::Keyword, flags: 0, a: 432, b: 0, first: 0x0000000100000000 },
    Node { op: Op::Symbol, flags: 0, a: 28, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 29, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2649, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 39, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 952, b: 4124, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 955, b: 4130, first: 0x0000002000000000 },
    Node { op: Op::Choice, flags: 0, a: 2651, b: 2, first: 0x0000003000000000 },
    Node { op: Op::Rule, flags: 0, a: 950, b: 4117, first: 0x0000003000000000 },
    Node { op: Op::Rule, flags: 0, a: 994, b: 4295, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4119, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 953, b: 4128, first: 0x0000001400000000 },
    Node { op: Op::Optional, flags: 2, a: 4121, b: 0, first: 0x0000001400000000 },
    Node { op: Op::Sequence, flags: 0, a: 2653, b: 3, first: 0x0000003000000000 },
    Node { op: Op::Keyword, flags: 0, a: 436, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 1071, b: 4662, first: 0x0000001400000000 },
    Node { op: Op::Keyword, flags: 0, a: 436, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 513, b: 0, first: 0x0080000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2656, b: 3, first: 0x0000001400000000 },
    Node { op: Op::Keyword, flags: 0, a: 437, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Keyword, flags: 0, a: 437, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Rule, flags: 0, a: 105, b: 513, first: 0x2000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 158, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 217, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 133, b: 651, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 362, b: 1697, first: 0x2000000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2659, b: 4, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 162, b: 751, first: 0x0000000000800000 },
    Node { op: Op::Optional, flags: 2, a: 4137, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 959, b: 4145, first: 0x2201040000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2663, b: 2, first: 0x2201040000800000 },
    Node { op: Op::Rule, flags: 0, a: 961, b: 4156, first: 0x0000040000000000 },
    Node { op: Op::Rule, flags: 0, a: 956, b: 4131, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 962, b: 4159, first: 0x0200000000000000 },
    Node { op: Op::Rule, flags: 0, a: 957, b: 4136, first: 0x0001000000000000 },
    Node { op: Op::Choice, flags: 0, a: 2665, b: 4, first: 0x2201040000000000 },
    Node { op: Op::Rule, flags: 0, a: 896, b: 3906, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 4146, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 54, b: 0, first: 0x0000000000000010 },
    Node { op: Op::Repeat, flags: 0, a: 4148, b: 0, first: 0x0000000000000010 },
    Node { op: Op::Rule, flags: 0, a: 292, b: 1406, first: 0x0000000000000020 },
    Node { op: Op::Choice, flags: 0, a: 2669, b: 2, first: 0x0000000000000030 },
    Node { op: Op::Sequence, flags: 0, a: 2671, b: 2, first: 0xffffffffffffffff },
    Node { op: Op::Keyword, flags: 0, a: 326, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 217, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 133, b: 651, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2673, b: 3, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 457, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Rule, flags: 0, a: 133, b: 651, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2676, b: 2, first: 0x0200000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 495, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Keyword, flags: 0, a: 440, b: 0, first: 0x0000010000000000 },
    Node { op: Op::Choice, flags: 0, a: 2678, b: 2, first: 0x0000012000000000 },
    Node { op: Op::Rule, flags: 0, a: 58, b: 304, first: 0x0000008000000200 },
    Node { op: Op::Rule, flags: 0, a: 773, b: 3387, first: 0x0000000004000040 },
    Node { op: Op::Rule, flags: 0, a: 155, b: 722, first: 0x0000000000108000 },
    Node { op: Op::Choice, flags: 0, a: 2680, b: 3, first: 0x0000008004108240 },
    Node { op: Op::Keyword, flags: 0, a: 6, b: 0, first: 0x0000000000001000 },
    Node { op: Op::Keyword, flags: 0, a: 32, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 460, b: 2080, first: 0x0000000c00000000 },
    Node { op: Op::Rule, flags: 0, a: 1027, b: 4442, first: 0x0000000400000040 },
    Node { op: Op::Rule, flags: 0, a: 236, b: 1118, first: 0x0020000400000000 },
    Node { op: Op::Rule, flags: 0, a: 545, b: 2518, first: 0x0000000400080000 },
    Node { op: Op::Choice, flags: 0, a: 2683, b: 4, first: 0x0020000c00080040 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2687, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4176, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4177, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4179, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2689, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 973, b: 4193, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 971, b: 4188, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 970, b: 4187, first: 0x0020000000000000 },
    Node { op: Op::Rule, flags: 0, a: 972, b: 4189, first: 0x0000000000000040 },
    Node { op: Op::Choice, flags: 0, a: 2692, b: 4, first: 0x0020000800000040 },
    Node { op: Op::Keyword, flags: 0, a: 105, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 203, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Keyword, flags: 0, a: 464, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 464, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 280, b: 0, first: 0x0040000000000000 },
    Node { op: Op::Rule, flags: 0, a: 968, b: 4181, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2696, b: 3, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 205, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Keyword, flags: 0, a: 280, b: 0, first: 0x0040000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2699, b: 2, first: 0x0000002000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 966, b: 4168, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 965, b: 4167, first: 0x0000000000001000 },
    Node { op: Op::Rule, flags: 0, a: 974, b: 4196, first: 0x0000002000000000 },
    Node { op: Op::Choice, flags: 0, a: 2701, b: 3, first: 0x0000006000001000 },
    Node { op: Op::Rule, flags: 0, a: 979, b: 4219, first: 0x0200208000000000 },
    Node { op: Op::Optional, flags: 2, a: 4202, b: 0, first: 0x0200208000000000 },
    Node { op: Op::Rule, flags: 0, a: 982, b: 4230, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 4204, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2704, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4208, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4209, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4211, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2706, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2709, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 39, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 978, b: 4215, first: 0x0000200000000000 },
    Node { op: Op::Rule, flags: 0, a: 981, b: 4226, first: 0x0200000000000000 },
    Node { op: Op::Rule, flags: 0, a: 983, b: 4231, first: 0x0000008000000000 },
    Node { op: Op::Choice, flags: 0, a: 2712, b: 3, first: 0x0200208000000000 },
    Node { op: Op::Keyword, flags: 0, a: 444, b: 0, first: 0x0000100000000000 },
    Node { op: Op::Rule, flags: 0, a: 977, b: 4214, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2715, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2718, b: 2, first: 0x0000100000000000 },
    Node { op: Op::Keyword, flags: 0, a: 225, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 4227, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 161, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2720, b: 2, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 439, b: 0, first: 0x0000008000000000 },
    Node { op: Op::Keyword, flags: 0, a: 445, b: 0, first: 0x0000200000000000 },
    Node { op: Op::Keyword, flags: 0, a: 446, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 425, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Optional, flags: 2, a: 4234, b: 0, first: 0x0000000002000000 },
    Node { op: Op::Rule, flags: 0, a: 54, b: 284, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2722, b: 3, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 449, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 448, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2725, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2728, b: 2, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 450, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2730, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4248, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4249, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4251, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2732, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2735, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2738, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 998, b: 4311, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 36, b: 208, first: 0x0000000002000008 },
    Node { op: Op::Repeat, flags: 0, a: 4259, b: 0, first: 0x0000000002000008 },
    Node { op: Op::Optional, flags: 2, a: 4260, b: 0, first: 0x0000000002000008 },
    Node { op: Op::Sequence, flags: 0, a: 2740, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 997, b: 4298, first: 0x2a96f436a9453c00 },
    Node { op: Op::Rule, flags: 0, a: 379, b: 1757, first: 0x2a94b436a9452c00 },
    Node { op: Op::Choice, flags: 0, a: 2742, b: 2, first: 0x2a96f436a9453c00 },
    Node { op: Op::Rule, flags: 0, a: 1012, b: 4358, first: 0xffffffffffffffc0 },
    Node { op: Op::Rule, flags: 0, a: 990, b: 4265, first: 0x2a96f436a9453c00 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2744, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2747, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4272, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4273, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4275, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2749, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2752, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 989, b: 4262, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 2755, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2757, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4286, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4287, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4289, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2759, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Optional, flags: 2, a: 4291, b: 0, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2762, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Identifier, flags: 0, a: Suggestion::TypeName as u32, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 995, b: 4296, first: 0xffffffffffffffc1 },
    Node { op: Op::KeywordClass, flags: 0, a: 16, b: 0, first: 0x2a96f436a9453c00 },
    Node { op: Op::Rule, flags: 0, a: 951, b: 4123, first: 0x0000003000000000 },
    Node { op: Op::Rule, flags: 0, a: 478, b: 2200, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 67, b: 349, first: 0x0000080000000000 },
    Node { op: Op::Rule, flags: 0, a: 778, b: 3412, first: 0x0000000010040000 },
    Node { op: Op::Rule, flags: 0, a: 1048, b: 4563, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 539, b: 2485, first: 0x0000000000002000 },
    Node { op: Op::Rule, flags: 0, a: 988, b: 4257, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 401, b: 1852, first: 0x0000000000000001 },
    Node { op: Op::Rule, flags: 0, a: 999, b: 4314, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 608, b: 2756, first: 0x09105ac000002000 },
    Node { op: Op::Rule, flags: 0, a: 848, b: 3654, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 872, b: 3746, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2765, b: 12, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 456, b: 0, first: 0x0100000000000000 },
    Node { op: Op::Rule, flags: 0, a: 118, b: 577, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2777, b: 2, first: 0x0100000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 457, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 457, b: 0, first: 0x0200000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 458, b: 0, first: 0x0400000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 461, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2779, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2782, b: 2, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1006, b: 4338, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 1005, b: 4337, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2784, b: 2, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2786, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4329, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4330, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4332, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2788, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2791, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 462, b: 0, first: 0x4000000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 312, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Choice, flags: 0, a: 2794, b: 2, first: 0x4000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 1007, b: 4341, first: 0x4000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 936, b: 4060, first: 0xffffffffffffffcd },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 943, b: 4098, first: 0xffffffffffffffcf },
    Node { op: Op::Rule, flags: 0, a: 483, b: 2216, first: 0x0000040000000000 },
    Node { op: Op::Optional, flags: 2, a: 4346, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2796, b: 5, first: 0x4000000010000000 },
    Node { op: Op::Rule, flags: 0, a: 943, b: 4098, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2801, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1004, b: 4326, first: 0xffffffffffffffcd },
    Node { op: Op::Keyword, flags: 0, a: 189, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 1009, b: 4352, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2804, b: 3, first: 0xffffffffffffffcd },
    Node { op: Op::Rule, flags: 0, a: 931, b: 4033, first: 0xffffffffffffffc5 },
    Node { op: Op::KeywordClass, flags: 0, a: 2, b: 0, first: 0xffffffffffffffc0 },
    Node { op: Op::Keyword, flags: 0, a: 285, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 464, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 501, b: 2296, first: 0x0004040000100000 },
    Node { op: Op::Sequence, flags: 0, a: 2807, b: 3, first: 0x0800000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Optional, flags: 2, a: 4363, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 113, b: 553, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2810, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 73, b: 376, first: 0x0000400000000000 },
    Node { op: Op::Keyword, flags: 0, a: 464, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 146, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2812, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4372, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4373, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4375, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2814, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2817, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4380, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2820, b: 3, first: 0x0000000000000040 },
    Node { op: Op::Keyword, flags: 0, a: 464, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 1018, b: 4389, first: 0x0004400000000000 },
    Node { op: Op::Optional, flags: 2, a: 4384, b: 0, first: 0x0004400000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2823, b: 2, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 1019, b: 4390, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1015, b: 4367, first: 0x0000400000000000 },
    Node { op: Op::Choice, flags: 0, a: 2825, b: 2, first: 0x0004400000000000 },
    Node { op: Op::Rule, flags: 0, a: 1020, b: 4393, first: 0x0004000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 392, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1021, b: 4396, first: 0xffffffffffffffc9 },
    Node { op: Op::Sequence, flags: 0, a: 2827, b: 2, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1022, b: 4399, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 893, b: 3863, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2829, b: 2, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 1025, b: 4416, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 1026, b: 4430, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2831, b: 2, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 135, b: 660, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 264, b: 1219, first: 0x000000000000000a },
    Node { op: Op::Repeat, flags: 0, a: 4401, b: 0, first: 0x000000000000000a },
    Node { op: Op::Optional, flags: 2, a: 4402, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 2833, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 1023, b: 4404, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 36, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2835, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 1024, b: 4408, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2838, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4411, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4412, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4414, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2840, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 135, b: 660, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2843, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4419, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4420, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4422, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2845, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2848, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 36, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2851, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1065, b: 4645, first: 0x0000000400000000 },
    Node { op: Op::Optional, flags: 2, a: 4431, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 464, b: 0, first: 0x0000000000000040 },
    Node { op: Op::Rule, flags: 0, a: 1028, b: 4445, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 1022, b: 4399, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 371, b: 1733, first: 0x0008000000000000 },
    Node { op: Op::Optional, flags: 2, a: 4436, b: 0, first: 0x0008000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1053, b: 4574, first: 0x0000000080000000 },
    Node { op: Op::Optional, flags: 2, a: 4438, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 771, b: 3379, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 4440, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Sequence, flags: 0, a: 2854, b: 7, first: 0x0000000400000040 },
    Node { op: Op::Rule, flags: 0, a: 56, b: 297, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 53, b: 281, first: 0xffffffffffffffc5 },
    Node { op: Op::Choice, flags: 0, a: 2861, b: 2, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 465, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 1030, b: 4452, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2863, b: 2, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 1031, b: 4459, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 794, b: 3462, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 92, b: 438, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2865, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 91, b: 437, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 47, b: 0, first: 0x000000000000000a },
    Node { op: Op::Rule, flags: 0, a: 758, b: 3344, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 264, b: 1219, first: 0x000000000000000a },
    Node { op: Op::Repeat, flags: 0, a: 4456, b: 0, first: 0x000000000000000a },
    Node { op: Op::Optional, flags: 2, a: 4457, b: 0, first: 0x000000000000000a },
    Node { op: Op::Sequence, flags: 0, a: 2868, b: 4, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 135, b: 660, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2872, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4463, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4464, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4466, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2874, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2877, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2880, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2882, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 217, b: 0, first: 0x0002000000000000 },
    Node { op: Op::Rule, flags: 0, a: 943, b: 4098, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2884, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2887, b: 3, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 467, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 373, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Sequence, flags: 0, a: 2890, b: 2, first: 0x0000000000000200 },
    Node { op: Op::Rule, flags: 0, a: 632, b: 2821, first: 0x0010000000000000 },
    Node { op: Op::Optional, flags: 2, a: 4486, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 631, b: 2820, first: 0x0004000000000000 },
    Node { op: Op::Optional, flags: 2, a: 4488, b: 0, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 633, b: 2822, first: 0x0000000000400000 },
    Node { op: Op::Optional, flags: 2, a: 4490, b: 0, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 630, b: 2819, first: 0x0000000000180000 },
    Node { op: Op::Optional, flags: 2, a: 4492, b: 0, first: 0x0000000000180000 },
    Node { op: Op::Sequence, flags: 2, a: 2892, b: 4, first: 0x0014000000580000 },
    Node { op: Op::Rule, flags: 0, a: 630, b: 2819, first: 0x0000000000180000 },
    Node { op: Op::Rule, flags: 0, a: 631, b: 2820, first: 0x0004000000000000 },
    Node { op: Op::Rule, flags: 0, a: 632, b: 2821, first: 0x0010000000000000 },
    Node { op: Op::Rule, flags: 0, a: 633, b: 2822, first: 0x0000000000400000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2896, b: 5, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 1039, b: 4514, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 2, a: 1036, b: 4494, first: 0x0014000000580000 },
    Node { op: Op::Choice, flags: 2, a: 2901, b: 2, first: 0x0014000000580008 },
    Node { op: Op::Rule, flags: 0, a: 1037, b: 4500, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2903, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4506, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4507, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4509, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2905, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2908, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 468, b: 0, first: 0x0000000000000400 },
    Node { op: Op::Rule, flags: 2, a: 1038, b: 4503, first: 0x0014000000580008 },
    Node { op: Op::Optional, flags: 2, a: 4516, b: 0, first: 0x0014000000580008 },
    Node { op: Op::Rule, flags: 0, a: 25, b: 144, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 4518, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2911, b: 3, first: 0x0000000000000400 },
    Node { op: Op::Keyword, flags: 0, a: 472, b: 0, first: 0x0000000000004000 },
    Node { op: Op::Keyword, flags: 0, a: 473, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Choice, flags: 0, a: 2914, b: 2, first: 0x000000000000c000 },
    Node { op: Op::Keyword, flags: 0, a: 473, b: 0, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 1043, b: 4544, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2916, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4527, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4528, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4530, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2918, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2921, b: 2, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2923, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4536, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4537, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4539, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2925, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2928, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 923, b: 3992, first: 0xffffffffffffffc5 },
    Node { op: Op::Optional, flags: 2, a: 4545, b: 0, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 1042, b: 4533, first: 0x0000000000008000 },
    Node { op: Op::Rule, flags: 0, a: 921, b: 3984, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 4548, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2931, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 36, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Choice, flags: 0, a: 2934, b: 2, first: 0x0000004000000008 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2936, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4556, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4557, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4559, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2938, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Keyword, flags: 0, a: 475, b: 0, first: 0x0000000000020000 },
    Node { op: Op::Keyword, flags: 0, a: 478, b: 0, first: 0x0000000000000001 },
    Node { op: Op::Keyword, flags: 0, a: 481, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Keyword, flags: 0, a: 481, b: 0, first: 0x0000000000800000 },
    Node { op: Op::Rule, flags: 0, a: 426, b: 1952, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2941, b: 2, first: 0x0000000000800000 },
    Node { op: Op::Keyword, flags: 0, a: 484, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Keyword, flags: 0, a: 486, b: 0, first: 0x0000000010000000 },
    Node { op: Op::Keyword, flags: 0, a: 487, b: 0, first: 0x0000000020000000 },
    Node { op: Op::Choice, flags: 0, a: 2943, b: 2, first: 0x0000000030000000 },
    Node { op: Op::Keyword, flags: 0, a: 489, b: 0, first: 0x0000000080000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2945, b: 2, first: 0x0000000080000000 },
    Node { op: Op::Keyword, flags: 0, a: 491, b: 0, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 1055, b: 4588, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2947, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4578, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4579, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4581, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2949, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Sequence, flags: 0, a: 2952, b: 2, first: 0x0000000200000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 1061, b: 4614, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2954, b: 3, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 137, b: 0, first: 0x0000000008000000 },
    Node { op: Op::Rule, flags: 0, a: 1057, b: 4596, first: 0x2000040c00000000 },
    Node { op: Op::Sequence, flags: 0, a: 2957, b: 2, first: 0x0000000008000000 },
    Node { op: Op::Rule, flags: 0, a: 302, b: 1450, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 304, b: 1452, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 313, b: 1483, first: 0x0000000800000000 },
    Node { op: Op::Rule, flags: 0, a: 310, b: 1476, first: 0x0000040000000000 },
    Node { op: Op::Choice, flags: 0, a: 2959, b: 4, first: 0x2000040c00000000 },
    Node { op: Op::Rule, flags: 0, a: 654, b: 2917, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1061, b: 4614, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 427, b: 1953, first: 0xffffffffffffffc1 },
    Node { op: Op::Choice, flags: 0, a: 2963, b: 3, first: 0xffffffffffffffc9 },
    Node { op: Op::Rule, flags: 0, a: 1064, b: 4633, first: 0x0000000000200000 },
    Node { op: Op::Optional, flags: 2, a: 4601, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Rule, flags: 0, a: 639, b: 2844, first: 0x0000000000000080 },
    Node { op: Op::Optional, flags: 2, a: 4603, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 364, b: 1706, first: 0x0040000020000040 },
    Node { op: Op::Optional, flags: 2, a: 4605, b: 0, first: 0x0040000020000040 },
    Node { op: Op::Sequence, flags: 2, a: 2966, b: 3, first: 0x00400000202000c0 },
    Node { op: Op::Rule, flags: 2, a: 1059, b: 4607, first: 0x00400000202000c0 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2969, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1063, b: 4622, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1060, b: 4611, first: 0x0000000000000008 },
    Node { op: Op::Choice, flags: 0, a: 2972, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 57, b: 298, first: 0xffffffffffffffc1 },
    Node { op: Op::Optional, flags: 2, a: 4615, b: 0, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 2, a: 1059, b: 4607, first: 0x00400000202000c0 },
    Node { op: Op::Sequence, flags: 2, a: 2974, b: 2, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 2, a: 1062, b: 4618, first: 0xffffffffffffffc1 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2976, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Keyword, flags: 0, a: 305, b: 0, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 40, b: 0, first: 0x0000400000000000 },
    Node { op: Op::Rule, flags: 0, a: 327, b: 1562, first: 0xffffffffffffffcf },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2979, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4627, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4628, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4630, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2981, b: 3, first: 0xffffffffffffffcf },
    Node { op: Op::Sequence, flags: 0, a: 2984, b: 3, first: 0x0000000000200000 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 723, b: 3193, first: 0x0800000000000000 },
    Node { op: Op::Optional, flags: 2, a: 4635, b: 0, first: 0x0800000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1075, b: 4679, first: 0xffffffffffffffc5 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2987, b: 2, first: 0x0000000000000008 },
    Node { op: Op::Repeat, flags: 0, a: 4639, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4640, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 0, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4642, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 2989, b: 3, first: 0xffffffffffffffc5 },
    Node { op: Op::Sequence, flags: 0, a: 2992, b: 3, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 1067, b: 4651, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 1069, b: 4658, first: 0x0000000400000000 },
    Node { op: Op::Choice, flags: 0, a: 2995, b: 2, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 89, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Sequence, flags: 0, a: 2997, b: 2, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 736, b: 3254, first: 0x0000001400000008 },
    Node { op: Op::Sequence, flags: 0, a: 2999, b: 2, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 268, b: 0, first: 0x0000040000000000 },
    Node { op: Op::Keyword, flags: 0, a: 89, b: 0, first: 0x0000002000000000 },
    Node { op: Op::Sequence, flags: 0, a: 3001, b: 3, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 1074, b: 4669, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 1078, b: 4688, first: 0x0000001000000000 },
    Node { op: Op::Choice, flags: 0, a: 3004, b: 2, first: 0x0000001400000000 },
    Node { op: Op::Rule, flags: 0, a: 1070, b: 4659, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 1077, b: 4687, first: 0x0000001000000000 },
    Node { op: Op::Choice, flags: 0, a: 3006, b: 2, first: 0x0000001400000000 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 292, b: 0, first: 0x0000000000000100 },
    Node { op: Op::Sequence, flags: 0, a: 3008, b: 2, first: 0x0000000400000000 },
    Node { op: Op::Keyword, flags: 0, a: 492, b: 0, first: 0x0000000400000000 },
    Node { op: Op::Rule, flags: 0, a: 116, b: 563, first: 0xffffffffffffffc5 },
    Node { op: Op::Rule, flags: 0, a: 454, b: 2046, first: 0x0000000000000008 },
    Node { op: Op::Optional, flags: 2, a: 4671, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 1034, b: 4482, first: 0x0000000000000200 },
    Node { op: Op::Optional, flags: 2, a: 4673, b: 0, first: 0x0000000000000200 },
    Node { op: Op::Keyword, flags: 0, a: 20, b: 0, first: 0x0000000004000000 },
    Node { op: Op::Rule, flags: 0, a: 542, b: 2502, first: 0x0000100000020000 },
    Node { op: Op::Optional, flags: 2, a: 4676, b: 0, first: 0x0000100000020000 },
    Node { op: Op::Rule, flags: 0, a: 77, b: 388, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 3010, b: 6, first: 0xffffffffffffffc5 },
    Node { op: Op::Keyword, flags: 0, a: 493, b: 0, first: 0x0000000800000000 },
    Node { op: Op::Keyword, flags: 0, a: 171, b: 0, first: 0x2000000000000000 },
    Node { op: Op::Rule, flags: 0, a: 639, b: 2844, first: 0x0000000000000080 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 3016, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 3019, b: 3, first: 0x0000000800000000 },
    Node { op: Op::Keyword, flags: 0, a: 494, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 494, b: 0, first: 0x0000001000000000 },
    Node { op: Op::Keyword, flags: 0, a: 510, b: 0, first: 0x0010000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 511, b: 0, first: 0x0020000000000000 },
    Node { op: Op::Choice, flags: 0, a: 3022, b: 2, first: 0x0030000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1079, b: 4691, first: 0x0030000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 438, b: 0, first: 0x0000004000000000 },
    Node { op: Op::Rule, flags: 0, a: 559, b: 2569, first: 0x0000000180000000 },
    Node { op: Op::Sequence, flags: 0, a: 3024, b: 3, first: 0x0030000000000000 },
    Node { op: Op::Keyword, flags: 0, a: 100, b: 0, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 422, b: 1931, first: 0xffffffffffffffc1 },
    Node { op: Op::Keyword, flags: 0, a: 209, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 470, b: 2141, first: 0x01b833c1bfe01800 },
    Node { op: Op::Optional, flags: 2, a: 4700, b: 0, first: 0x01b833c1bfe01800 },
    Node { op: Op::Sequence, flags: 0, a: 3027, b: 3, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 209, b: 0, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Symbol, flags: 0, a: 41, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Symbol, flags: 0, a: 42, b: 0, first: 0x0000000000000008 },
    Node { op: Op::Sequence, flags: 0, a: 3030, b: 3, first: 0x0000000000000008 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Sequence, flags: 0, a: 3033, b: 3, first: 0x0000020000000000 },
    Node { op: Op::Keyword, flags: 0, a: 233, b: 0, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 899, b: 3912, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 1084, b: 4709, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 1083, b: 4702, first: 0x0000020000000000 },
    Node { op: Op::Rule, flags: 0, a: 1085, b: 4710, first: 0x0000000000000080 },
    Node { op: Op::Rule, flags: 0, a: 1081, b: 4696, first: 0x0001000000000000 },
    Node { op: Op::Rule, flags: 0, a: 1086, b: 4711, first: 0x0000000000000004 },
    Node { op: Op::Rule, flags: 0, a: 1082, b: 4697, first: 0xffffffffffffffc1 },
    Node { op: Op::Rule, flags: 0, a: 605, b: 2746, first: 0x0000000000000002 },
    Node { op: Op::Choice, flags: 0, a: 3036, b: 7, first: 0xffffffffffffffc7 },
];

/// The child lists of every sequence and choice, contiguous per node.
#[rustfmt::skip]
pub static CHILDREN: [u32; 3043] = [
    0,
    1,
    3,
    5,
    7,
    8,
    10,
    12,
    14,
    17,
    19,
    20,
    22,
    23,
    24,
    26,
    27,
    29,
    32,
    34,
    35,
    37,
    38,
    39,
    42,
    44,
    45,
    46,
    48,
    49,
    50,
    52,
    54,
    55,
    56,
    57,
    58,
    59,
    61,
    62,
    63,
    64,
    65,
    67,
    69,
    70,
    71,
    73,
    74,
    76,
    78,
    79,
    80,
    82,
    83,
    85,
    86,
    87,
    88,
    89,
    90,
    91,
    92,
    93,
    94,
    95,
    96,
    97,
    98,
    105,
    104,
    104,
    108,
    110,
    100,
    102,
    103,
    111,
    114,
    115,
    117,
    119,
    121,
    123,
    124,
    125,
    128,
    129,
    127,
    130,
    132,
    133,
    135,
    137,
    139,
    141,
    143,
    146,
    147,
    151,
    152,
    155,
    156,
    157,
    158,
    159,
    160,
    161,
    162,
    163,
    164,
    165,
    166,
    167,
    168,
    169,
    170,
    171,
    172,
    173,
    174,
    175,
    176,
    177,
    178,
    179,
    180,
    181,
    182,
    183,
    184,
    185,
    186,
    187,
    188,
    189,
    190,
    191,
    192,
    193,
    195,
    196,
    198,
    199,
    202,
    203,
    205,
    206,
    207,
    210,
    211,
    215,
    214,
    216,
    213,
    217,
    219,
    220,
    225,
    224,
    226,
    223,
    227,
    229,
    230,
    231,
    233,
    236,
    238,
    239,
    241,
    242,
    243,
    245,
    246,
    248,
    249,
    252,
    254,
    256,
    258,
    259,
    261,
    263,
    266,
    265,
    265,
    269,
    271,
    273,
    275,
    277,
    279,
    280,
    282,
    283,
    286,
    287,
    289,
    291,
    293,
    295,
    296,
    299,
    301,
    303,
    305,
    306,
    307,
    308,
    310,
    311,
    312,
    313,
    315,
    317,
    320,
    321,
    323,
    324,
    325,
    329,
    330,
    331,
    332,
    338,
    337,
    337,
    341,
    343,
    345,
    344,
    346,
    334,
    336,
    348,
    350,
    353,
    355,
    356,
    361,
    360,
    360,
    364,
    366,
    359,
    368,
    369,
    371,
    372,
    374,
    375,
    377,
    378,
    380,
    381,
    383,
    384,
    386,
    387,
    390,
    389,
    391,
    394,
    393,
    395,
    397,
    398,
    399,
    403,
    404,
    406,
    408,
    410,
    412,
    413,
    415,
    416,
    417,
    418,
    420,
    421,
    422,
    426,
    425,
    427,
    424,
    428,
    431,
    432,
    434,
    435,
    439,
    440,
    442,
    445,
    446,
    448,
    450,
    451,
    453,
    454,
    455,
    457,
    459,
    460,
    462,
    463,
    464,
    465,
    467,
    469,
    470,
    473,
    474,
    476,
    477,
    478,
    480,
    482,
    484,
    486,
    488,
    490,
    492,
    493,
    495,
    497,
    498,
    500,
    502,
    504,
    487,
    491,
    496,
    501,
    505,
    506,
    510,
    509,
    511,
    508,
    512,
    516,
    517,
    519,
    523,
    522,
    522,
    526,
    528,
    530,
    529,
    531,
    521,
    532,
    534,
    537,
    539,
    540,
    542,
    545,
    547,
    548,
    550,
    551,
    552,
    554,
    555,
    557,
    558,
    559,
    561,
    562,
    564,
    565,
    568,
    567,
    567,
    571,
    573,
    575,
    574,
    576,
    578,
    579,
    580,
    581,
    582,
    583,
    586,
    587,
    589,
    590,
    592,
    595,
    597,
    598,
    603,
    602,
    602,
    606,
    608,
    610,
    609,
    611,
    613,
    614,
    616,
    617,
    618,
    620,
    621,
    622,
    623,
    624,
    625,
    626,
    627,
    630,
    632,
    634,
    636,
    639,
    642,
    641,
    641,
    645,
    647,
    649,
    648,
    650,
    653,
    652,
    652,
    656,
    658,
    662,
    663,
    664,
    665,
    666,
    672,
    671,
    673,
    669,
    670,
    674,
    681,
    682,
    684,
    685,
    686,
    687,
    688,
    689,
    690,
    691,
    692,
    693,
    694,
    698,
    699,
    700,
    701,
    702,
    703,
    707,
    708,
    711,
    712,
    713,
    714,
    716,
    717,
    719,
    721,
    723,
    726,
    728,
    730,
    731,
    733,
    734,
    735,
    736,
    737,
    738,
    740,
    742,
    744,
    745,
    746,
    749,
    750,
    754,
    753,
    755,
    757,
    758,
    759,
    760,
    762,
    763,
    769,
    770,
    772,
    773,
    774,
    775,
    776,
    777,
    779,
    780,
    781,
    782,
    783,
    785,
    786,
    787,
    790,
    789,
    789,
    793,
    795,
    797,
    796,
    798,
    800,
    801,
    805,
    806,
    810,
    809,
    811,
    812,
    813,
    814,
    816,
    818,
    819,
    821,
    823,
    824,
    825,
    827,
    830,
    831,
    832,
    836,
    835,
    837,
    838,
    840,
    842,
    844,
    846,
    847,
    848,
    850,
    851,
    852,
    854,
    856,
    857,
    858,
    859,
    861,
    863,
    879,
    878,
    878,
    882,
    884,
    886,
    885,
    887,
    866,
    867,
    869,
    871,
    872,
    873,
    875,
    877,
    889,
    891,
    893,
    900,
    899,
    899,
    903,
    905,
    895,
    897,
    898,
    906,
    909,
    911,
    912,
    914,
    916,
    918,
    920,
    921,
    924,
    926,
    927,
    930,
    932,
    934,
    936,
    937,
    939,
    940,
    941,
    942,
    943,
    944,
    945,
    946,
    947,
    950,
    952,
    954,
    955,
    956,
    958,
    961,
    962,
    965,
    964,
    964,
    968,
    970,
    973,
    974,
    976,
    978,
    979,
    980,
    982,
    984,
    986,
    987,
    988,
    989,
    990,
    991,
    993,
    995,
    996,
    998,
    999,
    1000,
    1003,
    1005,
    1006,
    1007,
    1008,
    1011,
    1013,
    1014,
    1016,
    1017,
    1019,
    1021,
    1022,
    1023,
    1028,
    1029,
    1033,
    1032,
    1032,
    1036,
    1038,
    1041,
    1040,
    1042,
    1031,
    1043,
    1047,
    1048,
    1050,
    1051,
    1052,
    1054,
    1055,
    1056,
    1058,
    1059,
    1060,
    1063,
    1065,
    1066,
    1068,
    1070,
    1072,
    1073,
    1075,
    1076,
    1077,
    1078,
    1080,
    1082,
    1084,
    1085,
    1086,
    1087,
    1088,
    1089,
    1095,
    1096,
    1098,
    1099,
    1101,
    1102,
    1103,
    1108,
    1109,
    1110,
    1111,
    1113,
    1115,
    1117,
    1121,
    1120,
    1120,
    1124,
    1126,
    1119,
    1127,
    1129,
    1131,
    1132,
    1134,
    1135,
    1138,
    1139,
    1142,
    1144,
    1147,
    1148,
    1150,
    1151,
    1153,
    1154,
    1156,
    1157,
    1158,
    1159,
    1160,
    1161,
    1164,
    1165,
    1167,
    1168,
    1169,
    1170,
    1172,
    1174,
    1176,
    1177,
    1180,
    1181,
    1184,
    1185,
    1188,
    1190,
    1194,
    1193,
    1193,
    1197,
    1199,
    1201,
    1200,
    1202,
    1192,
    1203,
    1205,
    1206,
    1208,
    1209,
    1211,
    1212,
    1214,
    1215,
    1217,
    1218,
    1220,
    1221,
    1223,
    1224,
    1226,
    1229,
    1232,
    1233,
    1235,
    1236,
    1242,
    1241,
    1241,
    1245,
    1247,
    1238,
    1240,
    1248,
    1250,
    1252,
    1254,
    1255,
    1257,
    1259,
    1260,
    1262,
    1263,
    1265,
    1267,
    1268,
    1270,
    1271,
    1272,
    1273,
    1274,
    1275,
    1276,
    1277,
    1278,
    1279,
    1281,
    1282,
    1283,
    1285,
    1286,
    1292,
    1291,
    1291,
    1295,
    1297,
    1288,
    1290,
    1298,
    1304,
    1303,
    1303,
    1307,
    1309,
    1300,
    1302,
    1310,
    1313,
    1314,
    1320,
    1319,
    1319,
    1323,
    1325,
    1316,
    1318,
    1326,
    1329,
    1330,
    1332,
    1333,
    1335,
    1337,
    1338,
    1344,
    1343,
    1343,
    1347,
    1349,
    1340,
    1342,
    1350,
    1352,
    1353,
    1355,
    1361,
    1360,
    1360,
    1364,
    1366,
    1357,
    1359,
    1367,
    1373,
    1372,
    1372,
    1376,
    1378,
    1369,
    1371,
    1379,
    1381,
    1383,
    1384,
    1385,
    1386,
    1392,
    1391,
    1391,
    1395,
    1397,
    1388,
    1390,
    1398,
    1400,
    1401,
    1403,
    1404,
    1407,
    1409,
    1412,
    1413,
    1417,
    1416,
    1418,
    1415,
    1419,
    1423,
    1422,
    1422,
    1426,
    1428,
    1431,
    1430,
    1432,
    1421,
    1433,
    1435,
    1437,
    1439,
    1441,
    1442,
    1444,
    1445,
    1448,
    1449,
    1453,
    1454,
    1456,
    1457,
    1460,
    1459,
    1459,
    1463,
    1465,
    1467,
    1466,
    1468,
    1471,
    1472,
    1474,
    1475,
    1477,
    1478,
    1480,
    1481,
    1484,
    1485,
    1487,
    1489,
    1491,
    1494,
    1493,
    1493,
    1497,
    1499,
    1501,
    1500,
    1502,
    1504,
    1505,
    1506,
    1507,
    1510,
    1512,
    1514,
    1515,
    1517,
    1518,
    1519,
    1520,
    1521,
    1522,
    1523,
    1524,
    1525,
    1526,
    1527,
    1528,
    1529,
    1530,
    1531,
    1532,
    1533,
    1534,
    1535,
    1536,
    1537,
    1539,
    1540,
    1542,
    1545,
    1547,
    1548,
    1551,
    1552,
    1554,
    1555,
    1557,
    1558,
    1560,
    1563,
    1564,
    1565,
    1567,
    1568,
    1569,
    1571,
    1573,
    1576,
    1575,
    1575,
    1579,
    1581,
    1583,
    1584,
    1586,
    1587,
    1590,
    1591,
    1592,
    1593,
    1595,
    1596,
    1597,
    1599,
    1600,
    1601,
    1603,
    1604,
    1605,
    1606,
    1607,
    1608,
    1609,
    1610,
    1611,
    1612,
    1613,
    1614,
    1615,
    1620,
    1619,
    1621,
    1618,
    1622,
    1626,
    1627,
    1628,
    1629,
    1632,
    1633,
    1634,
    1635,
    1636,
    1640,
    1641,
    1644,
    1645,
    1648,
    1647,
    1649,
    1651,
    1652,
    1656,
    1655,
    1657,
    1654,
    1659,
    1662,
    1663,
    1665,
    1666,
    1667,
    1669,
    1670,
    1671,
    1673,
    1674,
    1677,
    1679,
    1680,
    1681,
    1685,
    1686,
    1687,
    1692,
    1691,
    1693,
    1689,
    1690,
    1695,
    1696,
    1698,
    1699,
    1700,
    1702,
    1703,
    1705,
    1707,
    1708,
    1710,
    1711,
    1713,
    1714,
    1716,
    1717,
    1719,
    1720,
    1721,
    1726,
    1725,
    1725,
    1729,
    1731,
    1724,
    1732,
    1734,
    1735,
    1737,
    1738,
    1740,
    1742,
    1744,
    1745,
    1747,
    1748,
    1750,
    1751,
    1753,
    1755,
    1758,
    1759,
    1762,
    1761,
    1761,
    1765,
    1767,
    1769,
    1770,
    1772,
    1774,
    1776,
    1778,
    1781,
    1783,
    1785,
    1787,
    1790,
    1789,
    1791,
    1793,
    1794,
    1795,
    1801,
    1802,
    1805,
    1807,
    1813,
    1812,
    1814,
    1810,
    1811,
    1815,
    1817,
    1819,
    1820,
    1822,
    1824,
    1828,
    1827,
    1827,
    1831,
    1833,
    1835,
    1834,
    1836,
    1840,
    1839,
    1841,
    1843,
    1844,
    1848,
    1847,
    1849,
    1846,
    1851,
    1853,
    1854,
    1859,
    1860,
    1861,
    1863,
    1864,
    1865,
    1866,
    1868,
    1869,
    1872,
    1871,
    1871,
    1875,
    1877,
    1881,
    1880,
    1880,
    1884,
    1886,
    1889,
    1888,
    1890,
    1879,
    1891,
    1895,
    1896,
    1901,
    1900,
    1900,
    1904,
    1906,
    1908,
    1907,
    1909,
    1898,
    1899,
    1910,
    1913,
    1914,
    1917,
    1918,
    1920,
    1921,
    1922,
    1924,
    1925,
    1926,
    1928,
    1929,
    1932,
    1933,
    1934,
    1936,
    1937,
    1940,
    1939,
    1939,
    1943,
    1945,
    1947,
    1946,
    1948,
    1950,
    1951,
    1954,
    1955,
    1957,
    1958,
    1959,
    1961,
    1962,
    1964,
    1965,
    1967,
    1968,
    1969,
    1971,
    1972,
    1975,
    1976,
    1977,
    1980,
    1979,
    1979,
    1983,
    1985,
    1987,
    1986,
    1988,
    1991,
    1990,
    1992,
    1994,
    1995,
    1997,
    1998,
    2000,
    2002,
    2004,
    2007,
    2008,
    2010,
    2011,
    2012,
    2013,
    2017,
    2018,
    2021,
    2022,
    2023,
    2024,
    2025,
    2027,
    2028,
    2032,
    2034,
    2036,
    2037,
    2040,
    2041,
    2044,
    2043,
    2045,
    2047,
    2048,
    2050,
    2052,
    2054,
    2055,
    2056,
    2058,
    2059,
    2061,
    2062,
    2065,
    2066,
    2068,
    2069,
    2070,
    2072,
    2074,
    2075,
    2077,
    2079,
    2081,
    2083,
    2085,
    2086,
    2092,
    2091,
    2091,
    2095,
    2097,
    2099,
    2098,
    2100,
    2089,
    2090,
    2101,
    2103,
    2104,
    2107,
    2108,
    2110,
    2111,
    2113,
    2115,
    2119,
    2122,
    2124,
    2125,
    2127,
    2128,
    2129,
    2130,
    2131,
    2132,
    2133,
    2134,
    2135,
    2136,
    2137,
    2138,
    2139,
    2140,
    2142,
    2143,
    2145,
    2146,
    2148,
    2152,
    2151,
    2153,
    2150,
    2154,
    2156,
    2157,
    2158,
    2161,
    2162,
    2163,
    2164,
    2165,
    2166,
    2167,
    2169,
    2170,
    2171,
    2173,
    2174,
    2175,
    2177,
    2178,
    2179,
    2181,
    2182,
    2183,
    2185,
    2186,
    2187,
    2189,
    2190,
    2191,
    2193,
    2194,
    2195,
    2172,
    2176,
    2180,
    2184,
    2188,
    2192,
    2196,
    2198,
    2199,
    2201,
    2202,
    2204,
    2205,
    2207,
    2208,
    2211,
    2212,
    2213,
    2214,
    2215,
    2217,
    2220,
    2222,
    2224,
    2225,
    2226,
    2228,
    2229,
    2231,
    2234,
    2236,
    2238,
    2239,
    2241,
    2242,
    2243,
    2244,
    2248,
    2249,
    2250,
    2254,
    2255,
    2257,
    2256,
    2258,
    2252,
    2253,
    2259,
    2260,
    2261,
    2263,
    2264,
    2265,
    2266,
    2268,
    2269,
    2270,
    2272,
    2273,
    2274,
    2276,
    2277,
    2279,
    2280,
    2281,
    2282,
    2283,
    2284,
    2286,
    2287,
    2288,
    2291,
    2292,
    2293,
    2294,
    2295,
    2298,
    2300,
    2302,
    2305,
    2309,
    2308,
    2308,
    2312,
    2314,
    2307,
    2315,
    2316,
    2317,
    2320,
    2322,
    2324,
    2325,
    2327,
    2329,
    2330,
    2332,
    2333,
    2334,
    2335,
    2336,
    2337,
    2338,
    2339,
    2340,
    2341,
    2344,
    2345,
    2347,
    2349,
    2351,
    2352,
    2354,
    2355,
    2356,
    2357,
    2359,
    2361,
    2363,
    2364,
    2365,
    2371,
    2370,
    2370,
    2374,
    2376,
    2367,
    2368,
    2369,
    2377,
    2378,
    2379,
    2381,
    2382,
    2384,
    2385,
    2387,
    2388,
    2390,
    2391,
    2392,
    2394,
    2395,
    2396,
    2398,
    2399,
    2401,
    2403,
    2407,
    2410,
    2412,
    2413,
    2416,
    2417,
    2419,
    2422,
    2424,
    2425,
    2429,
    2428,
    2430,
    2431,
    2432,
    2433,
    2435,
    2436,
    2439,
    2440,
    2442,
    2443,
    2446,
    2445,
    2445,
    2449,
    2451,
    2453,
    2454,
    2458,
    2457,
    2457,
    2461,
    2463,
    2456,
    2465,
    2466,
    2468,
    2469,
    2470,
    2474,
    2473,
    2473,
    2477,
    2479,
    2481,
    2480,
    2482,
    2472,
    2484,
    2486,
    2487,
    2489,
    2490,
    2491,
    2493,
    2494,
    2495,
    2496,
    2497,
    2500,
    2501,
    2503,
    2504,
    2508,
    2509,
    2510,
    2511,
    2512,
    2513,
    2515,
    2517,
    2519,
    2520,
    2522,
    2523,
    2525,
    2526,
    2529,
    2531,
    2533,
    2535,
    2538,
    2537,
    2539,
    2542,
    2541,
    2541,
    2545,
    2547,
    2549,
    2550,
    2552,
    2553,
    2555,
    2556,
    2560,
    2561,
    2563,
    2564,
    2565,
    2567,
    2568,
    2570,
    2573,
    2575,
    2576,
    2579,
    2578,
    2578,
    2582,
    2584,
    2586,
    2585,
    2587,
    2590,
    2591,
    2592,
    2593,
    2594,
    2595,
    2597,
    2599,
    2600,
    2601,
    2603,
    2604,
    2606,
    2608,
    2611,
    2612,
    2613,
    2614,
    2615,
    2617,
    2619,
    2621,
    2626,
    2627,
    2628,
    2630,
    2631,
    2633,
    2634,
    2635,
    2636,
    2639,
    2640,
    2641,
    2643,
    2644,
    2646,
    2647,
    2648,
    2649,
    2651,
    2652,
    2655,
    2654,
    2656,
    2657,
    2659,
    2663,
    2664,
    2665,
    2667,
    2670,
    2671,
    2676,
    2677,
    2679,
    2680,
    2681,
    2683,
    2684,
    2686,
    2687,
    2695,
    2696,
    2697,
    2699,
    2701,
    2702,
    2703,
    2705,
    2706,
    2708,
    2709,
    2711,
    2712,
    2714,
    2715,
    2720,
    2722,
    2723,
    2726,
    2727,
    2728,
    2732,
    2731,
    2733,
    2730,
    2734,
    2737,
    2738,
    2740,
    2741,
    2743,
    2744,
    2747,
    2748,
    2750,
    2752,
    2754,
    2755,
    2757,
    2758,
    2760,
    2761,
    2763,
    2765,
    2767,
    2769,
    2771,
    2772,
    2775,
    2776,
    2778,
    2779,
    2781,
    2782,
    2784,
    2785,
    2787,
    2789,
    2791,
    2792,
    2793,
    2795,
    2796,
    2798,
    2799,
    2801,
    2802,
    2803,
    2804,
    2806,
    2808,
    2809,
    2816,
    2817,
    2823,
    2824,
    2826,
    2827,
    2829,
    2830,
    2832,
    2833,
    2835,
    2837,
    2839,
    2841,
    2842,
    2843,
    2845,
    2846,
    2848,
    2850,
    2852,
    2854,
    2857,
    2856,
    2856,
    2860,
    2862,
    2864,
    2865,
    2867,
    2868,
    2870,
    2873,
    2875,
    2876,
    2878,
    2879,
    2881,
    2882,
    2886,
    2885,
    2887,
    2884,
    2888,
    2891,
    2890,
    2890,
    2894,
    2896,
    2898,
    2899,
    2900,
    2901,
    2903,
    2905,
    2906,
    2907,
    2908,
    2911,
    2910,
    2912,
    2915,
    2914,
    2916,
    2921,
    2920,
    2922,
    2919,
    2923,
    2925,
    2927,
    2930,
    2929,
    2929,
    2933,
    2935,
    2938,
    2937,
    2939,
    2942,
    2941,
    2941,
    2945,
    2947,
    2949,
    2948,
    2950,
    2953,
    2952,
    2954,
    2956,
    2957,
    2958,
    2960,
    2961,
    2962,
    2963,
    2964,
    2966,
    2968,
    2973,
    2972,
    2972,
    2976,
    2978,
    2980,
    2979,
    2981,
    2970,
    2971,
    2982,
    2984,
    2985,
    2987,
    2988,
    2989,
    2990,
    2992,
    2995,
    2996,
    2997,
    3001,
    3000,
    3000,
    3004,
    3006,
    3011,
    3010,
    3012,
    3008,
    3009,
    3013,
    3016,
    3017,
    3018,
    3021,
    3022,
    3025,
    3026,
    3028,
    3029,
    3031,
    3033,
    3035,
    3038,
    3037,
    3039,
    3041,
    3042,
    3044,
    3045,
    3046,
    3048,
    3049,
    3052,
    3053,
    3054,
    3058,
    3057,
    3059,
    3056,
    3060,
    3062,
    3063,
    3068,
    3069,
    3070,
    3072,
    3073,
    3075,
    3077,
    3081,
    3080,
    3080,
    3084,
    3086,
    3088,
    3087,
    3089,
    3091,
    3092,
    3095,
    3096,
    3100,
    3101,
    3103,
    3104,
    3105,
    3106,
    3108,
    3109,
    3111,
    3112,
    3113,
    3115,
    3116,
    3119,
    3120,
    3125,
    3126,
    3127,
    3130,
    3131,
    3132,
    3136,
    3135,
    3137,
    3134,
    3138,
    3142,
    3143,
    3146,
    3148,
    3149,
    3151,
    3153,
    3156,
    3159,
    3160,
    3162,
    3163,
    3165,
    3166,
    3167,
    3169,
    3170,
    3172,
    3173,
    3175,
    3176,
    3178,
    3180,
    3181,
    3185,
    3186,
    3188,
    3189,
    3194,
    3195,
    3197,
    3199,
    3200,
    3202,
    3203,
    3204,
    3205,
    3207,
    3208,
    3209,
    3210,
    3214,
    3215,
    3216,
    3217,
    3219,
    3220,
    3221,
    3224,
    3226,
    3227,
    3228,
    3229,
    3231,
    3233,
    3235,
    3236,
    3239,
    3238,
    3238,
    3242,
    3244,
    3246,
    3245,
    3247,
    3249,
    3250,
    3252,
    3253,
    3255,
    3256,
    3257,
    3260,
    3262,
    3263,
    3264,
    3265,
    3267,
    3268,
    3270,
    3271,
    3272,
    3275,
    3274,
    3274,
    3278,
    3280,
    3282,
    3281,
    3283,
    3285,
    3286,
    3290,
    3289,
    3291,
    3288,
    3292,
    3294,
    3295,
    3297,
    3298,
    3299,
    3302,
    3301,
    3301,
    3305,
    3307,
    3309,
    3308,
    3310,
    3313,
    3314,
    3317,
    3318,
    3319,
    3324,
    3325,
    3328,
    3327,
    3327,
    3331,
    3333,
    3322,
    3323,
    3326,
    3334,
    3339,
    3340,
    3345,
    3346,
    3349,
    3350,
    3353,
    3354,
    3356,
    3357,
    3358,
    3360,
    3361,
    3362,
    3364,
    3365,
    3367,
    3368,
    3373,
    3375,
    3377,
    3378,
    3380,
    3382,
    3384,
    3386,
    3391,
    3390,
    3390,
    3394,
    3396,
    3399,
    3398,
    3400,
    3389,
    3401,
    3403,
    3404,
    3406,
    3407,
    3409,
    3411,
    3414,
    3415,
    3416,
    3417,
    3419,
    3421,
    3423,
    3424,
    3428,
    3427,
    3429,
    3426,
    3431,
    3436,
    3435,
    3437,
    3434,
    3438,
    3440,
    3443,
    3444,
    3447,
    3448,
    3446,
    3450,
    3454,
    3455,
    3457,
    3458,
    3463,
    3464,
    3466,
    3467,
    3469,
    3470,
    3472,
    3473,
    3475,
    3476,
    3478,
    3479,
    3481,
    3482,
    3483,
    3485,
    3486,
    3488,
    3489,
    3492,
    3493,
    3495,
    3496,
    3498,
    3500,
    3502,
    3504,
    3505,
    3507,
    3509,
    3513,
    3512,
    3514,
    3516,
    3519,
    3521,
    3522,
    3526,
    3527,
    3529,
    3531,
    3532,
    3533,
    3534,
    3535,
    3536,
    3540,
    3541,
    3543,
    3544,
    3546,
    3547,
    3549,
    3550,
    3551,
    3553,
    3554,
    3556,
    3558,
    3559,
    3561,
    3562,
    3564,
    3566,
    3567,
    3570,
    3571,
    3572,
    3573,
    3574,
    3575,
    3578,
    3579,
    3580,
    3582,
    3583,
    3585,
    3586,
    3587,
    3589,
    3591,
    3593,
    3594,
    3596,
    3598,
    3600,
    3601,
    3604,
    3605,
    3611,
    3610,
    3610,
    3614,
    3616,
    3618,
    3617,
    3619,
    3607,
    3608,
    3609,
    3620,
    3622,
    3623,
    3628,
    3629,
    3635,
    3634,
    3636,
    3631,
    3632,
    3633,
    3637,
    3639,
    3640,
    3642,
    3643,
    3644,
    3646,
    3647,
    3649,
    3650,
    3652,
    3653,
    3655,
    3657,
    3659,
    3662,
    3663,
    3667,
    3668,
    3669,
    3672,
    3673,
    3675,
    3677,
    3679,
    3682,
    3683,
    3685,
    3687,
    3688,
    3689,
    3691,
    3692,
    3696,
    3697,
    3698,
    3699,
    3701,
    3702,
    3703,
    3704,
    3706,
    3707,
    3708,
    3709,
    3711,
    3712,
    3714,
    3715,
    3716,
    3717,
    3718,
    3719,
    3720,
    3722,
    3724,
    3726,
    3728,
    3730,
    3732,
    3734,
    3736,
    3738,
    3741,
    3740,
    3742,
    3744,
    3745,
    3747,
    3748,
    3750,
    3751,
    3752,
    3753,
    3754,
    3755,
    3756,
    3757,
    3758,
    3759,
    3760,
    3761,
    3762,
    3763,
    3764,
    3765,
    3766,
    3767,
    3768,
    3769,
    3772,
    3773,
    3774,
    3775,
    3776,
    3781,
    3783,
    3785,
    3787,
    3788,
    3789,
    3792,
    3794,
    3799,
    3798,
    3798,
    3802,
    3804,
    3806,
    3805,
    3807,
    3796,
    3797,
    3808,
    3810,
    3811,
    3812,
    3813,
    3814,
    3815,
    3816,
    3817,
    3818,
    3819,
    3820,
    3821,
    3823,
    3824,
    3825,
    3826,
    3827,
    3828,
    3829,
    3830,
    3831,
    3833,
    3836,
    3839,
    3840,
    3842,
    3844,
    3845,
    3847,
    3848,
    3851,
    3852,
    3854,
    3856,
    3858,
    3864,
    3865,
    3867,
    3868,
    3870,
    3871,
    3872,
    3873,
    3874,
    3875,
    3876,
    3877,
    3878,
    3879,
    3880,
    3881,
    3882,
    3883,
    3884,
    3885,
    3886,
    3887,
    3888,
    3889,
    3890,
    3891,
    3892,
    3893,
    3894,
    3895,
    3896,
    3897,
    3898,
    3899,
    3900,
    3901,
    3902,
    3903,
    3904,
    3905,
    3907,
    3909,
    3915,
    3916,
    3918,
    3920,
    3924,
    3923,
    3923,
    3927,
    3929,
    3922,
    3931,
    3932,
    3934,
    3935,
    3936,
    3942,
    3944,
    3945,
    3949,
    3948,
    3950,
    3952,
    3953,
    3957,
    3956,
    3958,
    3955,
    3959,
    3962,
    3961,
    3961,
    3965,
    3967,
    3970,
    3971,
    3973,
    3975,
    3977,
    3978,
    3982,
    3983,
    3985,
    3986,
    3988,
    3990,
    3991,
    3993,
    3995,
    3997,
    3998,
    4000,
    4001,
    4002,
    4004,
    4006,
    4009,
    4008,
    4008,
    4012,
    4014,
    4017,
    4016,
    4018,
    4021,
    4022,
    4023,
    4025,
    4027,
    4030,
    4031,
    4034,
    4035,
    4036,
    4040,
    4039,
    4041,
    4038,
    4042,
    4044,
    4046,
    4047,
    4049,
    4051,
    4053,
    4054,
    4056,
    4059,
    4061,
    4062,
    4065,
    4066,
    4069,
    4071,
    4072,
    4074,
    4080,
    4079,
    4081,
    4076,
    4078,
    4082,
    4084,
    4086,
    4087,
    4089,
    4092,
    4091,
    4091,
    4095,
    4097,
    4099,
    4101,
    4103,
    4106,
    4107,
    4108,
    4111,
    4112,
    4115,
    4116,
    4118,
    4120,
    4122,
    4125,
    4126,
    4127,
    4132,
    4133,
    4134,
    4135,
    4138,
    4139,
    4141,
    4142,
    4143,
    4144,
    4149,
    4150,
    4147,
    4151,
    4153,
    4154,
    4155,
    4157,
    4158,
    4160,
    4161,
    4163,
    4164,
    4165,
    4169,
    4170,
    4171,
    4172,
    4175,
    4174,
    4174,
    4178,
    4180,
    4182,
    4183,
    4184,
    4185,
    4190,
    4191,
    4192,
    4194,
    4195,
    4198,
    4199,
    4200,
    4207,
    4206,
    4206,
    4210,
    4212,
    4203,
    4205,
    4213,
    4216,
    4217,
    4218,
    4222,
    4221,
    4223,
    4220,
    4224,
    4228,
    4229,
    4233,
    4235,
    4236,
    4241,
    4240,
    4242,
    4239,
    4243,
    4247,
    4246,
    4246,
    4250,
    4252,
    4254,
    4253,
    4255,
    4245,
    4256,
    4258,
    4261,
    4263,
    4264,
    4266,
    4267,
    4268,
    4271,
    4270,
    4270,
    4274,
    4276,
    4278,
    4277,
    4279,
    4281,
    4282,
    4285,
    4284,
    4284,
    4288,
    4290,
    4293,
    4292,
    4294,
    4299,
    4300,
    4301,
    4302,
    4303,
    4304,
    4305,
    4306,
    4307,
    4308,
    4309,
    4310,
    4312,
    4313,
    4320,
    4319,
    4321,
    4318,
    4322,
    4324,
    4325,
    4328,
    4327,
    4327,
    4331,
    4333,
    4335,
    4334,
    4336,
    4339,
    4340,
    4342,
    4343,
    4344,
    4345,
    4347,
    4350,
    4349,
    4351,
    4353,
    4354,
    4355,
    4359,
    4360,
    4361,
    4364,
    4365,
    4371,
    4370,
    4370,
    4374,
    4376,
    4378,
    4377,
    4379,
    4368,
    4369,
    4381,
    4383,
    4385,
    4387,
    4388,
    4391,
    4392,
    4394,
    4395,
    4397,
    4398,
    4400,
    4403,
    4405,
    4406,
    4407,
    4410,
    4409,
    4409,
    4413,
    4415,
    4418,
    4417,
    4417,
    4421,
    4423,
    4425,
    4424,
    4426,
    4427,
    4428,
    4429,
    4432,
    4433,
    4434,
    4435,
    4437,
    4439,
    4441,
    4443,
    4444,
    4446,
    4447,
    4449,
    4450,
    4451,
    4453,
    4454,
    4455,
    4458,
    4462,
    4461,
    4461,
    4465,
    4467,
    4469,
    4468,
    4470,
    4460,
    4471,
    4473,
    4474,
    4479,
    4478,
    4480,
    4476,
    4477,
    4481,
    4483,
    4484,
    4487,
    4489,
    4491,
    4493,
    4495,
    4496,
    4497,
    4498,
    4499,
    4501,
    4502,
    4505,
    4504,
    4504,
    4508,
    4510,
    4512,
    4511,
    4513,
    4515,
    4517,
    4519,
    4521,
    4522,
    4526,
    4525,
    4525,
    4529,
    4531,
    4524,
    4532,
    4535,
    4534,
    4534,
    4538,
    4540,
    4542,
    4541,
    4543,
    4546,
    4547,
    4549,
    4551,
    4552,
    4555,
    4554,
    4554,
    4558,
    4560,
    4565,
    4566,
    4569,
    4570,
    4572,
    4573,
    4577,
    4576,
    4576,
    4580,
    4582,
    4575,
    4583,
    4585,
    4586,
    4587,
    4589,
    4590,
    4592,
    4593,
    4594,
    4595,
    4597,
    4598,
    4599,
    4602,
    4604,
    4606,
    4609,
    4608,
    4610,
    4612,
    4613,
    4616,
    4617,
    4620,
    4619,
    4621,
    4626,
    4625,
    4625,
    4629,
    4631,
    4623,
    4624,
    4632,
    4638,
    4637,
    4637,
    4641,
    4643,
    4634,
    4636,
    4644,
    4646,
    4647,
    4649,
    4650,
    4652,
    4653,
    4655,
    4656,
    4657,
    4660,
    4661,
    4663,
    4664,
    4666,
    4667,
    4670,
    4672,
    4674,
    4675,
    4677,
    4678,
    4683,
    4682,
    4684,
    4680,
    4681,
    4685,
    4689,
    4690,
    4692,
    4693,
    4694,
    4698,
    4699,
    4701,
    4705,
    4704,
    4706,
    4703,
    4707,
    4708,
    4712,
    4713,
    4714,
    4715,
    4716,
    4717,
    4718,
];

/// The rules, sorted by name so a lookup by name is a binary search and the table does
/// not depend on the order the generator happened to walk the grammar.
#[rustfmt::skip]
pub static RULES: [Rule; 1088] = [
    Rule { name: "AbortOrRollback", root: 2, memoized: false },
    Rule { name: "AddColumn", root: 9, memoized: false },
    Rule { name: "AddColumnEntry", root: 18, memoized: false },
    Rule { name: "AddConstraint", root: 21, memoized: false },
    Rule { name: "AddDefault", root: 25, memoized: false },
    Rule { name: "AddOrDropDefault", root: 28, memoized: false },
    Rule { name: "AdditiveExpression", root: 33, memoized: true },
    Rule { name: "AdditiveExpressionTail", root: 36, memoized: false },
    Rule { name: "AliasedExpression", root: 40, memoized: false },
    Rule { name: "AllKeyword", root: 41, memoized: false },
    Rule { name: "AlterColumn", root: 47, memoized: false },
    Rule { name: "AlterColumnEntry", root: 51, memoized: false },
    Rule { name: "AlterDatabaseStmt", root: 60, memoized: false },
    Rule { name: "AlterOptions", root: 66, memoized: false },
    Rule { name: "AlterSchemaStmt", root: 72, memoized: false },
    Rule { name: "AlterSequenceOptions", root: 75, memoized: false },
    Rule { name: "AlterSequenceStmt", root: 81, memoized: false },
    Rule { name: "AlterStatement", root: 84, memoized: false },
    Rule { name: "AlterTableOptions", root: 99, memoized: false },
    Rule { name: "AlterTableStmt", root: 112, memoized: false },
    Rule { name: "AlterType", root: 120, memoized: false },
    Rule { name: "AlterViewStmt", root: 126, memoized: false },
    Rule { name: "AlwaysOrByDefault", root: 131, memoized: false },
    Rule { name: "AnalyzeKeyword", root: 134, memoized: false },
    Rule { name: "AnalyzeStatement", root: 140, memoized: false },
    Rule { name: "AnalyzeTarget", root: 144, memoized: false },
    Rule { name: "AnalyzeVerbose", root: 145, memoized: false },
    Rule { name: "AndExpression", root: 148, memoized: false },
    Rule { name: "AnonymousParameter", root: 149, memoized: false },
    Rule { name: "AntiJoin", root: 150, memoized: false },
    Rule { name: "AnyAllOperator", root: 153, memoized: false },
    Rule { name: "AnyAllParsedOperator", root: 154, memoized: false },
    Rule { name: "AnyOp", root: 194, memoized: false },
    Rule { name: "AnyOrAll", root: 197, memoized: false },
    Rule { name: "ApproxOrExact", root: 200, memoized: false },
    Rule { name: "ArrayBoundedListExpression", root: 204, memoized: false },
    Rule { name: "ArrayBounds", root: 208, memoized: false },
    Rule { name: "ArrayKeyword", root: 209, memoized: false },
    Rule { name: "ArrayKeywordWithBounds", root: 212, memoized: false },
    Rule { name: "ArrayParensSelect", root: 218, memoized: false },
    Rule { name: "AscendingOrder", root: 221, memoized: false },
    Rule { name: "Asof", root: 222, memoized: false },
    Rule { name: "AtClause", root: 228, memoized: false },
    Rule { name: "AtSpecifier", root: 232, memoized: false },
    Rule { name: "AtTimeZoneExpression", root: 237, memoized: true },
    Rule { name: "AtTimeZoneExpressionTail", root: 240, memoized: false },
    Rule { name: "AtTimeZoneOperator", root: 244, memoized: false },
    Rule { name: "AtUnit", root: 247, memoized: false },
    Rule { name: "AttachAlias", root: 250, memoized: false },
    Rule { name: "AttachOptions", root: 251, memoized: false },
    Rule { name: "AttachStatement", root: 264, memoized: false },
    Rule { name: "BareNameList", root: 272, memoized: false },
    Rule { name: "BaseExpression", root: 276, memoized: true },
    Rule { name: "BaseTableAliasSet", root: 281, memoized: false },
    Rule { name: "BaseTableName", root: 284, memoized: false },
    Rule { name: "BaseTableRef", root: 294, memoized: false },
    Rule { name: "BaseTableSet", root: 297, memoized: false },
    Rule { name: "BaseWindowName", root: 298, memoized: false },
    Rule { name: "BeginTransaction", root: 304, memoized: false },
    Rule { name: "BetweenClause", root: 309, memoized: false },
    Rule { name: "BetweenFrameExtent", root: 314, memoized: false },
    Rule { name: "BetweenInLikeExpression", root: 318, memoized: false },
    Rule { name: "BetweenInLikeOp", root: 322, memoized: false },
    Rule { name: "BetweenInLikeOpExpression", root: 326, memoized: false },
    Rule { name: "BigintType", root: 327, memoized: false },
    Rule { name: "BinaryOption", root: 328, memoized: false },
    Rule { name: "BitOperator", root: 333, memoized: false },
    Rule { name: "BitType", root: 349, memoized: false },
    Rule { name: "BitwiseExpression", root: 354, memoized: true },
    Rule { name: "BitwiseExpressionTail", root: 357, memoized: false },
    Rule { name: "BooleanType", root: 358, memoized: false },
    Rule { name: "BoundedListExpression", root: 370, memoized: false },
    Rule { name: "ByName", root: 373, memoized: false },
    Rule { name: "ByNameOrPosition", root: 376, memoized: false },
    Rule { name: "BySource", root: 379, memoized: false },
    Rule { name: "BySourceOrTarget", root: 382, memoized: false },
    Rule { name: "ByTarget", root: 385, memoized: false },
    Rule { name: "CTEBody", root: 388, memoized: false },
    Rule { name: "CTEDMLBody", root: 392, memoized: false },
    Rule { name: "CTESelectBody", root: 396, memoized: false },
    Rule { name: "CallStatement", root: 400, memoized: false },
    Rule { name: "CascadeDropBehavior", root: 401, memoized: false },
    Rule { name: "CascadeKeyAction", root: 402, memoized: false },
    Rule { name: "CaseElse", root: 405, memoized: false },
    Rule { name: "CaseExpression", root: 414, memoized: false },
    Rule { name: "CaseWhenThen", root: 419, memoized: false },
    Rule { name: "CastArguments", root: 423, memoized: false },
    Rule { name: "CastExpression", root: 429, memoized: false },
    Rule { name: "CastKeyword", root: 430, memoized: false },
    Rule { name: "CastOperator", root: 433, memoized: false },
    Rule { name: "CastOrTryCast", root: 436, memoized: false },
    Rule { name: "CatalogName", root: 437, memoized: false },
    Rule { name: "CatalogNameAsUseTarget", root: 438, memoized: false },
    Rule { name: "CatalogQualification", root: 441, memoized: false },
    Rule { name: "CatalogReservedSchemaFunctionName", root: 447, memoized: false },
    Rule { name: "CatalogReservedSchemaIdentifier", root: 452, memoized: false },
    Rule { name: "CatalogReservedSchemaIndex", root: 456, memoized: false },
    Rule { name: "CatalogReservedSchemaTable", root: 461, memoized: false },
    Rule { name: "CatalogReservedSchemaTableColumnName", root: 466, memoized: false },
    Rule { name: "CatalogReservedSchemaTypeName", root: 471, memoized: false },
    Rule { name: "CatalogSessionTarget", root: 472, memoized: false },
    Rule { name: "CenturyKeyword", root: 475, memoized: false },
    Rule { name: "ChangeNullability", root: 479, memoized: false },
    Rule { name: "CharacterSimpleType", root: 483, memoized: false },
    Rule { name: "CharacterType", root: 507, memoized: false },
    Rule { name: "CheckConstraint", root: 513, memoized: false },
    Rule { name: "CheckpointForce", root: 514, memoized: false },
    Rule { name: "CheckpointStatement", root: 520, memoized: false },
    Rule { name: "CoalesceExpression", root: 533, memoized: false },
    Rule { name: "ColDefAndExpr", root: 538, memoized: false },
    Rule { name: "ColDefAndExpressionTail", root: 541, memoized: false },
    Rule { name: "ColDefOrExpr", root: 546, memoized: false },
    Rule { name: "ColDefOrExpressionTail", root: 549, memoized: false },
    Rule { name: "ColId", root: 553, memoized: true },
    Rule { name: "ColIdDot", root: 556, memoized: false },
    Rule { name: "ColIdExpression", root: 560, memoized: false },
    Rule { name: "ColIdOrString", root: 563, memoized: false },
    Rule { name: "ColIdType", root: 566, memoized: false },
    Rule { name: "ColIdTypeList", root: 577, memoized: false },
    Rule { name: "ColLabel", root: 584, memoized: false },
    Rule { name: "ColLabelIdentifier", root: 585, memoized: false },
    Rule { name: "ColLabelOrString", root: 588, memoized: false },
    Rule { name: "ColLabelParameter", root: 591, memoized: false },
    Rule { name: "CollateExpression", root: 596, memoized: true },
    Rule { name: "CollateExpressionTail", root: 599, memoized: false },
    Rule { name: "CollateOperator", root: 600, memoized: false },
    Rule { name: "CollationName", root: 601, memoized: false },
    Rule { name: "ColumnAliases", root: 612, memoized: false },
    Rule { name: "ColumnCollation", root: 615, memoized: false },
    Rule { name: "ColumnCompression", root: 619, memoized: false },
    Rule { name: "ColumnConstraint", root: 628, memoized: false },
    Rule { name: "ColumnDefaultExpr", root: 629, memoized: false },
    Rule { name: "ColumnDefinition", root: 640, memoized: false },
    Rule { name: "ColumnIdList", root: 651, memoized: false },
    Rule { name: "ColumnList", root: 659, memoized: false },
    Rule { name: "ColumnName", root: 660, memoized: false },
    Rule { name: "ColumnNameKeyword", root: 661, memoized: false },
    Rule { name: "ColumnReference", root: 667, memoized: true },
    Rule { name: "ColumnsExpression", root: 675, memoized: false },
    Rule { name: "CommentColumn", root: 676, memoized: false },
    Rule { name: "CommentDatabase", root: 677, memoized: false },
    Rule { name: "CommentFunction", root: 678, memoized: false },
    Rule { name: "CommentIndex", root: 679, memoized: false },
    Rule { name: "CommentMacro", root: 680, memoized: false },
    Rule { name: "CommentMacroTable", root: 683, memoized: false },
    Rule { name: "CommentOnType", root: 695, memoized: false },
    Rule { name: "CommentSchema", root: 696, memoized: false },
    Rule { name: "CommentSequence", root: 697, memoized: false },
    Rule { name: "CommentStatement", root: 704, memoized: false },
    Rule { name: "CommentTable", root: 705, memoized: false },
    Rule { name: "CommentType", root: 706, memoized: false },
    Rule { name: "CommentValue", root: 709, memoized: false },
    Rule { name: "CommentView", root: 710, memoized: false },
    Rule { name: "CommitAction", root: 715, memoized: false },
    Rule { name: "CommitOrEnd", root: 718, memoized: false },
    Rule { name: "CommitTransaction", root: 722, memoized: false },
    Rule { name: "ComparisonExpression", root: 727, memoized: true },
    Rule { name: "ComparisonExpressionTail", root: 732, memoized: false },
    Rule { name: "ComparisonOperator", root: 739, memoized: false },
    Rule { name: "ConnectStatement", root: 743, memoized: false },
    Rule { name: "ConstantLiteral", root: 747, memoized: false },
    Rule { name: "ConstraintName", root: 748, memoized: false },
    Rule { name: "ConstraintNameClause", root: 751, memoized: false },
    Rule { name: "CopyData", root: 752, memoized: false },
    Rule { name: "CopyDatabaseFlag", root: 756, memoized: false },
    Rule { name: "CopyFileName", root: 761, memoized: false },
    Rule { name: "CopyFileNameExpression", root: 764, memoized: false },
    Rule { name: "CopyFileNameIdentifier", root: 765, memoized: false },
    Rule { name: "CopyFileNameIdentifierColId", root: 766, memoized: false },
    Rule { name: "CopyFileNameStringLiteral", root: 767, memoized: false },
    Rule { name: "CopyFrom", root: 768, memoized: false },
    Rule { name: "CopyFromDatabase", root: 771, memoized: false },
    Rule { name: "CopyFromDatabaseWithFlag", root: 778, memoized: false },
    Rule { name: "CopyFromDatabaseWithoutFlag", root: 784, memoized: false },
    Rule { name: "CopyGenericOption", root: 788, memoized: false },
    Rule { name: "CopyGenericOptionList", root: 799, memoized: false },
    Rule { name: "CopyOptionList", root: 802, memoized: false },
    Rule { name: "CopyOptionName", root: 803, memoized: false },
    Rule { name: "CopyOptions", root: 807, memoized: false },
    Rule { name: "CopySchema", root: 808, memoized: false },
    Rule { name: "CopySelect", root: 817, memoized: false },
    Rule { name: "CopyStatement", root: 820, memoized: false },
    Rule { name: "CopyTable", root: 828, memoized: false },
    Rule { name: "CopyTo", root: 829, memoized: false },
    Rule { name: "CopyVariations", root: 833, memoized: false },
    Rule { name: "CreateColumnList", root: 843, memoized: false },
    Rule { name: "CreateExtensionRepositoryStmt", root: 855, memoized: false },
    Rule { name: "CreateExternalResourceStmt", root: 864, memoized: false },
    Rule { name: "CreateIndexStmt", root: 894, memoized: false },
    Rule { name: "CreateMacroStmt", root: 907, memoized: false },
    Rule { name: "CreateRecursive", root: 908, memoized: false },
    Rule { name: "CreateSchemaStmt", root: 913, memoized: false },
    Rule { name: "CreateSecretStmt", root: 922, memoized: false },
    Rule { name: "CreateSecure", root: 923, memoized: false },
    Rule { name: "CreateSequenceStmt", root: 931, memoized: false },
    Rule { name: "CreateStatement", root: 938, memoized: false },
    Rule { name: "CreateStatementVariation", root: 948, memoized: false },
    Rule { name: "CreateTableAs", root: 959, memoized: false },
    Rule { name: "CreateTableColumnDefinition", root: 960, memoized: false },
    Rule { name: "CreateTableColumnElement", root: 963, memoized: false },
    Rule { name: "CreateTableColumnList", root: 971, memoized: false },
    Rule { name: "CreateTableConstraint", root: 972, memoized: false },
    Rule { name: "CreateTableDefinition", root: 975, memoized: false },
    Rule { name: "CreateTableStmt", root: 983, memoized: false },
    Rule { name: "CreateTriggerStmt", root: 997, memoized: false },
    Rule { name: "CreateType", root: 1001, memoized: false },
    Rule { name: "CreateTypeFromType", root: 1002, memoized: false },
    Rule { name: "CreateTypeStmt", root: 1009, memoized: false },
    Rule { name: "CreateViewStmt", root: 1024, memoized: false },
    Rule { name: "CrossJoinPrefix", root: 1025, memoized: false },
    Rule { name: "CsvOption", root: 1026, memoized: false },
    Rule { name: "CubeKeyword", root: 1027, memoized: false },
    Rule { name: "CubeOrRollup", root: 1030, memoized: false },
    Rule { name: "CubeOrRollupClause", root: 1044, memoized: false },
    Rule { name: "Database", root: 1045, memoized: false },
    Rule { name: "DatabasePath", root: 1046, memoized: false },
    Rule { name: "DayKeyword", root: 1049, memoized: false },
    Rule { name: "DayToHour", root: 1053, memoized: false },
    Rule { name: "DayToMinute", root: 1057, memoized: false },
    Rule { name: "DayToSecond", root: 1061, memoized: false },
    Rule { name: "DeallocatePrepare", root: 1062, memoized: false },
    Rule { name: "DeallocateStatement", root: 1067, memoized: false },
    Rule { name: "DecType", root: 1071, memoized: false },
    Rule { name: "DecadeKeyword", root: 1074, memoized: false },
    Rule { name: "DecimalNumericType", root: 1079, memoized: false },
    Rule { name: "DecimalType", root: 1083, memoized: false },
    Rule { name: "DefArg", root: 1090, memoized: false },
    Rule { name: "DefArgKeyword", root: 1091, memoized: false },
    Rule { name: "DefArgNull", root: 1092, memoized: false },
    Rule { name: "DefArgStringLiteral", root: 1093, memoized: false },
    Rule { name: "DefaultExpression", root: 1094, memoized: false },
    Rule { name: "DefaultValue", root: 1097, memoized: false },
    Rule { name: "DefaultValues", root: 1100, memoized: false },
    Rule { name: "DeleteAction", root: 1104, memoized: false },
    Rule { name: "DeleteMatchClause", root: 1105, memoized: false },
    Rule { name: "DeleteRows", root: 1106, memoized: false },
    Rule { name: "DeleteStatement", root: 1118, memoized: false },
    Rule { name: "DeleteUsingClause", root: 1128, memoized: false },
    Rule { name: "DelimiterAsOption", root: 1133, memoized: false },
    Rule { name: "DescOrAsc", root: 1136, memoized: false },
    Rule { name: "DescRule", root: 1137, memoized: false },
    Rule { name: "DescendingOrder", root: 1140, memoized: false },
    Rule { name: "DescribeBaseTableName", root: 1141, memoized: false },
    Rule { name: "DescribeByName", root: 1145, memoized: false },
    Rule { name: "DescribeLongRule", root: 1146, memoized: false },
    Rule { name: "DescribeOrSummarize", root: 1149, memoized: false },
    Rule { name: "DescribeRule", root: 1152, memoized: false },
    Rule { name: "DescribeSelect", root: 1155, memoized: false },
    Rule { name: "DescribeStatement", root: 1162, memoized: false },
    Rule { name: "DescribeStringLiteral", root: 1163, memoized: false },
    Rule { name: "DescribeTarget", root: 1166, memoized: false },
    Rule { name: "DestroyExternalResourceStmt", root: 1171, memoized: false },
    Rule { name: "DetachStatement", root: 1178, memoized: false },
    Rule { name: "DisconnectStatement", root: 1179, memoized: false },
    Rule { name: "DistanceOrSimilarity", root: 1182, memoized: false },
    Rule { name: "DistinctAll", root: 1183, memoized: false },
    Rule { name: "DistinctClause", root: 1186, memoized: false },
    Rule { name: "DistinctKeyword", root: 1187, memoized: false },
    Rule { name: "DistinctOn", root: 1191, memoized: false },
    Rule { name: "DistinctOnTargets", root: 1204, memoized: false },
    Rule { name: "DistinctOrAll", root: 1207, memoized: false },
    Rule { name: "DoNothingMatchClause", root: 1210, memoized: false },
    Rule { name: "DotColLabel", root: 1213, memoized: false },
    Rule { name: "DotColumnOperator", root: 1216, memoized: false },
    Rule { name: "DotIdentifier", root: 1219, memoized: false },
    Rule { name: "DotMethodOperator", root: 1222, memoized: false },
    Rule { name: "DotOperator", root: 1225, memoized: false },
    Rule { name: "DottedIdentifier", root: 1230, memoized: false },
    Rule { name: "DottedIdentifierString", root: 1231, memoized: false },
    Rule { name: "DoubleType", root: 1234, memoized: false },
    Rule { name: "DropBehavior", root: 1237, memoized: false },
    Rule { name: "DropCollation", root: 1249, memoized: false },
    Rule { name: "DropColumn", root: 1258, memoized: false },
    Rule { name: "DropConstraint", root: 1266, memoized: false },
    Rule { name: "DropDefault", root: 1269, memoized: false },
    Rule { name: "DropEntries", root: 1280, memoized: false },
    Rule { name: "DropExtensionRepositoryStmt", root: 1287, memoized: false },
    Rule { name: "DropFunction", root: 1299, memoized: false },
    Rule { name: "DropIndex", root: 1311, memoized: false },
    Rule { name: "DropNullability", root: 1312, memoized: false },
    Rule { name: "DropOrSet", root: 1315, memoized: false },
    Rule { name: "DropSchema", root: 1327, memoized: false },
    Rule { name: "DropSecret", root: 1336, memoized: false },
    Rule { name: "DropSecretStorage", root: 1339, memoized: false },
    Rule { name: "DropSequence", root: 1351, memoized: false },
    Rule { name: "DropStatement", root: 1356, memoized: false },
    Rule { name: "DropTable", root: 1368, memoized: false },
    Rule { name: "DropTableFunction", root: 1380, memoized: false },
    Rule { name: "DropTrigger", root: 1387, memoized: false },
    Rule { name: "DropType", root: 1399, memoized: false },
    Rule { name: "EmptyGroupingItem", root: 1402, memoized: false },
    Rule { name: "EncodingOption", root: 1405, memoized: false },
    Rule { name: "EndOfInput", root: 1406, memoized: false },
    Rule { name: "EndSliceBound", root: 1410, memoized: false },
    Rule { name: "EndSliceMinus", root: 1411, memoized: false },
    Rule { name: "EndSliceValue", root: 1414, memoized: false },
    Rule { name: "EnumSelectType", root: 1420, memoized: false },
    Rule { name: "EnumStringLiteralList", root: 1434, memoized: false },
    Rule { name: "ErrorMatchClause", root: 1438, memoized: false },
    Rule { name: "EscapeAsOption", root: 1443, memoized: false },
    Rule { name: "EscapeClause", root: 1446, memoized: false },
    Rule { name: "ExcludeColumnName", root: 1447, memoized: false },
    Rule { name: "ExcludeCurrentRow", root: 1450, memoized: false },
    Rule { name: "ExcludeDottedName", root: 1451, memoized: false },
    Rule { name: "ExcludeGroup", root: 1452, memoized: false },
    Rule { name: "ExcludeList", root: 1455, memoized: false },
    Rule { name: "ExcludeName", root: 1458, memoized: false },
    Rule { name: "ExcludeNameList", root: 1469, memoized: false },
    Rule { name: "ExcludeNameSingle", root: 1470, memoized: false },
    Rule { name: "ExcludeNames", root: 1473, memoized: false },
    Rule { name: "ExcludeNoOthers", root: 1476, memoized: false },
    Rule { name: "ExcludeNulls", root: 1479, memoized: false },
    Rule { name: "ExcludeOrExcept", root: 1482, memoized: false },
    Rule { name: "ExcludeTies", root: 1483, memoized: false },
    Rule { name: "ExecuteStatement", root: 1488, memoized: false },
    Rule { name: "ExplainOption", root: 1492, memoized: false },
    Rule { name: "ExplainOptionList", root: 1503, memoized: false },
    Rule { name: "ExplainOptionName", root: 1508, memoized: false },
    Rule { name: "ExplainSelectStatement", root: 1509, memoized: false },
    Rule { name: "ExplainStatement", root: 1516, memoized: false },
    Rule { name: "ExplainableStatements", root: 1538, memoized: false },
    Rule { name: "ExponentOperator", root: 1541, memoized: false },
    Rule { name: "ExponentiationExpression", root: 1546, memoized: true },
    Rule { name: "ExponentiationExpressionTail", root: 1549, memoized: false },
    Rule { name: "ExportClause", root: 1550, memoized: false },
    Rule { name: "ExportSource", root: 1553, memoized: false },
    Rule { name: "ExportStatement", root: 1561, memoized: false },
    Rule { name: "Expression", root: 1562, memoized: true },
    Rule { name: "ExpressionAlias", root: 1566, memoized: false },
    Rule { name: "ExpressionAsCollabel", root: 1570, memoized: false },
    Rule { name: "ExpressionOptIdentifier", root: 1574, memoized: false },
    Rule { name: "ExpressionStatement", root: 1582, memoized: false },
    Rule { name: "ExtensionAlias", root: 1585, memoized: false },
    Rule { name: "ExtensionRepositoryStatement", root: 1588, memoized: false },
    Rule { name: "ExternalResourceCreationOptions", root: 1589, memoized: false },
    Rule { name: "ExternalResourceStatement", root: 1594, memoized: false },
    Rule { name: "ExtractArgument", root: 1598, memoized: false },
    Rule { name: "ExtractArguments", root: 1602, memoized: false },
    Rule { name: "ExtractDatePart", root: 1616, memoized: false },
    Rule { name: "ExtractDatePartArgument", root: 1617, memoized: false },
    Rule { name: "ExtractExpression", root: 1623, memoized: false },
    Rule { name: "ExtractIdentifierArgument", root: 1624, memoized: false },
    Rule { name: "ExtractStringArgument", root: 1625, memoized: false },
    Rule { name: "Factor", root: 1630, memoized: false },
    Rule { name: "FalseLiteral", root: 1631, memoized: false },
    Rule { name: "FetchClause", root: 1637, memoized: false },
    Rule { name: "FetchOnlyClause", root: 1638, memoized: false },
    Rule { name: "FetchValue", root: 1639, memoized: false },
    Rule { name: "FilterClause", root: 1642, memoized: false },
    Rule { name: "FilterClauseContents", root: 1646, memoized: false },
    Rule { name: "FilterClauseExpression", root: 1650, memoized: false },
    Rule { name: "FirstOrNext", root: 1653, memoized: false },
    Rule { name: "FloatType", root: 1660, memoized: false },
    Rule { name: "FollowingFrame", root: 1661, memoized: false },
    Rule { name: "ForEachClause", root: 1664, memoized: false },
    Rule { name: "ForEachRow", root: 1668, memoized: false },
    Rule { name: "ForEachStatement", root: 1672, memoized: false },
    Rule { name: "ForExpression", root: 1675, memoized: false },
    Rule { name: "ForceNotNull", root: 1676, memoized: false },
    Rule { name: "ForceNullOption", root: 1682, memoized: false },
    Rule { name: "ForceQuote", root: 1683, memoized: false },
    Rule { name: "ForceQuoteOption", root: 1688, memoized: false },
    Rule { name: "ForeignKeyConstraint", root: 1697, memoized: false },
    Rule { name: "FrameBound", root: 1701, memoized: false },
    Rule { name: "FrameClause", root: 1706, memoized: false },
    Rule { name: "FrameCurrentRow", root: 1709, memoized: false },
    Rule { name: "FrameExpression", root: 1712, memoized: false },
    Rule { name: "FrameExtent", root: 1715, memoized: false },
    Rule { name: "FrameUnbounded", root: 1718, memoized: false },
    Rule { name: "Framing", root: 1722, memoized: false },
    Rule { name: "FreezeOption", root: 1723, memoized: false },
    Rule { name: "FromClause", root: 1733, memoized: false },
    Rule { name: "FromExpression", root: 1736, memoized: false },
    Rule { name: "FromOrTo", root: 1739, memoized: false },
    Rule { name: "FromSelectClause", root: 1743, memoized: false },
    Rule { name: "FromSource", root: 1746, memoized: false },
    Rule { name: "FromSourceIdentifier", root: 1749, memoized: false },
    Rule { name: "FromSourceString", root: 1752, memoized: false },
    Rule { name: "FullJoin", root: 1756, memoized: false },
    Rule { name: "FuncNameKeyword", root: 1757, memoized: false },
    Rule { name: "FunctionArgument", root: 1760, memoized: false },
    Rule { name: "FunctionArgumentList", root: 1768, memoized: false },
    Rule { name: "FunctionExpression", root: 1779, memoized: true },
    Rule { name: "FunctionExpressionArgumentList", root: 1788, memoized: false },
    Rule { name: "FunctionExpressionArguments", root: 1792, memoized: false },
    Rule { name: "FunctionIdentifier", root: 1796, memoized: false },
    Rule { name: "FunctionKeyword", root: 1797, memoized: false },
    Rule { name: "FunctionName", root: 1798, memoized: false },
    Rule { name: "FunctionNameAsQualifiedName", root: 1799, memoized: false },
    Rule { name: "FunctionTypeFunction", root: 1800, memoized: false },
    Rule { name: "FunctionTypeMacro", root: 1803, memoized: false },
    Rule { name: "FunctionTypeMacroKeyword", root: 1804, memoized: false },
    Rule { name: "Generated", root: 1808, memoized: false },
    Rule { name: "GeneratedColumn", root: 1818, memoized: false },
    Rule { name: "GeneratedColumnType", root: 1821, memoized: false },
    Rule { name: "GenericCopyOption", root: 1825, memoized: false },
    Rule { name: "GenericCopyOptionExpression", root: 1826, memoized: false },
    Rule { name: "GenericCopyOptionList", root: 1837, memoized: false },
    Rule { name: "GenericCopyOptionOrderList", root: 1838, memoized: false },
    Rule { name: "GenericCopyOptionParenthesizedExpressionList", root: 1842, memoized: false },
    Rule { name: "GenericCopyOptionValue", root: 1845, memoized: false },
    Rule { name: "GeometryType", root: 1852, memoized: false },
    Rule { name: "GlobToken", root: 1855, memoized: false },
    Rule { name: "GlobalScope", root: 1856, memoized: false },
    Rule { name: "GroupByAll", root: 1857, memoized: false },
    Rule { name: "GroupByBaseExpression", root: 1858, memoized: false },
    Rule { name: "GroupByClause", root: 1862, memoized: false },
    Rule { name: "GroupByExpression", root: 1867, memoized: false },
    Rule { name: "GroupByExpressions", root: 1870, memoized: false },
    Rule { name: "GroupByList", root: 1878, memoized: false },
    Rule { name: "GroupingExpression", root: 1892, memoized: false },
    Rule { name: "GroupingIdKeyword", root: 1893, memoized: false },
    Rule { name: "GroupingKeyword", root: 1894, memoized: false },
    Rule { name: "GroupingOrGroupingId", root: 1897, memoized: false },
    Rule { name: "GroupingSetsClause", root: 1911, memoized: false },
    Rule { name: "GroupsFraming", root: 1912, memoized: false },
    Rule { name: "HavingClause", root: 1915, memoized: false },
    Rule { name: "HeaderOption", root: 1916, memoized: false },
    Rule { name: "HourKeyword", root: 1919, memoized: false },
    Rule { name: "HourToMinute", root: 1923, memoized: false },
    Rule { name: "HourToSecond", root: 1927, memoized: false },
    Rule { name: "ILikeToken", root: 1930, memoized: false },
    Rule { name: "Identifier", root: 1931, memoized: true },
    Rule { name: "IdentifierColId", root: 1935, memoized: false },
    Rule { name: "IdentifierDot", root: 1938, memoized: false },
    Rule { name: "IdentifierList", root: 1949, memoized: false },
    Rule { name: "IdentifierOrStringLiteral", root: 1952, memoized: false },
    Rule { name: "IdentifierWindowFrame", root: 1953, memoized: false },
    Rule { name: "IfExists", root: 1956, memoized: false },
    Rule { name: "IfNotExists", root: 1960, memoized: false },
    Rule { name: "IgnoreNulls", root: 1963, memoized: false },
    Rule { name: "IgnoreOrRespectNulls", root: 1966, memoized: false },
    Rule { name: "ImportStatement", root: 1970, memoized: false },
    Rule { name: "InClause", root: 1973, memoized: false },
    Rule { name: "InContainsExpression", root: 1974, memoized: false },
    Rule { name: "InExpression", root: 1978, memoized: false },
    Rule { name: "InExpressionList", root: 1989, memoized: false },
    Rule { name: "InSelectStatement", root: 1993, memoized: false },
    Rule { name: "IncludeNulls", root: 1996, memoized: false },
    Rule { name: "IncludeOrExcludeNulls", root: 1999, memoized: false },
    Rule { name: "IndexElement", root: 2005, memoized: false },
    Rule { name: "IndexName", root: 2006, memoized: false },
    Rule { name: "IndexType", root: 2009, memoized: false },
    Rule { name: "Indirection", root: 2014, memoized: false },
    Rule { name: "IndirectionList", root: 2016, memoized: false },
    Rule { name: "InetOperator", root: 2019, memoized: false },
    Rule { name: "InnerJoin", root: 2020, memoized: false },
    Rule { name: "InnerTableRef", root: 2026, memoized: false },
    Rule { name: "InsertAlias", root: 2029, memoized: false },
    Rule { name: "InsertByName", root: 2030, memoized: false },
    Rule { name: "InsertByNameOrPosition", root: 2035, memoized: false },
    Rule { name: "InsertByNameOrder", root: 2038, memoized: false },
    Rule { name: "InsertByPosition", root: 2039, memoized: false },
    Rule { name: "InsertByPositionOrder", root: 2042, memoized: false },
    Rule { name: "InsertColumnList", root: 2046, memoized: false },
    Rule { name: "InsertDefaultValues", root: 2049, memoized: false },
    Rule { name: "InsertMatchClause", root: 2053, memoized: false },
    Rule { name: "InsertMatchInfo", root: 2057, memoized: false },
    Rule { name: "InsertOrIgnore", root: 2060, memoized: false },
    Rule { name: "InsertOrReplace", root: 2063, memoized: false },
    Rule { name: "InsertStatement", root: 2080, memoized: false },
    Rule { name: "InsertTarget", root: 2084, memoized: false },
    Rule { name: "InsertValues", root: 2087, memoized: false },
    Rule { name: "InsertValuesList", root: 2102, memoized: false },
    Rule { name: "InstallAndLoad", root: 2105, memoized: false },
    Rule { name: "InstallStatement", root: 2116, memoized: false },
    Rule { name: "IntType", root: 2117, memoized: false },
    Rule { name: "IntegerType", root: 2118, memoized: false },
    Rule { name: "IntersectChain", root: 2123, memoized: false },
    Rule { name: "IntersectChainTail", root: 2126, memoized: false },
    Rule { name: "Interval", root: 2141, memoized: false },
    Rule { name: "IntervalInterval", root: 2144, memoized: false },
    Rule { name: "IntervalLiteral", root: 2149, memoized: false },
    Rule { name: "IntervalNumber", root: 2155, memoized: false },
    Rule { name: "IntervalParameter", root: 2159, memoized: false },
    Rule { name: "IntervalStringParameter", root: 2160, memoized: false },
    Rule { name: "IntervalToInterval", root: 2168, memoized: false },
    Rule { name: "IntervalToIntervalAsType", root: 2197, memoized: false },
    Rule { name: "IntervalType", root: 2200, memoized: false },
    Rule { name: "IntervalWithRangeSpecifier", root: 2203, memoized: false },
    Rule { name: "IntervalWithSimpleSpecifier", root: 2206, memoized: false },
    Rule { name: "IntervalWithSpecifier", root: 2209, memoized: false },
    Rule { name: "IntervalWithoutSpecifier", root: 2210, memoized: false },
    Rule { name: "IntoNameValues", root: 2216, memoized: false },
    Rule { name: "IsDistinctFromExpression", root: 2221, memoized: false },
    Rule { name: "IsDistinctFromOp", root: 2227, memoized: false },
    Rule { name: "IsDistinctFromTail", root: 2230, memoized: false },
    Rule { name: "IsExpression", root: 2235, memoized: true },
    Rule { name: "IsLiteral", root: 2240, memoized: false },
    Rule { name: "IsLiteralValue", root: 2245, memoized: false },
    Rule { name: "IsNull", root: 2246, memoized: false },
    Rule { name: "IsNullOperator", root: 2247, memoized: false },
    Rule { name: "IsTest", root: 2251, memoized: false },
    Rule { name: "JoinByClause", root: 2262, memoized: false },
    Rule { name: "JoinClause", root: 2267, memoized: false },
    Rule { name: "JoinOrPivot", root: 2271, memoized: false },
    Rule { name: "JoinPrefix", root: 2275, memoized: false },
    Rule { name: "JoinQualifier", root: 2278, memoized: false },
    Rule { name: "JoinType", root: 2285, memoized: false },
    Rule { name: "JoinWithoutOnClause", root: 2289, memoized: false },
    Rule { name: "JsonOperator", root: 2290, memoized: false },
    Rule { name: "KeyAction", root: 2296, memoized: false },
    Rule { name: "KeyActions", root: 2301, memoized: false },
    Rule { name: "LambdaArrowExpression", root: 2306, memoized: true },
    Rule { name: "LambdaExpression", root: 2318, memoized: false },
    Rule { name: "Lateral", root: 2319, memoized: false },
    Rule { name: "LeftJoin", root: 2323, memoized: false },
    Rule { name: "LikeClause", root: 2328, memoized: false },
    Rule { name: "LikeToken", root: 2331, memoized: false },
    Rule { name: "LikeVariations", root: 2342, memoized: false },
    Rule { name: "LimitAll", root: 2343, memoized: false },
    Rule { name: "LimitClause", root: 2346, memoized: false },
    Rule { name: "LimitExpression", root: 2350, memoized: false },
    Rule { name: "LimitLiteralPercent", root: 2353, memoized: false },
    Rule { name: "LimitOffset", root: 2358, memoized: false },
    Rule { name: "LimitOffsetClause", root: 2362, memoized: false },
    Rule { name: "LimitValue", root: 2366, memoized: false },
    Rule { name: "ListComprehensionExpression", root: 2383, memoized: false },
    Rule { name: "ListComprehensionFilter", root: 2386, memoized: false },
    Rule { name: "ListExpression", root: 2389, memoized: false },
    Rule { name: "ListOperator", root: 2393, memoized: false },
    Rule { name: "LiteralExpression", root: 2397, memoized: false },
    Rule { name: "LoadStatement", root: 2404, memoized: false },
    Rule { name: "LocalScope", root: 2405, memoized: false },
    Rule { name: "LocalSessionTarget", root: 2406, memoized: false },
    Rule { name: "LogicalAndExpression", root: 2411, memoized: true },
    Rule { name: "LogicalAndExpressionTail", root: 2414, memoized: false },
    Rule { name: "LogicalNotExpression", root: 2418, memoized: true },
    Rule { name: "LogicalOrExpression", root: 2423, memoized: true },
    Rule { name: "LogicalOrExpressionTail", root: 2426, memoized: false },
    Rule { name: "MacroDefinition", root: 2434, memoized: false },
    Rule { name: "MacroDefinitionBody", root: 2437, memoized: false },
    Rule { name: "MacroKeyword", root: 2438, memoized: false },
    Rule { name: "MacroOrFunction", root: 2441, memoized: false },
    Rule { name: "MacroParameter", root: 2444, memoized: false },
    Rule { name: "MacroParameters", root: 2452, memoized: false },
    Rule { name: "MapExpression", root: 2455, memoized: false },
    Rule { name: "MapStructExpression", root: 2467, memoized: false },
    Rule { name: "MapStructField", root: 2471, memoized: false },
    Rule { name: "MapType", root: 2485, memoized: false },
    Rule { name: "MatchedClause", root: 2492, memoized: false },
    Rule { name: "MatchedClauseAction", root: 2498, memoized: false },
    Rule { name: "Materialized", root: 2502, memoized: false },
    Rule { name: "MaterializedViewEntry", root: 2505, memoized: false },
    Rule { name: "MaxValue", root: 2506, memoized: false },
    Rule { name: "MergeIntoStatement", root: 2518, memoized: false },
    Rule { name: "MergeIntoUsingClause", root: 2521, memoized: false },
    Rule { name: "MergeMatch", root: 2524, memoized: false },
    Rule { name: "MethodExpression", root: 2527, memoized: false },
    Rule { name: "MethodExpressionArgumentList", root: 2536, memoized: false },
    Rule { name: "MethodExpressionArguments", root: 2540, memoized: false },
    Rule { name: "MethodFunctionArguments", root: 2548, memoized: false },
    Rule { name: "MicrosecondKeyword", root: 2551, memoized: false },
    Rule { name: "MillenniumKeyword", root: 2554, memoized: false },
    Rule { name: "MillisecondKeyword", root: 2557, memoized: false },
    Rule { name: "MinValue", root: 2558, memoized: false },
    Rule { name: "MinusPrefixOperator", root: 2559, memoized: false },
    Rule { name: "MinuteKeyword", root: 2562, memoized: false },
    Rule { name: "MinuteToSecond", root: 2566, memoized: false },
    Rule { name: "MonthKeyword", root: 2569, memoized: false },
    Rule { name: "MultiplicativeExpression", root: 2574, memoized: true },
    Rule { name: "MultiplicativeExpressionTail", root: 2577, memoized: false },
    Rule { name: "NameList", root: 2588, memoized: false },
    Rule { name: "NamedFunctionArgument", root: 2589, memoized: false },
    Rule { name: "NamedOtherOperator", root: 2596, memoized: false },
    Rule { name: "NamedParameter", root: 2602, memoized: false },
    Rule { name: "NamedParameterAssignment", root: 2605, memoized: false },
    Rule { name: "NaturalJoinPrefix", root: 2609, memoized: false },
    Rule { name: "NearestApprox", root: 2610, memoized: false },
    Rule { name: "NearestBareTableRef", root: 2616, memoized: false },
    Rule { name: "NearestBaseTableRef", root: 2622, memoized: false },
    Rule { name: "NearestDistance", root: 2623, memoized: false },
    Rule { name: "NearestExact", root: 2624, memoized: false },
    Rule { name: "NearestJoinAliased", root: 2637, memoized: false },
    Rule { name: "NearestJoinBare", root: 2650, memoized: false },
    Rule { name: "NearestJoinClause", root: 2653, memoized: false },
    Rule { name: "NearestParensTableRef", root: 2660, memoized: false },
    Rule { name: "NearestSimilarity", root: 2661, memoized: false },
    Rule { name: "NearestTableFunction", root: 2668, memoized: false },
    Rule { name: "NearestTableSubquery", root: 2672, memoized: false },
    Rule { name: "NearestValuesRef", root: 2673, memoized: false },
    Rule { name: "NestedColumnName", root: 2678, memoized: false },
    Rule { name: "NestedSchemaTableColumnName", root: 2685, memoized: false },
    Rule { name: "NoKeyAction", root: 2688, memoized: false },
    Rule { name: "NoneLiteral", root: 2689, memoized: false },
    Rule { name: "NotExpression", root: 2691, memoized: false },
    Rule { name: "NotILikeOp", root: 2692, memoized: false },
    Rule { name: "NotKeyword", root: 2693, memoized: false },
    Rule { name: "NotLikeOp", root: 2694, memoized: false },
    Rule { name: "NotMatchedClause", root: 2704, memoized: false },
    Rule { name: "NotNull", root: 2707, memoized: false },
    Rule { name: "NotNullColumnConstraint", root: 2710, memoized: false },
    Rule { name: "NotNullConstraint", root: 2713, memoized: false },
    Rule { name: "NotNullKeyword", root: 2716, memoized: false },
    Rule { name: "NotNullOperator", root: 2717, memoized: false },
    Rule { name: "NotRegexInsensitiveMatchOp", root: 2718, memoized: false },
    Rule { name: "NotSimilarToOp", root: 2719, memoized: false },
    Rule { name: "NullAsOption", root: 2724, memoized: false },
    Rule { name: "NullConstraint", root: 2725, memoized: false },
    Rule { name: "NullIfArguments", root: 2729, memoized: false },
    Rule { name: "NullIfExpression", root: 2735, memoized: false },
    Rule { name: "NullLiteral", root: 2736, memoized: false },
    Rule { name: "NullsFirst", root: 2739, memoized: false },
    Rule { name: "NullsFirstOrLast", root: 2742, memoized: false },
    Rule { name: "NullsLast", root: 2745, memoized: false },
    Rule { name: "NumberLiteral", root: 2746, memoized: false },
    Rule { name: "NumberedParameter", root: 2749, memoized: false },
    Rule { name: "NumericModType", root: 2753, memoized: false },
    Rule { name: "NumericType", root: 2756, memoized: false },
    Rule { name: "OffsetClause", root: 2759, memoized: false },
    Rule { name: "OffsetFetchClause", root: 2762, memoized: false },
    Rule { name: "OffsetLimitClause", root: 2766, memoized: false },
    Rule { name: "OffsetValue", root: 2770, memoized: false },
    Rule { name: "Oids", root: 2773, memoized: false },
    Rule { name: "OidsOption", root: 2774, memoized: false },
    Rule { name: "OnClause", root: 2777, memoized: false },
    Rule { name: "OnConflictAction", root: 2780, memoized: false },
    Rule { name: "OnConflictClause", root: 2786, memoized: false },
    Rule { name: "OnConflictExpressionTarget", root: 2790, memoized: false },
    Rule { name: "OnConflictIndexTarget", root: 2794, memoized: false },
    Rule { name: "OnConflictNothing", root: 2797, memoized: false },
    Rule { name: "OnConflictTarget", root: 2800, memoized: false },
    Rule { name: "OnConflictUpdate", root: 2807, memoized: false },
    Rule { name: "OperatorEqual", root: 2810, memoized: false },
    Rule { name: "OperatorGreaterThan", root: 2811, memoized: false },
    Rule { name: "OperatorGreaterThanEquals", root: 2812, memoized: false },
    Rule { name: "OperatorLessThan", root: 2813, memoized: false },
    Rule { name: "OperatorLessThanEquals", root: 2814, memoized: false },
    Rule { name: "OperatorLiteral", root: 2815, memoized: false },
    Rule { name: "OperatorNotEqual", root: 2818, memoized: false },
    Rule { name: "OptAnalyze", root: 2819, memoized: false },
    Rule { name: "OptFreeze", root: 2820, memoized: false },
    Rule { name: "OptFull", root: 2821, memoized: false },
    Rule { name: "OptVerbose", root: 2822, memoized: false },
    Rule { name: "OptionalParensNameList", root: 2825, memoized: false },
    Rule { name: "OptionalParensSimpleSelect", root: 2828, memoized: false },
    Rule { name: "OrAction", root: 2831, memoized: false },
    Rule { name: "OrReplace", root: 2834, memoized: false },
    Rule { name: "OrderByAll", root: 2840, memoized: false },
    Rule { name: "OrderByClause", root: 2844, memoized: false },
    Rule { name: "OrderByCopyOption", root: 2849, memoized: false },
    Rule { name: "OrderByExpression", root: 2855, memoized: false },
    Rule { name: "OrderByExpressionList", root: 2863, memoized: false },
    Rule { name: "OrderByExpressions", root: 2866, memoized: false },
    Rule { name: "OtherOperator", root: 2869, memoized: false },
    Rule { name: "OtherOperatorExpression", root: 2874, memoized: false },
    Rule { name: "OtherOperatorTail", root: 2877, memoized: false },
    Rule { name: "OverClause", root: 2880, memoized: false },
    Rule { name: "OverlayArguments", root: 2883, memoized: false },
    Rule { name: "OverlayExpression", root: 2889, memoized: false },
    Rule { name: "OverlayExpressionList", root: 2897, memoized: false },
    Rule { name: "OverlayParameters", root: 2904, memoized: false },
    Rule { name: "Parameter", root: 2909, memoized: false },
    Rule { name: "ParensExpression", root: 2913, memoized: true },
    Rule { name: "ParensIdentifier", root: 2917, memoized: false },
    Rule { name: "ParensTableRef", root: 2928, memoized: false },
    Rule { name: "ParenthesisExpression", root: 2940, memoized: true },
    Rule { name: "ParenthesizedNameList", root: 2951, memoized: false },
    Rule { name: "ParenthesizedPartitionByColumnList", root: 2955, memoized: false },
    Rule { name: "PartitionByColumnList", root: 2959, memoized: false },
    Rule { name: "PartitionByOption", root: 2965, memoized: false },
    Rule { name: "PartitionOptSortedOptions", root: 2969, memoized: false },
    Rule { name: "PartitionOptions", root: 2983, memoized: false },
    Rule { name: "PartitionSortedOptions", root: 2986, memoized: false },
    Rule { name: "PartitionedByCopyOption", root: 2993, memoized: false },
    Rule { name: "Persistent", root: 2994, memoized: false },
    Rule { name: "PivotColumnEntry", root: 2998, memoized: false },
    Rule { name: "PivotColumnExpression", root: 2999, memoized: false },
    Rule { name: "PivotColumnList", root: 3007, memoized: false },
    Rule { name: "PivotColumnSubquery", root: 3014, memoized: false },
    Rule { name: "PivotEnumTarget", root: 3015, memoized: false },
    Rule { name: "PivotGroupByList", root: 3019, memoized: false },
    Rule { name: "PivotHeader", root: 3020, memoized: false },
    Rule { name: "PivotKeyword", root: 3023, memoized: false },
    Rule { name: "PivotListTarget", root: 3024, memoized: false },
    Rule { name: "PivotOn", root: 3027, memoized: false },
    Rule { name: "PivotStatement", root: 3036, memoized: false },
    Rule { name: "PivotTargetList", root: 3040, memoized: false },
    Rule { name: "PivotUsing", root: 3043, memoized: false },
    Rule { name: "PivotValueList", root: 3047, memoized: false },
    Rule { name: "PivotValueTarget", root: 3050, memoized: false },
    Rule { name: "PlusPrefixOperator", root: 3051, memoized: false },
    Rule { name: "PositionArguments", root: 3055, memoized: false },
    Rule { name: "PositionExpression", root: 3061, memoized: false },
    Rule { name: "PositionalExpression", root: 3064, memoized: false },
    Rule { name: "PositionalFunctionArgument", root: 3065, memoized: false },
    Rule { name: "PositionalJoinPrefix", root: 3066, memoized: false },
    Rule { name: "PostfixOperator", root: 3067, memoized: false },
    Rule { name: "PragmaAssign", root: 3071, memoized: false },
    Rule { name: "PragmaAssignOrFunction", root: 3074, memoized: false },
    Rule { name: "PragmaFunction", root: 3078, memoized: false },
    Rule { name: "PragmaName", root: 3079, memoized: false },
    Rule { name: "PragmaParameters", root: 3090, memoized: false },
    Rule { name: "PragmaStatement", root: 3093, memoized: false },
    Rule { name: "PrecedingFrame", root: 3094, memoized: false },
    Rule { name: "PrecedingOrFollowing", root: 3097, memoized: false },
    Rule { name: "PrefixExpression", root: 3102, memoized: true },
    Rule { name: "PrefixOperator", root: 3107, memoized: false },
    Rule { name: "PrepareStatement", root: 3114, memoized: false },
    Rule { name: "PreserveOrDelete", root: 3117, memoized: false },
    Rule { name: "PreserveRows", root: 3118, memoized: false },
    Rule { name: "PrimaryKeyConstraint", root: 3121, memoized: false },
    Rule { name: "Program", root: 3124, memoized: false },
    Rule { name: "QualifiedIndexName", root: 3128, memoized: false },
    Rule { name: "QualifiedIndexNameString", root: 3129, memoized: false },
    Rule { name: "QualifiedName", root: 3133, memoized: false },
    Rule { name: "QualifiedOperator", root: 3139, memoized: false },
    Rule { name: "QualifiedOperatorContents", root: 3144, memoized: false },
    Rule { name: "QualifiedSequenceName", root: 3150, memoized: false },
    Rule { name: "QualifiedSimpleType", root: 3154, memoized: false },
    Rule { name: "QualifiedTableFunction", root: 3161, memoized: false },
    Rule { name: "QualifiedTableName", root: 3164, memoized: false },
    Rule { name: "QualifiedTypeName", root: 3168, memoized: false },
    Rule { name: "QualifyClause", root: 3171, memoized: false },
    Rule { name: "QuarterKeyword", root: 3174, memoized: false },
    Rule { name: "QuestionMarkNumberedParameter", root: 3177, memoized: false },
    Rule { name: "QuoteAsOption", root: 3182, memoized: false },
    Rule { name: "RangeFraming", root: 3183, memoized: false },
    Rule { name: "ReadOnly", root: 3184, memoized: false },
    Rule { name: "ReadOnlyOrReadWrite", root: 3187, memoized: false },
    Rule { name: "ReadOrWrite", root: 3190, memoized: false },
    Rule { name: "ReadWrite", root: 3191, memoized: false },
    Rule { name: "RealType", root: 3192, memoized: false },
    Rule { name: "Recursive", root: 3193, memoized: false },
    Rule { name: "ReferencingClause", root: 3198, memoized: false },
    Rule { name: "ReferencingItem", root: 3201, memoized: false },
    Rule { name: "ReferencingNewTableAs", root: 3206, memoized: false },
    Rule { name: "ReferencingOldTableAs", root: 3211, memoized: false },
    Rule { name: "RegexInsensitiveMatchToken", root: 3212, memoized: false },
    Rule { name: "RegexMatchToken", root: 3213, memoized: false },
    Rule { name: "RegisterExternalResourceStmt", root: 3222, memoized: false },
    Rule { name: "RegularJoinClause", root: 3230, memoized: false },
    Rule { name: "RelOption", root: 3234, memoized: false },
    Rule { name: "RelOptionArgumentOpt", root: 3237, memoized: false },
    Rule { name: "RelOptionList", root: 3248, memoized: false },
    Rule { name: "RelOptionName", root: 3251, memoized: false },
    Rule { name: "RelOptionOrOids", root: 3254, memoized: false },
    Rule { name: "RenameAlter", root: 3258, memoized: false },
    Rule { name: "RenameAlterSequenceOptions", root: 3259, memoized: false },
    Rule { name: "RenameColumn", root: 3266, memoized: false },
    Rule { name: "RenameEntries", root: 3269, memoized: false },
    Rule { name: "RenameEntry", root: 3273, memoized: false },
    Rule { name: "RenameEntryList", root: 3284, memoized: false },
    Rule { name: "RenameList", root: 3287, memoized: false },
    Rule { name: "RepeatableSample", root: 3293, memoized: false },
    Rule { name: "ReplaceEntries", root: 3296, memoized: false },
    Rule { name: "ReplaceEntry", root: 3300, memoized: false },
    Rule { name: "ReplaceEntryList", root: 3311, memoized: false },
    Rule { name: "ReplaceEntrySingle", root: 3312, memoized: false },
    Rule { name: "ReplaceList", root: 3315, memoized: false },
    Rule { name: "RepositoryPrefix", root: 3320, memoized: false },
    Rule { name: "RepositoryPublicKey", root: 3335, memoized: false },
    Rule { name: "ReservedColumnName", root: 3336, memoized: false },
    Rule { name: "ReservedFunctionName", root: 3337, memoized: false },
    Rule { name: "ReservedIdentifier", root: 3338, memoized: false },
    Rule { name: "ReservedIdentifierOrStringLiteral", root: 3341, memoized: false },
    Rule { name: "ReservedIndexName", root: 3342, memoized: false },
    Rule { name: "ReservedKeyword", root: 3343, memoized: false },
    Rule { name: "ReservedSchemaName", root: 3344, memoized: false },
    Rule { name: "ReservedSchemaQualification", root: 3347, memoized: false },
    Rule { name: "ReservedTableName", root: 3348, memoized: false },
    Rule { name: "ReservedTableQualification", root: 3351, memoized: false },
    Rule { name: "ReservedTypeName", root: 3352, memoized: false },
    Rule { name: "ResetOptions", root: 3355, memoized: false },
    Rule { name: "ResetPartitionedBy", root: 3359, memoized: false },
    Rule { name: "ResetSortedBy", root: 3363, memoized: false },
    Rule { name: "ResetStatement", root: 3366, memoized: false },
    Rule { name: "RespectNulls", root: 3369, memoized: false },
    Rule { name: "RestrictDropBehavior", root: 3370, memoized: false },
    Rule { name: "RestrictKeyAction", root: 3371, memoized: false },
    Rule { name: "ResultModifiers", root: 3376, memoized: false },
    Rule { name: "ReturningClause", root: 3379, memoized: false },
    Rule { name: "RightJoin", root: 3383, memoized: false },
    Rule { name: "RollbackTransaction", root: 3387, memoized: false },
    Rule { name: "RollupKeyword", root: 3388, memoized: false },
    Rule { name: "RowExpression", root: 3402, memoized: false },
    Rule { name: "RowOrRows", root: 3405, memoized: false },
    Rule { name: "RowOrStruct", root: 3408, memoized: false },
    Rule { name: "RowType", root: 3412, memoized: false },
    Rule { name: "RowsFraming", root: 3413, memoized: false },
    Rule { name: "SampleClause", root: 3418, memoized: false },
    Rule { name: "SampleCount", root: 3422, memoized: false },
    Rule { name: "SampleEntry", root: 3425, memoized: false },
    Rule { name: "SampleEntryCount", root: 3432, memoized: false },
    Rule { name: "SampleEntryFunction", root: 3441, memoized: false },
    Rule { name: "SampleFunction", root: 3442, memoized: false },
    Rule { name: "SamplePercentage", root: 3445, memoized: false },
    Rule { name: "SampleProperties", root: 3451, memoized: false },
    Rule { name: "SampleRows", root: 3452, memoized: false },
    Rule { name: "SampleSeed", root: 3453, memoized: false },
    Rule { name: "SampleUnit", root: 3456, memoized: false },
    Rule { name: "SampleValue", root: 3459, memoized: false },
    Rule { name: "ScalarMacroDefinition", root: 3460, memoized: false },
    Rule { name: "SchemaName", root: 3461, memoized: false },
    Rule { name: "SchemaNameAsUseTarget", root: 3462, memoized: false },
    Rule { name: "SchemaOrData", root: 3465, memoized: false },
    Rule { name: "SchemaQualification", root: 3468, memoized: false },
    Rule { name: "SchemaReservedFunctionName", root: 3471, memoized: false },
    Rule { name: "SchemaReservedIdentifierOrStringLiteral", root: 3474, memoized: false },
    Rule { name: "SchemaReservedIndex", root: 3477, memoized: false },
    Rule { name: "SchemaReservedTable", root: 3480, memoized: false },
    Rule { name: "SchemaReservedTableColumnName", root: 3484, memoized: false },
    Rule { name: "SchemaReservedTypeName", root: 3487, memoized: false },
    Rule { name: "SecondKeyword", root: 3490, memoized: false },
    Rule { name: "SecretName", root: 3491, memoized: false },
    Rule { name: "SecretStorageSpecifier", root: 3494, memoized: false },
    Rule { name: "SelectAtom", root: 3497, memoized: false },
    Rule { name: "SelectClause", root: 3503, memoized: false },
    Rule { name: "SelectFrom", root: 3506, memoized: false },
    Rule { name: "SelectFromClause", root: 3510, memoized: false },
    Rule { name: "SelectInsertValues", root: 3511, memoized: false },
    Rule { name: "SelectParens", root: 3515, memoized: false },
    Rule { name: "SelectSetOpChain", root: 3520, memoized: false },
    Rule { name: "SelectSetOpChainTail", root: 3523, memoized: false },
    Rule { name: "SelectStatement", root: 3524, memoized: false },
    Rule { name: "SelectStatementInternal", root: 3530, memoized: false },
    Rule { name: "SelectStatementType", root: 3537, memoized: false },
    Rule { name: "SemiJoin", root: 3538, memoized: false },
    Rule { name: "SeqCycle", root: 3539, memoized: false },
    Rule { name: "SeqMinOrMax", root: 3542, memoized: false },
    Rule { name: "SeqNoCycle", root: 3545, memoized: false },
    Rule { name: "SeqNoMinMax", root: 3548, memoized: false },
    Rule { name: "SeqOwnedBy", root: 3552, memoized: false },
    Rule { name: "SeqSetCycle", root: 3555, memoized: false },
    Rule { name: "SeqSetIncrement", root: 3560, memoized: false },
    Rule { name: "SeqSetMinMax", root: 3563, memoized: false },
    Rule { name: "SeqStartWith", root: 3568, memoized: false },
    Rule { name: "SequenceName", root: 3569, memoized: false },
    Rule { name: "SequenceOption", root: 3576, memoized: false },
    Rule { name: "SessionScope", root: 3577, memoized: false },
    Rule { name: "SessionTarget", root: 3581, memoized: false },
    Rule { name: "SetAssignment", root: 3584, memoized: false },
    Rule { name: "SetAssignmentOrTimeZone", root: 3588, memoized: false },
    Rule { name: "SetData", root: 3592, memoized: false },
    Rule { name: "SetDefaultKeyAction", root: 3595, memoized: false },
    Rule { name: "SetIntersectClause", root: 3599, memoized: false },
    Rule { name: "SetNullKeyAction", root: 3602, memoized: false },
    Rule { name: "SetNullability", root: 3603, memoized: false },
    Rule { name: "SetOptions", root: 3606, memoized: false },
    Rule { name: "SetPartitionedBy", root: 3621, memoized: false },
    Rule { name: "SetSchema", root: 3624, memoized: false },
    Rule { name: "SetSequenceOption", root: 3626, memoized: false },
    Rule { name: "SetSetting", root: 3630, memoized: false },
    Rule { name: "SetSortedBy", root: 3638, memoized: false },
    Rule { name: "SetStatement", root: 3641, memoized: false },
    Rule { name: "SetTimeZone", root: 3645, memoized: false },
    Rule { name: "SetVariable", root: 3648, memoized: false },
    Rule { name: "SetVariableOrSetting", root: 3651, memoized: false },
    Rule { name: "SetofType", root: 3654, memoized: false },
    Rule { name: "SetopClause", root: 3660, memoized: false },
    Rule { name: "SetopExcept", root: 3661, memoized: false },
    Rule { name: "SetopType", root: 3664, memoized: false },
    Rule { name: "SetopUnion", root: 3665, memoized: false },
    Rule { name: "SettingName", root: 3666, memoized: false },
    Rule { name: "SettingScope", root: 3670, memoized: false },
    Rule { name: "ShowAllModifier", root: 3671, memoized: false },
    Rule { name: "ShowAllTables", root: 3676, memoized: false },
    Rule { name: "ShowByName", root: 3680, memoized: false },
    Rule { name: "ShowDeprecatedQualifiedTableName", root: 3681, memoized: false },
    Rule { name: "ShowDeprecatedSelect", root: 3684, memoized: false },
    Rule { name: "ShowExternalResourcesStmt", root: 3690, memoized: false },
    Rule { name: "ShowOrDescribe", root: 3693, memoized: false },
    Rule { name: "ShowRule", root: 3694, memoized: false },
    Rule { name: "ShowSettingName", root: 3695, memoized: false },
    Rule { name: "ShowSpecialForm", root: 3700, memoized: false },
    Rule { name: "ShowTables", root: 3705, memoized: false },
    Rule { name: "ShowTarget", root: 3710, memoized: false },
    Rule { name: "SimilarToToken", root: 3713, memoized: false },
    Rule { name: "SimpleNumericType", root: 3721, memoized: false },
    Rule { name: "SimpleParameter", root: 3725, memoized: false },
    Rule { name: "SimpleSelect", root: 3739, memoized: false },
    Rule { name: "SimpleSelectParens", root: 3743, memoized: false },
    Rule { name: "SimpleType", root: 3746, memoized: false },
    Rule { name: "SingleArrowPair", root: 3749, memoized: false },
    Rule { name: "SingleExpression", root: 3770, memoized: true },
    Rule { name: "SingleFrameExtent", root: 3771, memoized: false },
    Rule { name: "SingleOption", root: 3777, memoized: false },
    Rule { name: "SinglePartitionByColumnList", root: 3778, memoized: false },
    Rule { name: "SingleRenameEntry", root: 3779, memoized: false },
    Rule { name: "SliceBound", root: 3786, memoized: false },
    Rule { name: "SliceExpression", root: 3790, memoized: false },
    Rule { name: "SmallintType", root: 3791, memoized: false },
    Rule { name: "SortedOptPartitionOptions", root: 3795, memoized: false },
    Rule { name: "SortedOptions", root: 3809, memoized: false },
    Rule { name: "SpecialFunctionExpression", root: 3822, memoized: false },
    Rule { name: "SpecializedOption", root: 3832, memoized: false },
    Rule { name: "SpecializedOptionList", root: 3837, memoized: false },
    Rule { name: "SpecializedOptionTail", root: 3841, memoized: false },
    Rule { name: "SquareBracketsArray", root: 3846, memoized: false },
    Rule { name: "StandardAssignment", root: 3849, memoized: false },
    Rule { name: "StarExpression", root: 3859, memoized: false },
    Rule { name: "StarPartitionByColumnList", root: 3860, memoized: false },
    Rule { name: "StarQualifierList", root: 3862, memoized: false },
    Rule { name: "StarSymbol", root: 3863, memoized: false },
    Rule { name: "StarSymbolColumnList", root: 3866, memoized: false },
    Rule { name: "StartOrBegin", root: 3869, memoized: false },
    Rule { name: "Statement", root: 3906, memoized: false },
    Rule { name: "StepSliceBound", root: 3910, memoized: false },
    Rule { name: "StoredGeneratedColumn", root: 3911, memoized: false },
    Rule { name: "StringLiteral", root: 3912, memoized: false },
    Rule { name: "StringLiteralIdentifier", root: 3913, memoized: false },
    Rule { name: "StringLiteralValue", root: 3914, memoized: false },
    Rule { name: "StringOperator", root: 3917, memoized: false },
    Rule { name: "StringSessionTarget", root: 3921, memoized: false },
    Rule { name: "StructExpression", root: 3933, memoized: false },
    Rule { name: "StructField", root: 3937, memoized: false },
    Rule { name: "SubqueryAll", root: 3938, memoized: false },
    Rule { name: "SubqueryAny", root: 3939, memoized: false },
    Rule { name: "SubqueryExists", root: 3940, memoized: false },
    Rule { name: "SubqueryExpression", root: 3946, memoized: false },
    Rule { name: "SubqueryNot", root: 3947, memoized: false },
    Rule { name: "SubqueryReference", root: 3951, memoized: false },
    Rule { name: "SubstringArguments", root: 3954, memoized: false },
    Rule { name: "SubstringExpression", root: 3960, memoized: false },
    Rule { name: "SubstringExpressionList", root: 3968, memoized: false },
    Rule { name: "SubstringFor", root: 3969, memoized: false },
    Rule { name: "SubstringFromFor", root: 3972, memoized: false },
    Rule { name: "SubstringFromOptionalFor", root: 3976, memoized: false },
    Rule { name: "SubstringParameters", root: 3979, memoized: false },
    Rule { name: "Summarize", root: 3980, memoized: false },
    Rule { name: "SummarizeRule", root: 3981, memoized: false },
    Rule { name: "TableAlias", root: 3984, memoized: false },
    Rule { name: "TableAliasAs", root: 3989, memoized: false },
    Rule { name: "TableAliasColon", root: 3992, memoized: false },
    Rule { name: "TableAliasWithoutAs", root: 3996, memoized: false },
    Rule { name: "TableFunction", root: 3999, memoized: false },
    Rule { name: "TableFunctionAliasColon", root: 4007, memoized: false },
    Rule { name: "TableFunctionArguments", root: 4019, memoized: false },
    Rule { name: "TableFunctionLateralOpt", root: 4028, memoized: false },
    Rule { name: "TableFunctionName", root: 4029, memoized: false },
    Rule { name: "TableMacroDefinition", root: 4032, memoized: false },
    Rule { name: "TableName", root: 4033, memoized: false },
    Rule { name: "TableOrView", root: 4037, memoized: false },
    Rule { name: "TablePivotClause", root: 4045, memoized: false },
    Rule { name: "TablePivotClauseBody", root: 4052, memoized: false },
    Rule { name: "TableQualification", root: 4055, memoized: false },
    Rule { name: "TableRef", root: 4060, memoized: false },
    Rule { name: "TableReservedColumnName", root: 4063, memoized: false },
    Rule { name: "TableSample", root: 4064, memoized: false },
    Rule { name: "TableStatement", root: 4067, memoized: false },
    Rule { name: "TableSubquery", root: 4075, memoized: false },
    Rule { name: "TableUnpivotClause", root: 4085, memoized: false },
    Rule { name: "TableUnpivotClauseBody", root: 4090, memoized: false },
    Rule { name: "TargetList", root: 4098, memoized: false },
    Rule { name: "TargetOptAlias", root: 4104, memoized: false },
    Rule { name: "TempPersistent", root: 4105, memoized: false },
    Rule { name: "Temporary", root: 4109, memoized: false },
    Rule { name: "TemporaryPersistent", root: 4110, memoized: false },
    Rule { name: "Term", root: 4113, memoized: false },
    Rule { name: "TildePrefixOperator", root: 4114, memoized: false },
    Rule { name: "TimeOrTimestamp", root: 4117, memoized: false },
    Rule { name: "TimeType", root: 4123, memoized: false },
    Rule { name: "TimeTypeId", root: 4124, memoized: false },
    Rule { name: "TimeZone", root: 4128, memoized: false },
    Rule { name: "TimestampAtUnit", root: 4129, memoized: false },
    Rule { name: "TimestampTypeId", root: 4130, memoized: false },
    Rule { name: "TopCheckConstraint", root: 4131, memoized: false },
    Rule { name: "TopForeignKeyConstraint", root: 4136, memoized: false },
    Rule { name: "TopLevelConstraint", root: 4140, memoized: false },
    Rule { name: "TopLevelConstraintList", root: 4145, memoized: false },
    Rule { name: "TopLevelStatement", root: 4152, memoized: false },
    Rule { name: "TopPrimaryKeyConstraint", root: 4156, memoized: false },
    Rule { name: "TopUniqueConstraint", root: 4159, memoized: false },
    Rule { name: "Transaction", root: 4162, memoized: false },
    Rule { name: "TransactionStatement", root: 4166, memoized: false },
    Rule { name: "TriggerAfter", root: 4167, memoized: false },
    Rule { name: "TriggerBefore", root: 4168, memoized: false },
    Rule { name: "TriggerBody", root: 4173, memoized: false },
    Rule { name: "TriggerColumnList", root: 4181, memoized: false },
    Rule { name: "TriggerEvent", root: 4186, memoized: false },
    Rule { name: "TriggerEventDelete", root: 4187, memoized: false },
    Rule { name: "TriggerEventInsert", root: 4188, memoized: false },
    Rule { name: "TriggerEventUpdate", root: 4189, memoized: false },
    Rule { name: "TriggerEventUpdateOf", root: 4193, memoized: false },
    Rule { name: "TriggerInsteadOf", root: 4196, memoized: false },
    Rule { name: "TriggerName", root: 4197, memoized: false },
    Rule { name: "TriggerTiming", root: 4201, memoized: false },
    Rule { name: "TrimArguments", root: 4214, memoized: false },
    Rule { name: "TrimBoth", root: 4215, memoized: false },
    Rule { name: "TrimDirection", root: 4219, memoized: false },
    Rule { name: "TrimExpression", root: 4225, memoized: false },
    Rule { name: "TrimLeading", root: 4226, memoized: false },
    Rule { name: "TrimSource", root: 4230, memoized: false },
    Rule { name: "TrimTrailing", root: 4231, memoized: false },
    Rule { name: "TrueLiteral", root: 4232, memoized: false },
    Rule { name: "TruncateStatement", root: 4237, memoized: false },
    Rule { name: "TryCastKeyword", root: 4238, memoized: false },
    Rule { name: "TryExpression", root: 4244, memoized: false },
    Rule { name: "TupleType", root: 4257, memoized: false },
    Rule { name: "Type", root: 4262, memoized: false },
    Rule { name: "TypeFuncKeyword", root: 4265, memoized: false },
    Rule { name: "TypeFuncName", root: 4269, memoized: false },
    Rule { name: "TypeList", root: 4280, memoized: false },
    Rule { name: "TypeLiteral", root: 4283, memoized: false },
    Rule { name: "TypeModifiers", root: 4295, memoized: false },
    Rule { name: "TypeName", root: 4296, memoized: false },
    Rule { name: "TypeNameAsQualifiedName", root: 4297, memoized: false },
    Rule { name: "TypeNameKeyword", root: 4298, memoized: false },
    Rule { name: "TypeVariations", root: 4311, memoized: false },
    Rule { name: "UnionType", root: 4314, memoized: false },
    Rule { name: "UniqueConstraint", root: 4315, memoized: false },
    Rule { name: "UniqueIndex", root: 4316, memoized: false },
    Rule { name: "UnknownLiteral", root: 4317, memoized: false },
    Rule { name: "UnpackExpression", root: 4323, memoized: false },
    Rule { name: "UnpivotHeader", root: 4326, memoized: false },
    Rule { name: "UnpivotHeaderList", root: 4337, memoized: false },
    Rule { name: "UnpivotHeaderSingle", root: 4338, memoized: false },
    Rule { name: "UnpivotKeyword", root: 4341, memoized: false },
    Rule { name: "UnpivotStatement", root: 4348, memoized: false },
    Rule { name: "UnpivotTargetList", root: 4352, memoized: false },
    Rule { name: "UnpivotValueList", root: 4356, memoized: false },
    Rule { name: "UnqualifiedBaseTableName", root: 4357, memoized: false },
    Rule { name: "UnreservedKeyword", root: 4358, memoized: false },
    Rule { name: "UpdateAction", root: 4362, memoized: false },
    Rule { name: "UpdateAlias", root: 4366, memoized: false },
    Rule { name: "UpdateByNameOrPosition", root: 4367, memoized: false },
    Rule { name: "UpdateExtensionsStatement", root: 4382, memoized: false },
    Rule { name: "UpdateMatchClause", root: 4386, memoized: false },
    Rule { name: "UpdateMatchInfo", root: 4389, memoized: false },
    Rule { name: "UpdateMatchSetAction", root: 4390, memoized: false },
    Rule { name: "UpdateMatchSetClause", root: 4393, memoized: false },
    Rule { name: "UpdateMatchSetInfo", root: 4396, memoized: false },
    Rule { name: "UpdateSetClause", root: 4399, memoized: false },
    Rule { name: "UpdateSetColumnTarget", root: 4404, memoized: false },
    Rule { name: "UpdateSetElement", root: 4408, memoized: false },
    Rule { name: "UpdateSetElementList", root: 4416, memoized: false },
    Rule { name: "UpdateSetTuple", root: 4430, memoized: false },
    Rule { name: "UpdateStatement", root: 4442, memoized: false },
    Rule { name: "UpdateTarget", root: 4445, memoized: false },
    Rule { name: "UseStatement", root: 4448, memoized: false },
    Rule { name: "UseTarget", root: 4452, memoized: false },
    Rule { name: "UseTargetCatalogSchema", root: 4459, memoized: false },
    Rule { name: "UsingClause", root: 4472, memoized: false },
    Rule { name: "UsingExpression", root: 4475, memoized: false },
    Rule { name: "UsingKey", root: 4482, memoized: false },
    Rule { name: "UsingSample", root: 4485, memoized: false },
    Rule { name: "VacuumLegacyOptions", root: 4494, memoized: false },
    Rule { name: "VacuumOption", root: 4500, memoized: false },
    Rule { name: "VacuumOptions", root: 4503, memoized: false },
    Rule { name: "VacuumParensOptions", root: 4514, memoized: false },
    Rule { name: "VacuumStatement", root: 4520, memoized: false },
    Rule { name: "ValueOrValues", root: 4523, memoized: false },
    Rule { name: "ValuesClause", root: 4533, memoized: false },
    Rule { name: "ValuesExpressions", root: 4544, memoized: false },
    Rule { name: "ValuesRef", root: 4550, memoized: false },
    Rule { name: "VariableAssign", root: 4553, memoized: false },
    Rule { name: "VariableList", root: 4561, memoized: false },
    Rule { name: "VariableScope", root: 4562, memoized: false },
    Rule { name: "VariantType", root: 4563, memoized: false },
    Rule { name: "VersionAtUnit", root: 4564, memoized: false },
    Rule { name: "VersionNumber", root: 4567, memoized: false },
    Rule { name: "VirtualGeneratedColumn", root: 4568, memoized: false },
    Rule { name: "WeekKeyword", root: 4571, memoized: false },
    Rule { name: "WhereClause", root: 4574, memoized: false },
    Rule { name: "WindowClause", root: 4584, memoized: false },
    Rule { name: "WindowDefinition", root: 4588, memoized: false },
    Rule { name: "WindowExcludeClause", root: 4591, memoized: false },
    Rule { name: "WindowExcludeElement", root: 4596, memoized: false },
    Rule { name: "WindowFrame", root: 4600, memoized: false },
    Rule { name: "WindowFrameContents", root: 4607, memoized: false },
    Rule { name: "WindowFrameContentsParens", root: 4611, memoized: false },
    Rule { name: "WindowFrameDefinition", root: 4614, memoized: false },
    Rule { name: "WindowFrameNameContents", root: 4618, memoized: false },
    Rule { name: "WindowFrameNameContentsParens", root: 4622, memoized: false },
    Rule { name: "WindowPartition", root: 4633, memoized: false },
    Rule { name: "WithClause", root: 4645, memoized: false },
    Rule { name: "WithData", root: 4648, memoized: false },
    Rule { name: "WithDataOnly", root: 4651, memoized: false },
    Rule { name: "WithList", root: 4654, memoized: false },
    Rule { name: "WithNoData", root: 4658, memoized: false },
    Rule { name: "WithOids", root: 4659, memoized: false },
    Rule { name: "WithOrWithout", root: 4662, memoized: false },
    Rule { name: "WithOrWithoutOids", root: 4665, memoized: false },
    Rule { name: "WithOrdinality", root: 4668, memoized: false },
    Rule { name: "WithRule", root: 4669, memoized: false },
    Rule { name: "WithStatement", root: 4679, memoized: false },
    Rule { name: "WithinGroupClause", root: 4686, memoized: false },
    Rule { name: "WithoutOids", root: 4687, memoized: false },
    Rule { name: "WithoutRule", root: 4688, memoized: false },
    Rule { name: "YearKeyword", root: 4691, memoized: false },
    Rule { name: "YearToMonth", root: 4695, memoized: false },
    Rule { name: "ZoneDefault", root: 4696, memoized: false },
    Rule { name: "ZoneIdentifier", root: 4697, memoized: false },
    Rule { name: "ZoneIntervalWithInterval", root: 4702, memoized: false },
    Rule { name: "ZoneIntervalWithPrecision", root: 4709, memoized: false },
    Rule { name: "ZoneLocal", root: 4710, memoized: false },
    Rule { name: "ZoneStringLiteral", root: 4711, memoized: false },
    Rule { name: "ZoneValue", root: 4719, memoized: false },
];

/// Every literal that is not a word. Punctuation and operator spellings, matched against
/// the token text, which is the only place the matcher looks at the query again.
#[rustfmt::skip]
pub static SYMBOLS: [&str; 55] = [
    ",",
    "?",
    "!~~*",
    ">>=",
    "<<=",
    "->>",
    "!~~",
    "!~*",
    "~~*",
    "~~~",
    "~*",
    "!~",
    "^@",
    "||",
    "&&",
    "@>",
    "<@",
    "<=",
    ">=",
    "<>",
    "!=",
    "==",
    "<<",
    ">>",
    "//",
    "**",
    "->",
    "~~",
    "+",
    "-",
    "*",
    "/",
    "%",
    "^",
    "<",
    ">",
    "=",
    "&",
    "|",
    "~",
    "!",
    "(",
    ")",
    "=>",
    "[",
    "]",
    "::",
    ".",
    ":",
    "$",
    "{",
    "}",
    ":=",
    "#",
    ";",
];