rustlr 0.3.0

LR/LALR parser generator that can automatically create abstract syntax trees
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
//Parser generated by rustlr for grammar c11
    
#![allow(unused_variables)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_parens)]
#![allow(unused_mut)]
#![allow(unused_imports)]
#![allow(unused_assignments)]
#![allow(dead_code)]
#![allow(unreachable_patterns)]
#![allow(irrefutable_let_patterns)]
use std::marker::PhantomData;
use std::rc::Rc;
use std::cell::RefCell;
extern crate rustlr;
use rustlr::{Tokenizer,TerminalToken,ZCParser,ZCRProduction,Stateaction,decode_action};
use rustlr::{StrTokenizer,RawToken,LexSource};
use std::collections::{HashMap,HashSet};
use crate::cauto_ast::declaration_specifiers::*;
use crate::cauto_ast::storage_class_specifier::*;
use crate::cauto_ast::init_declarator::*;
use crate::cauto_ast::init_declarator_list::*;
use crate::cauto_ast::declarator::*;
use crate::cauto_ast::declaration::*;
use crate::cauto_ast::direct_declarator::*;
use rustlr::LBox;
use crate::c11_ast;
use crate::c11_ast::*;

static SYMBOLS:[&'static str;201] = ["_WILDCARD_TOKEN_","FUNC_NAME","INLINE","RESTRICT","ALIGNAS","ALIGNOF","ATOMIC","BOOL","COMPLEX","GENERIC","IMAGINARY","NORETURN","STATIC_ASSERT","THREAD_LOCAL","PTR_OP","INC_OP","DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP","MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN","RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","SIZEOF","TYPEDEF","EXTERN","STATIC","AUTO","REGISTER","CHAR","SHORT","INT","LONG","SIGNED","UNSIGNED","FLOAT","DOUBLE","CONST","VOLATILE","VOID","STRUCT","UNION","ENUM","CASE","DEFAULT","IF","ELSE","SWITCH","WHILE","DO","FOR","GOTO","CONTINUE","BREAK","RETURN","INCLUDE","DEFINE","ELLIPSIS","Lbrace","Rbrace","Amp","Bang","Bar","Hat","Dot","Comma","Colon","Star","Div","Percent","Lt","Gt","Eq1","Quest","Hash","[","]","(",")","+","-","~",";","TYPEDEF_NAME","ENUMERATION_CONSTANT","IDENTIFIER","I_CONSTANT","F_CONSTANT","STRING_LITERAL","primary_expression","postfix_expression","argument_expression_list","unary_expression","unary_operator","cast_expression","multiplicative_expression","additive_expression","shift_expression","relational_expression","equality_expression","and_expression","exclusive_or_expression","inclusive_or_expression","logical_and_expression","logical_or_expression","conditional_expression","assignment_expression","assignment_operator","expression","constant_expression","declaration","declaration_specifiers","init_declarator_list","init_declarator","storage_class_specifier","type_specifier","struct_or_union_specifier","struct_or_union","struct_declaration_list","struct_declaration","specifier_qualifier_list","struct_declarator_list","struct_declarator","enum_specifier","enumerator_list","enumerator","type_qualifier","declarator","direct_declarator","pointer","type_qualifier_list","parameter_type_list","parameter_list","parameter_declaration","identifier_list","type_name","abstract_declarator","direct_abstract_declarator","initializer","initializer_list","statement","labeled_statement","compound_statement","declaration_list","statement_list","expression_statement","selection_statement","iteration_statement","jump_statement","translation_unit","external_declaration","function_definition","constant","stringnt","generic_selection","generic_assoc_list","generic_association","static_assert_declaration","designation","function_specifier","alignment_specifier","atomic_type_specifier","designator_list","designator","block_item","NEWNTComma_23_0","NEWNTIDENTIFIER_128_0","NEWNTstruct_declarator_list_134_0","NEWNTstruct_declaration_138_0","NEWNTComma_150_0","NEWNTComma_153_0","NEWNTtype_qualifier_list_176_0","NEWNTtype_qualifier_list_187_0","NEWNTpointer_189_0","NEWNTtype_qualifier_192_0","NEWNTtype_qualifier_list_212_0","NEWNTSTATIC_215_0","NEWNTassignment_expression_217_0","NEWNTtype_qualifier_list_223_0","NEWNTSTATIC_226_0","NEWNTComma_236_0","NEWNTdesignator_244_0","NEWNTblock_item_259_0","NEWNTexpression_271_0","NEWNTexpression_274_0","NEWNTexternal_declaration_282_0","NEWNTdeclaration_287_0","START","EOF"];

static TABLE:[u64;11504] = [223340199936,25770262528,691492749313,34360459264,163209609216,167505231872,725851897857,193274052608,201865494528,219044511744,154618953728,180391247872,545463795713,734440062977,738736668673,846110326785,184684642304,695785816065,592708370433,523987386369,214750068736,55835361280,30066868224,743030325249,579823075329,231929872384,700082225153,549757648897,12885295104,197570658304,171798953984,541168566273,158915362816,8591900672,528282222593,554051108865,17179934720,42951114752,51542425600,206160658432,176094576640,408022482944,188980920320,210454708224,227636019200,47244836864,281857231880192,563164708732930,563151823831042,563113169125378,563126054027266,563357982261250,562975730171906,562992910041090,563160413765634,563323622522882,562958550302722,563181888602114,563121759059970,563138938929154,563366572195842,563169003700226,562980025139202,562997205008386,563143233896450,563104579190786,563280672849922,563130348994562,563147528863746,563177593634818,563353687293954,563134643961858,563289262784514,563156118798338,563005794942978,562967140237314,562962845270018,563173298667522,562984320106498,563108874158082,563117464092674,563332212457474,563336507424770,844811488133122,844592444801026,844635394473986,844828668002306,844455005847554,844807193165826,844596739768322,844626804539394,844622509572098,844459300814850,844798603231234,844832962969602,844437825978370,844648279375874,844433531011074,844450710880258,844480775651330,844613919637506,844618214604802,844609624670210,844472185716738,844639689441282,844764243492866,844579559899138,844467890749442,844652574343170,844605329702914,844841552904194,844631099506690,844442120945666,844643984408578,844656869310466,844583854866434,844601034735618,844755653558274,844588149833730,1125925683855362,1126303640977410,1125955748626434,1126282166140930,1125934273789954,1126131842285570,1126123252350978,1126273576206338,1126054532874242,1126084597645314,1126058827841538,1126088892612610,1126076007710722,1126307935944706,1125912798953474,1126286461108226,1126127547318274,1126080302678018,1126316525879298,1126097482547202,1125929978822658,1125947158691842,1126114662416386,1126239216467970,1126093187579906,1126110367449090,1125942863724546,1126230626533378,1126063122808834,1126106072481794,1126118957383682,1126067417776130,1126101777514498,1125917093920770,1126071712743426,1125908503986178,1407675539652610,1407791498592256,1408139390877697,1689060324474882,1688905705652226,1689081799311362,1689056029507586,1689236418134018,1689245008068610,1688884230815746,1689257892970498,1689249303035906,1688854166044674,1689270777872386,1689077504344066,1689038849638402,1689262187937794,1689008784867330,1688888525783042,1689021669769218,1688897115717634,1689073209376770,1688879935848450,1688918590554114,1688875640881154,1688871345913858,1689253598003202,1689163403689986,1688892820750338,1688862755979266,1689275072839682,1689189173493762,1689017374801922,1689064619442178,1688858461011970,1689025964736514,1689051734540290,1689227828199426,1689047439572994,1689004489900034,1689159108722690,1688867050946562,1689034554671106,1689232123166722,1689000194932738,1689068914409474,1689223533232130,1689279367806978,1689043144605698,1689266482905090,1689013079834626,1689240713101314,1689184878526466,1688914295586818,1689180583559170,1689030259703810,1970479466545154,1970707092340736,1970655560204290,1970732869615618,1970492351447042,1970483761512450,1970659855171586,1970698509877250,1970539596087298,1970350617526274,1970526711185410,1970741459550210,1970522416218114,1970664150138882,1970535301120002,1970556775956482,1970518121250818,1970543891054594,1970548186021890,1970488056479746,1970380682297346,1970711394779138,1970552480989186,1970513826283522,1970500941381634,1970531006152706,1970354912493570,1970337732624386,1970367797395458,1970505236348930,1970342027591682,1970333437657090,1970372092362754,1970728574648322,1970509531316226,1970359207460866,1970496646414338,2252018864881666,2252173483704322,2252216433377282,2252182073638914,2251963030306818,2252203548475394,2251993095077890,2251984505143298,2251975915208706,2252031749783554,2251834181287938,2251829886320642,2252027454816258,2251817001418754,2251958735339522,2252023159848962,2251855656124418,2252139123965954,2252014569914370,2251997390045186,2251971620241410,2251808411484162,2252005979979778,2252186368606210,2251825591353346,2252010274947074,2251980210176002,2251847066189826,2251967325274114,2251842771222530,2251954440372226,2252130534031362,2251812706451458,2252134828998658,2251988800110594,2252207843442690,2252001685012482,2533429416558594,2533485251133442,2533450891395074,2533283387670530,2533682819629058,2533446596427778,2533317747408898,2533489546100738,2533476661198850,2533287682637826,2533330632310786,2533605510217730,2533614100152322,2533433711525890,2533291977605122,2533493841068034,2533498136035330,2533678524661762,2533455186362370,2533438006493186,2533309157474306,2533442301460482,2533472366231554,2533657049825282,2533661344792578,2533300567539714,2533691409563650,2533468071264258,2533322042376194,2533648459890690,2533506725969922,2533459481329666,2533463776296962,2533502431002626,2533480956166146,2533609805185026,2533304862507010,2814775537369088,2815488503775233,2814968811618304,2814981696978944,2814973107306496,2815278051426305,2815123435618306,2815166385291266,2814792718221312,2814784127565824,2814964517175296,2814912976715776,2815290935672833,2815132025552898,2815299524755457,2815484207169537,2814797011943424,2814960221814784,2815136320520194,2814805602467840,2815080485945346,2814762652401664,2814930158354432,2814921566060544,2814977403125760,2815342475476993,2814779833974784,2815303818215425,2815295230902273,2814766947041280,2814758359007232,2814951632601088,2815492797431809,2815329590181889,2815153500389378,2814955927764992,2815089075879938,2815157789589504,2814917272338432,2814925861683200,2814943041159168,2814938748026880,2814904386060288,2814934451748864,2814947337764864,2814908682469376,3096396550569986,3096422320373762,3096418025406466,3096439500242946,3096607003967490,3096267701551106,3096271996518402,3096598414032898,3096379370700802,3096392255602690,3096448090177538,3096628478803970,3096387960635394,3096564054294530,3096452385144834,3096426615341058,3096456680112130,3096233341812738,3096443795210242,3096641363705858,3096383665668098,3096559759327234,3096250521681922,3096632773771266,3096259111616514,3096413730439170,3096430910308354,3096254816649218,3096409435471874,3096237636780034,3096405140504578,3096241931747330,3096280586452994,3096555464359938,3096435205275650,3096611298934786,3096400845537282,3378103454728194,3377755562377218,3377927361069058,3377923066101762,3377708317736962,3377862936559618,3377854346625026,3377884411396098,3377918771134466,3378081979891714,3377888706363394,3377914476167170,3378039030218754,3377734087540738,3378030440284162,3377716907671554,3377931656036354,3377742677475330,3377871526494210,3377712612704258,3377746972442626,3377875821461506,3377893001330690,3378116339630082,3377905886232578,3377858641592322,3377897296297986,3377910181199874,3377729792573442,3378107749695490,3378086274859010,3377867231526914,3377880116428802,3378073389957122,3377901591265282,3377725497606146,3659191884185602,3659363682877442,3659514006732802,3659204769087490,3659367977844738,3659355092942850,3659380862746626,3659376567779330,3659582726209538,3659183294251010,3659209064054786,3659402337583106,3659505416798210,3659578431242242,3659591316144130,3659329323139074,3659398042615810,3659556956405762,3659385157713922,3659337913073666,3659342208040962,3659200474120194,3659350797975554,3659561251373058,3659389452681218,3659346503008258,3659393747648514,3659406632550402,3659217653989378,3659333618106370,3659548366471170,3659187589218306,3659372272812034,3659230538891266,3659359387910146,3659221948956674,3940877314686978,3940860134817794,3941053408346114,3940808595210242,3940692631093250,3941036228476930,3941023343575042,3940864429785090,3940881609654274,3940984688869378,3940834365014018,3941057703313410,3940817185144834,3940847249915906,3940812890177538,3940821480112130,3940830070046722,3940851544883202,3940838659981314,3940988983836674,3941066293248002,3940675451224066,3940804300242946,3940855839850498,3940696926060546,3940873019719682,3940684041158658,3940666861289474,3940679746191362,3940658271354882,3940842954948610,3940705515995138,3940980393902082,3940662566322178,3940825775079426,3941031933509634,3940868724752386,4222326522445826,4222459666432002,4222283572772866,4222463961399298,4222532680876034,4222154723753986,4222339407347714,4222167608655874,4222352292249602,4222498321137666,4222133248917506,4222300752642050,4222335112380418,4222292162707458,4222171903623170,4222150428786690,4222137543884802,4222330817413122,4222506911072258,4222159018721282,4222343702315010,4222296457674754,4222322227478530,4222528385908738,4222511206039554,4222309342576642,4222305047609346,4222317932511234,4222356587216898,4222180493557762,4222541270810626,4222287867740162,4222347997282306,4222455371464706,4222313637543938,4222279277805570,4222141838852098,4503827268239362,4503934642421762,4503754253795330,4503758548762626,4503801498435586,4503822973272066,4503805793402882,4503762843729922,4503986182029314,4504007656865794,4503973297127426,4503981887062018,4503810088370178,4503616814841858,4503625404776450,4503633994711042,4503608224907266,4503775728631810,4503780023599106,4503784318566402,4503792908500994,4503938937389058,4503930347454466,4503655469547522,4503814383337474,4503771433664514,4503767138697218,4503797203468290,4504003361898498,4503831563206658,4503642584645634,4503646879612930,4503629699743746,4503788613533698,4504016246800386,4503818678304770,4503612519874562,4785263601123330,4785108982300674,4785104687333378,4785246421254146,4785100392366082,4785276486025218,4785242126286850,4785285075959810,4785126162169858,4785083212496898,4785087507464194,4785130457137154,4785272191057922,4785233536352258,4785117572235266,4785255011188738,4785297960861698,4785091802431490,4785121867202562,4785302255828994,4785259306156034,4785267896090626,4785482644455426,4785306550796290,4785250716221442,4785229241384962,4785293665894402,4785280780992514,4785933616021506,4785237831319554,4785289370927106,5066704207020034,5066708501987330,5066575358001154,5066768631529474,5066729976823810,5066880300679170,5066760041594882,5066747156692994,5066562473099266,5066558178131970,5066751451660290,5066777221464066,5066772926496770,5066734271791106,5066923250352130,5066755746627586,5066781516431362,5066579652968450,5066738566758402,5066566768066562,5066742861725698,5066888890613762,5066884595646466,5066957610090498,5066966200025090,5066583947935746,5066764336562178,5066592537870338,5066953315123202,5066712796954626,5066717091921922,5066721386889218,5066596832837634,5066936135254018,5066605422772226,5066725681856514,5066931840286722,5348363863785472,5348625856331777,5348561432346625,5348630151692289,5348557137051649,5348428288163840,5348621561430017,5348441172869120,5348406813261824,5629838847246338,5629508134764546,5629525314633730,5629671343521794,5629692818358274,5629555379404802,5629907566723074,5629697113325570,5629924746592258,5629894681821186,5629662753587202,5629679933456386,5629731473063938,5629898976788482,5629727178096642,5629658458619906,5629675638489090,5629903271755778,5629834552279042,5629722883129346,5629568264306690,5629911861690370,5629688523390978,5629654163652610,5629714293194754,5629512429731842,5629916156657666,5629830257311746,5629667048554498,5629503839797250,5629649868685314,5629538199535618,5629705703260162,5629516724699138,5629886091886594,5629563969339394,5629546789470210,5629542494502914,5629718588162050,5629684228423682,5629877501952002,5629521019666434,5629533904568322,5629813077442562,5629920451624962,5629701408292866,5629709998227458,5629873206984706,5629808782475266,5629881796919298,5629929041559554,5629890386853890,5629529609601026,5911129148489730,5911142033391618,5911021774307330,5911172098162690,5911030364241922,5911184983064578,5911167803195394,5910991709536258,5911382551560194,5911159213260802,5911176393129986,5911202162933762,5911133443457026,5911154918293506,5911150623326210,5910987414568962,5911180688097282,5911833523126274,5911197867966466,5911026069274626,5911146328358914,5911000299470850,5911017479340034,5911008889405442,5911193572999170,5911004594438146,5911189278031874,5911163508228098,5911206457901058,5911137738424322,5910983119601666,6192677129027586,6192866107588610,6192681423994882,6192612704518146,6192857517654018,6192629884387330,6192604114583554,6192668539092994,6192823157915650,6192788798177282,6192496740401154,6192505330335746,6192621294452738,6192492445433858,6192659949158402,6192651359223810,6192784503209986,6192608409550850,6192642769289218,6192616999485442,6192672834060290,6192479560531970,6192780208242690,6192458085695490,6192475265564674,6192462380662786,6192664244125698,6192853222686722,6192466675630082,6192638474321922,6192483855499266,6192647064256514,6192831747850242,6192625589420034,6192655654191106,6192634179354626,6192836042817538,6474113450049538,6474156399722498,6474104860114946,6474332493381634,6474117745016834,6474083385278466,6474341083316226,6473941651357698,6474298133643266,6473958831226882,6474091975213058,6473954536259586,6474126334951426,6474122039984130,6474139219853314,6473937356390402,6474079090311170,6473980306063362,6473950241292290,6474100565147650,6474087680245762,6473971716128770,6474263773904898,6473967421161474,6474143514820610,6474147809787906,6474328198414338,6474109155082242,6474255183970306,6474130629918722,6474096270180354,6474152104755202,6474311018545154,6474134924886018,6473933061423106,6474306723577858,6755425217871874,6755446692708354,6755816059895810,6755433807806466,6755408038002690,6755592721596418,6755773110222850,6755442397741058,6755618491400194,6755575541727234,6755785995124738,6755781700157442,6755558361858050,6755807469961218,6755601311531010,6755622786367490,6755429512839170,6755571246759938,6755455282642946,6755627081334786,6755579836694530,6755803174993922,6755631376302082,6755614196432898,6755605606498306,6755597016563714,6755588426629122,6755554066890754,6755738750484482,6755609901465602,6755730160549890,6755584131661826,6755566951792642,6755416627937282,6755562656825346,6755412332969986,7037175069540352,7037291033591808,7318684412608514,7318362290061314,7318366585028610,7318525498818562,7318731657248770,7318413829668866,7318564153524226,7318538383720450,7318723067314178,7318740247183362,7318370879995906,7318546973655042,7318516908883970,7318379469930498,7318770311954434,7318688707575810,7318662937772034,7318388059865090,7318559858556930,7318748837117954,7318680117641218,7318383764897794,7318512613916674,7318735952216066,7318529793785858,7318551268622338,7318534088753154,7318396649799682,7318375174963202,7318405239734274,7318581333393410,7318418124636162,7318727362281474,7318572743458818,7318521203851266,7318761722019842,7318508318949378,7318766016987138,7318357995094018,7318778901889026,7318658642804738,7318774606921730,7318757427052546,7318392354832386,7318744542150658,7318353700126722,7318555563589634,7318542678687746,7318577038426114,7318753132085250,7318499729014786,7318568448491522,7318504023982082,7600563107856385,7600369834983425,7600056301060096,7600026236682240,7600550223085569,7600378422296577,7600558811250689,7600417079558145,7599837256482816,7599850141450240,7599858731646976,7600017645240320,7600004762435584,7600039121256448,7600030531846144,7600021941846016,7600034825895936,7600524453412865,7599991876419584,7600365539753985,7599854438055936,7600567401512961,7599867322302464,7600348358574081,7600520160018433,7600047711387648,7599987580796928,7599832963088384,7599978990141440,7600043415699456,7599880206548992,7599996170141696,7600374128836609,7599841551122432,7599871616024576,7600232393670656,7600052007206912,7599983286550528,7600683383259138,7600013352108032,7600009055830016,7600352653410305,7599875913613312,7600404194263041,7600000465764352,7881526989357058,7881484039684098,7881453974913026,7881501219553282,7881681608179714,7881342305763330,7881346600730626,7881488334651394,7881333715828738,7881514104455170,7881355190665218,7881518399422466,7881630068572162,7881471154782210,7881475449749506,7881492629618690,7881479744716802,7881496924585986,7881329420861442,7881638658506754,7881685903147010,7881312240992258,7881531284324354,7881673018245122,7881522694389762,7881462564847618,7881509809487874,7881707377983490,7881715967918082,7881634363539458,7881307946024962,7881703083016194,7881458269880322,7881466859814914,7881316535959554,7881325125894146,7881505514520578,8163074980970498,8163190945087490,8444588614615042,8444464060563458,8444421110890498,8444657334091778,8444408225988610,8444635859255298,8444416815923202,8444292261871618,8444580024680450,8444622974353410,8444296556838914,8444631564288002,8444412520955906,8444266492067842,8444665924026370,8444468355530754,8444459765596162,8444653039124482,8444279376969730,8444429700825090,8444275082002434,8444481240432642,8444257902133250,8444442585726978,8444446880694274,8444433995792386,8444305146773506,8444403931021314,8444451175661570,8444283671937026,8444438290759682,8444262197100546,8444425405857794,8444455470628866,8444472650498050,8444476945465346,8725956213997570,8725947624062978,8725767235436546,8725921854259202,8725917559291906,8725930444193794,8725732875698178,8726063588179970,8725878904586242,8726140897591298,8725896084455426,8725908969357314,8726059293212674,8725891789488130,8726097947918338,8725943329095682,8725951919030274,8725913264324610,8726128012689410,8725754350534658,8726054998245378,8725900379422722,8725750055567362,8725737170665474,8725758645501954,8725926149226498,8726106537852930,8726110832820226,8725883199553538,8725771530403842,8725934739161090,8725741465632770,8725939034128386,8725904674390018,8725887494520834,8725780120338434,8726132307656706,9007371061428226,9007585809793026,9007246507376642,9007229327507458,9007414011101186,9007233622474754,9007396831232002,9007212147638274,9007534270185474,9007383946330114,9007379651362818,9007375356395522,9007405421166594,9007358176526338,9007255097311234,9007602989662210,9007225032540162,9007207852670978,9007422601035778,9007366766460930,9007409716133890,9007388241297410,9007538565152770,9007581514825730,9007401126199298,9007426896003074,9007353881559042,9007572924891138,9007431190970370,9007392536264706,9007418306068482,9007607284629506,9007529975218178,9007242212409346,9007615874564098,9007362471493634,9007216442605570,9289004951863298,9288717189054466,9288880397811714,9288884692779010,9289077966307330,9288721484021762,9288704304152578,9288846038073346,9288833153171458,9289082261274626,9288691419250690,9289047901536258,9288858922975234,9289090851209218,9288897577680898,9288841743106050,9289013541797890,9288682829316098,9288837448138754,9288687124283394,9288867512909826,9289009246830594,9288828858204162,9288906167615490,9288871807877122,9288893282713602,9288901872648194,9288708599119874,9288700009185282,9289056491470850,9288854628007938,9289060786438146,9288730073956354,9288876102844418,9288863217942530,9288888987746306,9288850333040642,9570329604587522,9570531468050434,9570552942886914,9570162100862978,9570312424718338,9570557237854210,9570303834783746,9570355374391298,9570488518377474,9570372554260482,9570196460601346,9570338194522114,9570157805895682,9570205050535938,9570363964325890,9570333899554818,9570308129751042,9570342489489410,9570179280732162,9570381144195074,9570535763017730,9570166395830274,9570183575699458,9570325309620226,9570321014652930,9570376849227778,9570368259293186,9570484223410178,9570479928442882,9570351079424002,9570346784456706,9570174985764866,9570316719685634,9570522878115842,9570565827788802,9570192165634050,9570359669358594,9851783100235776,9851787394482176,9852165353439233,9851778803826688,9852027918286850,9851808869515264,9851804576120832,9852362921541633,9852358624935937,9852032207355904,9851838934941696,9852178235981825,9852204007948289,9852173942521857,9852169648668673,9851997853515778,9851813165793280,9851641364807680,9852152470044673,9851637070168064,9851649955135488,9852010738417666,9852040803188738,9851817458925568,9851671429709824,9851667135987712,9851654251741184,9851847525072896,9851826050367488,9851843229384704,9852006443450370,9851791690104832,9851963493777410,9851954903842818,9851821755531264,9851834639581184,9851658545332224,9851856114745344,9851795983826944,9852216893243393,9851632776773632,9851830345531392,9851680020234240,9851800279449600,9852367215198209,9851851820892160,10133283852845058,10133313917616130,10133288147812354,10133116349120514,10133481421340674,10133515781079042,10133133528989698,10133112054153218,10133107759185922,10133270967943170,10133296737746946,10133142118924290,10133262378008578,10133507191144450,10133502896177154,10133146413891586,10133275262910466,10133485716307970,10133155003826178,10133322507550722,10133472831406082,10133301032714242,10133253788073986,10133266672975874,10133429881733122,10133318212583426,10133292442779650,10133279557877762,10133438471667714,10133124939055106,10133434176700418,10133129234022402,10133309622648834,10133258083041282,10133331097485314,10133305327681538,10133326802518018,10414599914061826,10414810367459330,10414621388898306,10414780302688258,10414831842295810,10414814662426626,10414578439225346,10414874791968770,10414604209029122,10414591324127234,10414750237917186,10414763122819074,10414737353015298,10414887676870658,10414801777524738,10414879086936066,10414840432230402,10414982166151170,10414986461118466,10414595619094530,10414642863734786,10414849022164994,10414969281249282,10414883381903362,10414767417786370,10414733058048002,10414745942949890,10414638568767490,10414999346020354,10414793187590146,10414741647982594,10414758827851778,10414818957393922,10414608503996418,10414964986281986,10414582734192642,10414857612099586,10414836137263106,10414612798963714,10414977871183874,10414973576216578,10414587029159938,10414797482557442,10414625683865602,10414754532884482,10414806072492034,10414629978832898,10414956396347394,10415433137717250,10414853317132290,10415003640987650,10414784597655554,10414724468113410,10414771712753666,10414990756085762,10414844727197698,10414617093931010,10414827547328514,10414995051053058,10414913446674434,10414788892622850,10414776007720962,10414728763080706,10696268166594562,10696246691758082,10696435670319106,10696066303131650,10696208037052418,10696452850188290,10696457145155586,10696388425678850,10696431375351810,10696079188033538,10696083483000834,10696250986725378,10696255281692674,10696092072935426,10696104957837314,10696272461561858,10696074893066242,10696057713197058,10696238101823490,10696242396790786,10696062008164354,10696216626987010,10696379835744258,10696465735090178,10696203742085122,10696233806856194,10696229511888898,10696225216921602,10696422785417218,10696096367902722,10696384130711554,10696276756529154,10696263871627266,10696259576659970,10696281051496450,10696220921954306,10696212332019714,10977558470131714,10977717383921666,10977549880197122,10977575650000898,10977554175164418,10977751743660034,10977687319150594,10977678729216002,10977932132286466,10977738858758146,10977713088954370,10977567060066306,10977730268823554,10977579944968194,10977536995295234,10977541290262530,10977756038627330,10977700204052482,10977743153725442,10977734563790850,10977532700327938,10978383103852546,10977708793987074,10977695909085186,10977683024183298,10977571355033602,10977725973856258,10977691614117890,10977721678888962,10977747448692738,10977704499019778,11259029140733954,11259007665897474,11259196644458498,11259415687790594,11259166579687426,11259016255832066,11259175169622018,11259231004196866,11259042025635842,11259024845766658,11259033435701250,11259179464589314,11259188054523906,11259046320603138,11259153694785538,11259209529360386,11259157989752834,11259381328052226,11259205234393090,11259218119294978,11259226709229570,11259222414262274,11259170874654722,11259192349491202,11259334083411970,11259183759556610,11259385623019522,11259200939425794,11259402802888706,11259329788444674,11259213824327682,11259407097856002,11259011960864770,11259372738117634,11259162284720130,11259054910537730,11259338378379266,11540486930432000,11540890662993922,11540804763648002,11540680205795328,11540856303255554,11540860598222850,11540693089648640,11540663026057216,11541023802785793,11540688795205632,11540482637037568,11540675910631424,11541028096245761,11540658729779200,11540847713320962,11540671615795200,11540877778092034,11540508405596160,11540491225071616,11540499815399424,11541002330374145,11541015213703169,11540645844090880,11540650139713536,11540705975009280,11540516996251648,11540637254746112,11540654436384768,11540529880498176,11541066753507329,11540628664090624,11541019508932609,11540813353582594,11540632960499712,11541053868212225,11541217075462145,11540667319189504,11540504112005120,11540641550368768,11540697385336832,11541208485199873,11541212781805569,11540521289973760,11540701681156096,11540882067619840,11540684499845120,11822249678274562,11822365642391554,12103806254972928,12385118019780608,12385113725337600,12385130905141248,12385126611288064,12385315593322498,12385453026377729,12385109429977088,12385092249321472,12385229693976578,12385122315468800,12384911860563968,12385053594222592,12384924745531392,12385105135927296,12385637711937537,12385285528551426,12385302708420610,12384907567169536,12384946220105728,12385079366516736,12385491683639297,12385075069845504,12384941926383616,12385057890631680,12384954810630144,12385642005594113,12385100840763392,12384929042137088,12384916155203584,12385306997751808,12385066480500736,12385633415331841,12385448732917761,12385281233584130,12384933335728128,12385272643649538,12385440143835137,12385238283911170,12385083659911168,12385087956189184,12385427260637185,12385096545927168,12385478798344193,12385062184878080,12385070774222848,12385444439064577,12667116982304769,12666605881851904,12666567226032128,12666601587998720,12666408312438784,12666391131914240,12666404018847744,12666558636621824,12666592996491264,12666597292179456,12666790569902082,12666777685000194,12666562932899840,12666421196816384,12666756210163714,12667112688648193,12666575817474048,12666550046556160,12666781974462464,12666571522637824,12666541457211392,12666554343227392,12666399722242048,12666588702048256,12667108392042497,12666386837274624,12666528570933248,12666580112637952,12666382543880192,12666923709628417,12666429787340800,12666584406687744,12666545750933504,12666704670556162,12666537161588736,12666966660349953,12666416903094272,12666713260490754,12666953775054849,12666760505131010,12666747620229122,12666919415775233,12666928003088385,12666532867342336,12666902237413377,12666915120545793,12948707922149379,13229637444304896,13229890848292865,13229538655469568,13229783471816705,13229719047831552,13229542949912576,13229366856515584,13229392631562240,13229779178553345,13230032581165057,13229521476059136,13229843603193857,13229633149009920,13229349675663360,13229792061882369,13229534360109056,13229508590043136,13229555835273216,13229809242406913,13229706162339840,13230028286263297,13229916617768961,13229336790695936,13229388334694400,13229345385218048,13229547245600768,13230066935726081,13229903728476161,13229817832996865,13229353972269056,13229770587111425,13229530066059264,13229512886321152,13229749113651200,13229723344371712,13229736226914304,13229474234630144,13229504296648704,13229800653586433,13229744817831936,13229955271622657,13229873663049729,13229869371424769,13229877956509697,13229813538619393,13229804947636225,13229761996587009,13229551541420032,13229757701685249,13229362565611520,13229525770895360,13229714753847296,13229731927883776,13229358265860096,13229499999977472,13229517179453440,13229328205676544,13229753407897600,13230036874690561,13229822128685057,13229740523061248,13229663214370816,13229826423717889,13229774882537473,13229787767963649,13229796357046273,13511099537096704,13792286752309250,13792475730870274,13792501500674050,13792428486230018,13792449961066498,13792647529562114,13792282457341954,13792329701982210,13792462845968386,13792471435902978,13792488615772162,13792308227145730,13792613169823746,13792660414464002,13792656119496706,13792677594333186,13792454256033794,13792681889300482,13792497205706754,13792467140935682,13792574514987010,13792441371131906,13792690479235074,13792432781197314,13792484320804866,13792291047276546,13792437076164610,13792445666099202,13792316817080322,13792604579889154,13792480025837570,13792608874856450,13792303932178434,13792458551001090,13792492910739458,13792505795641346,13792321112047618,13792299637211138,14073972175732736,14073954996191232,14073980765405184,14073783195992064,14073950701027328,14073967880044544,14074294301556737,14073946406191104,14073924930109440,14074328658608129,14073959290241024,14073929226780672,14073976471552000,14074156858015744,14074380203065345,14074298593181697,14074302886641665,14073791786647552,14073963585601536,14073761720827904,14073937816453120,14073933520175104,14074341547900929,14074491865858049,14073778902401024,14073774605795328,14073942109585408,14074315778424833,14355563121082370,14355610365722626,14355640430493698,14355554531147778,14355606070755330,14355597480820738,14355627545591810,14636926433427458,14636853418983426,14637102527086594,14636917843492866,14636913548525570,14637029512642562,14637106822053890,14636754634735618,14636883483754498,14636857713950722,14636711685062658,14636999447871490,14636896368656386,14636724569964546,14636887778721794,14636715980029954,14636733159899138,14636900663623682,14636870598852610,14636728864931842,14636866303885314,14637072458514432,14637085347217410,14637081048514560,14636707390095362,14636892073689090,14636922138460162,14636746044801026,14636879188787202,14636750339768322,14636874893819906,14636909253558274,14636862008918018,14636930728394754,14637033807609858,14636741749833730,14637059577413634,14636904958590978,14918345583165442,14918504484962306,14918358468067330,14918362763034626,14918341288198146,14918203849244674,14918328403296258,14918397122772994,14918534550519808,14918182374408194,14918186669375490,14918216734146562,14918371352969218,14918392827805698,14918354173100034,14918577499406338,14918367058001922,14918199554277378,14918405712707586,14919024176726017,14918336993230850,14918375647936514,14918474432184322,14918221029113858,14918229619048450,14918190964342786,14918208144211970,14918225324081154,14918388532838402,14918379942903810,14918581806366722,14918384237871106,14918349878132738,14918401417740290,14918332698263554,15199872091947010,15199704588222466,15200022415802370,15199863502012418,15200052480573442,15199811962404866,15200031005736962,15200009530900482,15199807667437570,15199846322143234,15199824847306754,15199683113385986,15199983761096706,15199678818418690,15199837732208642,15199820552339458,15199859207045122,15199691703320578,15199674523451394,15199700293255170,15200035300704258,15199816257372162,15199833437241346,15199880681881602,15199867796979714,15199949401358338,15199850617110530,15199695998287874,15200056775540738,15199829142274050,15199803372470274,15199842027175938,15199876386914306,15199854912077826,15199979466129410,15199661638549506,15199657343582210,15199665933516802,15481527453679616,15481454439301120,15762938002079744,15763195704049665,15762980951556096,15763199994626049,15763015311163392,15763204289986561,16044335671345154,16044082268274690,16044331376377858,16044468815331330,16044464520364034,16044339966312450,16044120922980354,16044245477031938,16044116628013058,16044318491475970,16044249771999234,16044125217947650,16044297016639490,16044301311606786,16044309901541378,16044077973307394,16044382915985410,16044473110298626,16044477405265922,16044258361933826,16044236887097346,16044498880102402,16044357146181634,16044279836770306,16044485995200514,16044494585135106,16044099448143874,16044271246835714,16044288426704898,16044108038078466,16044348556247042,16044241182064642,16044305606574082,16044932671799298,16044262656901122,16044095153176578,16044455930429442,16044142397816834,16044284131737602,16044378621018114,16044503175069698,16044352851214338,16044387210952706,16044275541803010,16044314196508674,16044090858209282,16044224002195458,16044138102849538,16044232592130050,16044254066966530,16044481700233218,16044266951868418,16044228297162754,16044374326050818,16044344261279746,16044086563241986,16044129512914946,16044490290167810,16044327081410562,16044103743111170,16044292721672194,16044112333045762,16044412980756482,16326149952503809,16325965264584704,16325930904977408,16607358645633026,16607822497775617,16607440250011650,16607813908037633,16607397300338690,16607036511223808,16607410185240578,16607633519476737,16607238375997440,16607362940600322,16607405890273282,16607354350665730,16607049403727872,16607234080636928,16607616339476481,16888829321805826,16888902336249858,17169999359377410,17170274235318272,17170192632905730,17170136798330882,17170171158069250,17170141093298178,17170184042971138,17170132503363586,17170347251728386,17170016539246594,17170007949312002,17170355841662978,17169986474475522,17169990769442818,17170153978200066,17170029424148482,17170308597022722,17170162568134658,17170145388265474,17169982179508226,17170166863101954,17170201222840322,17170360136630274,17170003654344706,17170377316499458,17170020834213890,17170188337938434,17170312891990018,17170205517807618,17170381611466754,17170179748003842,17170128208396290,17170196927873026,17170175453036546,17170158273167362,17170390201401346,17170304302055426,17170149683232770,17452036975034369,17452032679936001,17451860881309696,17732970795958274,17733138299682818,17733146889617410,17733095350009858,17733103939944450,17733078170140674,17732957911056386,17732975090925570,17733331573211138,17733108234911746,17733082465107970,17733099644977154,17733782544777218,17732979385892866,17733121119813634,17733129709748226,17733142594650114,17733155479552002,17733134004715522,17733125414780930,17733091055042562,17732932141252610,17732949321121794,17732966500990978,17733151184584706,17733116824846338,17732953616089090,17733086760075266,17732936436219906,17732940731187202,17733112529879042,18014780768124930,18014772178190338,18014815127863298,18014802242961410,18014729228517378,18014785063092226,18014737818451970,18296255744901122,18296277219737602,18296290104639490,18296260039868418,18296212795228162,18296204205293570,18296247154966530,18578061432193025,18577498792132608,18577820914548737,18577773671153664,18577868162465793,18577743605334016,18577777965400064,18577846686187521,18577739311349760,18577799440039937,18577838096121857,18577808029319169,18578052843765761,18577412892196864,18577662001807360,18577825211088897,18577352763179008,18577812325466113,18577786554089473,18578057138667521,18577829505138689,18577747901874176,18577657706512384,18577765080563712,18577803736055809,18577760784416768,18577369942720512,18577387123113984,18577850981220353,18577795144613889,18577769375334400,18577782259187713,18577417189064704,18577816619384833,18577842390499329,18577730719842304,18577687771873280,18577833799909377,18859227172831234,18859162748321794,18859205697994754,18859209992962050,18859197108060162,18859154158387202,18859240057733122,19140672084639746,19140702149410818,19140680674574338,19140684969541634,19140715034312706,19140637724901378,19140629134966786,19421863589183490,19422082632515586,19422108402319362,19421915128791042,19421850704281602,19422125582188546,19421902243889154,19422138467090434,19422164236894210,19422116992253954,19422147063775232,19421833531490304,19422121287221250,19422099819200512,19422134172123138,19421876474085378,19422112697286658,19421893653954562,19421854999248898,19421846409314306,19421872179118082,19422155653906432,19422177121796098,19421889358987266,19421842121228288,19422091222450178,19422159941926914,19422168531861506,19421837826392064,19421880769052674,19421897948921858,19421859294216194,19422104107352066,19421885064019970,19421910833823746,19422129877155842,19422151351992322,19421906538856450,19421919423758338,19422078337548290,19421867884150786,19422095517417474,19703334270074882,19703587673145346,19703372924780546,19703364334845954,19703360039878658,19703368629813250,19703317090205698,19703604853014530,19703652097654786,19703643507720194,19703321385172994,19703579083210754,19703566198308866,19703338565042178,19703591968112642,19703390104649730,19703596263079938,19703377219747842,19703351449944066,19703630622818306,19703622032883714,19703613442949122,19703385809682434,19703347154976770,19703639212752898,19703381514715138,19703312795238402,19703609147981826,19703553313406978,19703355744911362,19703600558047234,19703342860009474,19703574788243458,19703325680140290,19703583378178050,19703634917785602,19703329975107586,19703557608374274,19703394399617026,19703626327851010,19703308500271106,19703570493276162,19984787771424770,19985079829200898,19985049764429826,19984839311032322,19985066944299010,19984813541228546,19985109893971970,19984817836195842,19984852195934210,19984826426130434,19984800656326658,19984835016065026,19985075534233602,19985054059397122,19984809246261250,19984865080836098,19985105599004674,19985118483906562,19984796361359362,19985071239266306,19984804951293954,19985114188939266,19984847900966914,19985062649331714,19985097009070082,19985028289593346,19985045469462530,19984860785868802,19984792066392066,19984822131163138,19985058354364418,19984856490901506,19984830721097730,19985088419135490,19984783476457474,19985032584560642,19985101304037378,19984869375803394,19984843605999618,19985127073841154,19985041174495234,19985084124168194,20266571985584130,20266593460420610,20266533330878466,20266602050355202,20266344352317442,20266503266107394,20266520445976578,20266524740943874,20266541920813058,20266271337873410,20266258452971522,20266297107677186,20266563395649538,20266516151009282,20266262747938818,20266284222775298,20266288517742594,20266580575518722,20266327172448258,20266537625845762,20266309992579074,20266559100682242,20266267042906114,20266331467415554,20266275632840706,20266314287546370,20266546215780354,20266305697611778,20266507561074690,20266576280551426,20266340057350146,20266554805714946,20266584870486018,20266322877480962,20266335762382850,20266529035911170,20266550510747650,20266318582513666,20266292812709890,20266279927808002,20266301402644482,20266589165453314,20548107096162305,20548119985455105,20548111391064065,20547694779695104,20547986838781952,20548381975642113,20548094212308992,20547711960088576,20548102802374656,20548085621391360,20547737729171456,20547742026039296,20547982543486976,20547677600153600,20548386269167617,20548072738848768,20548068442308608,20548089917538304,20548098508128256,20548064148324352,20547823629107200,20548124277014529,20548055561011200,20548012608847872,20548377680740353,20829328667836416,20829702327697409,20829740988956673,20829371616788480,20829217002749952,20829380206460928,20829350142083072,20829178343456768,20829182637047808,20829625024774145,20829375912607744,20829629318823937,20829603549741057,20829861245878273,20829728099663873,20829582072872961,20829212705882112,20829698034237441,20829530533527552,20829332961230848,20829324371165184,20829564894248960,20829487585558528,20829556299071488,20829191227703296,20829655092101121,20829539125035008,20829573484838912,20829457520197632,20829856952352769,20829779645890561,20829594962427905,20829354437246976,20829646499872769,20829620728233985,20829577779085312,20829607843004417,20829547715559424,20829650797068289,20829852657451009,20829616433070081,20829633613594625,20829637909807105,20829358731296768,20829599253725185,20829169756405760,20829461815492608,20829569189019648,20829612139151361,20829152576864256,20829341550641152,20829891306913793,20829715219480577,20829337257508864,20829363026657280,20829543419019264,20829663681839105,20829161161883648,20829586367774721,20829174046851072,20829186936799232,20829560598102016,20829642204184577,20829345847246848,20829693742612481,20829298605817856,20829367321100288,21110709155725314,21110966860120064,21110700565790722,21111014098403330,21110941083959298,21110713450692610,21110971155218432,21111009803436034,21110932494024706,21110953968861186,21111001213501442,21110722040627202,21110717745659906,21110979738664962,21110945378926594,21110975443697666,21110704860758018,21110726335594498,21110958263828482,21111026983305218,21110988328599554,21110696270823426,21110962565218304,21110928199057410,21111018393370626,21392480491732992,21673929692479490,21673878152871938,21673976937119746,21673951167315970,21673908217643010,21673895332741122,21673959757250562,21673667699474434,21673882447839234,21673676289409026,21673650525831168,21673671994441730,21673925397512194,21673903922675714,21673663404507138,21673938282414082,21673654814572546,21673646230929408,21673891037773826,21673659109539842,21955151265333250,21955378898599938,21955370308665346,21955164150235138,21955121200562178,21955142675398658,21955185625071618,21955181330104322,21955357423763458,21955400373436418,21955129790496770,21955451913043970,21955396078469122,21955391783501826,21955443323109378,21955146970365954,21955177035137026,21955383193567234,21955155560300546,21955189920038914,21955168445202434,21955194215006210,21955366013698050,21955426143240194,21955134085464066,21955353128796162,21955408963371010,21955172740169730,21955387488534530,21955434733174786,21955439028142082,21955125495529474,21955159855267842,21955413258338306,21955404668403714,21955138380431362,22236737910210560,22236931182624768,22236703551389696,22236939781275650,22236896831602690,22236716434194432,22236858176897026,22236750796161024,22237102983217153,22237115872509953,22237266190467073,22236742204653568,22236566111256576,22237090105655297,22236725025636352,22236926896373762,22236712141062144,22236862471864322,22236755090014208,22236557520601088,22236746500341760,22236905421537282,22236548930404352,22237068626165761,22236909716504578,22237077211250689,22236553227010048,22236707844784128,22237072917790721,22236536045436928,22236699254718464,22236733614850048,22236729320800256,22236720730800128,22518350334132224,22518101219868674,22518084046225408,22518303083331586,22518354629230592,22518376097775618,22518079751127040,22518333148102658,22518401867579394,22518320263200770,22518315968233474,22518363212873730,22518088334966786,22518096924901378,22518328853135362,22518384687710210,22518307378298882,22518092629934082,22799554718531586,22799790941732866,22799614848073730,22799597668204546,22799833891405826,22799846776307714,22799816711536642,22799863956176898,22799550423564290,22799782351798274,22799541833629698,22799859661209602,22799795236700162,22799537538662402,22799571898400770,22799808121602050,22799778056830978,22799606258139138,22799610553106434,22799829596438530,22799580488335362,22799868251144194,22799876841078786,22799851071275010,22799799531667458,22799619143041026,22799589078269954,22799567603433474,22799825301471234,22799563308466178,22799803826634754,22799546128596994,22799601963171842,22799533243695106,22799821006503938,22799559013498882,22799576193368066,22799593373237250,22799812416569346,22799855366242306,22799838186373122,22799584783302658,23081347529244672,23080986750484480,23081287399243776,23080952390549504,23081016816435200,23081652471136257,23081373298524160,23081012519567360,23081661059563521,23081261629177856,23080969570091008,23081257333882880,23081399067410433,23081377592770560,23081369002704896,23081656766038017,23081386181459969,23081330352586752,23081360411787264,23081394777030657,23081338938720256,23081098419503104,23081381886558209,23081364707934208,23081343232704512,23362491788951554,23362822501433346,23362762371891202,23362839681302530,23362487493984258,23362835386335234,23362848271237122,23362843976269826,23362813911498754,23362852566204418,23362573393330178,23362444544311298,23362818206466050,23362805321564162,23362732307120130,23362736602087426,23362427364442114,23362461724180482,23644280306073600,23925686559309824,23925828297293825,23925819702116353,23925811111591937,23925682264014848,23926085989695489,23925755277344768,23926081696169985,23925806816690177,23925441746567168,23925802522902528,23925394500222976,23925411680616448,23925785341919232,23926077401268225,23925789638066176,23925793932836864,23925523349635072,23925712329375744,23925823997542401,23925763868852224,23925437449699328,23925798228656128,23925377320681472,23925772459376640,23925768162836480,24207200184762370,24206916716920834,24206921011888130,24206968256528386,24206972551495682,24206985436397570,24206963961561090,24207251724369922,24206951076659202,24206942486724610,24206981141430274,24207174414958594,24206908126986242,24207221659598850,24207234544500738,24207152940122114,24207208774696962,24206976846462978,24206912421953538,24207204479729666,24207178709925890,24206989731364866,24207230249533442,24206994026332162,24207213069664258,24207187299860482,24207238839468034,24207170119991298,24206938191757314,24207243134435330,24207191594827778,24206925306855426,24207165825024002,24206955371626498,24207157235089410,24207183004893186,24207195889795074,24206933896790018,24206946781691906,24206929601822722,24206959666593794,24207225954566146,24488688050307074,24488421762334722,24488627920764930,24488726705012738,24488709525143554,24488657985536002,24488645106794496,24488653690568706,24488426057302018,24488700935208962,24488640805666818,24770175908184066,24769926800080898,24769931095048194,24770141548445698,24769879555440642,24770137253478402,24769922505113602,24769858080604162,24770115778641922,24770128663543810,24769939684982786,24770120073609218,24769896735309826,24770124368576514,24769888145375234,24769935390015490,24769875260473346,24770163023282178,24769905325244418,24770107188707330,24770158728314882,24769892440342530,24769862375571458,24770102893740034,24769866670538754,24770193088053250,24769870965506050,24769918210146306,24770180203151362,24770132958511106,24770154433347586,24770171613216770,24769909620211714,24770188793085954,24769901030277122,24769883850407938,24770184498118658,24770145843412994,24770201677987842,24770150138380290,24769943979950082,24769913915179010,25051590754828290,25051663769272322,25051659474305026,25051646589403138,25051333056790530,25051380301430786,25051599344762882,25051620819599362,25051612229664770,25051363121561602,25051607934697474,25051603639730178,25051350236659714,25051337351757826,25051414661169154,25051367416528898,25051595049795586,25051625114566658,25051668064239618,25051616524632066,25051676654174210,25051384596398082,25051577869926402,25051637999468546,25051406071234562,25051358826594306,25051582164893698,25051341646725122,25051633704501250,25051650884370434,25051397481299970,25051410366201858,25051629409533954,25051371711496194,25051655179337730,25051376006463490,25051393186332674,25051345941692418,25051401776267266,25051418956136450,25051354531627010,25051388891365378,25332850987302914,25333078620569602,25333052850765826,25333065735667714,25333125865209858,25333134455144450,25333057152090112,25332846692335618,25333112980307970,25333151635013634,25333070030635010,25333082915536898,25614618019954690,25614287307472898,25614244357799938,25614291602440194,25614648084725762,25614261537669122,25614635199823874,25614639494791170,25614532120608770,25614605135052802,25614622314921986,25614613724987394,25614643789758466,25614227177930754,25614536415576066,25614562185379842,25614652379693058,25614373206818818,25896084414988288,26177263031681026,26177245851811842,26177490664947714,26177525024686082,26177275916582914,26177563686797312,26177559384424450,26177254441746434,26177567981699072,26177267326648322,26177477780045826,26177271621615618,26177250146779138,26177550794489858,26177529319653378,26177537909587970,26177576564293634,26177258736713730,26177507844816898,26177494959915010,26177503549849602,26177482075013122,26458991408316418,26458974228447234,26458789544853506,26458759480082434,26458793839820802,26458780954918914,26458995703283714,26458772364984322,26459034357989378,26459008588185602,26458755185115138,26458965638512642,26459051537858562,26458729415311362,26458720825376770,26458969933479938,26458978523414530,26458952753610754,26459038652956674,26458738005245954,26459025768054786,26458785249886210,26458776659951618,26458716530409474,26459030063022082,26459012883152898,26458957048578050,26458733710278658,26458707940474882,26458750890147842,26459042947923970,26458987113349122,26458982818381826,26458999998251010,26458742300213250,26458725120344066,26458763775049730,26458768070017026,26458746595180546,26459004293218306,26459021473087490,26458712235442178,26740251636596738,26740247341629442,26740230161760258,26740444910125058,26740217276858370,26740496449732610,26740509334634498,26740212981891074,26740432025223170,26740513629601794,26740264521498626,26740526514503682,26740517924569090,26740466384961538,26740234456727554,26740243046662146,26740483564830722,26740191507054594,26740268816465922,26740505039667202,26740255931564034,26740187212087298,26740453500059650,26740208686923778,26740440615157762,26740427730255874,26740204391956482,26740238751694850,26740260226531330,26740225866792962,26740182917120002,26740500744699906,26740200096989186,26740457795026946,26740479269863426,26740487859798018,26740221571825666,26740449205092354,26740462089994242,26740474974896130,26740195802021890,26740470679928834,27021911299457026,27021602061811714,27021988608868354,27021636421550082,27022010083704834,27022018673639426,27022022968606722,27021937069260802,27022014378672130,27021992903835650,27022027263574018,27021662191353858,27021748090699778,27021619241680898,27021907004489730,27021980018933762,27021997198802946,27021666486321154,27303377688133634,27303476472381442,27303175824670722,27303407752904706,27303437817675778,27303459292512258,27303403457937410,27303171535929344,27303450702577666,27584698043924482,27584977216798722,27584861252681730,27584856957714434,27584968626864130,27584586374774786,27584552015036418,27584929972158466,27584569194905602,27584960036929538,27584942857060354,27584887022485506,27584616439545858,27584964331896834,27584612144578562,27584947152027650,27584972921831426,27584938562093058,27866108594094082,27866121478995970,27866164428668930,27866344817295362,27866327637426178,27866168723636226,27866147248799746,27866095709192194,27866413536772098,27866357702197250,27866366292131842,27866138658865154,27866151543767042,27866082824290306,27866331932393474,27866417831739394,27866370587099138,27866361997164546,27866383472001026,27866374882066434,27866130068930562,27866400651870210,27866100004159490,27866142953832450,27866387766968322,27866409241804802,27866379177033730,27866117184028674,27866426421673986,27866134363897858,27866340522328066,27866353407229954,27866125773963266,27866087119257602,27866349112262658,27866404946837506,27866396356902914,27866091414224898,27866155838734338,27866160133701634,27866104299126786,27866112889061378,28147922875187202,28147879925514242,28147811206037506,28147914285252610,28147519148261378,28147918580219906,28147562097934338,28147566392901634,28147806911070210,28147927170154498,28147897105383426,28147836975841282,28147888515448834,28147909990285314,28147892810416130,28147647997280258,28147536328130562,28147501968392194,28429320542945282,28429307658043394,28429058549940226,28429376377520130,28429281888239618,28429350607716354,28429045665038338,28429303363076098,28429363492618242,28429067139874818,28429071434842114,28429311953010690,28429062844907522,28429075729809410,28429294773141506,28429290478174210,28429329132879874,28429367787585538,28429359197650946,28429049960005634,28429324837912578,28429316247977986,28429054254972930,28429277593272322,28429337722814466,28710877126983680,28710859946000384,28710786933456896,28711156300251137,28710842766917632,28710864242147328,28710898601623553,28710838472933376,28710597953716224,28710868536918016,28710469104304128,28710486284697600,28710512053780480,28710894311899137,28710881420771329,28710872832737280,28710761163390976,28710756868096000,28710516350648320,28711152005349377,28710451924762624,28710885715673089,28710829885620224,28711160593776641,28710847063457792,28992309159133184,29273732589355010,29273702524583938,29273801308831746,29273706819551234,29273487783231488,29273496366153730,29273715409485826,29273500661121026,29273719704453122,29273784128962562,29273775539027970,29273492078133248,29273762654126082,29273728294387714,29555061535539200,29555426605727745,29555452377694209,29555422312267777,29555207571505154,29555057239261184,29555052945866752,29554906915078144,29555065828671488,29554915505733632,29555289175883778,29555048649195520,29555259111112706,29555254816145410,29555418020642817,29555211866472450,29555104484491264,29554898324881408,29555083009327104,29555074420113408,29555070125277184,29555091599130624,29554902621487104,29555439501377537,29555095894818816,29555246226210818,29555078715277312,29555087304687616,29554885439913984,29555100190638080,29555615584944129,29555276290981890,29555465266987009,29555280577101824,29836678248202242,29836450614935554,29836712607940610,29836665370050560,29836446319968258,29836725492842498,29836652478398466,29836751262646274,29836734082777090,29836682543169538,30118213352620034,30118136043208706,30118252007325698,30118234827456514,30118221942554626,30118239122423810,30117843985432578,30118131748241410,30118217647587330,30117861165301762,30117886935105538,30118247712358402,30117891230072834,30118204762685442,30118161813012482,30118243417391106,30117826805563394,30117972834451458,30399602432081922,30399675446525954,30399400575172608,30399662568243200,30399684036460546,30399632496852994,30399628201885698,30399701216329730,30681103179710466,30681159014285314,30681150424350722,30681107474677762,30681077409906690,30681176194154498,30962582458990594,30962633998598146,30962629701599232,30962586744455168,30962883104931841,30962887399768065,30962853039964161,30962621111861248,31244302237958145,31244267880906753,31243932869591040,31244465445208065,31244276465991681,31243735300177920,31244280772493313,31243907099525120,31244315127250945,31243898509459456,31243765365997568,31244448276283393,31243902806130688,31243911395803136,31243773957308416,31243924280377344,31244289362296833,31244285067395073,31243748185145344,31244272172531713,31243756775342080,31243937164951552,31243752481751040,31243928575541248,31243919985541120,31243945755082752,31243941459394560,31243915688935424,31243954344755200,31244495520661505,31243950050902016,31244130437365760,31525583950643200,31806981611913216,31807282265718785,31807071807275008,31807119054143489,31807144819949569,31807067510734848,31807123345440769,31807157705310209,31807174888783873,31806698146103296,31807084689817600,31807011683041280,31807153410539521,31807097576554496,31807179186634753,31807136230866945,31806736797597696,31807166295900161,31806693848121344,31807162001522689,31807170591588353,31807054625243136,31807385337593857,31807106164588545,31807093280735232,31806985907208192,31807381044068353,31807110459490305,31807131934720001,31807149116489729,31806835589185536,31806676668579840,31807471240151041,31806822697533440,31806887118372864,31807063216750592,31806882823012352,31807265081851905,31807101870800896,31807050337681408,31807127641456641,31806741094465536,31807376749166593,31806711028514816,31807140524785665,31807088985964544,31806685253599232,32088306260377600,32088327736262656,32088344915673088,32088160230309888,32088362095083520,32088173115277312,32088164524949504,32088190296129536,32088701396123649,32088886081683457,32088194589851648,32088336325935104,32088319143968768,32088323439591424,32088177411883008,32088374981033984,32088332029657088,32088890375340033,32088370685214720,32088774422691841,32088353505673216,32088203180376064,32088740053385217,32088357799723008,32088181705474048,32088675638640641,32088692808810497,32088301963968512,32088310554624000,32088555367497728,32088314850246656,32088727168090113,32088379274887168,32088366389526528,32088765832822785,32088563969622016,32088761537724417,32088688513581057,32088155936915456,32088349210509312,32088881785077761,32088533904654336,32088697102663681,32088340619067392,32088770127986689,32369832776433664,32370146320580609,32369785531334656,32369794120679424,32369819892383744,32369845661925376,32370215030095873,32370365352050689,32369811302645760,32370172079374337,32370150615613441,32369776940679168,32369807006367744,32370176372834305,32369798416302080,32369669566562304,32370163490291713,32369854251597824,32369828482383872,32370167785521153,32369781237088256,32369635207020544,32369849957744640,32369824187219968,32369678157086720,32369665272840192,32370361058394113,32369789826957312,32369815595778048,32370283759665153,32370356761788417,32369837071794176,32369652388593664,32370030344208384,32369648091987968,32369922982477824,32369673864151040,32370348173623297,32369656682184704,32369802712973312,32370202144800769,32369841366237184,32369630913626112,32369639501660160,32651522506686464,32651513916096512,32651810267725825,32651118778253312,32651578340671489,32651518210867200,32651552571588609,32651741556768769,32651574046621697,32651161727729664,32651565454917633,32651582635442177,32651543984275457,32651406542045184,32651526800932864,32651492440866816,32651410837340160,32651604117684225,32651599818915841,32651556864851969,32651488146882560,32651479555375104,32651247627665408,32651591226032129,32651801679298561,32651595521720321,32651496737406976,32651101598711808,32651509619949568,32651397959319552,32651535389622273,32651569750081537,32651805974200321,32651531094720513,32651135958646784,32651586931654657,32651436607406080,32651166024597504,32651561160998913,32651548275572737,32932980302938114,32932834274050050,32932829979082754,32932963123068930,32932615230717954,32932842863984642,32932598050848770,32932812799213570,32932619525685250,32932877223723010,32932976007970818,32932911583461378,32932585165946882,32932722604900354,32932726899867650,32932782734442498,32932756964638722,32932971713003522,32932851453919234,32932636705554434,32932808504246274,32932997482807298,32932761259606018,32932731194834946,32932623820652546,32932825684115458,32932769849540610,32932855748886530,32932576576012290,32932744079736834,32932778439475202,32932872928755714,32932735489802242,32932881518690306,32932799914311682,32932795619344386,32932589460914178,32932641000521730,32932787029409794,32932628115619842,32932748374704130,32932804209278978,32932602345816066,32932593755881474,32932739784769538,32932838569017346,32932847158951938,32932993187840002,32932984597905410,32933431274504194,32932791324377090,32932765554573314,32932774144507906,32932817094180866,32932752669671426,32932580870979586,32932988892872706,32932954533134338,32932606640783362,32932885813657602,32933001777774594,32932967418036226,32932610935750658,33214463867224064,33214644265615361,33214652846047233,33214584136138753,33214648550686721,33214386558140416,33214429507616768,33495908789059584,33777014396289026,33777173310078978,33777177605046274,33777181900013570,33777370874839040,33777151835242498,33777207669817346,33777027281190914,33777405238312962,33777297864130562,33777164720144386,33777169015111682,33777332223868930,33777379464839168,33777211964784642,33777216259751938,33777031576158210,33777400943345666,33777186194980866,33777327928901634,33777383763476482,33777022986223618,33777040166092802,33777156130209794,33777194784915458,33777199079882754,33777220554719234,33777357993672706,33777203374850050,33777044461060098,33777160425177090,33777224849686530,33777190489948162,33777229144653826,33777005806354434,33777053050994690,33777048756027394,33777010101321730,34058622518558722,34058888806531074,34058893101498370,34058493669539842,34058802907185154,34058811497119746,34058858741760002,34058871626661890,34058682636697600,34058863036727298,34058785727315970,34058845856858114,34058635403460610,34058476489670658,34058781432348674,34058497959788544,34058510849409026,34058536619212802,34058854446792706,34058485067284480,34058867331694594,34058884511563778,34058540914180098,34059064900976641,34058686932058112,34058807202152450,34058850151825410,34058901691432962,34058897396465666,34340376666177538,34339951464415234,34340372371210242,34340359486308354,34340329421537282,34340325126569986,34340363781275650,34340346601406466,34340097493303298,34340333716504578,34340256407093250,34340161917812738,34340157622845442,34339972939251714,34340277881929730,34340342306439170,34340338011471874,34340320831602690,34340011593957378,34340368076242946,34340282176897026,34340110378205186,34339968644284418,34340015888924674,34340260702060546,34339985824153602,34340286471864322,34339960054349826,34621731385638914,34621821579952130,34621426442960898,34621804400082946,34621752860475394,34621735680606210,34621490867470338,34621795810148354,34621843054788610,34621443622830082,34621636896358402,34621447917797378,34621761450409986,34621632601391106,34621800105115650,34621834464854018,34621757155442690,34621460802699266,34621435032895490,34621585356750850,34621812990017538,34621486572503042,34621808695050242,34621847349755906,34621572471848962,34621851644723202,34621838759821314,34621817284984834,34903227836989442,34903236418404352,34903283671564290,34903232131956738,34903502716076033,34903279376596994,34903270786662402,34903691694702593,34903313736335362,35184702813634562,35184758648209410,35184754353242114,35184711403569154,35184707108601858,35184745763307522,35184788712980482,35466259390791680,35466435484516353,35466431194791937,35748099445096449,35747652768563200,35747626994761730,36029127741865986,36029157810110464,36029101972062210,36310602718445570,36310576948641794,36592077698826240,36873372278325248,36873715876691969,36873286378389504,36873698697281537,36873651451592704,36873677222248449,36873681515511809,36873672926232577,36873685811658753,36873226249371648,36873930624860161,36873707286102017,36873621388066816,36873243428913152,36873934918385665,36873531192705024,36873260609306624,36873711582314497,36873737359196161,36873668634935297,36873561258065920,36873728764608513,36873638566756352,36873647157346304,36873694400741377,36873660040282113,36873720172380161,36873702991331329,36873724469575681,36873690105577473,36873926329958401,36873290675257344,36873535488000000,36873612797542400,36873617091526656,36873634270609408,36873604206034944,36873655745380353,36873642861527040,37155113551724544,37436519796310018,37436528386244610,37436292163043330,37436283573108738,37436274983174146,37436249213370370,37436232033501186,37436549861081090,37436567040950274,37436300752977922,37436494026506242,37436476846637058,37436532681211906,37436266393239554,37436554156048386,37436270688206850,37436279278141442,37436502616440834,37436511206375426,37436575630884866,37436253508337666,37436313637879810,37436257803304962,37436489731538946,37436262098272258,37436545566113794,37436309342912514,37436240623435778,37436506911408130,37436244918403074,37436481141604354,37436498321473538,37436515501342722,37436305047945218,37436562745982978,37436558451015682,37436296458010626,37436524091277314,37436287868076034,37436236328468482,37436317932847106,37436536976179202,37718123627413505,37717668359045120,37718132216233985,37718351260090369,37718089275015169,37717960418131968,37718029136166912,37717651179503616,37718080675512321,37718067791659008,37718359848517633,37718033440505856,37717797208457216,37718106445643777,37718355554992129,37718136512446465,37718115035709441,37718145102512129,37717685539438592,37718153699655681,37718046318198784,37718119330873345,37718072087478272,37717715605389312,37718037727674368,37718076381724672,37717956122836992,37718140806823937,37718093565067265,37718059200741376,37718127921463297,37718102152380417,37718042021658624,37717711308521472,37718063496888320,37718110741790721,37718149399707649,37718084970414081,37717986188197888,37718097856364545,37999456864763906,37999246411366402,37999237821431810,37999203461693442,37999439684894722,37999469749665794,37999216346595330,37999525584240642,37999194871758850,37999499814436866,37999212051628034,37999233526464514,37999452569796610,37999229231497218,37999224936529922,37999495519469570,37999508404371458,37999474044633090,37999263591235586,37999207756660738,37999267886202882,37999482634567682,37999516994306050,37999465454698498,37999443979862018,37999199166726146,37999504109404162,37999448274829314,37999242116399106,37999220641562626,37999486929534978,37999461159731202,37999181986856962,37999255001300994,37999426799992834,37999186281824258,37999250706333698,37999259296268290,37999512699338754,37999190576791554,37999478339600386,37999431094960130,38281013458829312,38562389638840322,38562419703611394,38562381048905730,38562432588513282,38562411113676802,38562475538186242,38562436883480578,38562462653284354,38562196365312002,38562187775377410,38562449768382466,38562466948251650,38562402523742210,38562144825704450,38562213545181186,38562174890475522,38562428293545986,38562183480410114,38562415408644098,38562217840148482,38562149120671746,38562204955246594,38562458358317058,38562376753938434,38562166300540930,38562200660279298,38562179185442818,38562393933807618,38562170595508226,38562423998578690,38562209250213890,38562162005573634,38562157710606338,38562192070344706,38562153415639042,38562406818709506,38844289816395777,38843946225041408,38843757240778752,38844092252094465,38843731470712832,38844014942552065,38844036419289089,38843744356728832,38843929043009536,38843559671365632,38844100837179393,38843984877256705,38844062191321089,38844027828305921,38844053601583105,38843740060123136,38844045009354753,38843727177318400,38843886095040512,38843735766990848,38843997763207169,38843774422089728,38844126609145857,38843576852938752,38843860324974592,38843941928501248,38843967698501632,38844251166932993,38844023534256129,38843585446281216,38843976288567296,38844139498438657,38844002059223041,38843611215364096,38843778715942912,38843963403730944,38843954808553472,38843748651565056,38843761536139264,38843581146529792,38843697115299840,38843959107584000,38843765830582272,38844049306550273,38844040713666561,38843980582354945,38844113728962561,38843971994320896,38844096543719425,38843856029679616,38843589737185280,38843615512231936,38844255461834753,38843551086346240,38844178160680961,38843722880647168,38843568265887744,38844259755360257,38844006352486401,38843752946728960,38844032123076609,38843937634516992,38844010648633345,38843572556333056,38844019237715969,38843993471909889,38843770126270464,39125408324321280,39406827466588160,39406883301097472,39688096285261824,39688117760032768,39688332508135424,39688053323268098,39688049028300802,39688109170491392,39688057618235394,39688044733333506,39688280956534786,39688323906207746,39688113465262080,39688087695196160,39688074798104578,39688311021305858,39688349676011522,39688336791109634,39688358265946114,39688070503137282,39688306726338562,39688289546469378,39688104875458560,39688482832711681,39688302431371266,39688276661567490,39688066208169986,39688293841436674,39688079105589248,39688375445815298,39688319611240450,39688362560913410,39688083400163328,39688315316273154,39688366855880706,39688100580294656,39688091990032384,39688061913202690,39688328201175042,39969824654819330,39969781705146370,39969751640375298,39969850424623106,39969777410179074,39969833244753922,40251252387741698,40251308222316546,40251256682708994,40251325402185730,40251299632381954,40532461075628032,40532778903273472,40532847623471105,40532465372495872,40532834737520641,40532826148831232,40532813263994880,40532830442618881,40532851928334337,40533109615624193,40532796085305344,40533105322098689,40532418126151680,40532435306545152,40532787494780928,40532710185238528,40532546975563776,40532817558765568,40532705889943552,40532735955304448,40533101027196929,40532400946610176,40532791788765184,40532808967847936,40532843328045057,40532821854584832,40813893102862336,40814266765475840,40813910283255808,40814253879984128,40814584592334849,40814296831295488,40814292535476224,40814326905110529,40814185161949184,40814322600181761,40814288240705536,40814283944558592,40814576003907585,40814301125541888,40813940349206528,40813936052338688,40814180866654208,40814262471491584,40813875923320832,40814271062016000,40814305419329537,40814580298809345,40814318304755713,40814309714231297,40814210932015104,40814021952274432,41095797576892417,41095660138659840,41095741742186496,41095685908725760,41095728856694784,41096055275520001,41095411029049344,41095415325917184,41095801881886721,41095793281466369,41095767512186880,41095780396040193,41095784690941953,41095776102252544,41096050980618241,41095368079572992,41095758921269248,41095655843364864,41095746038726656,41095385259966464,41095771808006144,41095350900031488,41095496928985088,41095737448202240,41096059569045505,41095763217416192,41377001967714304,41376855936925696,41377367042490369,41377023441960960,41377032031174656,41376851643334656,41377019147124736,41377564606791681,41377388519358465,41377014850519040,41376834461761536,41377371334115329,41377401399541761,41377414288834561,41377053506338816,41377049212485632,41376847346728960,41377027737124864,41377375627575297,41377044916666368,41377452952322049,41377006261108736,41377229598949376,41377040620978176,41377010557386752,41376864527581184,41376997671043072,41377036326535168,41658360982470656,41659009522466817,41658446882406400,41658747530313729,41658335213387776,41658708874690560,41658730349461505,41658610092081152,41658687401623552,41658691695607808,41658605796786176,41658760425373697,41659005228941313,41658713170837504,41658751826329601,41658365279338496,41658734644363265,41658743234887681,41658726055673856,41658717465608192,41659000934039553,41658318032994304,41658721761427456,41658635862147072,41658756119592961,41658695992147968,41658300853452800,41658678810116096,41940205326172161,41940209621073921,41939810190098432,41940085068791808,41939835959181312,41940235402149889,41939921859117056,41940226803040257,41940484499177473,41940196738138112,41940166672318464,41940201032384512,41940231096303617,41940153786826752,41940183851401216,41940218211598337,41940480205651969,41940192442318848,41939793009704960,41939775830163456,41940188147548160,41940170968858624,41940475910750209,41940080773496832,41940110838857728,41940222507024385,41939840256049152,41940162378334208,42221663127666690,42221628767928322,42221650242764802,42221585818255362,42221620177993730,42221581523288066,42221633062895618,42503172460445697,42502742963126272,42503133804822528,42503150985805824,42503425864171521,42503181049724929,42502871812538368,42503430159073281,42503030726918144,42503189650604033,42502760143519744,42503159574495233,42503112331755520,42503176756461569,42503434452598785,42503142395740160,42502725783584768,42503168165019649,42502790209470464,42502785912602624,42503146691559424,42503120922279936,42503035022213120,42503116625739776,42503138100969472,42503155279593473,42503060792279040,42503103740248064,42503185345871873,42784591602450432,42784578716958720,42784509998923776,42784346789249024,42784647437156353,42784265186181120,42784595898990592,42784505703628800,42784587308466176,42784664627380225,42784905135783937,42784608781533184,42784651733172225,42784260889313280,42784643141730305,42784613077680128,42784235120230400,42784656026435585,42784630256304129,42784909429309441,42784200760295424,42784535768989696,42784617372450816,42784217939836928,42784621668270080,42784660322582529,42784634551205889,42784625962516480,42784900840882177,43066062285176832,43066100939227136,43066053693669376,43066070875701248,43066109527916545,43066092349161472,43066375817592833,43066380112494593,43066135299293185,43066096644980736,43065710096941056,43066122413867009,43065735866023936,43066139604156417,43065740162891776,43065980680339456,43066131003146241,43066010745700352,43065821765959680,43066126709882881,43066083758243840,43065675737006080,43066105233014785,43066118118440961,43066384406020097,43066088054390784,43065692916547584,43066066579161088,43065984975634432,43347597390577665,43347593095151617,43347563031101440,43347558734954496,43347545852411904,43347575915937792,43347528670380032,43347185073651712,43347455657050112,43347859382730753,43347567325872128,43347571621691392,43347614580932609,43347855089205249,43347296742670336,43347485722411008,43347610276003841,43347150713716736,43347584504627201,43347850794303489,43347459952345088,43347601686593537,43347210842734592,43347167893258240,43347215139602432,43347580209725441,43347541555871744,43347537261887488,43347605979856897,43628754536235010,43629016529240066,43628952104730626,43629007939305474,43628982169501698,43629012234272770,43628728766431234,43628926334926850,43628702996627458,43628986464468994,43628698701660162,43628973579567106,43628750241267714,43628733061398530,43628943514796034,43629025119174658,43628741651333122,43628715881529346,43628711586562050,43628707291594754,43628939219828738,43628737356365826,43628999349370882,43628724471463938,43628758831202306,43628745946300418,43628977874534402,43628930629894146,43628694406692866,43628960694665218,43628956399697922,43628969284599810,43628763126169602,43628720176496642,43628964989632514,43628767421136898,43910504389345280,43910289640914944,43910590294458369,43910160796155904,43910800747724801,43910246696091648,43910598887342081,43910521575112704,43910117846679552,43910805042626561,43910324002881536,43910839397187585,43910135027073024,43910646124511233,43910281051504640,43910272461438976,43910676189937665,43910594590146561,43910727743176705,43910435675832320,43910560229425153,43910315411374080,43910478623801344,43910122137124864,43910512984522752,43910564523343873,43910126433730560,43910165093023744,43910298232356864,43910663309754369,43910508688375808,43910409905766400,43910525869359104,43910581703868417,43910689079230465,43910319707062272,43910555933278209,43910491509293056,43910543052701697,43910306821570560,43910577409097729,43910276758110208,43910130727321600,43910328296734720,43910650417971201,43910586000080897,43910293937520640,43910551640014849,43910534458048513,43910611772112897,43910109252157440,43910487215308800,43910405610471424,43910495805833216,43910547343998977,43910568818507777,43910139317977088,43910809336152065,43910285347782656,43910302527520768,43910603182374913,43910641832886273,43910530163146753,43910573115047937,43910100667138048,43910517279293440,43910311116931072,44191983665086464,44191953600512000,44192078165901313,44192073864052737,44192026616725505,44191880587182080,44192018029412353,44192000846069760,44191635772866560,44192022320709633,44191610003783680,44192035206135809,44192039500054529,44191962192019456,44192009434759169,44192030909988865,44192065271169025,44191996551823360,44191575643848704,44192280019337217,44192005139857409,44191640069734400,44191884882477056,44192275724435457,44192052385808385,44191992256004096,44192056680579073,44192043795218433,44191910652542976,44192284312862721,44192069566857217,44191970782543872,44191966486003712,44192060976791553,44192048091758593,44191592823390208,44191987961233408,44191721672802304,44473145106563074,44473140811595778,44473136516628482,44473407099568130,44473123631726594,44473411394535426,44473389919698946,44473175171334146,44473183761268738,44473364149895170,44473385624731650,44473132221661186,44473192351203330,44473424279437314,44473188056236034,44473441459306498,44473127926693890,44473437164339202,44473450049241090,44473398509633538,44473166581399554,44473170876366850,44473402804600834,44473368444862466,44473432869371906,44473179466301442,44473149401530370,44473394214666242,44473157991464962,44473162286432258,44473355559960578,44473153696497666,44473381329764354,44473351264993282,44473377034797058,44473119336759298,44754993748639745,44754942209425408,44754998045179905,44754559957204992,44754967978704897,44754912145440768,44754916439425024,44754980863410177,44754976570146817,44754946505244672,44755002349584385,44754920735965184,44754985159557121,44754542776811520,44754989453475841,44755234266284033,44755225677856769,44754585726287872,44754933618507776,44754950799491072,44754834835898368,44754525597270016,44754959388180481,44754937914654720,44754590023155712,44754671626223616,44754860605964288,44754903553933312,44754830540603392,44755229972758529,44754972274130945,44754955093278721,45036451546857473,45036468725350401,45036473031393281,45036434364891137,45036391416135680,45036421481955328,45036709242994689,45036335582674944,45036455840120833,45036412891365376,45036034933915648,45036000573980672,45036064999866368,45036704949469185,45036017753522176,45036395712675840,45036408595218432,45036417186136064,45036309812609024,45036146602934272,45036460136267777,45036305517314048,45036378530643968,45036700654567425,45036060702998528,45036447250841601,45036464430186497,45036425776201728,45036442955415553,45036387122151424,45036430069989377,45317514211098626,45317690304757762,45317668829921282,45317630175215618,45317887873253378,45317703189659650,45317488441294850,45317647355084802,45317801973907458,45317677419855874,45317638765150210,45317634470182914,45317518506065922,45317655945019394,45317527096000514,45317879283318786,45317660239986690,45317698894692354,45317681714823170,45317874988351490,45317505621164034,45317501326196738,45317844923580418,45317857808482306,45317497031229442,45317673124888578,45317643060117506,45317651650052098,45317810563842050,45317664534953986,45317686009790466,45317853513515010,45317479851360258,45317625880248322,45317484146327554,45317694599725058,45599371435376640,45599285536096256,45599405805010945,45599397204262913,45599096556355584,45598984887336960,45598950527401984,45599337075572736,45599392908836865,45599401500278785,45599328484065280,45599010656419840,45599345666097152,45599255470735360,45599259766030336,45599650607988737,45599380023410689,45599358548639744,45599384318312449,45599654902890497,45599367139557376,45599341369556992,45599659196416001,45598967706943488,45599014953287680,45599375729623040,45599362844786688,45880459864047616,45880425504112640,45880485633130496,45880876476989441,45880820642807808,45880842116268032,45880833525350400,45880734742740992,45880730447446016,45881129879601153,45880812052283392,45880846412087296,45880850706333696,45880867885547521,45880855000121345,45880489929998336,45880816346267648,45880803460775936,45880872180973569,45881134173126657,45880760512806912,45881125584699393,45880571533066240,45880880781787137,45880859295023105,45880837821497344,45880442683654144,46162321388797952,46162046509776896,46162334271733761,46162325683044352,46162312798208000,46162287028994048,46162317092978688,46161960609841152,46162329976832001,46162342862258177,46161917660364800,46162205424156672,46162235489517568,46161964906708992,46162308502061056,46162385823334401,46162368632193025,46162355746963457,46162364337029121,46161934840758272,46162609149837313,46162295619518464,46161900480823296,46162209719451648,46162377222782977,46162291322978304,46162600561410049,46162381517553665,46162278437486592,46162351453700097,46162604856311809,46162347157684225,46162372928733185,46162360043110401,46443762001248258,46443465648504834,46443487123341314,46443701871706114,46443706166673410,46443478533406722,46443727641509890,46443688986804226,46443495713275906,46443766296215554,46443457058570242,46443474238439426,46443749116346370,46443469943472130,46443710461640706,46443757706280962,46443452763602946,46443448468635650,46443482828374018,46443491418308610,46443500008243202,46443461353537538,46443512893145090,46443774886150146,46443504303210498,46443676101902338,46443508598177794,46443680396869634,46443731936477186,46443723346542594,46443719051575298,46443517188112386,46443444173668354,46443736231444482,46443714756608002,46443693281771522,46725073778311170,46725026533670914,46725017943736322,46725262756872194,46725228397133826,46725005058834434,46725039418572802,46725056598441986,46724854734979074,46725043713540098,46725013648769026,46724859029946370,46725219807199234,46724893389684738,46724871914848258,46725022238703618,46725060893409282,46725232692101122,46724901979619330,46725052303474690,46724880504782850,46724889094717442,46725176857526274,46725009353801730,46725000763867138,46725035123605506,46724876209815554,46725078073278466,46725249871970306,46724863324913666,46725030828638210,46725185447460866,46725254166937602,46725065188376578,46725048008507394,46725069483343874,47006776383832065,47006789267161089,47006660419649536,47006703367618560,47006733432193024,47006793573662721,47006759201865729,47006720549650432,47007029786443777,47006342590496768,47006772087816193,47007025491542017,47006630354288640,47006359770890240,47006784973242369,47006634649583616,47006325410955264,47006750613176320,47006767792390145,47006711959126016,47007034079969281,47006780677095425,47006716253110272,47006389836840960,47006471439908864,47006737728339968,47006746318929920,47006754906963969,47006385539973120,47006742023110656,47288234178576385,47288195526361088,47287817567207424,47288191229820928,47288229883674625,47288208408903680,47288259949953025,47287864813551616,47288216999821312,47287834747600896,47287946416619520,47288504763154433,47287800387665920,47288268550438913,47288105330999296,47288509056679937,47288221295640576,47288109626294272,47288135396360192,47288500468252673,47287860516683776,47288186935836672,47288251360542721,47288242769100801,47288178344329216,47288247064526849,47288225589886976,47288212705050624,47288264243871745,47288255653806081,47569610375888898,47569653325561858,47569657620529154,47569606080921602,47569644735627266,47569687685300226,47569674800398338,47851218492456961,47851085349781504,47851179837095937,47851059579715584,47850896370040832,47850810470105088,47851175543308288,47851158362324992,47851450421673985,47851222788997121,47851166953242624,47851227083046913,47851141183242240,47851201313964033,47851171249061888,47851128297750528,47851192722522113,47850814766972928,47851209903374337,47851145479782400,47851205607227393,47851055284420608,47851454716575745,47851459010101249,47851136889257984,47851231388827649,47851197017948161,47850750341087232,47851214197293057,47850784701022208,47851162658471936,47850767520628736,47851184131997697,48132603274461184,48132611865968640,48132667699232769,48132650520018944,48132654813806593,48132242497339392,48132530261131264,48132633339035648,48132933986811905,48132710650740737,48132560326492160,48132925398384641,48132371346751488,48132641929953280,48132616159952896,48132693469167617,48132702059757569,48132671994658817,48132659108708353,48132289743683584,48132285446815744,48132534556426240,48132225317797888,48132929693286401,48132706354528257,48132714955538433,48132676290674689,48132689174003713,48132646225772544,48132697765707777,48132680583938049,48132684880084993,48132259677732864,48132637635182592,48132620456493056,48414121202483200,48414095433203712,48414086842679296,48414078251171840,48414408963522561,48414091136663552,48414108315746304,48414009533136896,48414194217517057,48414404669997057,48414198514712577,48414159856795649,48414172742418433,48414181331238913,48414146971369473,48414164150714369,48414125496729600,48413764720394240,48414185627451393,48413760423526400,48414151267385345,48414202809745409,48414035303202816,48413700294508544,48414400375095297,48414155560648705,48414168445878273,48414142680072193,48414211407151105,48413717474050048,48414112611893248,48413734654443520,48413846323462144,48414116906663936,48414189921828865,48414129790517249,48414177036468225,48414005237841920,48414134085419009,48695553234370560,48695390015455232,48695810932539393,48695213922058240,48695334180552704,48695201037811712,48695398606962688,48695226806304768,48695385721012224,48695699264569345,48695368541601792,48695806643077121,48695557535039488,48695914001268737,48695544644632576,48695188150878208,48695909707612161,48695776572735489,48695381425651712,48695725022052353,48695351362191360,48695578993426432,48695205331402752,48695355655585792,48695347065520128,48695394311143424,48695510277226496,48695338476175360,48695183856238592,48695325589897216,48695364244996096,48695716434739201,48695763679313921,48695359951863808,48695377131601920,48695372836438016,48695402900815872,48695342769897472,48695905411006465,48695196741206016,48695720728592385,48695712139509761,48695750794018817,48695329886306304,48695179562844160,48695789458751489,48695793753915393,48695218215780352,48695785168175105,48977032508211202,48976980968603650,48977028211081216,48977019621343232,48977285914886145,49258494603755520,49258451650412546,49258503193624576,49258455945379842,49258507484987394,49540094124359681,49540300281937921,49539986749521920,49539634561286144,49539909439979520,49540072649261057,49540098421555201,49540008222588928,49539991043506176,49539660330369024,49540085534294017,49539608786370560,49540046878212097,49539617380892672,49539935220793344,49540042586914817,49540064057556993,49540205803798529,49539810651144192,49540059763638273,49540394772922369,49539995340046336,49539664627236864,49540051174227969,49540188614623233,49540025403572224,49539746230304768,49540089828671489,49540308870365185,49540081238081537,49540021109325824,49540029697359873,49539978158014464,49539905144684544,49540055467491329,49539621678874624,49540012518735872,49540076943310849,49539759127396352,49540033992261633,49539973875630080,49540102724714497,49539600201351168,49540016813506560,49540304576839681,49539806355783680,49540068352720897,49821457438277634,49821405898670082,50102558739791872,50102760604565504,50102588805611520,50102769194696704,50102747719991296,50102730539139072,50103099905605633,50103271715897345,50102597396922368,50103125677572097,50102953876979712,50102571624759296,50102773490515968,50102743425155072,50103108512841729,50102726245744640,50102575921364992,50102739128549376,50103112801910785,50103091320520705,50102580214956032,50102756309204992,50103138566864897,50102850806349826,50102734835417088,50102777784369152,50102764899008512,50102721949073408,50103095612145665,50102752015155200,50103288884822017,50384596374650881,50384592079814657,50384424566915074,50384403086966784,50384622130036737,50384355856547840,50384360137490432,50384437446574080,50384626425397249,50384617849421825,50384789648048129,50665689090490370,50665710565326850,50665701975392258,50665727745196034,50665508701863938,50665800759640066,50665538766635010,50665719155261442,50665680500555778,50665525881733122,50665521586765826,50665723450228738,50665706270359554,50665693385457666,50665714860294146,50665530176700418,50665903838855170,50665671910621186,50665547356569602,50665676205588482,50665684795523074,50665697680424962,50947275745329152,51228621863976962,51228669108617218,51228475835088898,51228673403584514,51228626158944258,51228458655219714,51228643338813442,51228639043846146,51228497309925378,51228853792210946,51228656223715330,51228664813649922,51228647633780738,51228750712995842,51228488719990786,51228634748878850,51228677698551810,51228471540121602,51228480130056194,51228651928748034,51228660518682626,51228630453911554,51510131201998850,51510096842260482,51510139791933442,51510101137227778,51509929338535938,51510088252325890,51509967993241602,51510255756050434,51510083957358594,51510307295657986,51510251461083138,51509963698274306,51509933633503234,51509976583176194,51509950813372418,51510152676835330,51510148381868034,51510337360429058,51509937928470530,51510135496966146,51510122612064258,51510324475527170,51510109727162370,51510075367424002,51510294410756098,51510079662391298,51510260051017730,51510118317096962,51510126907031554,51509946518405122,51510092547293186,51509955108339714,51510114022129666,51510328770494466,51510144086900738,51510303000690690,51510105432195074,51791825217257472,51791709253664768,51791704958369792,51791829511045121,51791902539120641,51791773690167296,51791833805946881,51791795153731584,51791876756996097,51792104390524929,51791808036274176,51791790857191424,51792108684050433,51791846691897345,51791881051766785,51791889642356737,51791460144054272,51791735035265024,51791872462946305,51791863871242241,51791855281176577,51791786563207168,51791400015036416,51791868166406145,51791464440922112,51791842400600065,51791558941671424,51791850987913217,51791820923011072,51791417194577920,51791816627191808,51791546043990016,51791812332421120,51791434374971392,51791898235240449,51791777971699712,51792100095623169,51791885347979265,51791893938044929,51791859577323521,52073210005422082,52073287314833410,52073291609800706,52073021026861058,52073252955095042,52072892177842178,52073265839996930,52073270134964226,52073480595177473,52072939422482434,52073669563318273,52073656688902145,52072896469270528,52073085441540096,52072935127515138,52072909357711362,52073300199735298,52073283019866114,52073261545029634,52073295904768002,52073184235618306,52073463405019137,52072883576766464,52072874997972994,52073179940651010,52073081146179584,52354723643785216,52636009634856962,52636013929824258,52636151368777730,52635846426099714,52636155663745026,52636005339889666,52635983865053186,52636026814726146,52636052584529922,52636121304006658,52635833541197826,52636224383221762,52636001044922370,52635876490870786,52636202908385282,52636022519758850,52636228678189058,52636031109693442,52636207203352578,52636194318450690,52635829246230530,52635850721067010,52636035404660738,52635979570085890,52635837836165122,52635996749955074,52635872195903490,52635867900936194,52636181433548802,52635988160020482,52635992454987778,52636043994595330,52636018224791554,52635855016034306,52636039699628034,52635975275118594,52635863605968898,52636048289562626,52917334278668290,52917725120692226,52917299918929922,52917673597272064,52917690760953858,52917445947817986,52917604861607938,52917677876051970,52917707940823042,52917609156575234,52917364343439362,52917720825724930,52917317098799106,52917360048472066,52917712235790338,52917634926379010,52917695055921154,52917716530757634,52917686465986562,53199157163982848,53480576306249728,53480632140759040,53762107111571458,53762051283025920,54043380224229378,54043388814163970,54043238490308610,54043251375210498,54043371634294786,54043556317888514,54043526253117442,54043212720504834,54043410289000450,54043208425537538,54043358749392898,54043354454425602,54043603562528770,54043393109131266,54043384519196674,54043569202790402,54043367339327490,54043242785275906,54043530548084738,54043363044360194,54043496188346370,54043229900374018,54043423173902338,54043350159458306,54043577792724994,54043582087692290,54043599267561474,54043221310439426,54043418878935042,54043247080243202,54043414583967746,54043204130570242,54043225605406722,54043397404098562,54043427468869634,54043375929262082,54043401699065858,54043405994033154,54325001230811138,54325009811439616,54325057065385986,54325267524616193,54325276114616321,54325044178845696,54325310466752513,54325087120523264,54325052776120320,54325271803985921,54325306179256321,54606532041834498,54606476207259650,54887951184297986,54888007018872834,55169258662920194,55169284432723970,55169396101873666,55169138403835906,55169305907560450,55169262957887490,55169151288737794,55169146993770498,55169310202527746,55169288727691266,55169323087429634,55169129813901314,55169267252854786,55169104044097538,55169142698803202,55169108339064834,55169297317625858,55169121223966722,55169318792462338,55169275842789378,55169327382396930,55169271547822082,55169301612593154,55169125518934018,55169250072985602,55169503476056066,55169314497495042,55169254367952898,55169280137756674,55169112634032130,55169293022658562,55451171710828545,55450974142660608,55450909718282240,55451102991548417,55451167425757185,55450987027365888,55451107286843393,55450952667758592,55451176006189057,55732247271112706,55732079767388162,55732273040916482,55732225796276226,55732255861047298,55732242976145410,55732234386210818,55732088357322754,55732230091243522,55732264450981890,55732238681178114,55732904401108994,55732277335883778,55732101242224642,55732092652290050,55732212911374338,55732204321439746,55732268745949186,55732075472420866,55732453429542914,55732062587518978,55732053997584386,55732251566080002,55732096947257346,55732260156014594,55732208616407042,55732200026472450,55732221501308930,55732058292551682,55732071177453570,55732217206341634,56013700771020802,56013705065988098,56013765195530242,56013567627034626,56013541857230850,56013713655922690,56013756605595650,56014353608212481,56013928404287490,56013748015661058,56013833915006978,56013563332067330,56013717950889986,56013524677361666,56013687886118914,56013782375399426,56013537562263554,56013670706249730,56013915519385602,56013919814352898,56013936994222082,56013743720693762,56013859684810754,56013760900562946,56013696476053506,56013589101871106,56013829620039682,56013692181086210,56013790965334018,56013533267296258,56013550447165442,56013571922001922,56013528972328962,56013932699254786,56013773785464834,56013795260301314,56013778080432130,56013576216969218,56013675001217026,56013722245857282,56013949879123970,56013786670366722,56013559037100034,56013803850235906,56013726540824578,56013679296184322,56013683591151618,56013924109320194,56013799555268610,56013821030105090,56013911224418306,56013554742132738,56013752310628354,56013902634483714,56013730835791874,56013739425726466,56013735130759170,56013945584156674,56013546152198146,56013709360955394,56013584806903810,56013825325072386,56013941289189378,56295300300210178,56295326070013954,56295399084457986,56576508979052544,56576861167288320,56576929885257729,56576534748135424,56576972839321601,56576844000264192,56576869757812736,56576968542126081,56576895527092224,56576852575780864,56576934181404673,56577118878498817,56576620648071168,56576942770487297,56576951361077249,56576899821338624,56576491798659072,56577178994606081,56576938475323393,56576908410028033,56577200482942977,56576959952060417,56576783857745920,56577299266928641,56576917004681217,56576886936502272,56576770979725312,56577217662353409,56576796755689472,56577221957648385,56577114583400449,56577183288131585,56576947067027457,56576891231272960,56576882640355328,56576977138089985,56576925591994369,56576955655847937,56576904115126273,56576809627811840,56576921295978497,56577174699704321,56576964246437889,56576779562450944,56576865461272576,56576474619117568,56576539045003264,56858276014915586,56858349029359618,57139750991560706,57139781057118208,57139824006004738,57421298982649858,57421225968205826,57702546330681346,57702589280354306,57702537740746754,57702572100485122,57702567805517826,57702383121924098,57702417481662466,57702700949504002,57702731014275074,57702426071597058,57702743899176962,57702563510550530,57702559215583234,57702413186695170,57702404596760578,57702400301793282,57702576395452418,57702593575321602,57702580690419714,57702597870288898,57702602165256194,57702554920615938,57702550625648642,57702533445779458,57702378826956802,57702752489111554,57702524855844866,57702421776629762,57702396006825986,57702756784078850,57702584985387010,57702542035714050,57702529150812162,57702705244471298,57702773963948034,57702778258915330,57702670884732930,57702387416891394,57984266121838594,57984227467132930,57983849510010882,57983909639553026,57984270416805890,57984231762100226,57984184517459970,57983866689880066,57983883869749250,57984257531904002,57983913934520322,57984261826871298,57984154452688898,57984055668441090,57984244647002114,57984240352034818,57984274711773186,57984236057067522,57983995538898946,57984180222492674,57983858099945474,57984218877198338,57984059963408386,57984158747656194,57984008423800834,57983870984847362,57984223172165634,57984175927525378,58265693853712386,58265650904039426,58265702443646978,58265706738614274,58265655199006722,58265736803385346,58547211780161538,58547125880815618,58547177420423170,58547130175782914,58547181715390466,58547168830488578,58828575085232130,58828600864800768,58829051836301313,59110050071773184,59391632411197440,59391808516390913,59391525038522370,59673197580976129,59672733722869760,59672845391888384,59673146039795713,59673077319598080,59673141744369665,59673158925221889,59673408031948801,59673176104894465,59673167514304513,59673085911105536,59672759491952640,59673133153845249,59673094501629952,59672763788820480,59673111680319488,59673115975090176,59673163219140609,59673008601563136,59673154629074945,59673034371629056,59673193285943297,59673180399665153,59673004306268160,59673188990255105,59673120270909440,59672716542476288,59673184695877633,59673128858943489,59673124565155840,59673150335811585,59673107384172544,59672699362934784,59673399443521537,59673090205089792,59673403738423297,59673171810844673,59673214773690369,59954599556153344,60236022993321984,60235975743176704,60517450706518018,60517244548087810,60517455001485314,60517480771289090,60517257432989698,60517235958153218,60517253138022402,60517459296452610,60517227368218626,60517201598414850,60517180123578370,60517261727956994,60517223073251330,60517442116583426,60517197303447554,60517510836060162,60517240253120514,60517214483316738,60517467886387202,60517497951158274,60517231663185922,60517502246125570,60517485066256386,60517472181354498,60517193008480258,60517188713512962,60517476476321794,60517515131027458,60517506541092866,60517424936714242,60517493656190978,60517266022924290,60517205893382146,60517184418545666,60517218778284034,60517429231681538,60517446411550722,60517463591419906,60517248843055106,60517523720962050,60517437821616130,60517210188349442,60798981536743424,60798925702234112,61080392069873666,61080164436606978,61080456494383106,61080413544710146,61080138666803202,61080160141639682,61080194501378050,61080207386279938,61080374890004482,61080396364840962,61080215976214530,61080430724579330,61080198796345346,61080387774906370,61080460789350402,61080185911443458,61080130076868610,61080173026541570,61080379184971778,61080447904448514,61080404954775554,61080465084317698,61080147256737794,61080211681247234,61080177321508866,61080400659808258,61080134371835906,61080417839677442,61080473674252290,61080443609481218,61080435019546626,61080426429612034,61080190206410754,61080168731574274,61080155846672386,61080422134644738,61080203091312642,61080181616476162,61080452199415810,61080151551705090,61080409249742850,61080142961770498,61361875637108738,61361931471683586,61643415037935618,61643380678197250,61643342023491586,61643402153033730,61643372088262658,61643157339897858,61643350613426178,61643324843622402,61643367793295362,61643376383229954,61643101505323010,61643105800290306,61643114390224898,61643084325453826,61643135865061378,61643140160028674,61643423627870210,61643127275126786,61643122980159490,61643359203360770,61643092915388418,61643165929832450,61643144454995970,61643397858066434,61643088620421122,61643354908393474,61643131570094082,61643161634865154,61643410742968322,61643363498328066,61643148749963266,61643346318458882,61643118685192194,61643329138589698,61643337728524290,61643080030486530,61643393563099138,61643097210355714,61643110095257602,61643406448001026,61643153044930562,61643384973164546,61924881443717120,62206034282348544,62205991332872192,62206678528819201,62206120182284288,62206270521212928,62206283391959040,62206382174568448,62206682822344705,62206395061305344,62206674233917441,62206369292025856,62206364995485696,62206386470715392,62206420830191617,62206309162024960,62206390765486080,62206352109993984,62206360701501440,62206425139970049,62206038579216384,62206008513265664,62206407944241153,62206416534765569,62206403649339393,62206279096664064,62205974153330688,62206399355551744,62487771247476738,62487535024275458,62487766952509442,62487822787084290,62487513549438978,62487797017280514,62487848556888066,62487504959504386,62487565089046530,62487577973948418,62487749772640258,62487586563883010,62487835671986178,62487526434340866,62487818492116994,62487552204144642,62487801312247810,62487569384013826,62487556499111938,62487754067607554,62487831377018882,62487788427345922,62487775542444034,62487839966953474,62487762657542146,62487522139373570,62487573678981122,62487805607215106,62487560794079234,62487547909177346,62487779837411330,62487509254471682,62487543614210050,62487784132378626,62487530729308162,62487827082051586,62487792722313218,62487539319242754,62487590858850306,62487582268915714,62487517844406274,62487809902182402,62769383669039105,62769070135705600,62769409439694849,62769233345380352,62769418029760513,62769426633129985,62769370783612929,62769336424136704,62769387962957825,62768941286293504,62768924106752000,62769229050085376,62769422326956033,62768988532637696,62769302063415296,62769314948907008,62769379372892161,62769400848711681,62769628482240513,62769349308973056,62769624187338753,62769332127989760,62769375079628801,62769632775766017,62769405143482369,62769259115446272,62769396554661889,62768984235769856,62769357897662465,62769413734072321,62769353602760705,62769345014726656,62769392258121729,62768958466686976,62769319245447168,62769310654922752,62769366492315649,62769340718907392,63050704025747458,63050815694897154,63050545111957506,63050785630126082,63050789925093378,63050819989864450,63050463507578882,63050734090518530,63050416262938626,63050399083069442,63050824284831746,63050794220060674,63050811399929858,63050807104962562,63050433442807810,63050459212611586,63050777040191490,63050708320714754,63332252017164290,63332260607098882,63331934189584386,63332209067491330,63332294966837250,63332290671869954,63331908419780610,63331938484551682,63332282081935362,63332269197033474,63332183297687554,63332179002720258,63332020088930306,63331891239911426,63331874060042242,63332264902066178,63332299261804546,63332286376902658,63613658274267138,63613684044070914,63613653979299842,63613366216491010,63613769943416834,63613757058514946,63613349036621826,63613413461131266,63613765648449538,63613761353482242,63613774238384130,63613726993743874,63613739878645762,63613409166163970,63613735583678466,63613744173613058,63613495065509890,63613383396360194,63894888437907458,63895219150389250,63895232035291138,63895159020847106,63894841193267202,63895210560454658,63895201970520066,63895249215160322,63894970042286082,63894858373136386,63895133251043330,63894824013398018,63895128956076034,63895240625225730,63895244920193026,63895214855421954,63894884142940162,63895236330258434,64176608228212738,64176711307427842,64176363415076866,64176694127558658,64176316170436610,64176724192329730,64176603933245442,64176445019455490,64176359120109570,64176715602395138,64176633998016514,64176685537624066,64176719897362434,64176707012460546,64176689832591362,64176676947689474,64176298990567426,64176333350305794,64457834096492546,64457919995838466,64458151924072450,64458199168712706,64458181988843522,64457838391459842,64458078909628418,64458190578778114,64457791146819586,64457773966950402,64458160514007042,64458083204595714,64458164808974338,64458186283810818,64458108974399490,64458169103941634,64457808326688770,64458194873745410,64739635490783234,64739656965619714,64739248943726594,64739558181371906,64739665555554306,64739266123595778,64739313368236034,64739661260587010,64739626900848642,64739583951175682,64739674145488898,64739639785750530,64739669850521602,64739283303464962,64739553886404610,64739644080717826,64739394972614658,64739309073268738,65021119057625090,65021149122396162,65020723920633858,65020784050176002,65021110467690498,65021114762657794,65021140532461570,65020788345143298,65021058928082946,65021101877755906,65020741100503042,65020758280372226,65021136237494274,65021144827428866,65021131942526978,65021028863311874,65020869949521922,65021033158279170,65302533904269314,65302585443876866,65302503839498242,65302619803615234,65302606918713346,65302576853942274,65302615508647938,65302216076689410,65302259026362370,65302589738844162,65302508134465538,65302263321329666,65302344925708290,65302624098582530,65302594033811458,65302198896820226,65302611213680642,65302233256558594,65584060420980738,65583708233662466,65583978816602114,65583738298433538,65584086190784514,65584094780719106,65584051831046146,65583673873924098,65583819902812162,65584081895817218,65583691053793282,65584064715948034,65584099075686402,65584069010915330,65583734003466242,65584008881373186,65583983111569410,65584090485751810,65865458088345602,65865166030569474,65865543987691522,65865526807822338,65865453793378306,65865208980242434,65865213275209730,65865556872593410,65865535397756930,65865483858149378,65865539692724226,65865565462528002,65865574052462594,65865569757495298,65865294879588354,65865148850700290,65865183210438658,65865561167560706,66147328202768385,66146928770613248,66146688253165568,66147323907866625,66147001783943168,66147066212843521,66147053323288577,66147040439435264,66147031848517632,66147036144664576,66146958835974144,66147074800156673,66147087683485697,66147117750288385,66146683956297728,66147010375450624,66147044735254528,66147070504140801,66146641006821376,66146933065908224,66147122047483905,66147049029500928,66147057618190337,66147079093420033,66147104864010241,66147096275189761,66146769856233472,66147113454600193,66147109160222721,66146658187214848,66147018965975040,66147100569239553,66147091978649601,66147083389566977,66147332496293889,66147014669434880,66147126353723393,66146623827279872,66428197585879042,66428481053720578,66428403744309250,66428416629211138,66428429514113026,66428489643655170,66428459578884098,66428433809080322,66428188995944450,66428184700977154,66428412334243842,66428472463785986,66428425219145730,66428399449341954,66428193290911746,66428171816075266,66428438104047618,66428446693982210,66428442399014914,66428180406009858,66428498233589762,66428176111042562,66428485348687874,66428167521107970,66428450988949506,66709646792720386,66709874425987074,66709659677622274,66709960325332994,66709655382654978,66709947440431106,66709908785725442,66709956030365698,66709900195790850,66709878720954370,66709891605856258,66709904490758146,66709964620300290,66709887310888962,66709672562524162,66709973210234882,66709917375660034,66709934555529218,66709925965594626,66709651087687682,66709668267556866,66709642497753090,66709663972589570,66709921670627330,66709913080692738,66991117474594818,66991143244398594,66991383762567170,66991409532370946,66991439597142018,66991366582697986,66991126064529410,66991134654464002,66991362287730690,66991431007207426,66991435302174722,66991388057534466,66991422417272834,66991379467599874,66991392352501762,66991400942436354,66991375172632578,66991349402828802,66991353697796098,66991138949431298,66991121769562114,66991396647469058,66991147539365890,66991448187076610,66991130359496706,67272906001547264,67554359486185474,67554299356643330,67554071723376642,67554372371087362,67554385263263744,67554380961021954,67554303651610626,67554312241545218,67554325126447106,67554076018343938,67554088903245826,67554316536512514,67554080313311234,67554389558165504,67554329421414402,67554067428409346,67554346601283586,67554097493180418,67554398140891138,67554084608278530,67554093198213122,67554350896250882,67835787218190338,67835546700021762,67835559584923650,67835542405054466,67835855937667074,67835563879890946,67835804398059522,67835778628255746,67835568174858242,67835791513157634,67835555289956354,67835825872896002,67835847347732482,67835864534876160,67835834462830594,67835774333288450,67835550994989058,67835873117536258,67835860239974400,67835800103092226,67835821577928706,67835572469825538,68117021683089408,68117038856929282,68117330914705410,68117043151896578,68117017388187648,68117300849934338,68117322324770818,68117034561961986,68117025972027394,68117266490195970,68117279375097858,68117047446863874,68117030266994690,68117249310326786,68117296554967042,68117262195228674,68117253605294082,68117275080130562,68117309439868930,68117348094574594,68398522423443458,68398784416448514,68398518128476162,68398805891284994,68398754351677442,68398509538541570,68398492364898304,68398500948606978,68398775826513922,68398496659800064,68398823071154178,68398513833508866,68398771531546626,68398741466775554,68398728581873666,68398505243574274,68398797301350402,68398750056710146,68398724286906370,68398737171808258,68680272278257666,68679988810416130,68679967341608960,68680250803421186,68679984515448834,68680216443682818,68680203558780930,68679971636510720,68680246508453890,68679980220481538,68680229328584706,68679997400350722,68680212148715522,68680298048061442,68680225033617410,68680280868192258,68680259393355778,68679993105383426,68680199263813634,68679975925514242,68961747254837250,68961472376930306,68961450902093826,68961455197061122,68961721485033474,68961773024641026,68961463786995714,68961704305164290,68961678535360514,68961725780000770,68961674240393218,68961468081963010,68961755844771842,68961687125295106,68961734369935362,68961442318319616,68961700010196994,68961459492028418,68961446613221376,68961691420262402,69243230838587392,69524649980788736,69805893012684802,69806124940918786,69806197955362818,69806129235886082,69806172185559042,69806116350984194,69805897307652098,69806159300657154,69806103472373760,69806099171115010,69806180775493634,69806112056016898,70087587032596482,70087599917498370,70087372284231682,70087604212465666,70087578442661890,70087363701178368,70087672931942402,70087367989264386,70087655752073218,70087574147694594,70087647162138626,70087591327563778,70087634277236738,70087359406276608,70369135022899202,70369074893357058,70368842965123074,70368825785253890,70369122137997314,70369053418520578,70369049123553282,70369066303422466,70369062008455170,70369092079583232,70369139317866498,70369087784484864,70369096368193538,70369079188324354,70369100663160834,70368821490286594,70368834375188482,70369109253095426,70368830080221186,70368817195319298,70369147907801090,70369083489583104,70368838670155778,70369130727931906,70368847260090370,70650622884446210,70650558466293760,70650614294511618,70650562761195520,70650597114642434,70650536985100290,70650313646800898,70650605704577026,70650584229740546,70650305056866306,70650322236735490,70650296466931714,70650571344838658,70650309351833602,70650317941768194,70650575639805954,70650528395165698,70650292171964418,70650567056293888,70650300761899010,70650524100198402,70650549870002178,70650541280067586,70650609999544322,70650554164969474,70932029142990850,70931797214756866,70932024848023554,70932011969806336,70932097862467586,70932059207761922,70931999078219778,70932072092663810,70931792919789570,70932080682598402,71213263601008642,71213572838653954,71213499824209922,71213534183948290,71213272190943234,71213478349373442,71213474054406146,71213267895975938,71213250722070528,71213504119177218,71213547068850178,71213255017168896,71213259306041346,71213555658784770,71213491234275330,71213521305075712,71213486939308034,71213525600174080,71494738577653762,71494734282686466,71494949031051266,71495030635429890,71494966210920450,71494742872621058,71494729993879552,71495009160593410,71494961915953154,71494974800855042,71494979095822338,71495047815299074,71494747167588354,71495000576884736,71494953326018562,71495022045495298,71494996281786368,71494725698781184,71776505612599298,71776484137762818,71776449778024450,71776217849790466,71776454072991746,71776222144757762,71776436893122562,71776497022664706,71776441194184704,71776424008220674,71776522792468482,72057692832923648,72057929049964546,72057898985193474,72057697121730562,72057997769441282,72057959114735618,72057924754997250,72057980589572098,72057971999637506,72339399741734912,72339404042928128,72620930559311872,72902405536088064,73183828967358466,73183867622064130,73183880506966018,73183876211998722,73183824672391170,73465342600871936,73465351190740992,73465299647594498,73465355482169346,73465303942561794,73746667238391808,73746624289439744,73746469668454400,73746830466351104,73746461078126592,73747058099552257,73747066681163777,73746611403423744,73746658648260608,73747036606562305,73746452490092544,73747186928517121,73746607107801088,73746851920674816,73746671534211072,73746972191817729,73746628582834176,73747062385999873,73747023721267201,73746993655840769,73747178338254849,73746486849306624,73746478258651136,73747182634860545,73746632879112192,73746675828064256,73746997949300737,73746456783486976,73746619992768512,73746989361987585,73746491143028736,73746473965060096,73746637172244480,73746645763686400,73746985066758145,73746654352900096,73746650058850304,73746602813554688,73746598517145600,73746641468850176,73746499733553152,73746662942703616,73746615697145856,74027983304196096,74028511588450305,74028404211908609,74027923175178240,74028069204131840,74028348377399296,74028627550666753,74028365560741889,74027957535113216,74028309723348992,74028314017333248,74028408508121089,74028425702211585,74028421395382273,74028129329610752,74028631844192257,74028258198618112,74028417098186753,74028344083152896,74028335492562944,74028378441318401,74027940354719744,74028528781623297,74028301131841536,74028623255764993,74028382737465345,74028399917137921,74027987601063936,74028133624971264,74028082104893440,74027931760197632,74028387031384065,74028374148055041,74028369852039169,74028318313873408,74028412802498561,74028296853454848,74028395623088129,74027944652701696,74028356966088705,74028331196416000,74028232413806592,74028717746749441,74028391326547969,74028352671186945,74028228118511616,74028339787333632,74309810465800194,74309793285931010,74309819055734786,74309776106061826,74309458278481922,74309806170832898,74309432508678146,74309398148939778,74309462573449218,74309703091617794,74309814760767490,74309823350702082,74309771830231040,74309707386585090,74309784695996418,74309788990963714,74309544177827842,74309415328808962,74309733156388866,74591298339143682,74591281159274498,74591019166269442,74591259684438018,74591263979405314,74590907497119746,74591182375026690,74591294044176386,74590933266923522,74590873137381378,74591289749209090,74590890317250562,74591268274372610,74591251094503426,74591178080059394,74591032058642432,74590937561890818,74591246799536130,74591676303802369,74591208144830466,74591285454241794,74872678826246146,74872726070886402,74872717480951810,74872674531278850,74872730365853698,75154196760559616,75435706089209858,75435676024438786,75435693204307970,75436096939163649,75435508508524544,75435298067316738,75435607304962050,75436092630302721,75435684614373378,75435603009994754,75435306643750912,75435332427055106,75435714679144450,75435444096204802,75435903665569793,75435688909340674,75435362491826178,75435723269079042,75435358196858882,75435633074765826,75435710384177154,75435315247185922,75435718974111746,75435504213164032,75435319536254976,75435886472003585,75717000672509954,75716992082575362,75716781629177858,75716820283883522,75716974902706178,75716983492640770,75716944837935106,75716966312771586,75717176766169090,75716970607738882,75716798809047042,75716962017804290,75716953427869698,75716811693948930,75716996377542658,75716794514079746,75716979197673474,75716803104014338,75716957722836994,75717073686953986,75716949132902402,75716987787608066,75998647460691968,76280053717991424,76280049410703362,76280122425147394,76561597401726978,76561524387282946,76843106733195265,76843059490455552,76843080963522560,76843063784439808,76842737368170496,76843119619145729,76843141093654529,76843145390194689,76843089554440192,76843123915161601,76843373022871553,76843136798490625,76842977885618176,76843188355072001,76843166865293313,76843149684244481,76843050898948096,76842672942284800,76842733071302656,76843162569605121,76843115323719681,76842690121826304,76843085259669504,76843093850259456,76843068080979968,76843007950979072,76843128208424961,76843153979015169,76843381611298817,76842982180913152,76843098144505856,76843132504571905,76843377317773313,76843102438293505,76842707302219776,76843171160326145,76842818971238400,76843158275227649,77124474353287168,77124547354492930,77406035215777794,77405794697609218,77405953611399170,77405781812707330,77405627193884674,77405648668721154,77406022330875906,77405777517740034,77405635783819266,77405674438524930,77405665848590338,77405837647282178,77405790402641922,77405992266104834,77405824762380290,77405652963688450,77405773222772738,77405807582511106,77405957906366466,77405850532184066,77406000856039426,77405798992576514,77405833352314882,77405846237216770,77405841942249474,77405803287543810,77405829057347586,77405949316431874,77405631488851970,77405786107674626,77406026625843202,77405644373753858,77405816172445698,77406005151006722,77405820467412994,77405811877478402,77405661553623042,77687514481295362,77687407107112962,77687471551414272,77687402812145666,77687097869467650,77687475826589698,77687157999009794,77687493006458882,77687510186328066,77687484416524290,77687518776262658,77687162293977090,77687115049336834,77687132229206018,77687432876916738,77687243898355714,77687488711491586,77687523071229954,77687505891360770,77969006640037889,77968950805790720,77968985166512128,77969036705333249,77968907857821696,77968959397298176,77968882087755776,77968877792460800,77968718878081024,77969049591087105,77968989461282816,77968967987822592,77969062476447745,77968590028668928,77969002345136129,77968998051348480,77968632978145280,77969071069331457,77968993757102080,77969023822004225,77969075377209345,77968637275013120,77969045297037313,77969041000497153,77969015234691073,77968607209062400,77968963691282432,77969281518141441,77969053885857793,77969058182070273,77969277224615937,77968980870365184,77969028115267585,77969272929714177,77969066772135937,77969019525988353,77969032411414529,77968572849127424,78250421504966656,78531690312892418,78531741852499970,78531707492761602,78531544284004354,78531879291453442,78531565758840834,78531570053808130,78531686017925122,78531728967598082,78531922241126402,78531905061257218,78531548578971650,78531561463873538,78531900766289922,78531716082696194,78531677427990530,78531737557532674,78531527104135170,78531720377663490,78531681722957826,78531724672630786,78531673133023234,78531853521649666,78531819161911298,78531574348775426,78531892176355330,78531711787728898,78531694607859714,78531746147467266,78531926536093698,78531698902827010,78531733262565378,78531703197794306,78531531399102466,78531535694069762,78531552873938946,78531849226682370,78531750442434562,78813143814438914,78813422987313154,78813307023196162,78813388627574786,78813032145289218,78813014965420034,78813405807443970,78813332792999938,78813057915092994,78812997785550850,78813410102411266,78813414397378562,78813384332607490,78813375742672898,78813062210060290,78813392922542082,78813418692345858,78813302728228866,79094906546880513,79094859304140800,79094472755970048,79094618784923648,79094902251978753,79094919432830977,79094867894665216,79095172836556801,79094928022110209,79094880777207808,79094923728846849,79094489935511552,79094975284183041,79094940907339777,79094949497929729,79094532884987904,79094863598125056,79094966678978561,79094893663944704,79094953792700417,79094850712633344,79094507115905024,79095177131458561,79094932318257153,79095181424984065,79094962383290369,79094889368125440,79094945203879937,79094915141533697,79094958088912897,79094777699303424,79094781994598400,79094885073354752,79094936612175873,79094807764664320,79094537181855744,79094970976174081,79094897958191104,79376106653155330,79376175372632066,79376171077664770,79375952034332674,79375999278972930,79376304221650946,79375994984005634,79376278451847170,79376136717926402,79376274156879874,79376149602828290,79376158192762882,79375990689038338,79375977804136450,79376244092108802,79376141012893698,79375973509169154,79376115243089922,79376123833024514,79376325696487426,79376347171323906,79376162487730178,79376317106552834,79376128127991810,79376329991454722,79375956329299970,79376145307860994,79376119538057218,79375986394071042,79376102358188034,79376166782697474,79375969214201858,79376098063220738,79375960624267266,79376132422959106,79376153897795586,79376110948122626,79376351466291202,79657611694112770,79657792082739202,79657607399145474,79657620284047362,79657590219276290,79657461370257410,79657822147510274,79657465665224706,79657585924308994,79657800672673794,79657594514243586,79657650348818434,79657573039407106,79657474255159298,79657646053851138,79657427010519042,79657581629341698,79657615989080066,79657628873981954,79657435600453634,79657633168949250,79657826442477570,79657753428033538,79657452780322818,79657749133066242,79657598809210882,79657577334374402,79657448485355522,79657779197837314,79657641758883842,79657431305486338,79657444190388226,79657469960192002,79657637463916546,79657603104178178,79657804967641090,79657719068295170,79657624579014658,79939254175137794,79939112441217026,79939267060039682,79939301419778050,79939099556315138,79938949232459778,79938927757623298,79939073786511362,79939275649974274,79938940642525186,79939095261347842,79938944937492482,79939052311674882,79939121031151618,79939048016707586,79938923462656002,79939082376445954,79939224110366722,79939090966380546,79938910577754114,79939078081478658,79938936347557890,79939086671413250,79939108146249730,79938901987819522,79939279944941570,79939228405334018,79939116736184322,79938919167688706,79938906282786818,79939065196576770,79939194045595650,79939056606642178,79939297124810754,79939060901609474,79939103851282434,79939125326118914,79939069491544066,80220591712960514,80220742036815874,80220540173352962,80220531583418370,80220402734399490,80220703382110210,80220772101586946,80220376964595714,80220535878385666,80220394144464898,80220411324334082,80220729151913986,80220398439432194,80220669022371842,80220561648189442,80220596007927810,80220754921717762,80220570238124034,80220544468320258,80220578828058626,80220699087142914,80220527288451074,80220415619301378,80220587417993218,80220522993483778,80220424209235970,80220385554530306,80220548763287554,80220565943156738,80220750626750466,80220574533091330,80220553058254850,80220583123025922,80220776396554242,80220557353222146,80220381259563010,80220600302895106,80220419914268674,80502259973488640,80783545951977472,80783846609584129,80783911024328705,80784057052626945,80783524476616704,80783498707206144,80783344086220800,80783326907858944,80783537360470016,80783533066027008,80783481525567488,80783859484524545,80783477231321088,80783863779753985,80784052756021249,80783503000600576,80783348382826496,80783528770666496,80783472934912000,80783726338441216,80783374151319552,80783550245830656,80783335495892992,80783941108760577,80784061346283521,80783520181452800,80783872367067137,80783515886616576,80783490114912256,80783507296878592,80783898139033601,80783352676417536,80783511590010880,80783485821190144,80783331201253376,80783541656158208,80783614691180544,80783868073607169,80783494410534912,80783361267073024,80783365560795136,81064827653128192,81065433254264833,81064823359537152,81064801884569600,81065373115744257,81064990863327232,81064947911622656,81064986566721536,81065025222541312,81065020928688128,81065008042737664,81064973683916800,81064995158163456,81065347343777793,81064840537505792,81064819062931456,81065428964802561,81065132598951936,81065179856764928,81065343050317825,81064965091622912,81065407489900545,81065390300921857,81065394591498241,81065166966358016,81064836243783680,81065175563632640,81064982273589248,81065321586294785,81065398902128641,81065532029337601,81064810472603648,81064969387245568,81064999453327360,81065334461235201,81065536322994177,81065016632868864,81065201315151872,81065416075640833,81065386001039361,81064952208031744,81064977977311232,81064956502278144,81065003747377152,81064806177964032,81065338756464641,81065012337180672,81064849128030208,81065527732731905,81065411780476929,81065209908035584,81064960797900800,81346654829543426,81346598994968578,81628073971613698,81628129806188546,81909591896489984,81909858190032897,81909819526086657,81909634838167552,81909604783357954,81909600493764608,81909548948783106,82190740444348416,82191096950423552,82191101221994496,82190890770169856,82190852114874368,82190998165454848,82191109834735616,82191105521025024,82191195719991297,82190701791412224,82191401875275777,82191238663307265,82190877884153856,82191182832730113,82191431936180225,82191380418330625,82190718969774080,82190697499787264,82190706084806656,82190929445912576,82191208619311105,82191419051409409,82190959510093824,82191169947697153,82190886473564160,82190925129383936,82190933740421120,82190864998465536,82190972395520000,82190761925672960,82191350352379905,82190946625650688,82190895065006080,82191367532314625,82190710379446272,82190873590759424,82191088341942272,82191165651156993,82190899360169984,82191285907881985,82191006738415616,82191126995795969,82191397580374017,82190860704743424,82191131290697729,82190714679328768,82190968100421632,82190882180431872,82191152765927425,82190938036240384,82191346058657793,82191002443120640,82190723266379776,82191200015024129,82191247250620417,82191032508481536,82190903654219776,82190843528740864,82191221493399553,82191371827675137,82190912244023296,82191217208983553,82191075456450560,82190727559970816,82190916539711488,82191354647281665,82190976690880512,82191273022586881,82191242957160449,82191191422795777,82190907949580288,82191148472664065,82190847818465280,82190993860263936,82191114111942656,82191234368077825,82190955215192064,82191174241746945,82191178536517633,82191187127107585,82191436229836801,82190749034872832,82191376123101185,82190744741937152,82190963806371840,82190731859722240,82191157062074369,82190920835530752,82190757628805120,82191161355993089,82191092638482432,82190869294088192,82191139885350913,82191406168801281,82190856409120768,82191427639574529,82191118407761920,82191449137414145,82190736150626304,82190950921404416,82191144176648193,82191084047958016,82191122702008320,82472528977657856,82754068361183232,82754141376217089,82754351828697089,82753711879094272,82754119901118465,82753707582226432,82754115604578305,82754111309414401,82754128489938945,82754094130069505,82753956691836928,82754064065363968,82754072655429632,82753982461902848,82753647453208576,82754124195168257,82753664632750080,82753681813143552,82754098426085377,82754356122222593,82754089834643457,82754081244119041,82754347533795329,82754025409871872,82754038295363584,82753952396541952,82754055474446336,82754145671249921,82754137080528897,82753793482162176,82754132786151425,82754107015495681,82754102719348737,82754042591903744,82754162868224001,82754076949217281,82754034001379328,82754059770593280,83035534765785088,83316953899728898,83316966787776512,83317344750010369,83316919543201792,83598398811209730,83598373041405954,83879869493280770,83879903853019138,83879916737921026,84161842694717441,84161348773412864,84161322994630658,84442531673407488,84442875270135808,84442931104382977,84442892452167680,84442974055432193,84442978350202881,84442909630857216,84443197394059265,84442965464842241,84442956875759617,84442961169678337,84442986940792833,84442952579612673,84442832322166784,84442883861643264,84442802256805888,84442806552100864,84442939699036161,84442888155627520,84442561739358208,84442991236481025,84442918221447168,84442982646415361,84442926809481217,84442793674080256,84442995533676545,84442497313472512,84442999832444929,84442969761382401,84443205982486529,84442514493014016,84442913925627904,84442557442490368,84442943990333441,84442643342426112,84442922515693568,84442905334710272,84443201688961025,84442948286349313,84443137282867201,84724272957227008,85005855291867136,85005747919388674,85006031397060609,85287252960739330,85286926543224834,85286973787865090,85287089751982082,85287300205379586,85287102636883970,85287132701655042,85287141291589634,85287257255706626,85286965197930498,85286948018061314,85287321680216066,85287119816753154,85287334565117954,85287076867080194,85287325975183362,85287149881524226,85286960902963202,85286943723094018,85287124111720450,85286952313028610,85287094046949378,85286930838192130,85287136996622338,85287304500346882,85287115521785858,85287081162047490,85287111226818562,85287128406687746,85286935133159426,85287106931851266,85287085457014786,85287072572112898,85287248665772034,85287291615444994,85287098341916674,85287145586556930,85568697873072130,85568723642875906,85850172849913858,85850198619717634,86131729445224448,86413174333505538,86413122793897986,86412963880108034,86413165743570946,86412908045533186,86412929520369666,86412916635467778,86413135678799874,86412920930435074,86412903750565890,86412895160631298,86413144268734466,86413178628472834,86412882275729410,86413212988211202,86412959585140738,86412886570696706,86413204398276610,86412933815336962,86412946700238850,86412877980762114,86413182923440130,86413139973767170,86412938110304258,86412890865664002,86413170038538242,86412899455598594,86413208693243906,86413161448603650,86413148563701762,86412955290173442,86413127088865282,86412925225402370,86412950995206146,86412912340500482,86413195808342018,86413152858669058,86413157153636354,86413221578145794,86413191513374722,86413200103309314,86412942405271554,86694675080151042,86694430267015170,86694610655641602,86694400202244098,86694421677080578,86694632130478082,86694395907276802,86694666490216450,86694352957603842,86694687965052930,86694417382113282,86694640720412674,86694614950608898,86694378727407618,86694645015379970,86694657900281858,86694387317342210,86694696554987522,86694370137473026,86694636425445378,86694623540543490,86694434561982466,86694653605314562,86694438856949762,86694383022374914,86694374432440322,86694683670085634,86694627835510786,86694649310347266,86694391612309506,86694365842505730,86694408792178690,86694357252571138,86694602065707010,86694597770739714,86694619245576194,86694670785183746,86694361547538434,86694404497211394,86694413087145986,86694425972047874,86694679375118338,86976214489432065,86976274634506241,86976231666155521,86976107112562688,86975918132822016,86975789283409920,86976167242563584,86976476479356929,86976223076745217,86976480772882433,86976197306089472,86976266026876929,86975836529754112,86976248845828097,86976257436811265,86976150060531712,86976240255238145,86976218780729345,86975772103868416,86976235960074241,86976077047201792,86976253140598785,86976205894778881,86976270324072449,86976158652039168,86976193011843072,86976081342496768,86976201599877121,86975832232886272,86976180125106176,86976261731188737,86976244551778305,86976184421253120,86975806463803392,86976162946023424,86976472184455169,86976227370008577,86976188716023808,87257543448461312,87538790774210562,87538799364145154,87539057062182914,87539035587346434,87539082831986690,87539065652117506,87538846608785410,87538825133948930,87538855198720002,87538850903752706,87538795069177858,87539074242052098,87539078537019394,87538820838981634,87538812249047042,87538859493687298,87539048472248322,87538863788654594,87538842313818114,87538838018850818,87539121486692354,87538803659112450,87539069947084802,87539104306823170,87539026997411842,87539112896757762,87539052767215618,87538829428916226,87538816544014338,87538833723883522,87539061357150210,87538807954079746,87539022702444546,87539039882313730,87539095716888578,87539108601790466,87820699552972801,87820643710861313,87820583582171136,87820214213541888,87820609351385088,87820648006877185,87820678070730753,87820841298624513,87820630824910849,87820905703014401,87820944372531201,87820566415147008,87820836998283265,87820617941975040,87820261459886080,87820897114587137,87820639419564033,87821021681811457,87820669481910273,87820922897825793,87820673775960065,87820626530009089,87820493394608128,87820652300140545,87820587876155392,87820690957008897,87820501977333760,87820605055238144,87820257163018240,87820622236221440,87820343062953984,87820231393935360,87820519170572288,87820695254204417,87820901409488897,87820686661320705,87820574990663680,87820665185370113,87820660890206209,87820656596287489,87820532042694656,87820940077236225,87820682366943233,87820197034000384,87820613646155776,87820592172695552,87820506272628736,88101998428618754,88102045673259010,88102002723586050,88102071443062786,88102054263193602,88383473404477442,88383447634673666,88383477699444738,88383520649117698,88383546418921474,88383529239052290,88664948378566658,88664952673533954,88665004213141506,88664982738305026,88665012803076098,88664750810071042,88664922608762882,88664763694972930,88664707860398082,88664737925169154,88664742220136450,88664712155365378,88665008508108802,88664965558435842,88664716450332674,88664699270463490,88664939788632066,88664926903730178,88664694975496194,88664703565430786,88664733630201858,88664956968501250,88664720745299970,88665021393010690,88664755105038338,88664974148370434,88664690680528898,88664969853403138,88664746515103746,88664978443337730,88664759400005634,88664935493664770,88664961263468546,88664995623206914,88664729335234562,88664725040267266,88946230081683458,88946487779721218,88946225786716162,88946436240113666,88946217196781570,88946410470309890,88946208606846978,88946449125015554,88946444830048258,88946423355211778,88946427650179074,88946431945146370,88946191426977794,88946174247108610,88946238671618050,88946200016912386,88946440535080962,88946221491748866,88946496369655810,88946453419982850,88946457714950146,88946393308725248,88946212901814274,88946195721945090,88946165657174018,88946187132010498,88946414765277186,88946483484753922,88946234376650754,88946479189786626,88946182837043202,88946401880375298,88946204311879682,88946470599852034,88946397585408002,88946169952141314,88946178542075906,89227769482772480,89227773777936384,89227765187936256,89228113083301889,89227790957477888,89227597684146176,89228310647603201,89227610568392704,89227778071986176,89227756598198272,89228117374926849,89227786661789696,89227799547150336,89228284901720065,89228289196818433,89228199002439681,89227593387540480,89227748008525824,89227743711854592,89227808160546816,89227752301920256,89228121668386817,89227601977737216,89227795253297152,89227782367346688,89227580502573056,89228134560169985,89227760891330560,89228147440353281,89227975639760896,89228160329646081,89509523636224001,89509467802238976,89509351837597696,89509480685174785,89509497867141121,89509459211649024,89509489275699201,89509381902958592,89509442032959488,89509356132892672,89509111320150016,89509046894264320,89509437736419328,89509506456551425,89509454915502080,89509493571125249,89509433442435072,89509536521584641,89509527930994689,89509192923217920,89509515045634049,89509502160404481,89509510750470145,89509081254199296,89509751269752833,89509532227207169,89509424850927616,89509064073805824,89509540817272833,89509519342174209,89509476390273025,89509463506419712,89509545130328065,89509107023282176,89509472096485376,89509746974851073,89509755563278337,89790891248058370,89790848298385410,89790852593352706,89790904132960258,89790899837992962,90072379108163586,90072327568556034,90072366223261698,90072323273588738,90072374813196290,90353854096408576,90635329063157762,90635316178255874,90635277523550210,90635324768190466,90635273228582914,90916795459960832,91198708523466753,91198042792722434,91198107204321280,91198309080694786,91197931123572738,91197896763834370,91198201706512386,91198317670629378,91197913943703554,91198485167800321,91198691326099457,91198283310891010,91198206001479682,91198304785727490,91197905339547648,91198321965596674,91197956893376514,91197961188343810,91197918232051712,91198102908960768,91198274720956418,91198502364971009,91198313375662082,91198291900825602,91198287605858306,91198231771283458,91479792635084802,91479517757177858,91479745413578752,91479788340117506,91479758275346434,91479749685411842,91479436152799234,91479676670967810,91479762570313730,91479779750182914,91479406088028162,91479431857831938,91479388908158978,91479784045150210,91479766865281026,91479706735738882,91479796930052098,91479680965935106,91479371728289794,91761233264508930,91760881077190658,91761181724901378,91761263329280002,91761237559476226,91761662772117505,91760992746340354,91761271919214594,91760846717452290,91761224674574338,91760906846994434,91761267624247298,91761220390420480,91760911141961730,91760863897321474,91761155955097602,91761254739345410,91761241854443522,91761259034312706,91761005641990144,91761151660130306,92042699650957314,92042648111349762,92042652406317058,92042703945924610,92042691061022722,92324127382372354,92324174627012610,92324123087405058,92324178921979906,92324166037078018,92605688258756610,92605331776471042,92605645309083650,92605288826798082,92605271646928898,92605306006667266,92605606654377986,92605417675816962,92605662488952834,92605580884574210,92605692553723906,92605696848691202,92605666783920130,92605683963789314,92605649604050946,92605679668822018,92605576589606914,92605658193985538,92605336071438338,92887081623486464,92887450990280705,92886780974727168,92887197587668993,92887236242112513,92887201880932353,92887554089091073,92887120285859842,92887180405702657,92887154636029952,92887051558125568,92887231947735041,92887133162962944,92887163226947584,92887446695378945,92887158932176896,92887219062702081,92887206177079297,92887055853420544,92886746614792192,92887167522766848,92887227651522561,92886811040677888,92887171817013248,92887137456947200,92887244834996225,92886763794333696,92887223356751873,92887124571455488,92887193291653121,92887455283806209,92887240537800705,92886892643745792,92887210470998017,92887189000355841,92886806743810048,92887141753487360,92887249146478593,92887214766161921,92887176110800897,93168599557734402,93168548018126850,93168552313094146,93168603852701698,93168590967799810,93450104598757378,93450117483659266,93449730936602626,93450005814509570,93450074533986306,93449761001373698,93450121778626562,93450001519542274,93450087418888194,93450083123920898,93449842605752322,93449713756733442,93449696576864258,93450031584313346,93449756706406402,93450108893724674,93450091713855490,93450113188691970,93731618221785089,93731613930487809,93731579566161920,93731558093094912,93731669765128193,93731231673942016,93731643992834049,93731880213938177,93731562387079168,93731661172244481,93731601040932865,93731317573877760,93731592452898816,93731235970809856,93731656877867009,93731583862308864,93731480783552512,93731566683619328,93731635401129985,93731875920412673,93731652581654529,93731639696293889,93731188724465664,93731588157079552,93731605335834625,93731622517800961,93731626811064321,93731476488257536,93731631107211265,93731665467932673,93731648286883841,93731674076676097,93731549501587456,93731171544924160,93731871625510913,93731596747145216,93731506553618432,93731205904859136,94012869863538690,94012844093734914,94013050252165122,94012693769879554,94012822618898434,94012655115173890,94012668000075778,94012835503800322,94012865568571394,94012874158505986,94012672295043074,94012861273604098,94012852683669506,94012826913865730,94012839798767618,94012831208833026,94012676590010370,94012685179944962,94012856978636802,94012818323931138,94012848388702210,94012947172950018,94294555289255937,94294585354551297,94294611125665793,94294550994354177,94294155858280448,94294821578932225,94294533815730176,94294563879780353,94294181627363328,94294512340500480,94294581060632577,94294572471222273,94294542406320128,94294426441678848,94294589649715201,94294830167359489,94294138677886976,94294516637040640,94294430736973824,94294568175206401,94294593946255361,94294456507039744,94294615421353985,94294546700566528,94294602535075841,94294538110500864,94294636915064833,94294267527299072,94294825873833985,94294619716386817,94294576764485633,94294529519583232,94294606831288321,94294499455008768,94294508046516224,94294185924231168,94294598240305153,94294121498345472,94575995911405570,94575922896961538,94857406457774080,94857402176831488,94857668450320385,94857449407250432,94857672745680897,94857483766857728,94857664169705473,94857642703126529,95138752593330178,95138701053722626,95138872852414466,95138731118493698,95138945866858498,95138559319801858,95138705348689922,95138924392022018,95138902917185538,95138572204703746,95138739708428290,95138769773199362,95138567909736450,95138774068166658,95138722528559106,95138950161825794,95138713938624514,95138585089605634,95138589384572930,95138842787643394,95138765478232066,95138593679540226,95138696758755330,95138555024834562,95138877147381762,95138726823526402,95138915802087426,95138576499671042,95138709643657218,95138718233591810,95138735413460994,95138756888297474,95138597974507522,95138761183264770,95138550729867266,95138928686989314,95138748298362882,95138744003395586,95420395088117760,95701827100868610,95701547927994370,95701852870672386,95701711136751618,95701651007209474,95701655302176770,95701668187078658,95701895820345346,95701535043092482,95701822805901314,95701539338059778,95701693956882434,95701526453157890,95701663892111362,95701715431718914,95701504978321410,95701659597144066,95701500683354114,95701676777013250,95701706841784322,95701698251849730,95701646712242178,95701719726686210,95701724021653506,95701681071980546,95701874345508866,95701865755574274,95701517863223298,95701878640476162,95701672482045954,95701792741130242,95701702546817026,95701509273288706,95701900115312642,95701685366947842,95701689661915138,95701543633027074,95701522158190594,95983345041604608,96264828595404802,96264772760829954,96546303571656706,96827722713923586,96827778548498434,97109249243480064,97390775738171393,97391050617651201,97390848757399553,97390767150137344,97390621137895424,97390380602097664,97390608252469248,97390762854318080,97390603957567488,97390745692798976,97391054911176705,97390406371180544,97390578188288000,97391024865476609,97390616842797056,97390655480791040,97390346242162688,97390737084317696,97390797215039489,97390844462366721,97390840165171201,97390582482796544,97390814393532417,97390410668048384,97390586778615808,97391029160706049,97390999094755329,97390758577111040,97390754263400448,97390822984122369,97390810098368513,97390831575105537,97390827278893057,97390857361686529,97390732790333440,97390771444383744,97391016274690049,97390599663779840,97390788627726337,97390741380857856,97390792919023617,97390994803195905,97390642602639360,97390724198825984,97390595368026112,97390612548747264,97391003389657089,97390625433255936,97390651185496064,97390818690072577,97391046322749441,97390363421704192,97390681250856960,97390801508302849,97390492271116288,97390780033073153,97391020570050561,97390835869483009,97390805804449793,97672151952392192,97953515250057218,97953485185286146,97953704228618242,97953682753781762,97953695638683650,97953532429926402,97953296206725122,97953549609795586,97953691343716354,97953519545024514,97953330566463490,97953360631234562,97953489480253442,97953674163847170,97953571084632066,97953510955089922,97953601149403138,97953446530580482,97953712818552834,97953699933650946,97953493775220738,97953717113520130,97953480890318850,97953536724893698,97953450825547778,97953558199730178,97953498070188034,97953566789664770,97953326271496194,97953334861430786,97953300501692418,97953309091627010,97953321976528898,97953708523585538,97953463710449666,97953528134959106,97953339156398082,97953541019860994,97953455120515074,97953442235613186,97953343451365378,97953313386594306,97953687048749058,97953592559468546,97953304796659714,97953605444370434,97953721408487426,97953472300384258,97953506660122626,97953596854435842,97953317681561602,97953553904762882,97953631214174210,97953575379599362,97953347746332674,97953459415482370,97953523839991810,97953502365155330,97953356336267266,97953562494697474,97953545314828290,97953476595351554,97953468005416962,98235149140492290,98235041766309890,98235024586440706,98234796953174018,98235174910296066,98235166320361474,98235157730426882,98234814133043202,98234955866963970,98235020291473410,98234968751865858,98235192090165250,98234925802192898,98235080421015554,98235196385132546,98235003111604226,98235046061277186,98234917212258306,98235028881408002,98234818428010498,98235015996506114,98234981636767746,98234792658206722,98234947277029378,98234938687094786,98234831312912386,98234771183370242,98234930097160194,98234973046833154,98234998816636930,98234784068272130,98235067536113666,98235183500230658,98234805543108610,98235076126048258,98235187795197954,98234809838075906,98235007406571522,98235033176375298,98234990226702338,98235162025394178,98235106190819330,98234934392127490,98235037471342594,98234960161931266,98234779773304834,98234977341800450,98234994521669634,98235170615328770,98234775478337538,98235071831080962,98234951571996674,98234835607879682,98234801248141314,98235050356244482,98235011701538818,98234985931735042,98234964456898562,98235179205263362,98234921507225602,98234822722977794,98234788363239426,98234942982062082,98516284814917634,98516473793478658,98516658477072386,98516508153217026,98516430843805698,98516662772039682,98516405074001922,98516465203544066,98516289109884930,98516512448184322,98516469498511362,98516503858249730,98516452318642178,98516671361974274,98516654182105090,98516495268315138,98516581167661058,98516413663936514,98516439433740290,98516400779034626,98516632707268610,98516280519950338,98516259045113858,98516546807922690,98516396484067330,98516499563282434,98516667067006978,98516297699819522,98516250455179266,98516422253871106,98516392189100034,98516276224983042,98516551102889986,98516417958903810,98516649887137794,98516460908576770,98516306289754114,98516624117334018,98516486678380546,98516293404852226,98516271930015746,98516521038118914,98516456613609474,98516448023674882,98516490973347842,98516645592170498,98516478088445954,98516482383413250,98516443728707586,98516516743151618,98516263340081154,98516310584721410,98516555397857282,98516525333086210,98516637002235906,98516267635048450,98516254750146562,98516409368969218,98516426548838402,98516641297203202,98516542512955394,98516435138772994,98516246160211970,98798120578777088,99079574080716800,99361070532329472,99642210481733632,99642571258068992,99642639978856449,99642579846758401,99642532604018688,99642541194543104,99642627092578305,99642631388790785,99642455294476288,99642850431336449,99642558373232640,99642609912053761,99642592732708865,99642575551856641,99642588437282817,99642562668003328,99642206184865792,99642536898002944,99642292084801536,99642450999181312,99642618503757825,99642614207217665,99642524012511232,99642597028724737,99642644273889281,99642481064542208,99642846136434689,99642601321988097,99642146055847936,99642605618135041,99642635683168257,99642180415782912,99642854724861953,99642554077085696,99642566963822592,99642661473222657,99642622797807617,99642163235389440,99924011886379010,99923822907817986,99923767073243138,99923797138014210,99923621044355074,99923646814158850,99923663994028034,99923805727948802,99923835792719874,99923891627294722,99923633929256962,99923865857490946,99923844382654466,99923900217229314,99923848677621762,99923810022916098,99923861562523650,99923771368210434,99924037656182786,99923831497752578,99924475742846978,99923827202785282,99923925987033090,99923895922262018,99923852972589058,99923801432981506,99923668288995330,99923818612850690,99923638224224258,99923870152458242,99923930282000386,99923999001477122,99924046246117378,99923792843046914,99923685468864514,99923655404093442,99923651109126146,99924041951150082,99923917397098498,99923887332327426,99923788548079618,99923625339322370,99923775663177730,99923840087687170,99923672583962626,99923629634289666,99924033361215490,99923956051804162,99924016181346306,99923784253112322,99924024771280898,99923659699060738,99924029066248194,99923883037360130,99923642519191554,99923874447425538,99923779958145026,99923921692065794,99923681173897218,99924007591411714,99923814317883394,99924020476313602,99923878742392834,99923857267556354,100205336538710018,100205396668252162,100205246344396802,100205405258186754,100205160445050882,100205482567598082,100205156150083586,100205284999102466,100205104610476034,100205280704135170,100205263524265986,100205358013546498,100205332243742722,100205250639364098,100205130380279810,100205242049429506,100205302178971650,100205096020541442,100205370898448386,100205508337401858,100205504042434562,100205521222303746,100205431027990530,100205259229298690,100205340833677314,100205306473938946,100205516927336450,100205121790345218,100205353718579202,100205512632369154,100205134675247106,100205392373284866,100205276409167874,100205345128644610,100205310768906242,100205362308513794,100205289294069762,100205100315508738,100205138970214402,100205267819233282,100205254934331394,100205375193415682,100205486862565378,100205319358840834,100205366603481090,100205113200410626,100205147560148994,100205491157532674,100205473977663490,100205297884004354,100205327948775426,100205499747467266,100205293589037058,100205323653808130,100205126085312514,100205272114200578,100205143265181698,100205108905443330,100205400963219458,100205315063873538,100205117495377922,100205495452499970,100205349423611906,100486712714592258,100486893103218690,100486931757924354,100486631110213634,100486674059886594,100486652585050114,100486923167989762,100486884513284098,100486970412630018,100486695534723074,100486669764919298,100486643995115522,100486682649821186,100486639700148226,100486661174984706,100486927462957058,100486678354853890,100486957527728130,100486905988120578,100486699829690370,100486914578055170,100486910283087874,100486961822695426,100486918873022466,100486686944788482,100486648290082818,100486656880017410,100486888808251394,100486901719826432,100486635405180930,100486940347858946,100486704124657666,100486875923349506,100486708419624962,100486897398185986,100486665469952002,100486691239755778,100486948937793538,100486626815246338,100768453996445698,100768222068211714,100768307967557634,100768234953113602,100768063154421762,100768355212197890,100768192003440642,100768380982001666,100768213478277122,100768303672590338,100768067449389058,100768462586380290,100768076039323650,100768106104094722,100768256427950082,100768058859454466,100768110399062018,100768350917230594,100768230658146306,100768084629258242,100768282197753858,100768325147426818,100768088924225538,100768449701478402,100768239248080898,100768441111543810,100768080334290946,100768260722917378,100768295082655746,100768312262524930,100768247838015490,100768342327296002,100768097514160130,100768252132982786,100768196298407938,100768423931674626,100768200593375234,100768320852459522,100768471176314882,100768277902786562,100768445406511106,100768299377623042,100768286492721154,100768466881347586,100768054564487170,100768243543048194,100768316557492226,100768050269519874,100768273607819266,100768432521609218,100768265017884674,100768436816576514,100768093219192834,100768209183309826,100768269312851970,100768226363179010,100768217773244418,100768071744356354,100768458291412994,100768045974552578,100768204888342530,100768346622263298,101049993387311105,101050229608415233,101049555299336192,101049830178029568,101049950435409921,101049920392855552,101050014862409729,101050006272344065,101050010566721537,101049997681360897,101049581068419072,101050225314889729,101049916078096384,101049911781556224,101050023454638081,101050019159605249,101049963324964865,101049825882734592,101049538118942720,101049520939401216,101049585365286912,101049941847375872,101049971912278017,101049989090770945,101050221019987969,101049907487571968,101050032061939713,101049946141622272,101050001976131585,101049666968354816,101049976205541377,101049954730311681,101049980501688321,101049898896064512,101049933256785920,101049855948095488,101049967616262145,101049984795607041,101049928960638976,101049937551556608,101331373894795264,101612625523376130,101612522444161026,101612857451610114,101612513854226434,101612655588147202,101612711422722050,101612505264291842,101612870336512002,101612492379389954,101612500969324546,101612878926446594,101612866041544706,101612702832787458,101612646998212610,101612659883114498,101612531034095618,101612672768016386,101612535329062914,101612887516381186,101612874631479298,101612861746577410,101612745782460418,101612805912002562,101612479494488066,101612775847231490,101612496674357250,101612621228408834,101612724307623938,101612737192525826,101612638408278018,101612694242852866,101612668473049090,101612642703245314,101612780142198786,101612698537820162,101612629818343426,101612720012656642,101612848861675522,101612732897558530,101612750077427714,101612616933441538,101612883221413890,101612509559259138,101612891811348482,101612518149193730,101612634113310722,101612475199520770,101612896106315778,101612728602591234,101612470904553474,101612685652918274,101612767257296898,101612689947885570,101612483789455362,101612771552264194,101612741487493122,101612488084422658,101612677062983682,101612707127754754,101612651293179906,101612681357950978,101612664178081794,101894345323118592,101894272296353792,102175438037450754,102175627016011778,102175420857581570,102175721505292290,102175584066338818,102175725800259586,102175833174441986,102175472397189122,102175425152548866,102175579771371522,102175605541175298,102175631310979074,102175596951240706,102175691440521218,102175566886469634,102175442332418050,102175682850586626,102175571181436930,102175459512287234,102175648490848258,102175700030455810,102175661375750146,102175811699605506,102175468102221826,102175730095226882,102175622721044482,102175614131109890,102175635605946370,102175837469409282,102175678555619330,102175657080782850,102175755865030658,102175446627385346,102175669965684738,102175815994572802,102175592656273410,102175828879474690,102175665670717442,102175820289540098,102175695735488514,102175485282091010,102175824584507394,102175674260652034,102175433742483458,102175480987123714,102175798814703618,102175601246208002,102175455217319938,102175644195880962,102175841764376578,102175450922352642,102175717210324994,102175639900913666,102175687145553922,102175588361306114,102175609836142594,102175575476404226,102175429447516162,102175846059343874,102175618426077186,102175807404638210,102175463807254530,102175652785815554,102457273801768960,102738783138283520,103020026176995330,103019888738041858,103020008997126146,103019845788368898,103020236630392834,103020077716602882,103019897327976450,103020249515294722,103020180795817986,103020120666275842,103020043356864514,103019862968238082,103020142141112322,103020232335425538,103020082011570178,103020240925360130,103020223745490946,103020060536733698,103019991817256962,103020086306537474,103020017587060738,103020245220327426,103020146436079618,103020262400196610,103019910212878338,103020270990131202,103020000407191554,103019884443074562,103020103486406658,103019867263205378,103020258105229314,103019871558172674,103020069126668290,103020266695163906,103020099191439362,103019850083336194,103020039061897218,103020094896472066,103020030471962626,103020112076341250,103019858673270786,103020013292093442,103020021882028034,103020090601504770,103019893033009154,103020116371308546,103020228040458242,103020124961243138,103019854378303490,103020051946799106,103019875853139970,103020034766929922,103019996112224258,103020107781373954,103020004702158850,103020253810262018,103020155026014210,103019905917911042,103020073421635586,103020150731046914,103019880148107266,103020047651831810,103020064831700994,103020056241766402,103301539807821826,103301368009129986,103301320764489730,103301698721611778,103301591347429378,103301342239326210,103301556987691010,103301471088345090,103301578462527490,103301595642396674,103301475383312386,103301492563181570,103301385188999170,103301565577625602,103301655771938818,103301363714162690,103301741671284738,103301501153116162,103301548397756418,103301333649391618,103301372304097282,103301535512854530,103301488268214274,103301466793377794,103301720196448258,103301355124228098,103301479678279682,103301522627952642,103301724491415554,103301350829260802,103301509743050754,103301617117233154,103301587052462082,103301483973246978,103301505448083458,103301625707167746,103301707311546370,103301728786382850,103301346534293506,103301337944358914,103301582757494786,103301733081350146,103301630002135042,103301518332985346,103301599937363970,103301531217887234,103301737376317442,103301514038018050,103301325059457026,103301359419195394,103301526922919938,103301380894031874,103301329354424322,103301711606513666,103301569872592898,103301745966252034,103301715901480962,103301544102789122,103301621412200450,103301496858148866,103301552692723714,103301561282658306,103301574167560194,103583208058585090,103582963245449218,103582825806495746,103582967540416514,103582989015252994,103583036259893250,103582997605187586,103583044849827842,103583053439762434,103582812921593858,103583199468650498,103582808626626562,103583182288781314,103582804331659266,103583104979369986,103583062029697026,103582834396430338,103583010490089474,103583130749173762,103582954655514626,103583220943486978,103583027669958658,103583066324664322,103582830101463042,103583195173683202,103583100684402690,103582821511528450,103583186583748610,103582946065580034,103582971835383810,103583070619631618,103582817216561154,103582842986364930,103582795741724674,103582800036691970,103582838691397634,103582984720285698,103582976130351106,103582941770612738,103583049144795138,103583023374991362,103583190878715906,103583203763617794,103582993310220290,103583212353552386,103582855871266818,103583216648519682,103582958950481922,103583173698846722,103583031964925954,103583096389435394,103583006195122178,103583001900154882,103583092094468098,103583014785056770,103583074914598914,103582980425318402,103582847281332226,103582860166234114,103583057734729730,103582950360547330,103583019080024066,103864287896993794,103864416746012674,103864270717124610,103864683033985026,103864305076862978,103864648674246658,103864567069868034,103864665854115842,103864335141634050,103864579954769922,103864691623919618,103864575659802626,103864661559148546,103864678739017730,103864330846666754,103864687328952322,103864605724573698,103864657264181250,103864695918886914,104146119367196672,104427542793420802,104427577153159170,104427590038061058,104709065014575106,104709017769934850,104709052129673218,104990621586227201,104990810585366529,104990475556683776,104990539994497024,104990630175637505,104990917951881217,104990879282364417,104990187792891904,104990995261161473,104990204973285376,104990660240670721,104990591521325056,104990230742368256,104990548570013696,104990647355310081,104990505622044672,104990561455505408,104990913656586241,104990870693937153,104990600109359105,104990617290211329,104990638764720129,104990664536358913,104990643061260289,104990578634588160,104990565752045568,104990612998914049,104990668833554433,104990557161521152,104990874988838913,104990479851978752,104990673132322817,104990471271284738,104990170613350400,104990582930735104,104990625879490561,104990316642304000,104990651650080769,104990655946293249,104990466973958144,104990896484777985,104990604404260865,104990634469556225,104990595815571456,104990235039236096,104990492749922304,104990587225505792,105271946259791872,105553446994771970,105553421224968194,105834604138266626,105834767347023874,105834999275257858,105834758757089282,105834994980290562,105835007865192450,105834806001729538,105834793116827650,105834647087939586,105834810296696834,105834634203037698,105834745872187394,105834973505454082,105834818886631426,105834921965846530,105834930555781122,105834814591664130,105834599843299330,105834754462121986,105834625613103106,105834926260813826,105834617023168514,105834638498004994,105834750167154690,105834797411794946,105834621318135810,105834823181598722,105834763052056578,105834964915519490,105834780231925762,105834608433233922,105834977800421378,105834784526893058,105834801706762242,105834771641991170,105834788821860354,105834775936958466,106116469974237184,106397871910879234,106397927745454082,106679776410009601,106679321117523970,106679346913345536,106960877724696576,106960821890187264,107242301161930752,107523771816673282,107523827651248130,107805251115417600,108086726069059586,108086769018732546,108086696004288514,108086794788536322,108086777608667138,108086721774092290,108368239711092738,108368252595994626,108368201056387074,108368248301027330,108368196761419778,108649714687541250,108649727572443138,108649671737868290,108649676032835586,108649723277475842,108931228318564354,108931125239349250,108931211138695170,108931232613531650,108931206843727874,108930854656409602,108931155304120322,108930837476540418,108931198253793282,108931215433662466,108930966325559298,108930884721180674,108931245498433538,108931129534316546,108931241203466242,108931236908498946,108930820296671234,108930880426213378,109212995344596993,109212776300740609,109212767711920129,109212600207343616,109212630272704512,109212759120216065,109212604502638592,109212295264010240,109212784891330561,109212681812180992,109212729054920705,109212312443551744,109212737649573889,109212772005969921,109212359689895936,109212999639498753,109212690402705408,109212355393028096,109213003933024257,109212763415379969,109212703285248000,109212686106165248,109212746236887041,109212329623945216,109212716171984896,109212673220673536,109212780596953089,109212750530150401,109212711876165632,109212741940871169,109212789187018753,109212754826297345,109212724760018945,109212707581394944,109212793484214273,109212720466231296,109212441292963840,109212797797728257,109494139617148930,109494096667475970,109494152502050818,109494100962443266,109494148207083522,109775279586738178,109775245226999810,109775580234448898,109775550169677826,109775657543860226,109775653248892930,109775640363991042,109775391255887874,109775623184121858,109775262406868994,109775661838827522,109775666133794818,109775554464645122,109775309651509250,109775636069023746,109775305356541954,109775631774056450,109775670428762114,110057102455930882,110057098160963586,110057089571028994,110057050916323330,110057046621356034,110338650436993025,110338603192090624,110338504409481216,110338628961763329,110338229530787840,110338590309548032,110338693391056897,110338212350394368,110338684798173185,110338573127516160,110338195170852864,110338899546341377,110338616078827520,110338646143729665,110338676207583233,110338611783008256,110338530179547136,110338624666861569,110338500114186240,110338659027058689,110338607488237568,110338637556416513,110338259596738560,110338663322222593,110338586013007872,110338620373073920,110338667618762753,110338341199806464,110338697704636417,110338654733139969,110338255299870720,110338895251439617,110338903839866881,110338680503795713,110338689093861377,110338581719023616,110338641847713793,110338671912812545,110620043832393728,110901518795407362,111182993785880576,111464421499666434,111464494514110466,111745896476180482,111745969490624514,112027422994792450,112027225426296834,112027341390413826,112027238311198722,112027268375969794,112027216836362242,112027212541394946,112027049332637698,112027272670937090,112027087987343362,112027199656493058,112027057922572290,112027242606166018,112027444469628930,112027264081002498,112027371455184898,112027070807474178,112027229721264130,112027096577277954,112027448764596226,112027414404857858,112027195361525762,112027075102441474,112027066512506882,112027251196100610,112027208246427650,112027221131329538,112027092282310658,112027401519955970,112027053627604994,112027427289759746,112027234016231426,112027259786035202,112027375750152194,112027083692376066,112027203951460354,112027246901133314,112027255491067906,112308524309151746,112308919446142978,112308923741110274,112308528604119042,112308717582680066,112308846431698946,112308902266273794,112308897971306498,112308747647451138,112308816366927874,112308691812876290,112308562963857410,112308739057516546,112308678927974402,112308704697778178,112308726172614658,112308687517908994,112308700402810882,112308708992745474,112308532899086338,112308696107843586,112308567258824706,112308889381371906,112308571553792002,112308545783988226,112308558668890114,112308713287712770,112308550078955522,112308850726666242,112308683222941698,112308730467581954,112308674633007106,112308876496470018,112308743352483842,112308541489020930,112308721877647362,112308734762549250,112308670338039810,112590046519623680,112590012164079616,112590214024462336,112590471726497793,112590445957414913,112590398706745344,112590385826693120,112590192549756928,112590695065124865,112590570507337729,112590003569557504,112590304223166464,112590493204742145,112590390123233280,112590540441911297,112590209728774144,112590055113555968,112590729420931073,112590454546825217,112590514698387457,112590463135907841,112590158189494272,112590007864197120,112590716536160257,112590037929099264,112590536148058113,112590059410423808,112590141013491712,112590394435174400,112590025044721664,112590171075510272,112590428775448577,112590506104061953,112590424480546817,112590518978150401,112590381532708864,112590411596693504,112590407301922816,112590544735371265,112590583392632833,112590016454524928,112590205434331136,112590329993232384,112590488907546625,112590733714587649,112590029344473088,112590222614134784,112590484611858433,112589994984538112,112590201138970624,112590179665182720,112590020751130624,112590299927871488,112590403005775872,112590703653552129,112590033635377152,112590175368904704,112590531852828673,112590458840743937,112590497499774977,112590218320281600,112590188254920704,112590183958315008,112590480317480961,112590149599625216,112590196844920832,112590420186759168,112589999276163072,112590415892512768,112590145303216128,112590372941201408,112590042226688000,112590699360026625,112590476021268481,112590153893871616,112590450250678273,112590162483216384,112590725124325377,112590441661399041,112590437370101761,112590665022308353,112590166778839040,112590467432448001,112871723387256832,113153417385869313,113153430270902273,113153374433968129,113153322894622720,113153619265847297,113152979297894400,113153335780114432,113153361550114816,113153391614820353,113153009363845120,113153194063822848,113153413089329153,113153090966913024,113153219833692160,113153378728869889,113153400204099585,113153224129052672,113153211244544000,113153623561273345,113153395910836225,113153206948265984,113153344388595712,113153340076654592,113153254176587776,113153215538593792,113153408794165249,113152962117500928,113153198359576576,113152944937959424,113153181178593280,113153443158163457,113153279946653696,113153241298436096,113153425974689793,113153653606973441,113153202653364224,113153005066977280,113153365845934080,113153331486130176,113153649313447937,113153438860967937,113153387323523073,113153404500246529,113153627856502785,113153602085453825,113153176884084736,113153614970486785,113153370140180480,113153352959197184,113153593501024257,113153597790552065,113153447453196289,113153456057483265,113153645018546177,113153434565279745,113153249881292800,113153357272907776,113153421679919105,113153185474412544,113434458582286338,113434480057122818,113434608906141698,113434754935029762,113434441402417154,113434424222547970,113434716280324098,113434419927580674,113434565956468738,113434462877253634,113434578841370626,113434845129342978,113434724870258690,113434819359539202,113434604611174402,113434449992351746,113434827949473794,113434677625618434,113434656150781954,113434600316207106,113434638970912770,113434484352090114,113434626086010882,113434681920585730,113434574546403330,113434651855814658,113434686215553026,113434467172220930,113434613201108994,113434587431305218,113434596021239810,113434643265880066,113434428517515266,113434617496076290,113434729165225986,113434832244441090,113434660445749250,113434437107449858,113434690510520322,113434836539408386,113434823654506498,113434570251436034,113434806474637314,113434840834375682,113434591726272514,113434815064571906,113434647560847362,113434445697384450,113434454287319042,113434699100454914,113434621791043586,113434634675945474,113434432812482562,113434810769604610,113434694805487618,113434630380978178,113434583136337922,113434664740716546,113434797884702722,113434669035683842,113434471467188226,113434673330651138,113434720575291394,113716594971967489,113716199834714112,113716388814389249,113715894891380736,113716384518701057,113716406015557633,113716290030075904,113715955020398592,113716345864257537,113716380224323585,113716337276944385,113716371633340417,113716354453667841,113715929251315712,113716311503536128,113716397406617601,113716272848044032,113715959317266432,113716350157520897,113716341568241665,113716315799355392,113716320093601792,113716324387389441,113716603560394753,113716229900075008,113716599266869249,113716285733535744,113716328682291201,113716358747586561,113716307208765440,113716375928111105,113715912070922240,113716302912618496,113716204130009088,113716393111584769,113716363042750465,113716281439551488,113716367339290625,113716040920334336,113997593219366914,113997528794857474,113997584629432322,113997618989170690,113997769313026050,113997412830740482,113997378471002114,113997760723091458,113997515909955586,113997533089824770,113997417125707778,113997674823745538,113997550269693954,113997567449563138,113997636169039874,113997554564661250,113997670528778242,113997795082829826,113997614694203394,113997786492895234,113997576039497730,113997606104268802,113997756428124162,113997773607993346,113997382765969410,113997391355904002,113997563154595842,113997580334465026,113997704888516610,113997610399236098,113997434305576962,113997782197927938,113997524499890178,113997601809301506,113997369881067522,113997777902960642,113997631874072578,113997649053941762,113997545974726658,113997679118712834,113997520204922882,113997408535773186,113997790787862530,113997541679759362,113997399945838594,113997597514334210,113997747838189570,113997588924399618,113997430010609666,113997558859628546,113997395650871298,113997404240805890,113997571744530434,113997387060936706,113997627579105282,113997666233810946,113997421420675074,113997623284137986,113997640464007170,113997537384792066,113997765018058754,113997374176034818,113997644758974466,114279175580418048,114560809448833025,114560805154455553,114560732156461056,114560994149400577,114560384247398400,114560813744521217,114560989854040065,114560581831819264,114560551767638016,114560354181447680,114560779383799809,114560753612423169,114560616181989376,114560972674105345,114560766498373633,114560818041716737,114560783677718529,114560379950530560,114560976969007105,114560710663667712,114560770794389505,114560800858243073,114560822336749569,114560787972882433,114560796563472385,114560749317521409,114560736433668096,114560337001054208,114560714960207872,114560586128097280,114560560357965824,114561002740056065,114560719272148992,114560745023733760,114560465850466304,114560792269422593,114560762207076353,114560624764846080,114560830941036545,114560775087652865,114560740729487360,114560568947376128,114560998444826625,114560654830206976,114560629060141056,114560319821512704,114560697778176000,114561028490526721,114560573243129856,114560590422147072,114560594717245440,114560556062146560,114560577536917504,114561024197001217,114561019902099457,114560599012605952,114560727842750464,114560706369683456,114560968384774145,114842194253447168,114842121225043968,115123647745097730,115123664924966914,115123523191046146,115123329917517826,115123531780980738,115123415816863746,115123540370915330,115123484536340482,115123295557779458,115123471651438594,115123424406798338,115123488831307778,115123321327583234,115123669219934210,115123420111831042,115123480241373186,115123458766536706,115123437291700226,115123536075948034,115123334212485122,115123428701765634,115123308442681346,115123690694770690,115123269787975682,115123312737648642,115123304147714050,115123317032615938,115123497421242370,115123282672877570,115123510306144258,115123286967844866,115123501716209666,115123291262812162,115123579025620994,115123450176602114,115123574730653698,115123673514901506,115123475946405890,115123454471569410,115123432996732930,115123445881634818,115123506011176962,115123548960849922,115123441586667522,115123518896078850,115123514601111554,115123527486013442,115123299852746754,115123604795424770,115123682104836098,115123656335032322,115123677809868802,115123467356471298,115123544665882626,115123660629999618,115123570435686402,115123274082942978,115123566140719106,115123463061504002,115123278377910274,115123694989737986,115123493126275074,115123686399803394,115405212903014401,115404761931186176,115405178542555137,115405208607850497,115405255876083713,115405053990273024,115405238674653185,115405221493604353,115404890780598272,115405139890339840,115405242971848705,115405161363800064,115405157069029376,115405152772882432,115405449127133185,115405195724521473,115404809177530368,115404779111579648,115405230084587521,115405217199554561,115405200017784833,115405131299815424,115405174247653377,115405191428505601,115405444832231425,115404744751644672,115405187137208321,115405049694978048,115405234378964993,115405169953865728,115405122708307968,115405165659619328,115405079760338944,115405204313931777,115404804880662528,115405453420658689,115405247266881537,115405135593799680,115405225788375041,115686284164923394,115686262690086914,115686520388124674,115686271280021506,115686391539105794,115686254100152322,115686447373680642,115686644942176258,115686279869956098,115686266985054210,115686387244138498,115686486028386306,115686374359236610,115686434488778754,115686430193811458,115686370064269314,115686228330348546,115686417308909570,115686516093157378,115686421603876866,115686413013942274,115686236920283138,115686408718974978,115686249805185026,115686232625315842,115686224035381250,115686528978059266,115686473143484418,115686619172372482,115686632057274370,115686597697536002,115686640647208962,115686524683091970,115686258395119618,115686438783746050,115686365769302018,115686451668647938,115686623467339778,115686490323353602,115686477438451714,115686241215250434,115686245510217730,115686636352241666,115686614877405186,115686400129040386,115686468848517122,115686554747863042,115686219740413954,115686498913288194,115686382949171202,115686627762307074,115686494618320898,115686606287470594,115686460258582530,115686610582437890,115686443078713346,115686481733419010,115686464553549826,115686425898844162,115686601992503298,115686455963615234,115686378654203906,115686395834073090,115686404424007682,115968089843761152,115968154267353089,115968119907287040,115967840734019584,115968403374080001,115968115613040640,115968394785652737,115968399080554497,115968081253236736,115968072661729280,115968184332386305,115968162856435713,115968188628074497,115968145677942785,115968107022450688,115967711884607488,115968158561271809,115968180038008833,115968029713760256,115968175741796353,115968085547220992,115968197220302849,115968003943694336,115968171447025665,115968192925270017,115967759130951680,115968167152975873,115968102726303744,115968205829570561,115967754834083840,115967694705065984,115968141381926913,115968149971206145,115967729065000960,115967999648399360,115968137090629633,115968128495976449,115968124201074689,115968111317221376,116249569137197056,116531001151651842,116531014036553730,116530966791913474,116812420293328898,116812446063132674,117093654740926464,117094303280922625,117094234585563137,117094019814129664,117094024107917313,117094071353868289,117093972568571904,117094054174195713,117093903850536960,117094015519883264,117094084239228929,117094097130881025,117093740640862208,117094011224064000,117094002633146368,117093929620602880,117093611791450112,117093985454063616,117093659037794304,117094058468114433,117093594611908608,117094049878048769,117094092832112641,117093981160079360,117094294692495361,117094088534917121,117094067059818497,117094079944851457,117094028402819073,117093628971843584,117093890972516352,117094075648638977,117094006929293312,117094062763278337,117094041288769537,117093899555241984,117094298987397121,117094045584785409,117094036997472257,117093989750603776,117375396016422914,117375469030866946,117375370246619138,117656578936078338,117656763619672066,117656948303265794,117656793684443138,117657399274831874,117656780799541250,117656703490129922,117656935418363906,117656776504573954,117656553166274562,117656849519017986,117656707785097218,117656759324704770,117656544576339970,117656969778102274,117656853813985282,117656742144835586,117656566051176450,117656823749214210,117656815159279618,117656570346143746,117656596115947522,117656772209606658,117656819454246914,117656729259933698,117656806569345026,117656944008298498,117656956893200386,117656840929083394,117656931123396610,117656879583789058,117656952598233090,117656750734770178,117656712080064514,117656574641111042,117656965483134978,117656716375031810,117656720669999106,117656939713331202,117656755029737474,117656810864312322,117656583231045634,117656548871307266,117656922533462018,117656587526012930,117656561756209154,117656591820980226,117656802274377730,117656699195162626,117656797979410434,117656724964966402,117656609000849410,117656557461241858,117656845224050690,117656767914639362,117656785094508546,117656746439802882,117656733554900994,117656961188167682,117656604705882114,117656737849868290,117656690605228034,117656694900195330,117938320213344256,118219954081038337,118219816655323136,118219924014759937,118220198894239745,118219928309661697,118220194599337985,118219902539988992,118219885360906240,118219863899897856,118219790879358976,118219554647769088,118219966966661121,118219975555481601,118220220390178817,118219915426725888,118219528878686208,118219988441759745,118219872475414528,118220203187765249,118219992738955265,118219997037723649,118219511698292736,118219795162726402,118219979851694081,118220134490767361,118219881066921984,118219889657446400,118220237561987073,118219558944636928,118219945491628033,118219936904314881,118219919720972288,118220319166562305,118220241857282049,118219640547704832,118219958374957057,118219941195612161,118219906836135936,118219494518751232,118219799462084608,118219803757379584,118219962670120961,118219949784891393,118219971260710913,118219984146071553,118219911130906624,118219829527445504,118501063980089346,118501055390154754,118501287318388738,118501317383159810,118501042505252866,118501025325383682,118501283023421442,118501304498257922,118501089749893122,118501098339827714,118501059685122050,118501300203290626,118501046800220162,118501295908323330,118501313088192514,118501338857996290,118501291613356034,118501270138519554,118501094044860418,118501325973094402,118501033915318274,118501308793225218,118501068275056642,118501330268061698,118501360332832770,118501029620350978,118501343152963586,118501081159958530,118501347447930882,118501274433486850,118501106929762306,118501356037865474,118501368922767362,118501076864991234,118501038210285570,118501111224729602,118501085454925826,118501051095187458,118501102634795010,118501072570023938,118501351742898178,118501321678127106,118782646332555264,118782633445949440,118782629152817152,118782474532356096,118782465942159360,118782453057191936,118782994223005697,118782680715165696,118782672101769216,118783071557058561,118782642037391360,118783183202222081,118782659216408576,118783032884264961,118782483123011584,118782663512096768,118783007114788865,118782637742555136,118782985637920769,118783161755369473,118782620563144704,118782616266473472,118783019994972161,118782848194379776,118782667807916032,118782470238765056,118782650626605056,118782624856539136,118782654921965568,118782989929545729,119063983874768896,119064413371891713,119064379011170305,119064396190842881,119064366125744129,119064628117897217,119064305997053952,119064340356857856,119064619529469953,119064361834446849,119064417669087233,119064400485613569,119064387600252929,119064404781826049,119064421983780865,119063936628424704,119064065477836800,119064327470120960,119064353239793665,119064224392216576,119064336061038592,119064331766267904,119064623824371713,119064310291038208,119063979577901056,119064297405546496,119064348944891905,119064370421760001,119064391896793089,119064314587578368,119064383305089025,119064344651104256,119064254457577472,119064228687511552,119063919448883200,119064374715023361,119063953808818176,119064409076203521,119345806742978560,119345819627814912,119345828216504321,119345802446831616,119345836811157505,119345862576963585,119345879758536705,119345823921602561,119345888348602369,119345875462324225,119345853987880961,119345858281799681,119345841102454785,119345428785528832,119345892645797889,119345845398470657,119345866873503745,119345454554611712,119345896960557057,119345772382257152,119345815333568512,119345789564289024,119346103094607873,119345411605135360,119345780973764608,119345849691734017,119346094506180609,119345458851479552,119345703664222208,119345729434288128,119345884052914177,119345811037749248,119345540454547456,119345871167553537,119345699368927232,119346098801082369,119345785267748864,119345394425593856,119627243088314368,119908718065090560,120190145782284290,120190188731957250,120190197321891842,120190150077251586,120190201616859138,120471676593242114,120471672298274818,120471663708340226,120471625053634562,120471620758667266,120753237460516865,120753155857317888,120752915338100736,120753147265810432,120753074252480512,120753215986008065,120753198805155841,120753233165352961,120753246051106817,120753477978161153,120753224575287297,120753439348031489,120753168759783424,120753220282023937,120753211694710785,120753104317841408,120753258936467457,120753280428670977,120752786488688640,120753250345877505,120752803669082112,120753228871434241,120753181626531840,120753473684635649,120753185921302528,120752829438164992,120753160151302144,120753469389733889,120753267529351169,120753263232155649,120752769309147136,120753078547775488,120753190217121792,120752833735032832,120753164447842304,120753194511368192,120753254642089985,120753271824384001,120753177330384896,120753241757057025,120753203100057601,121034304414875648,121034725322588161,121034952954871809,121034948661346305,121034721027817473,121034716733767681,121034656603242496,121034686671421441,121034703848144897,121034699551997953,121034673781866497,121034695258734593,121034622242521088,121034678076768257,121034652307095552,121034738208866305,121034733913178113,121034579294552064,121034549229191168,121034308711743488,121034390314811392,121034708142063617,121034660898013184,121034914324807681,121034712437227521,121034742506061825,121034635128012800,121034690962718721,121034755405381633,121034261465399296,121034746801094657,121034643736494080,121034665193832448,121034244285857792,121034729618800641,121034553524486144,121034669488078848,121034944366444545,121034278645792768,121034630834028544,121034639424552960,121316097243807744,121597237200551938,121597580797935618,121597619452641282,121597228610617346,121597439064014850,121597430474080258,121597456243884034,121597434769047554,121597387524407298,121597378934472706,121597589387870210,121597198545846274,121597211430748162,121597615157673986,121597408999243778,121597602272772098,121597254380421122,121597361754603522,121597383229440002,121597202840813570,121597490603622402,121597374639505410,121597391819374594,121597348869701634,121597258675388418,121597593682837506,121597232905584642,121597469128785922,121597344574734338,121597494898589698,121597426179112962,121597370344538114,121597413294211074,121597585092902914,121597404704276482,121597224315650050,121597245790486530,121597366049570818,121597215725715458,121597194250878978,121597464833818626,121597529258328066,121597417589178370,121597499193556994,121597207135780866,121597443358982146,121597572208001026,121597606567739394,121597447653949442,121597460538851330,121597503488524290,121597340279767042,121597473423753218,121597357459636226,121597400409309186,121597353164668930,121597610862706690,121597241495519234,121597396114341890,121597421884145666,121597597977804802,121597451948916738,121597220020682754,121878995642810368,121879051492261888,122160376138825728,122160573688709121,122160530740871168,122160822816014337,122160144192700416,122160814225227777,122160646707937281,122160565100675072,122160560804855808,122160543643336704,122160603754987521,122160380433334272,122160393318563840,122160290221654016,122160556527648768,122160419088433152,122160204321718272,122160848568188929,122160629525643265,122160208618586112,122160586578264065,122160401908105216,122160406203006976,122160479201394688,122160384729153536,122160612344070145,122160161372241920,122160797045293057,122160638115708929,122160844273287169,122160453431328768,122160440553177088,122160633820020737,122160818520588289,122160590869561345,122160569394921472,122160625229430785,122160449136033792,122160599458840577,122160642412904449,122160608048906241,122160827111243777,122160852861714433,122160577983610881,122160792757010433,122160595165577217,122160522149363712,122160397614317568,122160552213938176,122160616640610305,122160414793334784,122160801340194817,122160423383793664,122160655312224257,122160535034855424,122160410499284992,122160620934660097,122160178552635392,122160539331395584,122441851109113858,122441919828590594,122441640655716354,122441683605389314,122441795274539010,122441868288983042,122441782389637122,122441889763819522,122441670720487426,122441790979571714,122441644950683650,122441773799702530,122441816749375490,122441881173884930,122441653540618242,122441821044342786,122442031497740290,122441954188328962,122441876878917634,122441838224211970,122442027202772994,122441803864473602,122442022907805698,122441636360749058,122442035792707586,122441778094669826,122441786684604418,122441679310422018,122442005727936514,122441829634277378,122441623475847170,122441799569506306,122441657835585538,122441898353754114,122441885468852226,122441632065781762,122442018612838402,122442040087674882,122441894058786818,122441825339310082,122441833929244674,122441627770814466,122441859699048450,122441855404081154,122441842519179266,122441812454408194,122441769504735234,122442014317871106,122441863994015746,122441872583950338,122442010022903810,122441765209767938,122441997138001922,122441666425520130,122441846814146562,122441662130552834,122441619180879874,122441808159440898,122441915533623298,122441649245650946,122442044382642178,122441928418525186,122441924123557890,122723330382430210,122723403396874242,122723472116350978,122723158583738370,122723265957920770,122723364742168578,122723429166678018,122723502181122050,122723485001252866,122723356152233986,122723270252888066,122723313202561026,122723119929032706,122723141403869186,122723515066023938,122723278842822658,122723360447201282,122723248778051586,122723321792495618,122723240188116994,122723128518967298,122723480706285570,122723497886154754,122723274547855362,122723506476089346,122723154288771074,122723283137789954,122723244483084290,122723098454196226,122723253073018882,122723347562299394,122723326087462914,122723343267332098,122723107044130818,122723489296220162,122723137108901890,122723257367986178,122723317497528322,122723094159228930,122723394806939650,122723334677397506,122723261662953474,122723296022691842,122723493591187458,122723373332103170,122723519360991234,122723124224000002,122723304612626434,122723145698836482,122723102749163522,122723132813934594,122723115634065410,122723369037135874,122723111339098114,122723291727724546,122723510771056642,122723390511972354,122723338972364802,122723308907593730,122723300317659138,122723287432757250,122723351857266690,122723399101906946,123004951399235584,123004895549652992,123286370526363648,123286426376011776,123567763902234626,123567751017332738,123567720952561666,123567540563935234,123567931405959170,123567944290861058,123567669412954114,123567536268967938,123567527679033346,123567768197201922,123567549153869826,123567742427398146,123567665117986818,123567776787136514,123567927110991874,123567746722365442,123567553448837122,123567781082103810,123567703772692482,123567682297856002,123567759607267330,123567824031776770,123567699477725186,123567562038771714,123567815441842178,123567733837463554,123567918521057282,123567922816024578,123567566333739010,123567789672038402,123567716657594370,123567772492169218,123567523384066050,123567897046220802,123567914226089986,123567544858902530,123567695182757890,123567819736809474,123567557743804418,123567828326744066,123567729542496258,123567673707921410,123567570628706306,123567935700926466,123567686592823298,123567755312300034,123567531974000642,123567708067659778,123567793967005698,123567583513608194,123567939995893762,123567579218640898,123567678002888706,123567909931122690,123567712362627074,123567785377071106,123567905636155394,123567519089098754,123567690887790594,123567798261972994,123567725247528962,123567738132430850,123567854096547842,123849294711226370,123849320481030146,124130584990121986,124130769673715714,124130825508290562,124130782558617602,124130567810252802,124130799738486786,124130546335416322,124130773968683010,124130563515285506,124130851278094338,124130816918355970,124130533450514434,124130786853584898,124130791148552194,124130576400187394,124130821213323266,124130550630383618,124130606464958466,124130829803257858,124130846983127042,124130597875023874,124130610759925762,124130804033454082,124130868457963522,124130559220318210,124130537745481730,124130838393192450,124130593580056578,124130795443519490,124130808328421378,124130812623388674,124130572105220098,124130842688159746,124130524860579842,124130542040449026,124130554925350914,124130580695154690,124130602169991170,124130855573061634,124130589285089282,124130859868028930,124130529155547138,124412270419378178,124412326253953026,124693801230729218,124693745396154370,124975220372930562,124975276207505410,125256699658436610,125256746903076866,125256738313142274,125256751198044162,125256695363469314,125538170340376578,125538226174951426,125538174635343874,125538221879984130,125538213290049538,125819705438109696,125819765566799873,125819744092160000,125819464918892544,125819353249873920,125819696846602240,125819714028634112,125819726911176704,125819701154676738,125819791337848833,125819379018956800,125819795631898625,125819761275502593,125819383315824640,125819628128567296,125819799926669313,125819787041308673,125819748385947649,125819782746144769,125820156433006593,125819817110142977,125820018970525697,125819653898633216,125819318889938944,125819812812947457,125820027558952961,125819336069480448,125819769862815745,125819808517259265,125819830015557633,125819739797913600,125819709732093952,125819778452226049,125820023265427457,125819804222881793,125819752680849409,125819623833272320,125819774156079105,125819731207323648,125819735502094336,125819821405175809,126101296381886465,126101493947236353,126101103105277952,126101206184034304,126101201887887360,126101257722855425,126101227657560065,126101287789658113,126101210478804992,126101292086853633,126101262018019329,126101279199592449,126101236252213249,126101214774624256,126101498242138113,126101176131190786,126101304992399361,126100939895603200,126101283493969921,126101627114881025,126100793866649600,126101253428936705,126101266314559489,126101223362658305,126101244839526401,126101171823312896,126100811046191104,126101219068870656,126101249132789761,126101240543510529,126101189005344768,126101184708804608,126101098809982976,126100858292535296,126101502535663617,126100853995667456,126100828226584576,126101274903379969,126101128875343872,126101270608609281,126101180414820352,126382333269245952,126382715520221185,126382689751334912,126382728405647361,126382676864598016,126382719816237057,126382578081988608,126382749880090625,126382685455515648,126382732699566081,126382414872313856,126382303203295232,126382779969175553,126382771358597121,126382711228923905,126382741291270145,126382754176303105,126382973218848769,126382758470680577,126382681160744960,126382603852054528,126382646800023552,126382655391531008,126382968923947009,126382767063564289,126382724109500417,126382659685515264,126382268843360256,126382977512374273,126382762766368769,126382286022901760,126382694045581312,126382702634270721,126382328972378112,126382663982055424,126382573786693632,126382745585319937,126382698339368961,126382736994729985,126664048763404288,126664242040274945,126664216267980801,126664078828765184,126664211971440641,126664053058699264,126663760999612416,126664143270707200,126664392384905217,126664396672663553,126663984356524032,126664138958766080,126664207676276737,126664448195559425,126664156155019264,126664151841308672,126664160432226304,126663975766196224,126664400967565313,126664023011164160,126664186205634561,126664014420705280,126664426738614273,126664169022291968,126664134662225920,126664177610981377,126664199086211073,126664229153013761,126664194792947713,126664018715803648,126663743820070912,126663808245956608,126663778180005888,126664130368241664,126663992945934336,126664190496931841,126664005830377472,126663889849024512,126663980060704768,126663997241688064,126664452489084929,126664246335307777,126664010126655488,126664254939594753,126664001535475712,126664422443384833,126664413852598273,126664164728045568,126664173316079617,126664121776734208,126664418147958785,126663803949088768,126664443900657665,126664237743079425,126664220562030593,126664203382358017,126664040180547584,126664233447391233,126664224856801281,126945223103283202,126945523750993922,126945489391255554,126945455031517186,126945605355372546,126945218808315906,126945519456026626,126945433556680706,126945429261713410,126945416376811522,126945407786876930,126945635420143618,126945283232825346,126945270347923458,126945626830209026,126945463621451778,126945472211386370,126945403491909634,126945373427138562,126945485096288258,126945631125176322,126945442146615298,126945244578119682,126945394901975042,126945446441582594,126945459326484482,126945240283152386,126945613945307138,126945622535241730,126945382017073154,126945618240274434,126945424966746114,126945644010078210,126945639715110914,126945266052956162,126945596765437954,126945480801320962,126945497981190146,126945390607007746,126945261757988866,126945437851648002,126945399196942338,126945248873086978,126945386312040450,126945377722105858,126945609650339842,126945515161059330,126945553815764994,126945253168054274,126945369132171266,126945450736549890,126945412081844226,126945364837203970,126945227398250498,126945420671778818,126945467916419074,126945235988185090,126945493686222850,126945528045961218,126945476506353666,126945257463021570,126945231693217794,126945278937858050,127226710953033728,127227149039632385,127227196288729089,127226955783798784,127226960080076800,127227166221402113,127227376692035585,127227101794729984,127227170515451905,127227179106435073,127226758199377920,127226693773492224,127227402442506241,127227187696500737,127226947195109376,127227003012120576,127227153335779329,127227093224128512,127227174810222593,127227393854078977,127226998716825600,127226951488897024,127226930014126080,127227204893016065,127227183400812545,127227088912187392,127227350920986625,127226990133968896,127226728133427200,127227372396806145,127227363806019585,127227127564402689,127226753902510080,127227140450353153,127227106108440576,127226942899355648,127227071730155520,127227191993696257,127227114681466880,127227398148980737,127226972964585472,127227144746369025,127227346626084865,127227136159055873,127227084615647232,127227161924861953,127227080321662976,127227118975713280,127227110385647616,127227157629698049,127227123269500929,127226839802445824,127227342338392065,127226925719617536,127226934309945344,127227028782186496,127226964374126592,127227368101380097,127226968669224960,127508576771440640,127508821602795521,127508838782730241,127508671265439745,127508636901572609,127508228879220736,127508602541113345,127508443645935616,127508615427063809,127508679869726721,127508568200839168,127508430760509440,127508422171820032,127508619723079681,127508409286656000,127508666970406913,127508632606408705,127508417876066304,127508662673211393,127508847373516801,127508628312489985,127508233176088576,127508404990836736,127508645492162561,127508624016343041,127508649786933249,127508314779156480,127508426465607680,127508439350837248,127508447941296128,127508658377523201,127508589658177536,127508593952423936,127508203110137856,127508555298373632,127508473693536256,127508598246211585,127508185929744384,127508435056787456,127508465110679552,127508585362358272,127508843078090753,127508168750202880,127508559592357888,127508825897697281,127508868830789633,127508400696328192,127508654083145729,127508873125691393,127508851668746241,127508877419216897,127508503758897152,127508817315168257,127508581085151232,127508563888898048,127508641198112769,127508477988831232,127508611135766529,127508546706866176,127790026003972096,128071445130444800,128071500968427522,128352975957458944,128634395083866112,128634450921652226,128915925910945792,128915870060576768,129197044392525826,129197237666054146,129197194716381186,129197293500628994,129197314975465474,129197263435857922,129197426644615170,129197070162329602,129197220486184962,129197040097558530,129197061572395010,129197048687493122,129197319270432770,129197181831479298,129197422349647874,129197211896250370,129197405169778690,129197031507623938,129197409464745986,129197233371086850,129197207601283074,129197229076119554,129197254845923330,129197327860367362,129197250550956034,129197297795596290,129197216191217666,129197190421413890,129197065867362306,129197430939582466,129197083047231490,129197435234549762,129197246255988738,129197259140890626,129197439529517058,129197267730825218,129197177536512002,129197022917689346,129197323565400066,129197272025792514,129197418054680578,129197168946577410,129197027212656642,129197413759713282,129197280615727106,129197241961021442,129197057277427714,129197186126446594,129197173241544706,129197443824484354,129197018622722050,129197164651610114,129197396579844098,129197284910694402,129197224781152258,129197078752264194,129197199011348482,129197276320759810,129197203306315778,129197052982460418,129197035802591234,129197289205661698,129197353630171138,129478695462764546,129478897326227458,129478669692960770,129478888736292866,129478755592306690,129478798541979650,129478691167797250,129478648218124290,129478789952045058,129478686872829954,129478523664072706,129478742707404802,129478506484203522,129478699757731842,129478497894268930,129478510779170818,129478880146358274,129478673987928066,129478893031260162,129478682577862658,129478536548974594,129478772772175874,129478553728843778,129478768477208578,129478661103026178,129478905916162050,129478751297339394,129478704052699138,129478764182241282,129478515074138114,129478502189236226,129478721232568322,129478914506096642,129478729822502914,129478540843941890,129478545138909186,129478708347666434,129478678282895362,129478747002372098,129478910211129346,129478519369105410,129478828606750722,129478734117470210,129478656808058882,129478884441325570,129478725527535618,129478712642633730,129478665397993474,129478532254007298,129478759887273986,129478871556423682,129478493599301634,129478738425479168,129478652513091586,129478643923156994,129478527959040002,129478639628189698,129478918801063938,129478716937601026,129478901621194754,129478794247012354,129478558023811074,129478802836946946,129760179029606402,129760226274246658,129759981461110786,129760118900064258,129760204799410178,129760230569213954,129760153259802626,129760007230914562,129760183324573698,129760221979279362,129760191914508290,129760020115816450,129760277813854210,129760015820849154,129760127489998850,129760157554769922,129760234864181250,129760385188036610,129759994346012674,129760136079933442,129760114605096962,129759990051045378,129760346533330946,129760269223919618,129760209094377474,129759998640979970,129760196209475586,129760011525881858,129760123195031554,129759968576208898,129760028705751042,129760393777971202,129760243454115842,129760174734639106,129760239159148546,129760217684312066,129760247749083138,129760161849737218,129760131784966146,129760363713200130,129760359418232834,129760303583657986,129760187619540994,129759972871176194,129760170439671810,129760002935947266,129760264928952322,129760148964835330,129760213389344770,129760144669868034,129760376598102018,129760140374900738,129760273518886914,129760200504442882,129760166144704514,129760355123265538,129759985756078082,129760380893069314,129760033000718338,129759977166143490,129760372303134722,129760389483003906,129760368008167426,130041752779227136,130041722731692032,130041709847183360,130041692666462208,130041778549293056,130041589569552384,130042113573126145,130041877331509249,130041834382753792,130041838679293952,130041903102885889,130041941760802817,130041705550905344,130041890217459713,130041868742819840,130041907396804609,130041443540598784,130041898806738945,130041739901075456,130042092105891841,130041937463607297,130042122163912705,130041860152754176,130041946055835649,130041842991235072,130041821497262080,130041855875547136,130041714141233152,130041911691968513,130041701256003584,130041503669616640,130041477900533760,130041928873541633,130042096393191425,130041679781232640,130041954660122625,130042117868486657,130041718436331520,130041873036607489,130041684077051904,130041864448573440,130041885926162433,130041924577329153,130041675486724096,130041933167919105,130041748483932160,130041696962215936,130041507966484480,130042126459142145,130041830088769536,130042147916087297,130042152209612801,130041460720140288,130042100688093185,130041920282558465,130041915988508673,130041851561836544,130041894513475585,130042143621185537,130323373783449601,130323622892797953,130323597140623361,130323421032546305,130323326538547200,130323339425284096,130322982943195136,130323399554039809,130323171938926592,130323592845197313,130323395259269121,130323365194170369,130323408144629761,130323184823894016,130323227755937792,130323403850252289,130323313656004608,130323571369902081,130323064546263040,130323197708402688,130323575664803841,130322918517309440,130323330852257792,130323167643172864,130323567082668033,130323382373515265,130323360902873089,130323214877786112,130323618597896193,130323309359464448,130323429636833281,130323253526003712,130323601435852801,130323296473972736,130323150463434752,130323348013318145,130323335129464832,130323305065480192,130323416737513473,130322978646327296,130323343719530496,130323317967945728,130323390965219329,130323369490186241,130322935696850944,130323176232714240,130323189117943808,130323378079596545,130323223460642816,130322952877244416,130323627186323457,130323193413042176,130323412440317953,130323154757943296,130323386668679169,130323159053762560,130323588549836801,130323180527616000,130323352308219905,130604792951341056,130885928599748608,130885868470730752,130886358098051073,130886246427394048,130886143366463488,130886100416856064,130886285082886144,130886117596594176,130886362393739265,130886259312885760,130886203479425024,130886366690934785,130886525618225153,130886289378705408,130886014499684352,130885902830665728,130886126186135552,130886572846219265,130886280805679104,130886121892347904,130886340918640641,130886538503258113,130886551389274113,130886315147591681,130886547094044673,130886147661824000,130886297966739457,130886370985967617,130886379590254593,130886345212690433,130886336622100481,130886104711364608,130886328033017857,130886255018901504,130886263609425920,130886177709359104,130886173414064128,130886323736870913,130886353803673601,130886276491968512,130886349507461121,130886521323323393,130886267921367040,130885885650272256,130886139071365120,130886164831207424,130886109007183872,130886517036220417,130885932896616448,130886302261641217,130886134777315328,130886319443607553,130886293672951808,130886568551317505,130886130481037312,130886332326936577,130886310856294401,130886542798618625,130886577139744769,131167502374010882,131167545323683842,131167369230024706,131167575388454914,131167579683422210,131167553913618434,131167403589763074,131167352050155522,131167639812964354,131167583978389506,131167592568324098,131167394999828482,131167566798520322,131167360640090114,131167588273356802,131167730007277570,131167596863291394,131167622633095170,131167377819959298,131167618338127874,131167678467670018,131167644107931650,131167648402898946,131167614043160578,131167489489108994,131167571093487618,131167390704861186,131167510963945474,131167386409893890,131167519553880066,131167373524992002,131167528143814658,131167768661983234,131167536733749250,131167652697866242,131167506668978178,131167558208585730,131167721417342978,131167356345122818,131167760072048642,131167498079043586,131167347755188226,131167549618651138,131167562503553026,131167541028716546,131167609748193282,131167407884730370,131167343460220930,131167532438781954,131167738597212162,131167747187146754,131167734302244866,131167515258912770,131167755777081346,131167751482114050,131167601158258690,131167523848847362,131167764367015938,131167364935057410,131167382114926594,131167493784076290,131167605453225986,131167742892179458,131449028890132482,131449058954903554,131449003120328706,131448882861244418,131449213573726210,131449063249870850,131449067544838146,131449097609609218,131448848501506050,131448878566277122,131449024595165186,131449217868693506,131449016005230594,131449230753595394,131449050364968962,131449046070001666,131449037480067074,131449011710263298,131449209278758914,131448818436734978,131449123379412994,131448822731702274,131449204983791618,131448973055557634,131449226458628098,131449114789478402,131448981645492226,131448964465623042,131448844206538754,131448827026669570,131448985940459522,131448865681375234,131449222163660802,131448977350524930,131449089019674626,131449080429740034,131448835616604162,131449007415296002,131449243638497282,131448839911571458,131448990235426818,131448968760590338,131449076134772738,131448994530394114,131448852796473346,131449239343529986,131449093314641922,131449119084445698,131449041775034370,131449153444184066,131448857091440642,131449084724707330,131448831321636866,131449127674380290,131448861386407938,131449235048562690,131449071839805442,131448869976342530,131449033185099778,131449196393857026,131448998825361410,131449054659936258,131449020300197890,131730293413249026,131730456622006274,131730533931417602,131730508161613826,131730521046515714,131730555406254082,131730512456581122,131730538226384898,131730478096842754,131730602650894338,131730499571679234,131730529636450306,131730344952856578,131730486686777346,131730460916973570,131730688550240258,131730705730109442,131730332067954690,131730357837758466,131730563996188674,131730336362921986,131730503866646530,131730323478020098,131730482391810050,131730439442137090,131730671370371074,131730297708216322,131730473801875458,131730490981744642,131730452327038978,131730310593118210,131730546816319490,131730542521352194,131730443737104386,131730516751548418,131730701435142146,131730679960305666,131730568291155970,131730572586123266,131730598355927042,131730302003183618,131730697140174850,131730525341483010,131730684255272962,131730353542791170,131730495276711938,131730319183052802,131730718615011330,131730465211940866,131730551111286786,131730559701221378,131730314888085506,131730469506908162,131730628420698114,131730594060959746,131730692845207554,131730340657889282,131730589765992450,131730714320044034,131730448032071682,131730710025076738,131730327772987394,131730306298150914,132011961663291394,132011918713618434,132011970253225986,132012193591525378,132011948778389506,132011940188454914,132012026087800834,132011807044468738,132011802749501442,132012146346885122,132011953073356802,132012163526754306,132011983138127874,132012030382768130,132011789864599554,132011931598520322,132012180706623490,132011965958258690,132012000317997058,132012069037473794,132011944483422210,132012185001590786,132011811339436034,132011987433095170,132012176411656194,132011776979697666,132011832814272514,132012189296558082,132011815634403330,132011781274664962,132011819929370626,132012172116688898,132012004612964354,132011974548193282,132011978843160578,132012159231787010,132012064742506498,132012103397212162,132011927303553026,132012038972702722,132011914418651138,132012047562637314,132011935893487618,132011991728062466,132012008907931650,132012013202898946,132012043267670018,132011785569632258,132011772684730370,132011957368324098,132011798454534146,132011996023029762,132012154936819714,132012073332441090,132012021792833538,132012017497866242,132012167821721602,132011794159566850,132012077627408386,132011923008585730,132011768389763074,132012034677735426,132011828519305218,];


fn _semaction_rule_0_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> primary_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  primary_expression::IDENTIFIER_0(_item0_) }

fn _semaction_rule_1_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> primary_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_72(_x_72)=parser.popstack().value { _x_72 } else {<constant<'lt>>::default()};  primary_expression::primary_expression_1(parser.lbx(0,_item0_)) }

fn _semaction_rule_2_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> primary_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_73(_x_73)=parser.popstack().value { _x_73 } else {<stringnt<'lt>>::default()};  primary_expression::primary_expression_2(parser.lbx(0,_item0_)) }

fn _semaction_rule_3_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> primary_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  primary_expression::primary_expression_3(parser.lbx(1,_item1_)) }

fn _semaction_rule_4_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> primary_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_74(_x_74)=parser.popstack().value { _x_74 } else {<generic_selection<'lt>>::default()};  primary_expression::primary_expression_4(parser.lbx(0,_item0_)) }

fn _semaction_rule_5_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> constant<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } else {<i32>::default()};  constant::I_CONSTANT_5(_item0_) }

fn _semaction_rule_6_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> constant<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_7(_x_7)=parser.popstack().value { _x_7 } else {<f64>::default()};  constant::F_CONSTANT_6(_item0_) }

fn _semaction_rule_7_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> constant<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  constant::ENUMERATION_CONSTANT_7(_item0_) }

fn _semaction_rule_8_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> stringnt<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  stringnt::STRING_LITERAL_8(_item0_) }

fn _semaction_rule_9_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> stringnt<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  stringnt::FUNC_NAME }

fn _semaction_rule_10_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> generic_selection<'lt> {
let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_75(_x_75)=parser.popstack().value { _x_75 } else {<generic_assoc_list<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  generic_selection {_item2_:parser.lbx(2,_item2_), _item4_:parser.lbx(4,_item4_), } }

fn _semaction_rule_11_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> generic_assoc_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_76(_x_76)=parser.popstack().value { _x_76 } else {<generic_association<'lt>>::default()};  generic_assoc_list::generic_assoc_list_11(parser.lbx(0,_item0_)) }

fn _semaction_rule_12_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> generic_assoc_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_76(_x_76)=parser.popstack().value { _x_76 } else {<generic_association<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_75(_x_75)=parser.popstack().value { _x_75 } else {<generic_assoc_list<'lt>>::default()};  generic_assoc_list::generic_assoc_list_12(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_13_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> generic_association<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_55(_x_55)=parser.popstack().value { _x_55 } else {<type_name<'lt>>::default()};  generic_association::generic_association_13(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_14_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> generic_association<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  generic_association::DEFAULT_14(parser.lbx(2,_item2_)) }

fn _semaction_rule_15_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_9(_x_9)=parser.popstack().value { _x_9 } else {<primary_expression<'lt>>::default()};  postfix_expression::postfix_expression_15(parser.lbx(0,_item0_)) }

fn _semaction_rule_16_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<postfix_expression<'lt>>::default()};  postfix_expression::postfix_expression_16(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_17_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<postfix_expression<'lt>>::default()};  _item0_ }

fn _semaction_rule_18_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_11(_x_11)=parser.popstack().value { _x_11 } else {<argument_expression_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<postfix_expression<'lt>>::default()};  postfix_expression::postfix_expression_18(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_19_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<postfix_expression<'lt>>::default()};  postfix_expression::postfix_expression_19(parser.lbx(0,_item0_),_item2_) }

fn _semaction_rule_20_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<postfix_expression<'lt>>::default()};  postfix_expression::postfix_expression_20(parser.lbx(0,_item0_),_item2_) }

fn _semaction_rule_21_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<postfix_expression<'lt>>::default()};  _item0_ }

fn _semaction_rule_22_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<postfix_expression<'lt>>::default()};  _item0_ }

fn _semaction_rule_23_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> () {
<()>::default()}

fn _semaction_rule_24_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> () {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; <()>::default()}

fn _semaction_rule_25_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item6_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_59(_x_59)=parser.popstack().value { _x_59 } else {<initializer_list<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_55(_x_55)=parser.popstack().value { _x_55 } else {<type_name<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  postfix_expression::postfix_expression_25(parser.lbx(1,_item1_),parser.lbx(4,_item4_),_item5_) }

fn _semaction_rule_26_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> argument_expression_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()};  argument_expression_list::argument_expression_list_26(parser.lbx(0,_item0_)) }

fn _semaction_rule_27_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> argument_expression_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_11(_x_11)=parser.popstack().value { _x_11 } else {<argument_expression_list<'lt>>::default()};  argument_expression_list::argument_expression_list_27(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_28_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<postfix_expression<'lt>>::default()};  unary_expression::unary_expression_28(parser.lbx(0,_item0_)) }

fn _semaction_rule_29_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<unary_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  _item1_ }

fn _semaction_rule_30_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<unary_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  _item1_ }

fn _semaction_rule_31_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_14(_x_14)=parser.popstack().value { _x_14 } else {<cast_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_13(_x_13)=parser.popstack().value { _x_13 } else {<unary_operator<'lt>>::default()};  unary_expression::unary_expression_31(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_32_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<unary_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  _item1_ }

fn _semaction_rule_33_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_55(_x_55)=parser.popstack().value { _x_55 } else {<type_name<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  unary_expression::SIZEOF_33(parser.lbx(2,_item2_)) }

fn _semaction_rule_34_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_55(_x_55)=parser.popstack().value { _x_55 } else {<type_name<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  unary_expression::ALIGNOF_34(parser.lbx(2,_item2_)) }

fn _semaction_rule_35_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  unary_operator::Amp }

fn _semaction_rule_36_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  unary_operator::Star }

fn _semaction_rule_37_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  unary_operator::unary_operator_37 }

fn _semaction_rule_38_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  unary_operator::unary_operator_38 }

fn _semaction_rule_39_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  unary_operator::unary_operator_39 }

fn _semaction_rule_40_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  unary_operator::Bang }

fn _semaction_rule_41_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> cast_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<unary_expression<'lt>>::default()};  cast_expression::cast_expression_41(parser.lbx(0,_item0_)) }

fn _semaction_rule_42_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> cast_expression<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_14(_x_14)=parser.popstack().value { _x_14 } else {<cast_expression<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_55(_x_55)=parser.popstack().value { _x_55 } else {<type_name<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  cast_expression::cast_expression_42(parser.lbx(1,_item1_),parser.lbx(3,_item3_)) }

fn _semaction_rule_43_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> multiplicative_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_14(_x_14)=parser.popstack().value { _x_14 } else {<cast_expression<'lt>>::default()};  multiplicative_expression::multiplicative_expression_43(parser.lbx(0,_item0_)) }

fn _semaction_rule_44_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> multiplicative_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_14(_x_14)=parser.popstack().value { _x_14 } else {<cast_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } else {<multiplicative_expression<'lt>>::default()};  multiplicative_expression::multiplicative_expression_44(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_45_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> multiplicative_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_14(_x_14)=parser.popstack().value { _x_14 } else {<cast_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } else {<multiplicative_expression<'lt>>::default()};  multiplicative_expression::multiplicative_expression_45(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_46_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> multiplicative_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_14(_x_14)=parser.popstack().value { _x_14 } else {<cast_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } else {<multiplicative_expression<'lt>>::default()};  multiplicative_expression::multiplicative_expression_46(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_47_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> additive_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } else {<multiplicative_expression<'lt>>::default()};  additive_expression::additive_expression_47(parser.lbx(0,_item0_)) }

fn _semaction_rule_48_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> additive_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } else {<multiplicative_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_16(_x_16)=parser.popstack().value { _x_16 } else {<additive_expression<'lt>>::default()};  additive_expression::additive_expression_48(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_49_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> additive_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } else {<multiplicative_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_16(_x_16)=parser.popstack().value { _x_16 } else {<additive_expression<'lt>>::default()};  additive_expression::additive_expression_49(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_50_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> shift_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_16(_x_16)=parser.popstack().value { _x_16 } else {<additive_expression<'lt>>::default()};  shift_expression::shift_expression_50(parser.lbx(0,_item0_)) }

fn _semaction_rule_51_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> shift_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_16(_x_16)=parser.popstack().value { _x_16 } else {<additive_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_17(_x_17)=parser.popstack().value { _x_17 } else {<shift_expression<'lt>>::default()};  shift_expression::shift_expression_51(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_52_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> shift_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_16(_x_16)=parser.popstack().value { _x_16 } else {<additive_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_17(_x_17)=parser.popstack().value { _x_17 } else {<shift_expression<'lt>>::default()};  shift_expression::shift_expression_52(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_53_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_17(_x_17)=parser.popstack().value { _x_17 } else {<shift_expression<'lt>>::default()};  relational_expression::relational_expression_53(parser.lbx(0,_item0_)) }

fn _semaction_rule_54_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_17(_x_17)=parser.popstack().value { _x_17 } else {<shift_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_18(_x_18)=parser.popstack().value { _x_18 } else {<relational_expression<'lt>>::default()};  relational_expression::relational_expression_54(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_55_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_17(_x_17)=parser.popstack().value { _x_17 } else {<shift_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_18(_x_18)=parser.popstack().value { _x_18 } else {<relational_expression<'lt>>::default()};  relational_expression::relational_expression_55(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_56_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_17(_x_17)=parser.popstack().value { _x_17 } else {<shift_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_18(_x_18)=parser.popstack().value { _x_18 } else {<relational_expression<'lt>>::default()};  relational_expression::relational_expression_56(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_57_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_17(_x_17)=parser.popstack().value { _x_17 } else {<shift_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_18(_x_18)=parser.popstack().value { _x_18 } else {<relational_expression<'lt>>::default()};  relational_expression::relational_expression_57(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_58_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> equality_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_18(_x_18)=parser.popstack().value { _x_18 } else {<relational_expression<'lt>>::default()};  equality_expression::equality_expression_58(parser.lbx(0,_item0_)) }

fn _semaction_rule_59_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> equality_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_18(_x_18)=parser.popstack().value { _x_18 } else {<relational_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_19(_x_19)=parser.popstack().value { _x_19 } else {<equality_expression<'lt>>::default()};  equality_expression::equality_expression_59(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_60_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> equality_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_18(_x_18)=parser.popstack().value { _x_18 } else {<relational_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_19(_x_19)=parser.popstack().value { _x_19 } else {<equality_expression<'lt>>::default()};  equality_expression::equality_expression_60(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_61_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> and_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_19(_x_19)=parser.popstack().value { _x_19 } else {<equality_expression<'lt>>::default()};  and_expression::and_expression_61(parser.lbx(0,_item0_)) }

fn _semaction_rule_62_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> and_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_19(_x_19)=parser.popstack().value { _x_19 } else {<equality_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_20(_x_20)=parser.popstack().value { _x_20 } else {<and_expression<'lt>>::default()};  and_expression::and_expression_62(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_63_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> exclusive_or_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_20(_x_20)=parser.popstack().value { _x_20 } else {<and_expression<'lt>>::default()};  exclusive_or_expression::exclusive_or_expression_63(parser.lbx(0,_item0_)) }

fn _semaction_rule_64_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> exclusive_or_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_20(_x_20)=parser.popstack().value { _x_20 } else {<and_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_21(_x_21)=parser.popstack().value { _x_21 } else {<exclusive_or_expression<'lt>>::default()};  exclusive_or_expression::exclusive_or_expression_64(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_65_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> inclusive_or_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_21(_x_21)=parser.popstack().value { _x_21 } else {<exclusive_or_expression<'lt>>::default()};  inclusive_or_expression::inclusive_or_expression_65(parser.lbx(0,_item0_)) }

fn _semaction_rule_66_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> inclusive_or_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_21(_x_21)=parser.popstack().value { _x_21 } else {<exclusive_or_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_22(_x_22)=parser.popstack().value { _x_22 } else {<inclusive_or_expression<'lt>>::default()};  inclusive_or_expression::inclusive_or_expression_66(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_67_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> logical_and_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_22(_x_22)=parser.popstack().value { _x_22 } else {<inclusive_or_expression<'lt>>::default()};  logical_and_expression::logical_and_expression_67(parser.lbx(0,_item0_)) }

fn _semaction_rule_68_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> logical_and_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_22(_x_22)=parser.popstack().value { _x_22 } else {<inclusive_or_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_23(_x_23)=parser.popstack().value { _x_23 } else {<logical_and_expression<'lt>>::default()};  logical_and_expression::logical_and_expression_68(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_69_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> logical_or_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_23(_x_23)=parser.popstack().value { _x_23 } else {<logical_and_expression<'lt>>::default()};  logical_or_expression::logical_or_expression_69(parser.lbx(0,_item0_)) }

fn _semaction_rule_70_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> logical_or_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_23(_x_23)=parser.popstack().value { _x_23 } else {<logical_and_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_24(_x_24)=parser.popstack().value { _x_24 } else {<logical_or_expression<'lt>>::default()};  logical_or_expression::logical_or_expression_70(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_71_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> conditional_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_24(_x_24)=parser.popstack().value { _x_24 } else {<logical_or_expression<'lt>>::default()};  conditional_expression::conditional_expression_71(parser.lbx(0,_item0_)) }

fn _semaction_rule_72_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> conditional_expression<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_25(_x_25)=parser.popstack().value { _x_25 } else {<conditional_expression<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_24(_x_24)=parser.popstack().value { _x_24 } else {<logical_or_expression<'lt>>::default()};  conditional_expression::conditional_expression_72(parser.lbx(0,_item0_),parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

fn _semaction_rule_73_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_25(_x_25)=parser.popstack().value { _x_25 } else {<conditional_expression<'lt>>::default()};  assignment_expression::assignment_expression_73(parser.lbx(0,_item0_)) }

fn _semaction_rule_74_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_27(_x_27)=parser.popstack().value { _x_27 } else {<assignment_operator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<unary_expression<'lt>>::default()};  assignment_expression::assignment_expression_74(parser.lbx(0,_item0_),parser.lbx(1,_item1_),parser.lbx(2,_item2_)) }

fn _semaction_rule_75_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::Eq1 }

fn _semaction_rule_76_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::MUL_ASSIGN }

fn _semaction_rule_77_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::DIV_ASSIGN }

fn _semaction_rule_78_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::MOD_ASSIGN }

fn _semaction_rule_79_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::ADD_ASSIGN }

fn _semaction_rule_80_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::SUB_ASSIGN }

fn _semaction_rule_81_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::LEFT_ASSIGN }

fn _semaction_rule_82_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::RIGHT_ASSIGN }

fn _semaction_rule_83_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::AND_ASSIGN }

fn _semaction_rule_84_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::XOR_ASSIGN }

fn _semaction_rule_85_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_operator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  assignment_operator::OR_ASSIGN }

fn _semaction_rule_86_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()};  expression::expression_86(parser.lbx(0,_item0_)) }

fn _semaction_rule_87_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()};  expression::expression_87(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_88_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> constant_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_25(_x_25)=parser.popstack().value { _x_25 } else {<conditional_expression<'lt>>::default()};  constant_expression {_item0_:parser.lbx(0,_item0_), } }

fn _semaction_rule_89_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()};  declaration::DecSpec(parser.lbx(0,_item0_)) }

fn _semaction_rule_90_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut il = if let RetTypeEnum::Enumvariant_32(_x_32)=parser.popstack().value { _x_32 } else {<init_declarator_list<'lt>>::default()}; let mut ds = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()};  declaration::DecSpecList(parser.lbx(0,ds),parser.lbx(1,il)) }

fn _semaction_rule_91_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_77(_x_77)=parser.popstack().value { _x_77 } else {<static_assert_declaration<'lt>>::default()};  declaration::Statassert(parser.lbx(0,_item0_)) }

fn _semaction_rule_92_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_34(_x_34)=parser.popstack().value { _x_34 } else {<storage_class_specifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_92(parser.lbx(0,_item0_)) }

fn _semaction_rule_93_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_35(_x_35)=parser.popstack().value { _x_35 } else {<type_specifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_93(parser.lbx(0,_item0_)) }

fn _semaction_rule_94_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_35(_x_35)=parser.popstack().value { _x_35 } else {<type_specifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_94(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_95_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_46(_x_46)=parser.popstack().value { _x_46 } else {<type_qualifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_95(parser.lbx(0,_item0_)) }

fn _semaction_rule_96_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_46(_x_46)=parser.popstack().value { _x_46 } else {<type_qualifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_96(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_97_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_79(_x_79)=parser.popstack().value { _x_79 } else {<function_specifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_97(parser.lbx(0,_item0_)) }

fn _semaction_rule_98_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_79(_x_79)=parser.popstack().value { _x_79 } else {<function_specifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_98(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_99_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_80(_x_80)=parser.popstack().value { _x_80 } else {<alignment_specifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_99(parser.lbx(0,_item0_)) }

fn _semaction_rule_100_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_80(_x_80)=parser.popstack().value { _x_80 } else {<alignment_specifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_100(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_101_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_34(_x_34)=parser.popstack().value { _x_34 } else {<storage_class_specifier<'lt>>::default()};  declaration_specifiers::DSCDS(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_102_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> init_declarator_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_33(_x_33)=parser.popstack().value { _x_33 } else {<init_declarator<'lt>>::default()};  init_declarator_list::init_declarator_list_102(parser.lbx(0,_item0_)) }

fn _semaction_rule_103_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> init_declarator_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_33(_x_33)=parser.popstack().value { _x_33 } else {<init_declarator<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_32(_x_32)=parser.popstack().value { _x_32 } else {<init_declarator_list<'lt>>::default()};  init_declarator_list::init_declarator_list_103(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_104_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> init_declarator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<declarator<'lt>>::default()};  init_declarator::init_declarator_104(parser.lbx(0,_item0_)) }

fn _semaction_rule_105_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> init_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } else {<initializer<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<declarator<'lt>>::default()};  init_declarator::init_declarator_105(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_106_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> storage_class_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  storage_class_specifier::Typedef }

fn _semaction_rule_107_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> storage_class_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  storage_class_specifier::EXTERN }

fn _semaction_rule_108_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> storage_class_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  storage_class_specifier::STATIC }

fn _semaction_rule_109_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> storage_class_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  storage_class_specifier::AUTO }

fn _semaction_rule_110_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> storage_class_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  storage_class_specifier::REGISTER }

fn _semaction_rule_111_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> storage_class_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  storage_class_specifier::THREAD_LOCAL }

fn _semaction_rule_112_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  type_specifier::Typename(_item0_) }

fn _semaction_rule_113_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::VOID }

fn _semaction_rule_114_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::CHAR }

fn _semaction_rule_115_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::SHORT }

fn _semaction_rule_116_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::INT }

fn _semaction_rule_117_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::LONG }

fn _semaction_rule_118_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::FLOAT }

fn _semaction_rule_119_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::DOUBLE }

fn _semaction_rule_120_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::SIGNED }

fn _semaction_rule_121_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::UNSIGNED }

fn _semaction_rule_122_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::BOOL }

fn _semaction_rule_123_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::COMPLEX }

fn _semaction_rule_124_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_specifier::IMAGINARY }

fn _semaction_rule_125_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_36(_x_36)=parser.popstack().value { _x_36 } else {<struct_or_union_specifier<'lt>>::default()};  type_specifier::type_specifier_125(parser.lbx(0,_item0_)) }

fn _semaction_rule_126_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_43(_x_43)=parser.popstack().value { _x_43 } else {<enum_specifier<'lt>>::default()};  type_specifier::type_specifier_126(parser.lbx(0,_item0_)) }

fn _semaction_rule_127_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_81(_x_81)=parser.popstack().value { _x_81 } else {<atomic_type_specifier<'lt>>::default()};  type_specifier::type_specifier_127(parser.lbx(0,_item0_)) }

fn _semaction_rule_128_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<&'lt str>> {
 None }

fn _semaction_rule_129_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<&'lt str>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_130_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_or_union_specifier<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_38(_x_38)=parser.popstack().value { _x_38 } else {<struct_declaration_list<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_85(_x_85)=parser.popstack().value { _x_85 } else {<Option<LBox<&'lt str>>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_37(_x_37)=parser.popstack().value { _x_37 } else {<struct_or_union<'lt>>::default()};  struct_or_union_specifier::struct_or_union_specifier_130(parser.lbx(0,_item0_),_item1_,parser.lbx(3,_item3_)) }

fn _semaction_rule_131_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_or_union_specifier<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_37(_x_37)=parser.popstack().value { _x_37 } else {<struct_or_union<'lt>>::default()};  struct_or_union_specifier::struct_or_union_specifier_131(parser.lbx(0,_item0_),_item1_) }

fn _semaction_rule_132_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_or_union<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  struct_or_union::STRUCT }

fn _semaction_rule_133_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_or_union<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  struct_or_union::UNION }

fn _semaction_rule_134_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<struct_declarator_list<'lt>>> {
 None }

fn _semaction_rule_135_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<struct_declarator_list<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_41(_x_41)=parser.popstack().value { _x_41 } else {<struct_declarator_list<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_136_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declaration<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_86(_x_86)=parser.popstack().value { _x_86 } else {<Option<LBox<struct_declarator_list<'lt>>>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_40(_x_40)=parser.popstack().value { _x_40 } else {<specifier_qualifier_list<'lt>>::default()};  struct_declaration::struct_declaration_136(parser.lbx(0,_item0_),_item1_) }

fn _semaction_rule_137_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declaration<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_77(_x_77)=parser.popstack().value { _x_77 } else {<static_assert_declaration<'lt>>::default()};  struct_declaration::struct_declaration_137(parser.lbx(0,_item0_)) }

fn _semaction_rule_138_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<struct_declaration<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_39(_x_39)=parser.popstack().value { _x_39 } else {<struct_declaration<'lt>>::default()};  vec![parser.lbx(0,_item0_)] }

fn _semaction_rule_139_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<struct_declaration<'lt>>> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_39(_x_39)=parser.popstack().value { _x_39 } else {<struct_declaration<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_87(_x_87)=parser.popstack().value { _x_87 } else {<Vec<LBox<struct_declaration<'lt>>>>::default()};  _item0_.push(parser.lbx(1,_item1_)); _item0_ }

fn _semaction_rule_140_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declaration_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_87(_x_87)=parser.popstack().value { _x_87 } else {<Vec<LBox<struct_declaration<'lt>>>>::default()};  struct_declaration_list {_item0_,} }

fn _semaction_rule_141_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> specifier_qualifier_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_40(_x_40)=parser.popstack().value { _x_40 } else {<specifier_qualifier_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_35(_x_35)=parser.popstack().value { _x_35 } else {<type_specifier<'lt>>::default()};  specifier_qualifier_list::specifier_qualifier_list_141(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_142_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> specifier_qualifier_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_35(_x_35)=parser.popstack().value { _x_35 } else {<type_specifier<'lt>>::default()};  specifier_qualifier_list::specifier_qualifier_list_142(parser.lbx(0,_item0_)) }

fn _semaction_rule_143_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> specifier_qualifier_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_40(_x_40)=parser.popstack().value { _x_40 } else {<specifier_qualifier_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_46(_x_46)=parser.popstack().value { _x_46 } else {<type_qualifier<'lt>>::default()};  specifier_qualifier_list::specifier_qualifier_list_143(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_144_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> specifier_qualifier_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_46(_x_46)=parser.popstack().value { _x_46 } else {<type_qualifier<'lt>>::default()};  specifier_qualifier_list::specifier_qualifier_list_144(parser.lbx(0,_item0_)) }

fn _semaction_rule_145_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declarator_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_42(_x_42)=parser.popstack().value { _x_42 } else {<struct_declarator<'lt>>::default()};  struct_declarator_list::struct_declarator_list_145(parser.lbx(0,_item0_)) }

fn _semaction_rule_146_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declarator_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_42(_x_42)=parser.popstack().value { _x_42 } else {<struct_declarator<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_41(_x_41)=parser.popstack().value { _x_41 } else {<struct_declarator_list<'lt>>::default()};  struct_declarator_list::struct_declarator_list_146(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_147_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declarator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<declarator<'lt>>::default()};  struct_declarator::struct_declarator_147(parser.lbx(0,_item0_)) }

fn _semaction_rule_148_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declarator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<constant_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  struct_declarator::Colon_148(parser.lbx(1,_item1_)) }

fn _semaction_rule_149_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<constant_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<declarator<'lt>>::default()};  struct_declarator::struct_declarator_149(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_150_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> () {
<()>::default()}

fn _semaction_rule_151_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> () {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; <()>::default()}

fn _semaction_rule_152_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enum_specifier<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_44(_x_44)=parser.popstack().value { _x_44 } else {<enumerator_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  enum_specifier::ENUM_152(parser.lbx(2,_item2_),_item3_) }

fn _semaction_rule_153_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> () {
<()>::default()}

fn _semaction_rule_154_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> () {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; <()>::default()}

fn _semaction_rule_155_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enum_specifier<'lt> {
let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_44(_x_44)=parser.popstack().value { _x_44 } else {<enumerator_list<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  enum_specifier::ENUM_155(_item1_,parser.lbx(3,_item3_),_item4_) }

fn _semaction_rule_156_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enum_specifier<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  enum_specifier::ENUM_156(_item1_) }

fn _semaction_rule_157_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enumerator_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_45(_x_45)=parser.popstack().value { _x_45 } else {<enumerator<'lt>>::default()};  enumerator_list::enumerator_list_157(parser.lbx(0,_item0_)) }

fn _semaction_rule_158_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enumerator_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_45(_x_45)=parser.popstack().value { _x_45 } else {<enumerator<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_44(_x_44)=parser.popstack().value { _x_44 } else {<enumerator_list<'lt>>::default()};  enumerator_list::enumerator_list_158(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_159_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enumerator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  enumerator::ENUMERATION_CONSTANT_159(_item0_) }

fn _semaction_rule_160_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enumerator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<constant_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  enumerator::ENUMERATION_CONSTANT_160(_item0_,parser.lbx(2,_item2_)) }

fn _semaction_rule_161_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> atomic_type_specifier<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_55(_x_55)=parser.popstack().value { _x_55 } else {<type_name<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  atomic_type_specifier {_item2_:parser.lbx(2,_item2_), } }

fn _semaction_rule_162_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_qualifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_qualifier::CONST }

fn _semaction_rule_163_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_qualifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_qualifier::VOLATILE }

fn _semaction_rule_164_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_qualifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_qualifier::ATOMIC }

fn _semaction_rule_165_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_qualifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  type_qualifier::RESTRICT }

fn _semaction_rule_166_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> function_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  function_specifier::INLINE }

fn _semaction_rule_167_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> function_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  function_specifier::NORETURN }

fn _semaction_rule_168_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> alignment_specifier<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_55(_x_55)=parser.popstack().value { _x_55 } else {<type_name<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  alignment_specifier::ALIGNAS_168(parser.lbx(2,_item2_)) }

fn _semaction_rule_169_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> alignment_specifier<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<constant_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  alignment_specifier::ALIGNAS_169(parser.lbx(2,_item2_)) }

fn _semaction_rule_170_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declarator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_49(_x_49)=parser.popstack().value { _x_49 } else {<pointer<'lt>>::default()};  declarator::declarator_170(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_171_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declarator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  declarator::declarator_171(parser.lbx(0,_item0_)) }

fn _semaction_rule_172_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  direct_declarator::IDENTIFIER_172(_item0_) }

fn _semaction_rule_173_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_declarator::direct_declarator_173(parser.lbx(1,_item1_)) }

fn _semaction_rule_174_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_175_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_176_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<type_qualifier_list<'lt>>> {
 None }

fn _semaction_rule_177_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<type_qualifier_list<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_178_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_88(_x_88)=parser.popstack().value { _x_88 } else {<Option<LBox<type_qualifier_list<'lt>>>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_178(parser.lbx(0,_item0_),_item3_,parser.lbx(4,_item4_)) }

fn _semaction_rule_179_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_179(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_180_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_180(parser.lbx(0,_item0_),parser.lbx(2,_item2_),parser.lbx(3,_item3_)) }

fn _semaction_rule_181_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_181(parser.lbx(0,_item0_),parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

fn _semaction_rule_182_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_182(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_183_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_183(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_184_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_51(_x_51)=parser.popstack().value { _x_51 } else {<parameter_type_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_184(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_185_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_54(_x_54)=parser.popstack().value { _x_54 } else {<identifier_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_185(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_186_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<direct_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_187_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<type_qualifier_list<'lt>>> {
 None }

fn _semaction_rule_188_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<type_qualifier_list<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_189_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<pointer<'lt>>> {
 None }

fn _semaction_rule_190_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<pointer<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_49(_x_49)=parser.popstack().value { _x_49 } else {<pointer<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_191_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> pointer<'lt> {
let mut ptr = if let RetTypeEnum::Enumvariant_89(_x_89)=parser.popstack().value { _x_89 } else {<Option<LBox<pointer<'lt>>>>::default()}; let mut tql = if let RetTypeEnum::Enumvariant_88(_x_88)=parser.popstack().value { _x_88 } else {<Option<LBox<type_qualifier_list<'lt>>>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  pointer {tql,ptr,} }

fn _semaction_rule_192_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<type_qualifier<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_46(_x_46)=parser.popstack().value { _x_46 } else {<type_qualifier<'lt>>::default()};  vec![parser.lbx(0,_item0_)] }

fn _semaction_rule_193_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<type_qualifier<'lt>>> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_46(_x_46)=parser.popstack().value { _x_46 } else {<type_qualifier<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_90(_x_90)=parser.popstack().value { _x_90 } else {<Vec<LBox<type_qualifier<'lt>>>>::default()};  _item0_.push(parser.lbx(1,_item1_)); _item0_ }

fn _semaction_rule_194_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_qualifier_list<'lt> {
let mut qualifiers = if let RetTypeEnum::Enumvariant_90(_x_90)=parser.popstack().value { _x_90 } else {<Vec<LBox<type_qualifier<'lt>>>>::default()};  type_qualifier_list {qualifiers,} }

fn _semaction_rule_195_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_type_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_52(_x_52)=parser.popstack().value { _x_52 } else {<parameter_list<'lt>>::default()};  parameter_type_list::parameter_type_list_195(parser.lbx(0,_item0_)) }

fn _semaction_rule_196_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_type_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_52(_x_52)=parser.popstack().value { _x_52 } else {<parameter_list<'lt>>::default()};  parameter_type_list::parameter_type_list_196(parser.lbx(0,_item0_)) }

fn _semaction_rule_197_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_53(_x_53)=parser.popstack().value { _x_53 } else {<parameter_declaration<'lt>>::default()};  parameter_list::parameter_list_197(parser.lbx(0,_item0_)) }

fn _semaction_rule_198_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_53(_x_53)=parser.popstack().value { _x_53 } else {<parameter_declaration<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_52(_x_52)=parser.popstack().value { _x_52 } else {<parameter_list<'lt>>::default()};  parameter_list::parameter_list_198(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_199_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_declaration<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()};  parameter_declaration::parameter_declaration_199(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_200_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_declaration<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_56(_x_56)=parser.popstack().value { _x_56 } else {<abstract_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()};  parameter_declaration::parameter_declaration_200(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_201_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_declaration<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()};  parameter_declaration::parameter_declaration_201(parser.lbx(0,_item0_)) }

fn _semaction_rule_202_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> identifier_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  identifier_list::IDENTIFIER_202(_item0_) }

fn _semaction_rule_203_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> identifier_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_54(_x_54)=parser.popstack().value { _x_54 } else {<identifier_list<'lt>>::default()};  identifier_list::identifier_list_203(parser.lbx(0,_item0_),_item2_) }

fn _semaction_rule_204_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_name<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_40(_x_40)=parser.popstack().value { _x_40 } else {<specifier_qualifier_list<'lt>>::default()};  type_name::type_name_204(parser.lbx(0,_item0_)) }

fn _semaction_rule_205_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_name<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_56(_x_56)=parser.popstack().value { _x_56 } else {<abstract_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_40(_x_40)=parser.popstack().value { _x_40 } else {<specifier_qualifier_list<'lt>>::default()};  type_name::type_name_205(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_206_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> abstract_declarator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_49(_x_49)=parser.popstack().value { _x_49 } else {<pointer<'lt>>::default()};  abstract_declarator::abstract_declarator_206(parser.lbx(0,_item0_)) }

fn _semaction_rule_207_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> abstract_declarator<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  abstract_declarator::abstract_declarator_207(parser.lbx(0,_item0_)) }

fn _semaction_rule_208_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> abstract_declarator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_49(_x_49)=parser.popstack().value { _x_49 } else {<pointer<'lt>>::default()};  abstract_declarator::abstract_declarator_208(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_209_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_56(_x_56)=parser.popstack().value { _x_56 } else {<abstract_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_abstract_declarator::direct_abstract_declarator_209(parser.lbx(1,_item1_)) }

fn _semaction_rule_210_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_abstract_declarator::direct_abstract_declarator_210 }

fn _semaction_rule_211_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_abstract_declarator::direct_abstract_declarator_211 }

fn _semaction_rule_212_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<type_qualifier_list<'lt>>> {
 None }

fn _semaction_rule_213_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<type_qualifier_list<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_214_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_88(_x_88)=parser.popstack().value { _x_88 } else {<Option<LBox<type_qualifier_list<'lt>>>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_abstract_declarator::direct_abstract_declarator_214(_item2_,parser.lbx(3,_item3_)) }

fn _semaction_rule_215_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<()> {
 None }

fn _semaction_rule_216_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<()> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  Some(_item0_) }

fn _semaction_rule_217_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<assignment_expression<'lt>>> {
 None }

fn _semaction_rule_218_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<assignment_expression<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_219_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_92(_x_92)=parser.popstack().value { _x_92 } else {<Option<LBox<assignment_expression<'lt>>>>::default()}; let mut s = if let RetTypeEnum::Enumvariant_91(_x_91)=parser.popstack().value { _x_91 } else {<Option<()>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_abstract_declarator::direct_abstract_declarator_219(parser.lbx(1,_item1_),parser.lbx(2,s),_item3_) }

fn _semaction_rule_220_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_abstract_declarator::direct_abstract_declarator_220(parser.lbx(1,_item1_)) }

fn _semaction_rule_221_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_222_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_223_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<type_qualifier_list<'lt>>> {
 None }

fn _semaction_rule_224_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<type_qualifier_list<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_225_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_88(_x_88)=parser.popstack().value { _x_88 } else {<Option<LBox<type_qualifier_list<'lt>>>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  direct_abstract_declarator::direct_abstract_declarator_225(parser.lbx(0,_item0_),_item3_,parser.lbx(4,_item4_)) }

fn _semaction_rule_226_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<()> {
 None }

fn _semaction_rule_227_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<()> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  Some(_item0_) }

fn _semaction_rule_228_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut s = if let RetTypeEnum::Enumvariant_91(_x_91)=parser.popstack().value { _x_91 } else {<Option<()>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  direct_abstract_declarator::direct_abstract_declarator_228(parser.lbx(0,_item0_),parser.lbx(2,_item2_),parser.lbx(3,s),parser.lbx(4,_item4_)) }

fn _semaction_rule_229_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_50(_x_50)=parser.popstack().value { _x_50 } else {<type_qualifier_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  direct_abstract_declarator::direct_abstract_declarator_229(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_230_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  direct_abstract_declarator::direct_abstract_declarator_230(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_231_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_abstract_declarator::direct_abstract_declarator_231 }

fn _semaction_rule_232_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_51(_x_51)=parser.popstack().value { _x_51 } else {<parameter_type_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  direct_abstract_declarator::direct_abstract_declarator_232(parser.lbx(1,_item1_)) }

fn _semaction_rule_233_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_234_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> direct_abstract_declarator<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_51(_x_51)=parser.popstack().value { _x_51 } else {<parameter_type_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_57(_x_57)=parser.popstack().value { _x_57 } else {<direct_abstract_declarator<'lt>>::default()};  direct_abstract_declarator::direct_abstract_declarator_234(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_235_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> initializer<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_26(_x_26)=parser.popstack().value { _x_26 } else {<assignment_expression<'lt>>::default()};  initializer::initializer_235(parser.lbx(0,_item0_)) }

fn _semaction_rule_236_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> () {
<()>::default()}

fn _semaction_rule_237_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> () {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; <()>::default()}

fn _semaction_rule_238_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> initializer<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_59(_x_59)=parser.popstack().value { _x_59 } else {<initializer_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  initializer::Lbrace_238(parser.lbx(1,_item1_),_item2_) }

fn _semaction_rule_239_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> initializer_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } else {<initializer<'lt>>::default()};  initializer_list::initializer_list_239(parser.lbx(0,_item0_)) }

fn _semaction_rule_240_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> initializer_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } else {<initializer<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_59(_x_59)=parser.popstack().value { _x_59 } else {<initializer_list<'lt>>::default()};  initializer_list::initializer_list_240(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_241_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> initializer_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } else {<initializer<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_78(_x_78)=parser.popstack().value { _x_78 } else {<designation<'lt>>::default()};  initializer_list::initializer_list_241(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_242_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> initializer_list<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } else {<initializer<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_78(_x_78)=parser.popstack().value { _x_78 } else {<designation<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_59(_x_59)=parser.popstack().value { _x_59 } else {<initializer_list<'lt>>::default()};  initializer_list::initializer_list_242(parser.lbx(0,_item0_),parser.lbx(2,_item2_),parser.lbx(3,_item3_)) }

fn _semaction_rule_243_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> designation<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_82(_x_82)=parser.popstack().value { _x_82 } else {<designator_list<'lt>>::default()};  designation {_item0_:parser.lbx(0,_item0_), } }

fn _semaction_rule_244_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<designator<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_83(_x_83)=parser.popstack().value { _x_83 } else {<designator<'lt>>::default()};  vec![parser.lbx(0,_item0_)] }

fn _semaction_rule_245_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<designator<'lt>>> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_83(_x_83)=parser.popstack().value { _x_83 } else {<designator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_93(_x_93)=parser.popstack().value { _x_93 } else {<Vec<LBox<designator<'lt>>>>::default()};  _item0_.push(parser.lbx(1,_item1_)); _item0_ }

fn _semaction_rule_246_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> designator_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_93(_x_93)=parser.popstack().value { _x_93 } else {<Vec<LBox<designator<'lt>>>>::default()};  designator_list {_item0_,} }

fn _semaction_rule_247_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> designator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<constant_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  designator::designator_247(parser.lbx(1,_item1_)) }

fn _semaction_rule_248_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> designator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  designator::Dot_248(_item1_) }

fn _semaction_rule_249_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> static_assert_declaration<'lt> {
let mut _item6_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<constant_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  static_assert_declaration {_item2_:parser.lbx(2,_item2_), _item4_,} }

fn _semaction_rule_250_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> statement<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_61(_x_61)=parser.popstack().value { _x_61 } else {<labeled_statement<'lt>>::default()};  statement::statement_250(parser.lbx(0,_item0_)) }

fn _semaction_rule_251_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> statement<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_62(_x_62)=parser.popstack().value { _x_62 } else {<compound_statement<'lt>>::default()};  statement::statement_251(parser.lbx(0,_item0_)) }

fn _semaction_rule_252_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> statement<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_65(_x_65)=parser.popstack().value { _x_65 } else {<expression_statement<'lt>>::default()};  statement::statement_252(parser.lbx(0,_item0_)) }

fn _semaction_rule_253_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> statement<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_66(_x_66)=parser.popstack().value { _x_66 } else {<selection_statement<'lt>>::default()};  statement::statement_253(parser.lbx(0,_item0_)) }

fn _semaction_rule_254_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> statement<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_67(_x_67)=parser.popstack().value { _x_67 } else {<iteration_statement<'lt>>::default()};  statement::statement_254(parser.lbx(0,_item0_)) }

fn _semaction_rule_255_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> statement<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_68(_x_68)=parser.popstack().value { _x_68 } else {<jump_statement<'lt>>::default()};  statement::statement_255(parser.lbx(0,_item0_)) }

fn _semaction_rule_256_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> labeled_statement<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()};  labeled_statement::IDENTIFIER_256(_item0_,parser.lbx(2,_item2_)) }

fn _semaction_rule_257_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> labeled_statement<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<constant_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  labeled_statement::CASE_257(parser.lbx(1,_item1_),parser.lbx(3,_item3_)) }

fn _semaction_rule_258_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> labeled_statement<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  labeled_statement::DEFAULT_258(parser.lbx(2,_item2_)) }

fn _semaction_rule_259_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<block_item<'lt>>> {
 Vec::new() }

fn _semaction_rule_260_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<block_item<'lt>>> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_84(_x_84)=parser.popstack().value { _x_84 } else {<block_item<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_94(_x_94)=parser.popstack().value { _x_94 } else {<Vec<LBox<block_item<'lt>>>>::default()};  _item0_.push(parser.lbx(1,_item1_)); _item0_ }

fn _semaction_rule_261_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> compound_statement<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut items = if let RetTypeEnum::Enumvariant_94(_x_94)=parser.popstack().value { _x_94 } else {<Vec<LBox<block_item<'lt>>>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  compound_statement {items,} }

fn _semaction_rule_262_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> block_item<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_30(_x_30)=parser.popstack().value { _x_30 } else {<declaration<'lt>>::default()};  block_item::block_item_262(parser.lbx(0,_item0_)) }

fn _semaction_rule_263_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> block_item<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()};  block_item::block_item_263(parser.lbx(0,_item0_)) }

fn _semaction_rule_264_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> expression_statement<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  expression_statement::expression_statement_264 }

fn _semaction_rule_265_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> expression_statement<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()};  expression_statement::expression_statement_265(parser.lbx(0,_item0_)) }

fn _semaction_rule_266_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> selection_statement<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  selection_statement::IF_266(parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

fn _semaction_rule_267_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> selection_statement<'lt> {
let mut _item6_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  selection_statement::IF_267(parser.lbx(2,_item2_),parser.lbx(4,_item4_),parser.lbx(6,_item6_)) }

fn _semaction_rule_268_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> selection_statement<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  selection_statement::SWITCH_268(parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

fn _semaction_rule_269_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> iteration_statement<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  iteration_statement::WHILE_269(parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

fn _semaction_rule_270_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> iteration_statement<'lt> {
let mut _item6_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  iteration_statement::DO_270(parser.lbx(1,_item1_),parser.lbx(4,_item4_)) }

fn _semaction_rule_271_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<expression<'lt>>> {
 None }

fn _semaction_rule_272_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<expression<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_273_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> iteration_statement<'lt> {
let mut _item6_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_95(_x_95)=parser.popstack().value { _x_95 } else {<Option<LBox<expression<'lt>>>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_65(_x_65)=parser.popstack().value { _x_65 } else {<expression_statement<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_65(_x_65)=parser.popstack().value { _x_65 } else {<expression_statement<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  iteration_statement::FOR_273(parser.lbx(2,_item2_),parser.lbx(3,_item3_),_item4_,parser.lbx(6,_item6_)) }

fn _semaction_rule_274_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<expression<'lt>>> {
 None }

fn _semaction_rule_275_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Option<LBox<expression<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()};  Some(parser.lbx(0,_item0_)) }

fn _semaction_rule_276_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> iteration_statement<'lt> {
let mut _item6_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<statement<'lt>>::default()}; let mut _item5_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_95(_x_95)=parser.popstack().value { _x_95 } else {<Option<LBox<expression<'lt>>>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_65(_x_65)=parser.popstack().value { _x_65 } else {<expression_statement<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_30(_x_30)=parser.popstack().value { _x_30 } else {<declaration<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  iteration_statement::FOR_276(parser.lbx(2,_item2_),parser.lbx(3,_item3_),_item4_,parser.lbx(6,_item6_)) }

fn _semaction_rule_277_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> jump_statement<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_8(_x_8)=parser.popstack().value { _x_8 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  jump_statement::GOTO_277(_item1_) }

fn _semaction_rule_278_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> jump_statement<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  jump_statement::CONTINUE_278 }

fn _semaction_rule_279_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> jump_statement<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  jump_statement::BREAK_279 }

fn _semaction_rule_280_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> jump_statement<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  jump_statement::RETURN_280 }

fn _semaction_rule_281_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> jump_statement<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  jump_statement::RETURN_281(parser.lbx(1,_item1_)) }

fn _semaction_rule_282_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<external_declaration<'lt>>> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_70(_x_70)=parser.popstack().value { _x_70 } else {<external_declaration<'lt>>::default()};  vec![parser.lbx(0,_item0_)] }

fn _semaction_rule_283_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<external_declaration<'lt>>> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_70(_x_70)=parser.popstack().value { _x_70 } else {<external_declaration<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_96(_x_96)=parser.popstack().value { _x_96 } else {<Vec<LBox<external_declaration<'lt>>>>::default()};  _item0_.push(parser.lbx(1,_item1_)); _item0_ }

fn _semaction_rule_284_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> translation_unit<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_96(_x_96)=parser.popstack().value { _x_96 } else {<Vec<LBox<external_declaration<'lt>>>>::default()};  translation_unit {_item0_,} }

fn _semaction_rule_285_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> external_declaration<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_71(_x_71)=parser.popstack().value { _x_71 } else {<function_definition<'lt>>::default()};  external_declaration::external_declaration_285(parser.lbx(0,_item0_)) }

fn _semaction_rule_286_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> external_declaration<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_30(_x_30)=parser.popstack().value { _x_30 } else {<declaration<'lt>>::default()};  external_declaration::external_declaration_286(parser.lbx(0,_item0_)) }

fn _semaction_rule_287_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<declaration<'lt>>> {
 Vec::new() }

fn _semaction_rule_288_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> Vec<LBox<declaration<'lt>>> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_30(_x_30)=parser.popstack().value { _x_30 } else {<declaration<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_97(_x_97)=parser.popstack().value { _x_97 } else {<Vec<LBox<declaration<'lt>>>>::default()};  _item0_.push(parser.lbx(1,_item1_)); _item0_ }

fn _semaction_rule_289_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> function_definition<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_62(_x_62)=parser.popstack().value { _x_62 } else {<compound_statement<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_97(_x_97)=parser.popstack().value { _x_97 } else {<Vec<LBox<declaration<'lt>>>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } else {<declaration_specifiers<'lt>>::default()};  function_definition {_item0_:parser.lbx(0,_item0_), _item1_:parser.lbx(1,_item1_), _item2_,_item3_:parser.lbx(3,_item3_), } }

fn _semaction_rule_290_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> translation_unit<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<translation_unit<'lt>>::default()}; <translation_unit<'lt>>::default()}

pub fn make_parser<'lt>() -> ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>
{
 let mut parser1:ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>> = ZCParser::new(291,470);
 let mut rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("start");
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("primary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_9(_semaction_rule_0_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("primary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_9(_semaction_rule_1_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("primary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_9(_semaction_rule_2_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("primary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_9(_semaction_rule_3_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("primary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_9(_semaction_rule_4_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("constant");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_72(_semaction_rule_5_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("constant");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_72(_semaction_rule_6_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("constant");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_72(_semaction_rule_7_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("stringnt");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_73(_semaction_rule_8_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("stringnt");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_73(_semaction_rule_9_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("generic_selection");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_74(_semaction_rule_10_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("generic_assoc_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_75(_semaction_rule_11_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("generic_assoc_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_75(_semaction_rule_12_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("generic_association");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_76(_semaction_rule_13_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("generic_association");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_76(_semaction_rule_14_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_15_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_16_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_17_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_18_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_19_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_20_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_21_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_22_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTComma_23_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_1(_semaction_rule_23_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTComma_23_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_1(_semaction_rule_24_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_25_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("argument_expression_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_11(_semaction_rule_26_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("argument_expression_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_11(_semaction_rule_27_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_28_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_29_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_30_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_31_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_32_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_33_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_34_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_35_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_36_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_37_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_38_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_39_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_40_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("cast_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_14(_semaction_rule_41_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("cast_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_14(_semaction_rule_42_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("multiplicative_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_15(_semaction_rule_43_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("multiplicative_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_15(_semaction_rule_44_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("multiplicative_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_15(_semaction_rule_45_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("multiplicative_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_15(_semaction_rule_46_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("additive_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_16(_semaction_rule_47_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("additive_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_16(_semaction_rule_48_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("additive_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_16(_semaction_rule_49_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("shift_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_17(_semaction_rule_50_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("shift_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_17(_semaction_rule_51_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("shift_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_17(_semaction_rule_52_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_18(_semaction_rule_53_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_18(_semaction_rule_54_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_18(_semaction_rule_55_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_18(_semaction_rule_56_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_18(_semaction_rule_57_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("equality_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_19(_semaction_rule_58_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("equality_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_19(_semaction_rule_59_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("equality_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_19(_semaction_rule_60_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("and_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_20(_semaction_rule_61_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("and_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_20(_semaction_rule_62_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("exclusive_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_21(_semaction_rule_63_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("exclusive_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_21(_semaction_rule_64_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("inclusive_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_22(_semaction_rule_65_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("inclusive_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_22(_semaction_rule_66_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("logical_and_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_23(_semaction_rule_67_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("logical_and_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_23(_semaction_rule_68_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("logical_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_24(_semaction_rule_69_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("logical_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_24(_semaction_rule_70_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("conditional_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_71_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("conditional_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_72_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_26(_semaction_rule_73_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_26(_semaction_rule_74_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_75_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_76_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_77_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_78_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_79_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_80_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_81_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_82_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_83_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_84_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_85_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_28(_semaction_rule_86_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_28(_semaction_rule_87_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("constant_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_29(_semaction_rule_88_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_30(_semaction_rule_89_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_30(_semaction_rule_90_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_30(_semaction_rule_91_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_92_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_93_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_94_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_95_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_96_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_97_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_98_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_99_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_100_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_101_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("init_declarator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_32(_semaction_rule_102_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("init_declarator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_32(_semaction_rule_103_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("init_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_104_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("init_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_105_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_106_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_107_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_108_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_109_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_110_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_111_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_112_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_113_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_114_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_115_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_116_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_117_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_118_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_119_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_120_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_121_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_122_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_123_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_124_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_125_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_126_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_127_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTIDENTIFIER_128_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_85(_semaction_rule_128_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTIDENTIFIER_128_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_85(_semaction_rule_129_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_36(_semaction_rule_130_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_36(_semaction_rule_131_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_37(_semaction_rule_132_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_37(_semaction_rule_133_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTstruct_declarator_list_134_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_86(_semaction_rule_134_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTstruct_declarator_list_134_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_86(_semaction_rule_135_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_39(_semaction_rule_136_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_39(_semaction_rule_137_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTstruct_declaration_138_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_87(_semaction_rule_138_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTstruct_declaration_138_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_87(_semaction_rule_139_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declaration_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_38(_semaction_rule_140_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("specifier_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_40(_semaction_rule_141_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("specifier_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_40(_semaction_rule_142_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("specifier_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_40(_semaction_rule_143_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("specifier_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_40(_semaction_rule_144_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_41(_semaction_rule_145_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_41(_semaction_rule_146_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_42(_semaction_rule_147_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_42(_semaction_rule_148_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_42(_semaction_rule_149_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTComma_150_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_1(_semaction_rule_150_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTComma_150_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_1(_semaction_rule_151_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enum_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_43(_semaction_rule_152_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTComma_153_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_1(_semaction_rule_153_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTComma_153_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_1(_semaction_rule_154_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enum_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_43(_semaction_rule_155_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enum_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_43(_semaction_rule_156_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enumerator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_44(_semaction_rule_157_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enumerator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_44(_semaction_rule_158_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enumerator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_45(_semaction_rule_159_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enumerator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_45(_semaction_rule_160_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("atomic_type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_81(_semaction_rule_161_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_162_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_163_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_164_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_165_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("function_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_79(_semaction_rule_166_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("function_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_79(_semaction_rule_167_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("alignment_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_80(_semaction_rule_168_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("alignment_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_80(_semaction_rule_169_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_47(_semaction_rule_170_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_47(_semaction_rule_171_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_172_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_173_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_174_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_175_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_list_176_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_88(_semaction_rule_176_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_list_176_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_88(_semaction_rule_177_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_178_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_179_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_180_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_181_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_182_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_183_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_184_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_185_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_186_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_list_187_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_88(_semaction_rule_187_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_list_187_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_88(_semaction_rule_188_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTpointer_189_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_89(_semaction_rule_189_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTpointer_189_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_89(_semaction_rule_190_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("pointer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_49(_semaction_rule_191_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_192_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_90(_semaction_rule_192_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_192_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_90(_semaction_rule_193_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_50(_semaction_rule_194_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_type_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_51(_semaction_rule_195_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_type_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_51(_semaction_rule_196_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_52(_semaction_rule_197_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_52(_semaction_rule_198_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_53(_semaction_rule_199_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_53(_semaction_rule_200_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_53(_semaction_rule_201_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("identifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_54(_semaction_rule_202_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("identifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_54(_semaction_rule_203_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_name");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_204_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_name");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_205_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_56(_semaction_rule_206_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_56(_semaction_rule_207_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_56(_semaction_rule_208_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_209_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_210_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_211_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_list_212_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_88(_semaction_rule_212_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_list_212_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_88(_semaction_rule_213_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_214_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTSTATIC_215_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_91(_semaction_rule_215_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTSTATIC_215_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_91(_semaction_rule_216_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTassignment_expression_217_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_92(_semaction_rule_217_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTassignment_expression_217_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_92(_semaction_rule_218_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_219_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_220_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_221_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_222_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_list_223_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_88(_semaction_rule_223_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTtype_qualifier_list_223_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_88(_semaction_rule_224_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_225_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTSTATIC_226_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_91(_semaction_rule_226_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTSTATIC_226_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_91(_semaction_rule_227_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_228_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_229_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_230_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_231_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_232_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_233_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_234_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_58(_semaction_rule_235_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTComma_236_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_1(_semaction_rule_236_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTComma_236_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_1(_semaction_rule_237_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_58(_semaction_rule_238_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_59(_semaction_rule_239_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_59(_semaction_rule_240_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_59(_semaction_rule_241_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_59(_semaction_rule_242_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("designation");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_78(_semaction_rule_243_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTdesignator_244_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_93(_semaction_rule_244_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTdesignator_244_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_93(_semaction_rule_245_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("designator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_82(_semaction_rule_246_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("designator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_83(_semaction_rule_247_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("designator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_83(_semaction_rule_248_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("static_assert_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_77(_semaction_rule_249_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_250_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_251_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_252_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_253_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_254_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_255_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("labeled_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_61(_semaction_rule_256_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("labeled_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_61(_semaction_rule_257_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("labeled_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_61(_semaction_rule_258_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTblock_item_259_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_94(_semaction_rule_259_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTblock_item_259_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_94(_semaction_rule_260_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("compound_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_62(_semaction_rule_261_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("block_item");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_84(_semaction_rule_262_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("block_item");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_84(_semaction_rule_263_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("expression_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_65(_semaction_rule_264_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("expression_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_65(_semaction_rule_265_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("selection_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_66(_semaction_rule_266_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("selection_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_66(_semaction_rule_267_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("selection_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_66(_semaction_rule_268_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("iteration_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_67(_semaction_rule_269_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("iteration_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_67(_semaction_rule_270_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTexpression_271_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_95(_semaction_rule_271_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTexpression_271_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_95(_semaction_rule_272_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("iteration_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_67(_semaction_rule_273_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTexpression_274_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_95(_semaction_rule_274_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTexpression_274_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_95(_semaction_rule_275_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("iteration_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_67(_semaction_rule_276_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_68(_semaction_rule_277_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_68(_semaction_rule_278_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_68(_semaction_rule_279_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_68(_semaction_rule_280_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_68(_semaction_rule_281_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTexternal_declaration_282_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_96(_semaction_rule_282_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTexternal_declaration_282_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_96(_semaction_rule_283_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("translation_unit");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_0(_semaction_rule_284_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("external_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_70(_semaction_rule_285_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("external_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_70(_semaction_rule_286_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTdeclaration_287_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_97(_semaction_rule_287_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("NEWNTdeclaration_287_0");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_97(_semaction_rule_288_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("function_definition");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_71(_semaction_rule_289_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("START");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_0(_semaction_rule_290_(parser)) };
 parser1.Rules.push(rule);
 parser1.Errsym = "";

 for i in 0..11504 {
   let symi = ((TABLE[i] & 0x0000ffff00000000) >> 32) as usize;
   let sti = ((TABLE[i] & 0xffff000000000000) >> 48) as usize;
   parser1.RSM[sti].insert(SYMBOLS[symi],decode_action(TABLE[i]));
 }

 for s in SYMBOLS { parser1.Symset.insert(s); }

 load_extras(&mut parser1);
 return parser1;
} //make_parser

pub fn parse_with<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>, lexer:&mut c11lexer<'lt>) -> Result<translation_unit<'lt>,translation_unit<'lt>>
{
  lexer.shared_state = Rc::clone(&parser.shared_state);
  if let RetTypeEnum::Enumvariant_0(_xres_) = parser.parse(lexer) {
     if !parser.error_occurred() {Ok(_xres_)} else {Err(_xres_)}
  } else { Err(<translation_unit<'lt>>::default())}
}//parse_with public function

pub fn parse_train_with<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>, lexer:&mut c11lexer<'lt>, parserpath:&str) -> Result<translation_unit<'lt>,translation_unit<'lt>>
{
  lexer.shared_state = Rc::clone(&parser.shared_state);
  if let RetTypeEnum::Enumvariant_0(_xres_) = parser.parse_train(lexer,parserpath) {
     if !parser.error_occurred() {Ok(_xres_)} else {Err(_xres_)}
  } else { Err(<translation_unit<'lt>>::default())}
}//parse_train_with public function

//Enum for return values 
pub enum RetTypeEnum<'lt> {
  Enumvariant_57(direct_abstract_declarator<'lt>),
  Enumvariant_64(statement_list<'lt>),
  Enumvariant_30(declaration<'lt>),
  Enumvariant_81(atomic_type_specifier<'lt>),
  Enumvariant_36(struct_or_union_specifier<'lt>),
  Enumvariant_82(designator_list<'lt>),
  Enumvariant_9(primary_expression<'lt>),
  Enumvariant_77(static_assert_declaration<'lt>),
  Enumvariant_84(block_item<'lt>),
  Enumvariant_35(type_specifier<'lt>),
  Enumvariant_29(constant_expression<'lt>),
  Enumvariant_42(struct_declarator<'lt>),
  Enumvariant_73(stringnt<'lt>),
  Enumvariant_13(unary_operator<'lt>),
  Enumvariant_55(type_name<'lt>),
  Enumvariant_93(Vec<LBox<designator<'lt>>>),
  Enumvariant_43(enum_specifier<'lt>),
  Enumvariant_65(expression_statement<'lt>),
  Enumvariant_45(enumerator<'lt>),
  Enumvariant_80(alignment_specifier<'lt>),
  Enumvariant_68(jump_statement<'lt>),
  Enumvariant_44(enumerator_list<'lt>),
  Enumvariant_83(designator<'lt>),
  Enumvariant_27(assignment_operator<'lt>),
  Enumvariant_24(logical_or_expression<'lt>),
  Enumvariant_94(Vec<LBox<block_item<'lt>>>),
  Enumvariant_20(and_expression<'lt>),
  Enumvariant_79(function_specifier<'lt>),
  Enumvariant_14(cast_expression<'lt>),
  Enumvariant_2((usize,usize)),
  Enumvariant_21(exclusive_or_expression<'lt>),
  Enumvariant_25(conditional_expression<'lt>),
  Enumvariant_56(abstract_declarator<'lt>),
  Enumvariant_54(identifier_list<'lt>),
  Enumvariant_10(postfix_expression<'lt>),
  Enumvariant_71(function_definition<'lt>),
  Enumvariant_74(generic_selection<'lt>),
  Enumvariant_58(initializer<'lt>),
  Enumvariant_76(generic_association<'lt>),
  Enumvariant_59(initializer_list<'lt>),
  Enumvariant_66(selection_statement<'lt>),
  Enumvariant_32(init_declarator_list<'lt>),
  Enumvariant_22(inclusive_or_expression<'lt>),
  Enumvariant_8(&'lt str),
  Enumvariant_60(statement<'lt>),
  Enumvariant_49(pointer<'lt>),
  Enumvariant_47(declarator<'lt>),
  Enumvariant_16(additive_expression<'lt>),
  Enumvariant_7(f64),
  Enumvariant_17(shift_expression<'lt>),
  Enumvariant_46(type_qualifier<'lt>),
  Enumvariant_39(struct_declaration<'lt>),
  Enumvariant_31(declaration_specifiers<'lt>),
  Enumvariant_19(equality_expression<'lt>),
  Enumvariant_37(struct_or_union<'lt>),
  Enumvariant_41(struct_declarator_list<'lt>),
  Enumvariant_61(labeled_statement<'lt>),
  Enumvariant_63(declaration_list<'lt>),
  Enumvariant_67(iteration_statement<'lt>),
  Enumvariant_0(translation_unit<'lt>),
  Enumvariant_70(external_declaration<'lt>),
  Enumvariant_85(Option<LBox<&'lt str>>),
  Enumvariant_90(Vec<LBox<type_qualifier<'lt>>>),
  Enumvariant_91(Option<()>),
  Enumvariant_92(Option<LBox<assignment_expression<'lt>>>),
  Enumvariant_26(assignment_expression<'lt>),
  Enumvariant_1(()),
  Enumvariant_87(Vec<LBox<struct_declaration<'lt>>>),
  Enumvariant_95(Option<LBox<expression<'lt>>>),
  Enumvariant_96(Vec<LBox<external_declaration<'lt>>>),
  Enumvariant_12(unary_expression<'lt>),
  Enumvariant_48(direct_declarator<'lt>),
  Enumvariant_23(logical_and_expression<'lt>),
  Enumvariant_62(compound_statement<'lt>),
  Enumvariant_72(constant<'lt>),
  Enumvariant_18(relational_expression<'lt>),
  Enumvariant_40(specifier_qualifier_list<'lt>),
  Enumvariant_34(storage_class_specifier<'lt>),
  Enumvariant_15(multiplicative_expression<'lt>),
  Enumvariant_33(init_declarator<'lt>),
  Enumvariant_38(struct_declaration_list<'lt>),
  Enumvariant_52(parameter_list<'lt>),
  Enumvariant_51(parameter_type_list<'lt>),
  Enumvariant_11(argument_expression_list<'lt>),
  Enumvariant_75(generic_assoc_list<'lt>),
  Enumvariant_89(Option<LBox<pointer<'lt>>>),
  Enumvariant_97(Vec<LBox<declaration<'lt>>>),
  Enumvariant_78(designation<'lt>),
  Enumvariant_50(type_qualifier_list<'lt>),
  Enumvariant_28(expression<'lt>),
  Enumvariant_86(Option<LBox<struct_declarator_list<'lt>>>),
  Enumvariant_6(i32),
  Enumvariant_88(Option<LBox<type_qualifier_list<'lt>>>),
  Enumvariant_53(parameter_declaration<'lt>),
}
impl<'lt> Default for RetTypeEnum<'lt> { fn default()->Self {RetTypeEnum::Enumvariant_0(<translation_unit<'lt>>::default())} }


// Lexical Scanner using RawToken and StrTokenizer
pub struct c11lexer<'lt> {
   stk: StrTokenizer<'lt>,
   keywords: HashSet<&'static str>,
   lexnames: HashMap<&'static str,&'static str>,
   shared_state: Rc<RefCell<HashSet<&'lt str>>>,
}
impl<'lt> c11lexer<'lt> 
{
  pub fn from_str(s:&'lt str) -> c11lexer<'lt>  {
    Self::new(StrTokenizer::from_str(s))
  }
  pub fn from_source(s:&'lt LexSource<'lt>) -> c11lexer<'lt>  {
    Self::new(StrTokenizer::from_source(s))
  }
  pub fn new(mut stk:StrTokenizer<'lt>) -> c11lexer<'lt> {
    let mut lexnames = HashMap::with_capacity(64);
    let mut keywords = HashSet::with_capacity(64);
    let shared_state = Rc::new(RefCell::new(<HashSet<&'lt str>>::default()));
    for kw in ["sizeof","typedef","_Imaginary","unsigned","float","define","long","if","void","struct","volatile","return","enum","restrict","union","do","static","_Complex","_Alignas","while","_WILDCARD_TOKEN_","char","short","inline","signed","continue","_Noreturn","break","extern","for","_Thread_local","register","int","__func__","_Bool","switch","_Static_assert","goto","default","double","include","_Atomic","_Alignof","const","auto","case","_Generic","else",] {keywords.insert(kw);}
    for c in ['[',']','(',')','+','-','~',';','?','/','<','#',':','>','}','!','&','{','*',',','=','.','|','^','%',] {stk.add_single(c);}
    for d in ["&=","<<","+=",">=","/=","*=",">>","<=","->","!=","%=","==","||","|=","&&","--","++","^=","-=",] {stk.add_double(d);}
    for d in ["...",">>=","<<=",] {stk.add_triple(d);}
    for (k,v) in [(r"&=","AND_ASSIGN"),(r"?","Quest"),(r"/","Div"),(r"goto","GOTO"),(r"_Static_assert","STATIC_ASSERT"),(r"<<","LEFT_OP"),(r"short","SHORT"),(r"_Complex","COMPLEX"),(r"+=","ADD_ASSIGN"),(r"default","DEFAULT"),(r"return","RETURN"),(r"include","INCLUDE"),(r"_Generic","GENERIC"),(r"const","CONST"),(r"...","ELLIPSIS"),(r"sizeof","SIZEOF"),(r"<","Lt"),(r">=","GE_OP"),(r"/=","DIV_ASSIGN"),(r"signed","SIGNED"),(r"#","Hash"),(r"extern","EXTERN"),(r"*=","MUL_ASSIGN"),(r"typedef","TYPEDEF"),(r"_Alignof","ALIGNOF"),(r":","Colon"),(r"int","INT"),(r">","Gt"),(r"char","CHAR"),(r"define","DEFINE"),(r"volatile","VOLATILE"),(r"enum","ENUM"),(r"continue","CONTINUE"),(r">>","RIGHT_OP"),(r"double","DOUBLE"),(r"<=","LE_OP"),(r"struct","STRUCT"),(r"_Alignas","ALIGNAS"),(r"->","PTR_OP"),(r"!=","NE_OP"),(r"break","BREAK"),(r"%=","MOD_ASSIGN"),(r"unsigned","UNSIGNED"),(r"_Noreturn","NORETURN"),(r"==","EQ_OP"),(r"union","UNION"),(r"_Atomic","ATOMIC"),(r"}","Rbrace"),(r"else","ELSE"),(r"switch","SWITCH"),(r"for","FOR"),(r"!","Bang"),(r"auto","AUTO"),(r"&","Amp"),(r"||","OR_OP"),(r"|=","OR_ASSIGN"),(r"if","IF"),(r"float","FLOAT"),(r"{","Lbrace"),(r"void","VOID"),(r"&&","AND_OP"),(r">>=","RIGHT_ASSIGN"),(r"--","DEC_OP"),(r"*","Star"),(r"_Imaginary","IMAGINARY"),(r"long","LONG"),(r"++","INC_OP"),(r"<<=","LEFT_ASSIGN"),(r"^=","XOR_ASSIGN"),(r"inline","INLINE"),(r"-=","SUB_ASSIGN"),(r"restrict","RESTRICT"),(r"case","CASE"),(r"while","WHILE"),(r"do","DO"),(r",","Comma"),(r"=","Eq1"),(r".","Dot"),(r"register","REGISTER"),(r"_Thread_local","THREAD_LOCAL"),(r"__func__","FUNC_NAME"),(r"static","STATIC"),(r"|","Bar"),(r"^","Hat"),(r"%","Percent"),(r"_Bool","BOOL"),] {lexnames.insert(k,v);}
    c11lexer {stk,keywords,lexnames,shared_state}
  }
}
impl<'lt> Tokenizer<'lt,RetTypeEnum<'lt>> for c11lexer<'lt>
{
   fn nextsym(&mut self) -> Option<TerminalToken<'lt,RetTypeEnum<'lt>>> {
    let tokopt = self.stk.next_token();
    if let None = tokopt {return None;}
    let token = tokopt.unwrap();
    match token.0 {
      RawToken::Alphanum(sym) if self.keywords.contains(sym) => {
        let truesym = self.lexnames.get(sym).unwrap_or(&sym);
        Some(TerminalToken::from_raw(token,truesym,<RetTypeEnum<'lt>>::default()))
      },
      RawToken:: Alphanum(n) if self.shared_state.borrow().contains(n) => Some(TerminalToken::from_raw(token,"TYPEDEF_NAME",RetTypeEnum::Enumvariant_8( n
))),
      RawToken:: Alphanum(n) => Some(TerminalToken::from_raw(token,"ENUMERATION_CONSTANT",RetTypeEnum::Enumvariant_8( n
))),
      RawToken:: Alphanum(n) => Some(TerminalToken::from_raw(token,"IDENTIFIER",RetTypeEnum::Enumvariant_8( n
))),
      RawToken:: Num(n) => Some(TerminalToken::from_raw(token,"I_CONSTANT",RetTypeEnum::Enumvariant_6( (n as i32)
))),
      RawToken:: Float(n) => Some(TerminalToken::from_raw(token,"F_CONSTANT",RetTypeEnum::Enumvariant_7( n
))),
      RawToken:: Strlit(s) => Some(TerminalToken::from_raw(token,"STRING_LITERAL",RetTypeEnum::Enumvariant_8( s
))),
      RawToken::Symbol(s) if self.lexnames.contains_key(s) => {
        let tname = self.lexnames.get(s).unwrap();
        Some(TerminalToken::from_raw(token,tname,<RetTypeEnum<'lt>>::default()))
      },
      RawToken::Symbol(s) => Some(TerminalToken::from_raw(token,s,<RetTypeEnum<'lt>>::default())),
      RawToken::Alphanum(s) => Some(TerminalToken::from_raw(token,s,<RetTypeEnum<'lt>>::default())),
      _ => Some(TerminalToken::from_raw(token,"<LexicalError>",<RetTypeEnum<'lt>>::default())),
    }
  }
   fn linenum(&self) -> usize {self.stk.line()}
   fn column(&self) -> usize {self.stk.column()}
   fn position(&self) -> usize {self.stk.current_position()}
   fn current_line(&self) -> &str {self.stk.current_line()}
   fn get_line(&self,i:usize) -> Option<&str> {self.stk.get_line(i)}
   fn get_slice(&self,s:usize,l:usize) -> &str {self.stk.get_slice(s,l)}
   fn transform_wildcard(&self,t:TerminalToken<'lt,RetTypeEnum<'lt>>) -> TerminalToken<'lt,RetTypeEnum<'lt>> { TerminalToken::new(t.sym,RetTypeEnum::Enumvariant_2((self.stk.previous_position(),self.stk.current_position())),t.line,t.column) }
}//impl Tokenizer

fn load_extras<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>)
{
}//end of load_extras: don't change this line as it affects augmentation