rustlr 0.3.93

Bottom-Up Parser Generator with Advanced Options
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
//Parser generated by rustlr for grammar cauto
    
#![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::cauto_ast;
use crate::cauto_ast::*;

static SYMBOLS:[&'static str;151] = ["_WILDCARD_TOKEN_","IDENTIFIER","CONSTANT","STRING_LITERAL","TYPE_NAME","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","ELLIPSIS","INCLUDE","DEFINE","CASE","DEFAULT","IF","ELSE","SWITCH","WHILE","DO","FOR","GOTO","CONTINUE","BREAK","RETURN","[","]","(",")","Lbrace","Rbrace","Amp","+","-","~","Bang","Bar","Hat",";","Dot","Comma","Colon","Star","Div","Percent","Lt","Gt","Eq1","Quest","Hash","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","START","EOF"];

static TABLE:[u64;7041] = [180389871616,536871305217,476743270401,137439215616,167504052224,141736017920,489626927105,133145755648,176094969856,17181376512,124555755520,150325428224,635657322497,128850132992,485331894273,631362158593,115964575744,627065946113,171798757376,528283271169,541167517697,154619805696,146030329856,335009677312,270583136256,158915166208,4296998912,188980920320,515396993025,481038761985,459562549249,463856599041,532576468993,193274380288,120259870720,163209936896,184685428736,281616718954498,281655373660162,281590949150722,281625308889090,281603834052610,281595244118018,281642488758274,281749862940674,281479280001026,281663963594754,281621013921794,281792812613634,281805697515522,281629603856386,281633898823682,281646783725570,281599539085314,281659668627458,281651078692866,281809992482818,281492164902914,281668258562050,281745567973378,281638193790978,281608129019906,281801402548226,281612423987202,281736978038786,563220536557568,563486824726529,562954250420224,563418107478017,563284963098624,563422402510849,563482531856385,563491120939009,563267783557120,844957508829185,844966097649665,844429227130880,844695513268224,844961801437185,844759939809280,1126071711629314,1126058826727426,1126161905942530,1126217740517378,1126080301563906,1125904207904770,1126088891498498,1126054531760130,1126024466989058,1126050236792834,1126067416662018,1126234920386562,1126170495877122,1126037351890946,1126063121694722,1126041646858242,1126076006596610,1126033056923650,1126015877054466,1126028761956354,1126045941825538,1126174790844418,1125917092806658,1126020172021762,1126084596531202,1126230625419266,1126226330451970,1126093186465794,1407512328929282,1407529508798466,1407692717555714,1407525213831170,1407568163504130,1407546688667650,1407490854092802,1407636882980866,1407559573569538,1407555278602242,1407542393700354,1407499444027394,1407709897424898,1407563868536834,1407516623896578,1407701307490306,1407550983634946,1407503738994690,1407495149060098,1407379184943106,1407645472915458,1407533803765762,1407392069844994,1407520918863874,1407705602457602,1407649767882754,1407538098733058,1407508033961986,1689167696363522,1689129041657858,1689000192638978,1688991602704386,1689017372508162,1688867048652802,1689124746690562,1689206351069186,1688974422835202,1689034552377346,1689013077540866,1689120446021632,1689043142311938,1689030257410050,1689180581265410,1688983012769794,1688995897671682,1688965832900610,1689038847344642,1689021667475458,1688987307737090,1689176286298114,1688978717802498,1689111856152576,1689025962442754,1688970127867906,1689004487606274,1689008782573570,1970488051105794,1970509525942274,1970449396400130,1970457986334722,1970599720255490,1970642669928450,1970462281302018,1970440806465538,1970659849797634,1970475166203906,1970445101432834,1970513820909570,1970470871236610,1970518115876866,1970342022217730,1970483756138498,1970466576269314,1970595425288194,1970651259863042,1970492346073090,1970453691367426,1970586835353602,1970505230974978,1970479461171202,1970329137315842,1970500936007682,1970496641040386,2251984499113984,2251941549703168,2251975908655104,2251950139113472,2251954433490944,2251980203556864,2251816995061760,2252276556955649,2251924369440768,2251920073555968,2252396817285121,2252315210678273,2252259378135041,2251967317737472,2252328096956417,2251988794605568,2251915778260992,2251932959440896,2252401112186881,2251937252900864,2252280852447233,2252285145579521,2251928663818240,2251963023622144,2252289440612353,2252263673364481,2251971612442624,2251958728851456,2252078989574144,2251945844015104,2251993088065536,2533433710804994,2533395056099330,2533420825903106,2533450890674178,2533459480608770,2533468070543362,2533407941001218,2533545379954690,2533463775576066,2533601214529538,2533390761132034,2533412235968514,2533455185641474,2533609804464130,2533446595706882,2533536790020098,2533549674921986,2533605509496834,2533425120870402,2533279091982338,2533429415837698,2533291976884226,2533416530935810,2533403646033922,2533592624594946,2533438005772290,2533442300739586,2533399351066626,2815028943323136,2814754065350656,3096761615122433,3096495326953472,3096357889572864,3096375069245440,3096241925193728,3096366479835136,3096765911334913,3096353593950208,3096383658983424,3096362183032832,3096387953754112,3096684306366465,3096340708392960,3096413724737536,3096345003687936,3096392247869440,3096688600416257,3096405133688832,3096701487087617,3096229040816128,3096753027088385,3096418018197504,3096757320286209,3096860401139713,3096710075711489,3096409429245952,3096379363622912,3096705782579201,3096400838787072,3096370774147072,3096740140810241,3096349299572736,3096559753494528,3096396542574592,3096714370744321,3096856107417601,3096868988911619,3377888704856066,3377880114921474,3377828575313922,3377875819954178,3377892999823362,3378026143809538,3377832870281218,3377961719300098,3377884409888770,3377867230019586,3377824280346626,3377854345117698,3377819985379330,3377858640084994,3377845755183106,3377850050150402,3377704021262338,3377974604201986,3377837165248514,3378017553874946,3377841460215810,3377871524986882,3378034733744130,3377716906164226,3377815690412034,3377862935052290,3377970309234690,3659178995679232,3659453873651712,3940804299456514,3940666860503042,3940791414554626,3940838659194882,3940782824620034,3940825774292994,3940911673638914,3940830069260290,3940795709521922,3940774234685442,3940800004489218,3940808594423810,3940920263573506,3940787119587330,3940812889391106,3940924558540802,3940765644750850,3940976098148354,3940834364227586,3940778529652738,3940817184358402,3940967508213762,3940769939718146,3940842954162178,3940653975601154,3940980393115650,3940821479325698,3940984688082946,4222287865905154,4222451074662402,4222455369629698,4222292160872450,4222249211199490,4222240621264898,4222399535054850,4222274981003266,4222442484727810,4222266391068674,4222300750807042,4222253506166786,4222283570937858,4222257801134082,4222296455839746,4222317930676226,4222386650152962,4222313635708930,4222262096101378,4222309340741634,4222141837017090,4222305045774338,4222395240087554,4222270686035970,4222279275970562,4222244916232194,4222128952115202,4222459664596994,4503719899955202,4504243885965314,4503749964726274,4503934648320002,4503603935838210,4503780029497346,4503758554660866,4503616820740098,4503775734530050,4503870223810562,4503767144595458,4503792914399234,4503784324464642,4503737079824386,4503724194922498,4503771439562754,4503728489889794,4503788619431938,4503762849628162,4503741374791682,4503745669758978,4503754259693570,4503732784857090,4503715604987906,4785345192919042,4785336602984450,4785267883507714,4785212048932866,4785246408671234,4785233523769346,4785194869063682,4785254998605826,4785401027493890,4785237818736642,4785242113703938,4785207753965570,4785409617428482,4785229228802050,4785250703638530,4785078904946690,4785349487886338,4785216343900162,4785091789848578,4785199164030978,4785263588540418,4785224933834754,4785220638867458,4785190574096386,4785259293573122,4785203458998274,4785392437559298,5066691321069570,5066876004663298,5066811580153858,5066553882116098,5066742860677122,5066708500938754,5066665551265794,5066729975775234,5066725680807938,5066884594597890,5066674141200386,5066687026102274,5066717090873346,5066820170088450,5066669846233090,5066880299630594,5066738565709826,5066712795906050,5066867414728706,5066695616036866,5066734270742530,5066682731134978,5066704205971458,5066824465055746,5066721385840642,5066566767017986,5066699911004162,5066678436167682,5348162002485250,5348157707517954,5348149117583362,5348144822616066,5348196362223618,5348174887387138,5348192067256322,5348041743400962,5348187772289026,5348295146471426,5348204952158210,5348213542092802,5348286556536834,5348166297452546,5348183477321730,5348170592419842,5348350981046274,5348179182354434,5348342391111682,5348153412550658,5348359570980866,5348299441438722,5348217837060098,5348355276013570,5348028858499074,5348200657190914,5348140527648770,5348209247125506,5629628391620610,5629624096653314,5629503837569026,5629671341293570,5629615506718722,5629825960116226,5629761535606786,5629667046326274,5629770125541378,5629649866457090,5629830255083522,5629641276522498,5629692816130050,5629679931228162,5629662751358978,5629817370181634,5629654161424386,5629619801686018,5629834550050818,5629675636260866,5629774420508674,5629632686587906,5629658456391682,5629516722470914,5629684226195458,5629688521162754,5629645571489794,5629636981555202,5911159201071106,5911107661463554,5911120546365442,5911146316169218,5911111956430850,5911124841332738,5911137726234626,5911094776561666,5911150611136514,5911154906103810,5911133431267330,5911245100417026,5911142021201922,5911305229959170,5911300934991874,5911163496038402,5911099071528962,5911167791005698,5911090481594370,5911309524926466,5910978812444674,5911129136300034,5910991697346562,5911116251398146,5911292345057282,5911249395384322,5911236510482434,5911103366496258,6192780206342146,6192466673729538,6192767321440258,6192578342879234,6192595522748418,6192711486865410,6192599817715714,6192608407650306,6192621292552194,6192775911374850,6192586932813826,6192569752944642,6192625587519490,6192784501309442,6192591227781122,6192604112683010,6192612702617602,6192616997584898,6192634177454082,6192565457977346,6192574047911938,6192724371767298,6192720076800002,6192453788827650,6192582637846530,6192629882486786,6192642767388674,6192638472421378,6473941649653762,6474083383574530,6474079088607234,6474061908738050,6474104858411010,6474053318803458,6474195052724226,6474040433901570,6474186462789634,6474087678541826,6474117743312898,6474070498672642,6474044728868866,6474096268476418,6474057613770754,6474199347691522,6474049023836162,6474091973509122,6474113448345602,6474074793639938,6474259477233666,6474066203705346,6474100563443714,6474242297364482,6474255182266370,6474250887299074,6473928764751874,6474109153378306,6755674325254146,6755575541006338,6755566951071746,6755579835973634,6755554066169858,6755558361137154,6755541181267970,6755416627216386,6755528296366082,6755725864861698,6755588425908226,6755524001398786,6755584130940930,6755562656104450,6755571246039042,6755661440352258,6755515411464194,6755532591333378,6755730159828994,6755536886300674,6755519706431490,6755545476235266,6755717274927106,6755403742314498,6755592720875522,6755549771202562,6755670030286850,6755734454796290,7036878714765312,7037411292282881,7037145000902656,7318469659394050,7318525493968898,7318486839263234,7318521199001602,7318675817824258,7318534083903490,7318465364426754,7318516904034306,7318667227889666,7318499724165122,7318508314099714,7318491134230530,7318542673838082,7318611393314818,7318529788936194,7318366580178946,7318624278216706,7318619983249410,7318495429197826,7318538378870786,7318478249328642,7318504019132418,7318353695277058,7318512609067010,7318684407758850,7318473954361346,7318482544295938,7600142204731394,7600000470810626,7599996175843330,7599841557020674,7600094960091138,7600009060745218,7599948931203074,7600159384600578,7599991880876034,7600086370156546,7600013355712514,7599828672118786,7599983290941442,7599987585908738,7600099255058434,7600017650679810,7599940341268482,7600004765777922,7599957521137666,7599944636235778,7600150794665986,7599966111072258,7599953226170370,7599978995974146,7599970406039554,7599961816104962,7599974701006850,7881578527719426,7881303649812482,8162898880364544,8163251067879425,8162894584479744,8163263951536129,8163036322594818,8162928944414720,8162890289184768,8162941828661248,8163259656503297,8162903174742016,8162907470364672,8162937534545920,8162963305529344,8163302607880193,8163109337038850,8163289721602049,8162924650037248,8162959010037760,8162954714480640,8163100747104258,8162967598989312,8163238184747009,8163255363371009,8163049207496706,8163092157169666,8162916060626944,8162791505985536,8162778624557058,8162920354938880,8162911763824640,8162950419578880,8163044912529410,8162946123366400,8162933239775232,8444253609590786,8444421113315330,8444438293184514,8444399638478850,8444519897563138,8444429703249922,8444433998217218,8444412523380738,8444266494492674,8444378163642370,8444416818348034,8444386753576962,8444395343511554,8444584322072578,8444425408282626,8444408228413442,8444893559717890,8444391048544258,8444369573707778,8444403933446146,8444382458609666,8444373868675074,8444365278740482,8444442588151810,8725870315503618,8726080768901122,8725891790340098,8725908970209282,8725917560143874,8725900380274690,8725896085307394,8725999164522498,8725866020536322,8725994869555202,8725848840667138,8725986279620610,8725840250732546,8726054999097346,8725844545699842,8725913265176578,8725861725569026,8725853135634434,8725904675241986,8725741466484738,8725857430601730,8725887495372802,8725883200405506,8725878905438210,8725874610470914,8726003459489794,8726050704130050,8726042114195458,9007461253906434,9007358174691330,9007388239462402,9007383944495106,9007529973383170,9007371059593218,9007332404887554,9007319519985666,9007534268350466,9007349584756738,9007315225018370,9007328109920258,9007353879724034,9007362469658626,9007392534429698,9007345289789442,9007323814952962,9007379649527810,9007375354560514,9007216440770562,9007366764625922,9007340994822146,9007469843841026,9007525678415874,9007203555868674,9007474138808322,9007517088481282,9007336699854850,9288691424755714,9288837453643778,9288858928480258,9288841748611074,9288678539853826,9289318489980930,9288850338545666,9289009252335618,9288824568741890,9288867518414850,9288811683840002,9288828863709186,9288815978807298,9288798798938114,9288863223447554,9288944827826178,9288820273774594,9288807388872706,9288846043578370,9288803093905410,9288790209003522,9288833158676482,9288854633512962,9288794503970818,9570690377908225,9570694672809985,9570484217839616,9570475634720770,9570153512173570,9570411210211330,9570419800145922,9570325303132160,9570321006919680,9570424095113218,9570677492875265,9851774510301184,9851770215202816,9851808870301696,9851748740628480,9851795983630336,9852105223634945,9851783100039168,9851886183055362,9851804574744576,9851744444743680,9851959197499394,9852088045273089,9851791688925184,9852139581865985,9852109516767233,9851942017630210,9851817459253248,9851894772989954,9852152468144129,9851787394809856,9851765920890880,9852100928143361,9851740149448704,9851899067957250,9851761624088576,9852113811800065,9851950607564802,9851778804678656,9851753035005952,9851641366249472,9851628485017602,9851813165793280,9851757330628608,9851800279842816,10133103463563266,10133378341470210,10414711577509888,10414844726280194,10414728758099968,10415063765221377,10415055177056257,10414591319670784,10415037998759937,10414763119214592,10414849021247490,10414698694049792,10414724463722496,10414694398164992,10414690102870016,10414741642346496,10414715874312192,10414745937051648,10414750233264128,10414720168624128,10415050881564673,10415059470188545,10415089535287297,10414702988427264,10414754528165888,10414900560855042,10414707284049920,10414909150789634,10414578438307842,10415102421565441,10414767412674560,10414737348231168,10414836136345602,10414758823723008,10414733053460480,10414891970920450,10696238095925248,10696375538155522,10696066296381440,10696212324941824,10696242389385216,10696229504876544,10696182260760576,10696525858275329,10696328290893824,10696512974684161,10696169374875648,10696577398276097,10696538741932033,10696220913762304,10696177965137920,10696216619057152,10696650414555137,10696233800433664,10696534446899201,10696199440433152,10696208030171136,10696508679454721,10696530153766913,10696646119522305,10696190851022848,10696195145334784,10696225209974784,10696173670760448,10696564511997953,10696186554220544,10696405601484800,10696366948220930,10696165079580672,10696203734810624,10977713075126274,10977764614733826,10977859104014338,10977691600289794,10977640060682242,10977695895257090,10977841924145154,10977816154341378,10977768909701122,10977824744275970,10977811859374082,10977751729831938,10977670125453314,10977803269439490,10977738844930050,10977717370093570,10977820449308674,10978168341659650,10977532686499842,10977541276434434,10977652945584130,10977648650616834,10977528391532546,10977773204668418,10977549866369026,10977756024799234,10977536981467138,10977807564406786,10977678715387906,10977700190224386,10977635765714946,10977734549962754,10977683010355202,10977704485191682,10977743139897346,10977661535518722,10977665830486018,10977777499635714,10977708780158978,10977760319766530,10977554161336322,10977794679504898,10977781794603010,10977829039243266,10977657240551426,10977687305322498,10977674420420610,10977644355649538,11259325490266112,11259316900265984,11540800468156418,11540791878221826,11822223904145408,12103604388429824,12103552848691200,12103561437773824,12103939395551233,12103570028888064,12103905037320193,12103578618363904,12103428298375168,12103544258428928,12103612979478528,12103617272938496,12103986643730433,12103978053861377,12103587208495104,12103909330452481,12103595797315584,12103600093528064,12103565734576128,12103548554313728,12103973758959617,12103952281829377,12103441179934720,12103900741828609,12103887859679233,12103582913724416,12103608683986944,12103698881183744,12103574323986432,12103982349090817,12103557144313856,12103913625485313,12103539963133952,12103591502610432,12385186744958976,12385165268287488,12385315592536065,12385203924631552,12385307002142721,12385289823191041,12385268347961345,12385328478748673,12385285528748033,12385233989206016,12385311297699841,12385298412994561,12385199628681216,12384911866265600,12385332773191681,12385319888879617,12384924751233024,12385169564499968,12385191039664128,12385324183388161,12385302707830785,12385010650251264,12384929046003712,12385272642666497,12384907570118656,12385337067962369,12385294117568513,12385354247176193,12384903275347968,12385281232535553,12385195334565888,12666601597370370,12666537172860930,12666391143972866,12666515698024450,12666644547043330,12666670316847106,12666532877893634,12666584417501186,12666618777239554,12666545762795522,12666498518155266,12666653136977922,12666610187304962,12666614482272258,12666567237632002,12666674611814402,12666378259070978,12666562942664706,12666528582926338,12666666021879810,12666554352730114,12666494223187970,12666678906781698,12666511403057154,12666399733907458,12666382554038274,12666661726912514,12666593007435778,12666605892337666,12666502813122562,12666558647697410,12666485633253378,12666507108089858,12666404028874754,12666386849005570,12666631662141442,12666524287959042,12666550057762818,12666627367174146,12666691791683586,12666541467828226,12666708971552770,12666623072206850,12666489928220674,12666588712468482,12666657431945218,12666519992991746,12947960603672576,12948016432742400,12948467411845121,12948166764462080,12948102339035136,12948218301382657,12948128104579072,12948020727447552,12948364325683201,12948080865181696,12948085160411136,12948248366415873,12948136698380288,12948059389820928,12948471707074561,12948222596087809,12948089454854144,12948252661252097,12948042203070464,12948029318561792,12947982074445824,12947994959020032,12948244070989825,12948454526746625,12948329967452161,12948231188709377,12947853231718400,12948003548495872,12948183942627328,12948441641648129,12947977778823168,12948308493139969,12948132403937280,12948334260584449,12948287023808513,12947990664708096,12947973484445696,12947986367905792,12948012138627072,12948312788369409,12948007843856384,12948261251121153,12948153878052864,12948235482169345,12948025023660032,12947878999425024,12948037909610496,12948445937795073,12948437347008513,12948325671960577,12948140993085440,12948450231255041,12948338555617281,12947874704654336,12948377211961345,12947999254118400,12948145287987200,12948119517921280,12948239776612353,12948274136809473,12948299908579329,12948067979034624,12948265545957377,12947964893265920,12948458820993025,12947857523539968,12947969188560896,12948291318906881,12948269842300929,12948106633805824,12947866110066688,12948256955564033,12948076570345472,12948093749035008,12947861819686912,12948063684657152,12948033614118912,12948098044329984,12948463116353537,12948278432169985,12948282726612993,12948149582102528,13229787765080065,13229512886321152,13229478525206528,13229852188672001,13229500000370688,13229495704158208,13229439869976576,13229465641418752,13229491409453056,13229804944162817,13229448461156352,13229813532327937,13229341086777344,13229800648671233,13229603081289728,13229461344616448,13229444165271552,13229783475617793,13229469935730688,13229457051156480,13229517179781120,13229504295272448,13229508590829568,13229920914636801,13229839302393857,13229452755533824,13229809237295105,13229474230829056,13229487115337728,13229482820567040,13510970694565890,13511443140968450,13511133903323138,13510974989533186,13510953514696706,13510932039860226,13510803190841346,13510992169402370,13510914859991042,13510957809664002,13510936334827522,13510944924762114,13510962104631298,13510940629794818,13510816075743234,13510927744892930,13510983579467778,13510919154958338,13511069478813698,13510949219729410,13510966399598594,13510987874435074,13510923449925634,13510979284500482,13792806443614209,13792815026339841,13792746307911681,13792810730127361,13792608868499456,13792742012878849,13792591688957952,13792278155821056,13792544441958400,14074075259928578,14073869101498370,14073937820975106,14073753137381378,14073920641105922,14073894871302146,14073933526007810,14074079554895874,14074083849863170,14073903461236738,14074023720321026,14073916346138626,14073942115942402,14073881986400258,14074028017319936,14073890576334850,14073924936073218,14074010835419138,14073899166269442,14073929231040514,14073766022283266,14073873396465666,14073864806531074,14073907756204034,14073912051171330,14074066669993986,14073877691432962,14074019425353730,14073886281367554,14355404202115072,14355709144137729,14355395611000832,14355361251459072,14355752102330369,14355391316295680,14355417086623744,14355739209236481,14355717742723073,14355722037428225,14355387022180352,14355240993619968,14355713439170561,14355378432049152,14355365548261376,14355408497672192,14355374137671680,14355704857755649,14355399907213312,14355412793163776,14355369842573312,14355726332461057,14355382727409664,14636862011080706,14636827651342338,14636892075851778,14636883485917186,14636887780884482,14636866306048002,14636870601015298,14636703097290754,14636879190949890,14636969385263106,14636853421146114,14636831946309634,14636823356375042,14636715982192642,14636819061407746,14636857716113410,14636844831211522,14637343047417858,14636814766440450,14636874895982594,14636840536244226,14637033809772546,14636836241276930,14636849126178818,14918500191174658,14918324097515522,14918306917646338,14918358457253890,14918289737777154,14918444356599810,14918302622679042,14918294032744450,14918508781109250,14918336982417410,14918362752221186,14918491601240066,14918341277384706,14918311212613634,14918448651567106,14918354162286594,14918345572352002,14918367047188482,14918190953529346,14918319802548226,14918332687450114,14918298327711746,14918435766665218,14918328392482818,14918178068627458,14918349867319298,14918504486141954,14918452947845120,14918315507580930,15200172737888257,15199653046714368,15200168442855425,15481441555120130,15481394304843776,15481239691657218,15481248281591810,15481278346362882,15481454440022018,15481286936297474,15481304116166658,15481480209825794,15481385714974720,15481450145054722,15481269756428290,15481282641330178,15481265461460994,15481274051395586,15481295526232066,15481299821199362,15481312706101250,15481291231264770,15481256871526402,15481398605447170,15481308411133954,15481252576559106,15481317001068546,15481402900414466,15481140907409410,15481243986624514,15481261166493698,15762925118619650,15762916528685058,15762869284044802,15762602996072450,15762860694110210,15762873579012098,15762933708554242,16044077976780802,16044408689262594,16044400099328002,16044335674818562,16044348559720450,16044249775472642,16044344264753154,16044245480505346,16325819241267202,16325552953294850,16325883658895360,16326089824731137,16325724744187904,16325823536234498,16325810651332610,16325875075842050,16325720447975424,16326076939763713,16607350052618242,16607298513010690,16607294218043394,16607027930071042,16607285628108802,16888816435462146,16888769190821890,16888773485789186,16888833615331330,16888825025396738,16888760600887298,16888502902849538,17170308591910914,17170235577466882,17170248462368770,17170244167401474,17170291412041730,17169977879429122,17170300001976322,17452092814786562,17451465749561346,17451637548253186,17451598893547522,17451611778449410,17451633253285890,17451628958318594,17451641843220482,17451573123743746,17451620368384002,17451603188514818,17451607483482114,17451719152631810,17451581713678338,17451616073416706,17451452864659458,17451594598580226,17451586008645634,17451577418711042,17451590303612930,17451568828776450,17451783577141250,17451624663351298,17451564533809154,17733052382904320,17733108218200064,17733043792642048,17733069563101184,17733078152577024,17733099627741184,17733520542924801,17733065268789248,17733400276041729,17733116807151616,17733413159698433,17732940714147840,17733404571533313,17733451816042497,17733039497347072,17733091036823552,17733048088526848,17733060971986944,17733073858199552,17733112513691648,17733408864665601,17733086742708224,17733103922642944,17733056678526976,17733082447937536,17733438929764353,17733095331528704,17733387392450561,17733383102988289,17733202708660224,18014402809561088,18014780769501185,18014772176879617,18014785062961153,18014840900943873,18014424285446144,18014806536355841,18014823717601281,18014669098713088,18014978339831809,18014767882174465,18014686279172096,18014810831912961,18014694868779008,18014699162894336,18014832307404801,18014428580216832,18014819423092737,18014797947207681,18014411400478720,18014836604600321,18014802242043905,18014690573877248,18014815126749185,18014789357404161,18014828012961793,18014407104331776,18014677692252160,18014793651781633,18014733523419136,18014703458844672,18014510184464384,18296023814963202,18296118304243714,18296105419341826,18296083944505346,18296169843851266,18296053879734274,18296101124374530,18296109714309122,18296144074047490,18296161253916674,18295886376009730,18296517736202242,18296165548883970,18295998045159426,18296062469668866,18295985160257538,18296015225028610,18296156958949378,18296045289799682,18296010930061314,18296092534439938,18296028109930498,18295993750192130,18295890670977026,18296019519995906,18296002340126722,18295877786075138,18295899260911618,18295882081042434,18296152663982082,18296191318687746,18296122599211010,18296174138818562,18296131189145602,18296032404897794,18296126894178306,18296058174701570,18296036699865090,18296040994832386,18295903555878914,18296006635094018,18296066764636162,18296049584766978,18296114009276418,18296178433785858,18296088239472642,18296208498556930,18295989455224834,18577619046039552,18577683472580608,18577352759902208,18577885334208513,18577881047695361,18577820919267329,18577889630420993,18858973772120066,18859149865779202,18859003836891138,18858948002316290,18858943707348994,18859102621138946,18858990951989250,18859012426825730,18858840628133890,18859094031204354,18859179930550274,18858960887218178,18858965182185474,18858995246956546,18858999541923842,18858982362054658,18858986657021954,18859141275844610,18859154160746498,18859016721793026,18858956592250882,18859008131858434,18858939412381698,18858969477152770,18859098326171650,18858952297283586,18859085441269762,18858978067087362,19140624843931648,19140573304258560,19422099820707840,19422048280379394,19703523257876480,19984998234193922,19985255933018113,19984985349816320,19985298882494465,19985294587592705,19985058356133888,19985260217761793,19984993939685376,19985264522887169,19985049773801474,19984727643455488,20266318591229954,20266529044627458,20266314296262658,20266374425804802,20266331476131842,20266383015739394,20266468915085314,20266340066066434,20266516159725570,20266348656001026,20266524749660162,20266361540902914,20266344361033730,20266352950968322,20266378720772098,20266357245935618,20266473210052610,20266335771099138,20266554814431234,20266327181164546,20266477505019906,20266387310706690,20266365835870210,20266322886197250,20266215512014850,20266460325150722,20266391605673986,20266370130837506,20547999726960642,20547948187353090,20829474703998978,20829423164391426,21110717742645250,21110966850748418,21110971145715714,21110936785977346,21110722037612546,21110709152710658,21110911016173570,21110691972841474,21110945375911938,21110674792972290,21110962555781122,21110941080944642,21110666203037698,21110893836304386,21110687677874178,21110713447677954,21110700562776066,21110898131271682,21110949670879234,21110919606108162,21110649023168514,21110653318135810,21110953965846530,21110661908070402,21110726332579842,21110958260813826,21110979735650306,21110984030617602,21110683382906882,21110915311140866,21110644728201218,21110975440683010,21110704857743362,21110730627547138,21110679087939586,21110885246369794,21110932491010050,21110657613103106,21110889541337090,21110906721206274,21110696267808770,21110670498004994,21392416060407810,21392141190365184,21392364520800258,21392145485463552,21392459010080770,21392154067402754,21392162657337346,21392149772435458,21392411765440514,21392446133108736,21392407470473218,21392373110734850,21392158362370050,21392424650342402,21392381700669442,21392428945309698,21392385995636738,21392450428207104,21673762194063362,21673749309161474,21673689179619330,21673753604128770,21673706359488514,21673766489030658,21673899633016834,21673740719226882,21673714949423106,21673590395371522,21673745014194178,21673727834324994,21673732129292290,21673757899096066,21673697769553922,21673843798441986,21673736424259586,21673852388376578,21673693474586626,21673710654455810,21673848093409282,21673835208507394,21673903927984130,21673891043082242,21673723539357698,21673702064521218,21673929697787906,21673719244390402,21955073953234946,21955099723038722,21955069658267650,21955095428071426,21955396075782146,21955082543169538,21955335946240002,21955361716043778,21955121197875202,21955155557613570,21955357421076482,21955116902907906,21955374600945666,21955318766370818,21955108312973314,21955387485847554,21955078248202242,21955129787809794,21955331651272706,21955408960684034,21955112607940610,21955125492842498,21955383190880258,21955378895912962,21955138377744386,21955366011011074,21955091133104130,21955370305978370,21955391780814850,21955146967678978,21955400370749442,21955404665716738,21955086838136834,21955104018006018,21955142672711682,21955134082777090,21955310176436226,21955314471403522,21955323061338114,21955340241207298,21955344536174594,21955151262646274,22236617651126274,22236832399491074,22236609061191682,22236849579360258,22236566111518722,22236613356158978,22236578996420610,22236574701453314,22236858169294850,22236570406486018,22236587586355202,22236862464262146,22236596176289794,22236798039752706,22236604766224386,22236866759229442,22236557521584130,22236836694458370,22236819514589186,22236879644131330,22236600471257090,22236789449818114,22236806629687298,22236591881322498,22236875349164034,22236883939098626,22236630536028162,22236815219621890,22236810924654594,22236626241060866,22236561816551426,22236621946093570,22236871054196738,22236853874327554,22236583291387906,22236840989425666,22518350325088258,22518268730867712,22518071152214018,22518032497508354,22518105511952386,22518049677377538,22518328850251778,22518290195546114,22518101216985090,22518260140802048,22518320270409728,22518041087442946,22518066857246722,22518358915022850,22518333145219074,22518019622830080,22518294490513410,22518028212830208,22518023917928448,22518341735153666,22518092627050498,22518045382410242,22518096922017794,22518058267312130,22518285900578818,22518264425742338,22518307375415298,22518084037115906,22518079742148610,22518337440186370,22518324555284482,22518088332083202,22518062562279426,22518311670382594,22518354620055554,22518036792475650,22518315965349890,22518273015676930,22518053972344834,22518075447181314,22518346030120962,22518281605611522,22799516065333250,22799533245202434,22799833892913154,22799799533174786,22799808132349952,22799507475398658,22799511770365954,22799812427382784,22799782353305602,22799765173436418,22799739403632642,22799786648272898,22799769468403714,22799816722415616,22799821008011266,22799524655267842,22799803828142082,22799756583501826,22799825302978562,22799747993567234,22799520360300546,22799528950235138,22799760878469122,22799790943240194,22799537540169730,23081214389780480,23362710841393152,23362689358102530,23362706537971714,23362697948037122,23362736602742786,23362783847383042,23362749487644674,23362740897710082,23362487494639618,23362753782611970,23362732307775490,23362483199672322,23644237346373634,23643953878532098,23644258821210114,23644215871537154,23643975353368578,23644250231275522,23644185806766082,23643928108728322,23644220166504450,23644207281602562,23643979648335874,23643932403695618,23643958173499394,23644224461471746,23644001123172354,23644245936308226,23644194396700674,23643971058401282,23644241641340930,23643919518793730,23643988238270466,23643992533237762,23643983943303170,23644233051406338,23643996828205058,23643936698662914,23643966763433986,23643949583564802,23644228756439042,23644005418139650,23643940993630210,23644211576569858,23644254526242818,23644168626896898,23643945288597506,23644181511798786,23644172921864194,23643923813761026,23644190101733378,23644164331929602,23644160036962306,23643962468466690,23925433152962562,23925656491261954,23925703735902210,23925682261065730,23925699440934914,23925647901327362,23925690851000322,23925437447929858,23925639311392770,23925686556033026,23925733800673282,23925428866711552,23925424571678720,23925660786229250,24206912424116226,24207174417121282,24207161532219394,24207131467448322,24206882368716800,24206886663618560,24207114287579138,24206908129148930,24206895244247042,24207165827186690,24207195891957762,24207157237252098,24207122877513730,24206890949279746,24207208776859650,24207178712088578,24206899539214338,24207200186925058,24206903834181634,24207135762415618,24488627918077954,24488434644549634,24488348745203714,24488353040171010,24488610738208770,24488335860301826,24488657982849026,24488623623110658,24488327270367234,24488619328143362,24488615033176066,24488593558339586,24488331565334530,24770158730084354,24769845197471746,24769832312569858,24770072830738434,24770081420673026,24769849492439042,24770145845182466,24770090020306944,24769836607537154,24770124370345986,24769853787406338,24770128665313282,24770150140149762,24769858082373634,24770115780411394,24770064240803842,24769862377340930,24769840902504450,24770094315208704,24770085715640322,24770111485444098,24770107190476802,25051277227327488,25051302997983232,25051569286545408,25051543522246656,25051659480727553,25051642299940865,25051564991643648,25051573580660736,25051384602230784,25051298703212544,25051285818245120,25051560696938496,25051607941185536,25051281522098176,25051655191461889,25051577876611072,25051646594646017,25333065733373954,25333074323308546,25332812330303490,25333039963570178,25332808035336194,25333082913243138,25333078618275842,25333095798145026,25332803740368898,25333035668602882,25333022783700994,25332786560499714,25333044258537474,25333108683046914,25333087208210434,25332782265532418,25333057143439362,25332799445401602,25333100093112322,25332795150434306,25333031373635586,25333061438406658,25333014193766402,25332790855467010,25333091503177730,25614510650359808,25614609434148865,25614514945064960,25614527830032384,25614227180748800,25614248656633856,25614592253362177,25614596548067329,25614334555652096,25614252951404544,25614605145014273,25614493475799040,25614523534082048,25614557894606848,25614231475519488,25614519239966720,25614235771666432,25895981330006018,25896028574646274,25895964150136834,25896024279678978,25896015689744386,26177512136638466,26177482071867394,26177250143633410,26177194309058562,26177263028535298,26177520726573058,26177490661801986,26177215783895042,26177439122194434,26177245848666114,26177241553698818,26177198604025858,26177271618469890,26177258733568002,26177280208404482,26177529316507650,26177434827227138,26177469186965506,26177443417161730,26177237258731522,26177232963764226,26177525021540354,26177456302063618,26177486366834690,26177207193960450,26177275913437186,26177460597030914,26177507841671170,26177202898993154,26177503546703874,26177447712129026,26177267323502594,26177499251736578,26177220078862338,26177464891998210,26177224373829634,26177228668796930,26177211488927746,26177533611474946,26177516431605762,26177494956769282,26177254438600706,26458944170098688,26458759485784064,26459017183494145,26458982824738816,26458660701798400,26458939875196928,26458935580491776,26458948464214016,26458677881536512,26459034364280833,26458673586765824,26458952760164352,26459021478199297,26459030075211777,26458652110880768,26458656405651456,26458918405931008,26740449208696834,26740483577151488,26740187224473600,26740440618762242,26740453503664130,26740389079154690,26740397669089282,26740406259023874,27021898417635328,27022014381490177,27021773859192832,27021932778160128,27021709439205376,27022164712488961,27021756679389184,27021894123520000,27021606359072768,27021902713585664,27021602064302080,27022022972342273,27022087391150081,27021752384028672,27021984317702145,27022040154439681,27021889828618240,27021623540187136,27022005791096833,27021997201948673,27021735203438592,27022126054309889,27021748089651200,27021778154094592,27022083096117249,27021765268275200,27021992906522625,27021739500240896,27021967136915457,27021791038603264,27021988612145153,27021868353454080,27022018677833729,27021980024242177,27021760974159872,27021786745143296,27021782449651712,27022048748306433,27022078809735169,27022027267702785,27022035859341313,27021769562980352,27022100288045057,27021614945599488,27021971431620609,27021743794552832,27021627834957824,27022001496784897,27021610655219712,27022010086653953,27021885533913088,27022113161216001,27022031562145793,27303347622248450,27303356212183042,27303137168850946,27303433521594370,27303381991292928,27303403456823298,27303339032313858,27303399161856002,27303132873883650,27303390571921410,27584573493608448,27584934271123457,27584818306875392,27584848371056640,27584552017723392,27584938572447745,27584852667006976,27584577788379136,27584560608641024,27584556312494080,27584844076941312,27584839782039552,27584917090336769,27584929974910977,27584921385041921,27584882731581440,27584835487334400,27584659392626688,27866293278670850,27866314753507330,27866048465534978,27866357703180290,27866035580633090,27866327638409218,27866310458540034,27866134364880898,27866052760502274,27866319048474626,27866031285665794,27866323343441922,27866026990698498,28147506262507522,28147802615250946,28147789730349058,28147768255512578,28147785435381762,28147523442376706,28147527737344002,28147609341722626,28147794025316354,28147832680022018,28147510557474818,28147798320283650,28147501967540226,28428998419021826,28428985534119938,28428976944185346,28429260412026882,28429273296928770,28428981239152642,28429277591896066,28429002713989122,28429307656667138,28429243232157698,28429269001961474,28429264706994178,28429084318367746,28710477690896386,28710735388934146,28710559295275010,28710460511027202,28710718209064962,28710748273836034,28710451921092610,28710739683901442,28710782633574402,28710456216059906,28710752568803330,28710743978868738,28710473395929090,28992197482643458,28992249022251010,28992206072578050,28992188892708866,28991982743584768,28992253317218306,28992240432316418,28992283381989378,28991987029245954,29273706818830338,29273758358437890,29273715408764930,29273728293666818,29273681049026562,29273462005694466,29273672459091970,29273663869157378,29273457710727170,29273711123431424,29273723998699522,29554984225079298,29555160318738434,29554898325733378,29554885440831490,29555168908673026,29555143138869250,29555177498607618,29554876850896898,29555164613705730,29554881145864194,29555173203640322,29554902620700674,29555207563378690,29836643895476226,29836592355868674,29836377607503874,29836351837700098,29836373312536578,29836652485410818,29836605240770562,29836588060901378,29836562291097602,29836583765934082,29836639600508930,29836360427634690,29836566586064898,29836356132667394,29836626715607042,29836596650835970,29836459211882498,29836682550181890,29836618125672450,29836635305541634,29836570881032194,29836579470966786,29836557996130306,29836648190443522,29836665370312706,29836600945803266,29836631010574338,29836575175999490,30118093103955968,30399688332673025,30399696922476545,30399731282673665,30399568073981952,30399692627050497,30399718398361601,30399701217312769,30399722692870145,30399589549146112,30399714102018049,30399666857443329,30399323260715008,30399684038230017,30399598138163200,30399310375747584,30399602434113536,30399301784829952,30399705511624705,30399632498688000,30399709807181825,30399593844047872,30399748469424129,30399306079600640,30399671152148481,30399726988230657,30399735579869185,30399679744770049,30399409159733248,30399739874967553,30399327555485696,30399585254440960,30399615325372416,30681008693182464,30680914197479424,30680905607217152,30680987217428480,30680982922592256,30680944260218880,30681184783892481,30680909900677120,30680884136443904,30681025871806464,30681090297233408,30681360879779841,30680948556431360,30680927081267200,30680897017217024,30680922786889728,30680939965513728,30681189078728705,30680991511805952,30681365174419457,30681107475398656,30681021577101312,30681378065088513,30681154721480705,30681287858454529,30681171899187201,30681249204731905,30681146128859137,30680901311594496,30681390944616449,30681017281806336,30680802532196352,30681030166577152,30680952851333120,30681300744732673,30681382353764353,30680961442381824,30681253500223489,30681223441350657,30681262088388609,30681201964941313,30681043050692608,30681210556579841,30680965735841792,30681369470566401,30681141834153985,30681163309383681,30680931376627712,30681193375072257,30681000103116800,30681236321140737,30681395239845889,30681055942475776,30680781056311296,30680789642838016,30681232031678465,30680785352458240,30681197669580801,30681077410824192,30681159014940673,30681064525856768,30681068820758528,30681206259384321,30681214851678209,30681004397953024,30680957146890240,30681386649124865,30681051637350400,30680918491791360,30680935671398400,30681012987625472,30681257793355777,30681073114873856,30680776764489728,30681180488335361,30681060231151616,30680798237425664,30680888426037248,30681167603761153,30680892721332224,30681176194023425,30962251746443264,31244040255832064,31525502345740290,31525442216198146,31525429331296258,31525450806132738,31525515230642178,31525227467833346,31525420741361666,31525480870903810,31525412151427074,31525437921230850,31525498050772994,31525407856459778,31525476575936514,31525309072211970,31525433626263554,31525205992996866,31525416446394370,31525489460838402,31525455101100034,31525446511165442,31525201698029570,31525467986001922,31525485165871106,31525223172866050,31525493755805698,31525425036328962,31525210287964162,31525532410511362,31806951553040386,31806805524152322,31807007387615234,31806796934217730,31806680970100738,31806925783236610,31806784049315842,31806818409054210,31806917193302018,31806852768792578,31806900013432834,31806792639250434,31806689560035330,31806702444937218,31806857063759874,31806968732909570,31806960142974978,31806904308400130,31806826998988802,31806930078203906,31806809819119618,31806973027876866,31806955848007682,31806908603367426,31806861358727170,31806801229185026,31806977322844162,31806887128530946,31806882833563650,31806964437942274,31806698149969922,31806942963105794,31806835588923394,31807316625260546,31806788344283138,31806912898334722,31806685265068034,31806895718465538,31806822704021506,31806676675133442,31806839883890690,31806990207746050,31806865653694466,31806921488269314,31806844178857986,31806891423498242,31806814114086914,31806831293956098,31806848473825282,32088370694586370,32088482363736066,32088362104651778,32088173126090754,32088452298964994,32088465183866882,32088366399619074,32088426529161218,32088259025436674,32088151651254274,32088357809684482,32088435119095810,32088400759357442,32088448003997698,32088160241188866,32088374989553666,32088417939226626,32088439414063106,32088379284520962,32088387874455554,32088392169422850,32088405054324738,32088155946221570,32088177421058050,32088383579488258,32088396464390146,32088430824128514,32088443709030402,32369940162740224,32651428024418304,32932954535165953,32932864339542016,32932890110918656,32933190758301697,32932842864377856,32932602345881600,32932963123068929,32932787031113728,32932872928559104,32932576578174976,32932945942544385,32932967417446401,32932817095491584,32932941647839233,32932585166143488,32932821390786560,32932683950129152,32932851451035648,32933182167449601,32933006073069569,32932868634443776,32932997483266049,32933010370265089,32933195053531137,32932580869996544,32933169284251649,32932984597577729,32932791325491200,32932980302020609,32932782736277504,32932877224509440,32932808506867712,32932958828625921,32932907289083904,32932988892413953,32932971712872449,32933014665363457,32932799916802048,32933001778626561,32933164988104705,32932829980262400,32932860044836864,32933023255035905,32933160699297793,32932855756554240,32932804211638272,32932993188757505,32932598051110912,32932976007708673,32933186462810113,32932825685491712,32932812801310720,33214335021547520,33214339316252672,33214347905269760,33214502532087809,33214416624549889,33214055846707200,33214060142854144,33214476755337217,33214317841088512,33214352201220096,33214343611154432,33214429509124097,33214077322592256,33214158926839808,33214485344550913,33214455278731265,33214420919255041,33214442394157057,33214446689583105,33214433805336577,33214463869124609,33214468165468161,33214459574288385,33214438099779585,33214472459976705,33214481049780225,33214382265794560,33214051551936512,33214450984419329,33214073027821568,33495822888534018,33495805708664834,33495810003632130,33495535125725186,33495758464024578,33495633909972994,33495754169057282,33495801413697538,33495526535790594,33495749874089986,33495530830757890,33495552305594370,33495814298599426,33495762758991874,33495779938861058,33495840068403202,33495792823762946,33495548010627074,33495818593566722,33495775643893762,33495732694220802,33495767053959170,33495741284155394,33495771348926466,33495736989188098,33495857248272386,33495827183501314,33777284979621890,33777297864523778,33777250619883522,33777005806747650,33777315044392962,33777293569556482,33777267799752706,33777254914850818,33777237734981634,33777207670210562,33777332224262146,33777229145047042,33777022986616834,33777108885962754,33777224850079746,33777001511780354,33777211965177858,33777289274589186,33777233440014338,33777010101714946,33777027281584130,33777216260145154,33777246324916226,33777276389687298,33777302159491074,33777242029948930,33777280684654594,33777220555112450,34058828678496256,34058820076044290,34058523723300866,34058755651534850,34058781421338626,34058579569934336,34058790011273218,34058515133366274,34058759946502146,34058785716305922,34058510838398978,34058532313235458,34058566685294592,34058549505556480,34058747061600258,34058528018268162,34058738471665666,34058807191142402,34058815781076994,34058545210785792,34058811486109698,34058540915359744,34058832960946178,34058768536436738,34058519428333570,34058506543431682,34058824371011586,34058798601207810,34058558095163392,34058570980720640,34058802896175106,34058562390720512,34058575275491328,34058918872547329,34058553800458240,34058536608202754,34058764241469442,34340217756188672,34621512329723906,34621692718350338,34621477969985538,34621503739789314,34621473675018242,34621529509593090,34621709898219522,34621684128415746,34621757142859778,34621731373056002,34621460790116354,34621499444822018,34621516624691202,34621744257957890,34621447905214466,34621778617696258,34621508034756610,34621761437827074,34621482264952834,34621714193186818,34621525214625794,34621770027761666,34621465085083650,34621469380050946,34621452200181762,34621752862507008,34621486559920130,34621443610247170,34621456495149058,34621774322728962,34621739962990594,34621748552925186,34621782912663554,34621490854887426,34621735668023298,34621718488154114,34621520919658498,34621765732794370,34621495149854722,34903180591562754,34903141936857090,34903129051955202,34903120462020610,34902922893524994,34903133346922498,34902910008623106,34903202066399234,34903197771431938,34903124756987906,34903232131170306,34902905713655810,34903214951301122,34903184886530050,34903189181497346,34903111872086018,34903137641889794,34903116167053314,34903008792870914,34903107577118722,34903193476464642,34903176296595458,34903167706660866,34903150526791682,34903146231824386,34902927188492290,34903154821758978,34902901418688514,35184668453961730,35184604029452290,35184655569059842,35184642684157954,35184616914354178,35184677043896322,35184651274092546,35184612619386882,35184402165989378,35184646979125250,35184376396185602,35184689928798210,35184599734484994,35184707108667394,35184380691152898,35184397871022082,35184483770368002,35184586849583106,35184659864027138,35184582554615810,35184595439517698,35184621209321474,35184664158994434,35184591144550402,35184629799256066,35184608324419586,35184384986120194,35184672748929026,35184625504288770,35466117663162368,35747639884578816,35747648474578944,36029067616780288,36310589827055618,36310546877382658,36310598416990210,36310538287448066,36310602711957506,36310555467317250,36591751275413504,36591983204106240,36591755567235072,36591966022729728,36592159294816257,36592133525864449,36592339685343233,36592150704947201,36592000382730240,36592343981490177,36592039036780544,36592197952274433,36592043331682304,36592137820307457,36591772748349440,36591987498549248,36591978908876800,36591777043120128,36591759863382016,36592146410110977,36592369750769665,36592120639782913,36592167885996033,36592180770308097,36591996088025088,36592163589652481,36592004677500928,36592017561616384,36592185067503617,36592081986322432,36592172180504577,36591961728352256,36591991792730112,36592034742075392,36591974614040576,36592129232404481,36591858647367680,36592335397847041,36592116345077761,36592142114684929,36592026148274176,36592176475865089,36592064808157184,36592189362601985,36592361160048641,36591957433516032,36592154999259137,36592356864688129,36592047625797632,36592365455540225,36592051921747968,36873496831655938,36873488241721346,36873539781328898,36873548371263490,36873552666230786,37154915980476418,37154993289887746,37154988994920450,37154976110018562,37154967520083970,37154954635182082,37155001879822338,37154920275443714,37155014764724226,37154907390541826,37154941750280194,37154701232111618,37154980404985858,37154705527078914,37154924570411010,37154709822046210,37154937455312898,37154808606294018,37154911685509122,37154946045247490,37154933160345602,37154984699953154,37155031944593410,37154722706948098,37154997584855042,37154928865378306,37154727001915394,37154950340214786,37436292173791234,37436201979478018,37436317943595010,37436463972483074,37436468267450370,37436335123464194,37436184799608834,37436300763725826,37436180504641538,37436442497646594,37436287878823938,37436455382548482,37436360893267970,37436412432875522,37436309353660418,37436416727842818,37436343713398786,37436451087581186,37436189094576130,37436197684510722,37436390958039042,37436339418431490,37436421022810114,37436322238562306,37436305058693122,37436399547973634,37436476857384962,37436459677515778,37436506922156034,37436382368104450,37436472562417666,37436356598300674,37436386663071746,37436296468758530,37436365188235266,37436403842940930,37436425317777410,37436330828496898,37436348008366082,37436408137908226,37436283583856642,37436429612744706,37436489742286850,37436352303333378,37436326533529602,37436313648627714,37436176209674242,37717780036911106,37718291138019330,37717831576518658,37717788626845698,37717827281551362,37717818691616770,37717801511747586,37717762857041922,37717840166453250,37717797216780290,37717775741943810,37717792921812994,37717771446976514,37717917475864578,37717810101682178,37717814396649474,37717784331878402,37717767152009218,37717822986584066,37717981900374018,37717651187892226,37717835871485954,37717664072794114,37717805806714882,37999439689154562,37999448279089154,37999478342418432,38280764336701440,38280790107029504,38280760042586112,38280747158077440,38281112229642241,38280742862979072,38281099352866817,38280738568667136,38281086459576321,38280772927619072,38280751452454912,38280785813569536,38281125122736129,38281095057833985,38280755747815424,38280768631406592,38281082164543489,38280734271864832,38280614014025728,38281077878161409,38280777222520832,38280781518077952,38281090768896001,38562088996306946,38562209255391234,38562355284279298,38562265089966082,38562243615129602,38562217845325826,38562226435260418,38562252205064194,38562222140293122,38562247910096898,38562256500031490,38562235025195010,38562239320162306,38562213550358530,38562260794998786,38562230730227714,38843817369206784,38844087953588225,38844053607350273,38844079377219585,38843551083069440,38843877513822208,38844083657375745,38844057902252033,38843881795747840,39125197857751040,39125189266833408,39125038944157696,39125356777701378,39125172088209408,39125184972718080,39125180677947392,39125176382586880,39125511389708289,39125202152652800,39125159201996800,39125283763257346,39125206448209920,39125167793111040,39125292353191938,39125502808293377,39125550052868097,39125210743701504,39125193561538560,39125537159774209,39125296648159234,39125524289290241,39125215037161472,39125163498799104,39125352482734082,39125026065219586,39125507094675457,39406767329771522,39406677129363456,39406659949428736,39406685720412160,39406638475509760,39406655654658048,39407025029578753,39406647064920064,39406642769821696,39406664243544064,39406827459313666,39406999266066433,39406831754280962,39406651359297536,39406634178707456,39407012136484865,39406986366418945,39406501041799170,39406668538249216,39406977785004033,39406982071386113,39406758739836930,39406771624738818,39406513920868352,39406681424920576,39406690013872128,39406672834461696,39688255199510528,39688109155418112,39688122041630720,39688143514959872,39688147811172352,39688160697122816,39687988897579008,39688156401631232,39688139220254720,39688474236420097,39688452761714689,39688113452220416,39688469947940865,39688461343129601,39688126336008192,39688500006289409,39688134926139392,39688164990582784,39688130631368704,39688117746532352,39688152106074112,39688487113195521,39688457048096769,39969970688425985,39969450997252096,39969966399553537,40251205145657346,40251248095330306,40251278167572480,40532723079643136,40532680129904640,40814198048620546,40814155098947586,41095617192067074,41095621487034370,41095518407819266,41095522702786562,41095350904094722,41095681616576514,41095673026641922,41095608602132482,41376825880674306,41377083578712066,41377148003221506,41377096463613954,41377092168646658,41658481250336770,41658438300663810,41658567149682690,41658940811837442,41658434005696514,41658446890598402,41658489840271362,41658451185565698,41658313746612226,41658421120794626,41658476955369474,41658442595631106,41658472660402178,41658468365434882,41658429710729218,41658459775500290,41658416825827330,41658455480532994,41658425415761922,41658300861710338,41658412530860034,41658485545304066,41658464070467586,41658631574192130,41940089363169282,41940097953103874,42221564345122818,42221529985384450,42221572935057410,42503013547704320,42502833158291456,42502730078158848,42503146691428353,42502751554043904,42503022136721408,42502992072540160,42503017842606080,42503108036788225,42503112331231233,42502734374305792,42503009252999168,42503133805740033,42503056497246208,42503120921034753,42503026432671744,42503000666079232,42503301319819265,42503138100576257,42503142396919809,42503129510182913,42503095150706689,42503116625608705,42503163874770945,42503305614721025,42502747259273216,42503155281231873,42503103743328257,42503090856001537,42503159578427393,42503150986788865,42502725783388160,42503125215870977,42784522883104770,42784514293170178,43065821769498626,43065933438648322,43065817474531330,43065847539302402,43065804589629442,43065856129236994,43065688625512450,43065843244335106,43065834654400514,43065791704727554,43066002158125058,43065826064465922,43065800294662146,43065942028582914,43065808884596738,43066027927928834,43065787409760258,43065851834269698,43065830359433218,43065838949367810,43065864719171586,43065989273223170,43065950618517506,43065795999694850,43065946323550210,43065813179564034,43065997863157762,43065860424204290,43347150724399104,43629098133422081,43628754535907328,43628758829367296,43629111017078785,43628788894203904,43629149673422849,43628780305317888,43629106722045953,43629136787144705,43628810371072000,43628750240284672,43628763126169600,43628797485121536,43628771715579904,43628745945907200,43628784600088576,43628767420481536,43628793188909056,43629179751956481,43629102428913665,43628814664531968,43628741650022400,43628638571528192,43629085251272705,43628806075580416,43628776009957376,43628801780023296,43628818974769152,43628737354727424,43910289649238018,43910246699565058,43910422793224194,43910233814663170,43910276764336130,43910229519695874,43910263879434242,43910238109630466,43910220929761282,43910225224728578,43910375548583938,43910216634793986,43910366958649346,43910113555578882,43910272469368834,43910281059303426,43910242404597762,43910250994532354,43910212339826690,43910268174401538,43910427088191490,43910452857995266,43910285354270722,43910358368714754,43910259584466946,43910255289499650,43910414203289602,43910371253616642,44191575640571904,44192146879610881,44191906353250304,44191708782788608,44191841936801792,44191721669001216,44191743142330368,44192056675467265,44191713079590912,44191717373902848,44191725963378688,44191756029001728,44191760324493312,44192035204694017,44192086740566017,44191691603443712,44191588524949504,44192121115639809,44192108214878209,44191700193705984,44191738847625216,44191734553509888,44192099626844161,44192142590410753,44192048086843393,44191687308148736,44192052382334977,44192112520003585,44192129694105601,44191730258739200,44191846237798400,44191751733444608,44191695899328512,44191704489328640,44192103922270209,44191833346932736,44191747438542848,44191764617953280,44192125398876161,44192060970500097,44473437168205825,44473467233894401,44473475823763457,44473445758009345,44473312624705536,44473458642714625,44473050620362752,44473076391018496,44473316909514752,44473450052845569,44473054915133440,44473381334220800,44473462937550849,44473351269646336,44473338384678912,44473432873762817,44473415692976129,44473471528402945,44473157995266048,44473419987681281,44473501603201025,44473484412977153,44473334089973760,44473441462583297,44473072096247808,44473428577550337,44473480118206465,44473454347157505,44473059211280384,44473346973696000,44473342679580672,44754791896514560,44754847724732418,44754796185124866,44754783306514432,45036322700984322,45036271161376770,45318046792679425,45317741843644416,45317475547414528,45318008124932097,45317733253775360,45317797678088194,45317746138480642,45599221114732546,45599272654340098,45880803461103617,45880717563133952,45880756217774080,45880708973527040,45880790576529409,45880812051759105,45880807757316097,45880532878819328,45880691793068032,45880794871234561,45880425503916032,45880713268232192,45880434094833664,45880816346136577,45880721857249280,45880824947474433,45880429798686720,45880820641562625,45880446979801088,45880726153199616,45880451274571776,46162231194484736,46161926251282432,46162201129910272,46161900480626688,46162287028469761,46162183950237696,46161921956511744,46162295618273281,46162196833959936,46162166769778688,46162007855529984,46162269847945217,46162282734026753,46162299924250625,46161904775397376,46162192539844608,46162188244942848,46161909071544320,46162278437814273,46162265553240065,46162291322847233,46443658926948352,46443744824655873,46443663221653504,46443482832240640,46443671810670592,46443740529950721,46443676106620928,46443757710737409,46443375457337344,46443774901026817,46443641746489344,46443396933222400,46443379752108032,46443766299557889,46443667516555264,46443753414524929,46443401227993088,46443706171195392,46443762005180417,46443384048254976,46443770594983937,46725241276268545,46725138198364160,46725219801366529,46725116723200000,46724871909933056,46725236981891073,46724957808951296,46725142493265920,46724859024965632,46724850434048000,46725215506661377,46725133903659008,46725245571694593,46725228391235585,46725151083331584,46724876204703744,46725232687448065,46724854728818688,46725181147906048,46725249877803009,46725146787381248,47006694778077185,47006608880369664,47006754908602369,47006626060042240,47006334001676288,47006707664158721,47006759205797889,47006716252979201,47006351181414400,47006720548405249,47006703370698753,47006432785661952,47006729137553409,47006329705529344,47006711958601729,47006613175074816,47006690483372033,47006656124616704,47006742024290305,47006737727946753,47006763500896257,47006621764091904,47006591699910656,47006772099219457,47006724843241473,47006733433110529,47006346886643712,47006750614159361,47006617469976576,47006325410758656,47006746318798849,47287800399396864,47569670501826561,47569666206400513,47569713462968321,47569644731498497,47569576013463552,47569640436793345,47569657617580033,47569296840065024,47569687681368065,47569696272220161,47569661912023041,47569691977711617,47569674796662785,47569567423397888,47569704862023681,47569606078038016,47569571717513216,47569709159219201,47569275364179968,47569283955097600,47569301134835712,47569279658950656,47569541653331968,47569649038327809,47569700567580673,47569653324120065,47569683386531841,47569563128496128,47569679090974721,47569545959178240,47569382739083264,47569558833790976,47850750353080320,48132311212556290,48132577500528642,48132263967916034,48132276852817922,48132483011248130,48132246788046850,48132324097458178,48132289737719810,48132564615626754,48132294032687106,48132319802490882,48132268262883330,48132259672948738,48132547435757570,48132504486084610,48132487306215426,48132251083014146,48132328392425474,48132302622621698,48132306917588994,48132495896150018,48132242493079554,48132517370986498,48132315507523586,48132538845822978,48132508781051906,48132285442752514,48132534550855682,48132491601182722,48132543140790274,48132581795495938,48132272557850626,48132560320659458,48132255377981442,48132573205561346,48132298327654402,48132551730724866,48132513076019202,48132530255888386,48132281147785218,48132568910594050,48132556025692162,48413988052664322,48414052477173762,48414031002337282,48413721764691970,48413747534495746,48414005232533506,48414022412402690,48413751829463042,48414018117435394,48413983757697026,48413957987893250,48413799074103298,48414009527500802,48413966577827842,48413790484168706,48414048182206466,48413717469724674,48413738944561154,48413769009332226,48413730354626562,48414039592271874,48413992347631618,48413786189201410,48413970872795138,48413962282860546,48413794779136002,48413756124430338,48413777599266818,48413743239528450,48413734649593858,48413764714364930,48413979462729730,48414026707369986,48413803369070594,48413781894234114,48414013822468098,48414043887239170,48413726059659266,48413760419397634,48414035297304578,48413773304299522,48414056772141058,48695544638341121,48695467330240512,48695463035338752,48695553228210177,48695471624355840,48695540343635969,48695458740633600,48695196746907648,48695282645925888,48695201041678336,48695175271022592,48695179565793280,48695557524422657,48695183861940224,48695475920306176,48695441560174592,48695561830334465,48695505984880640,48976671723618304,48977019615051777,48976946601066496,48976938012049408,48976916536885248,48976757622636544,48977036807110657,48976658838650880,48977028204920833,48976933717344256,48976942306951168,48976676018388992,48976650247733248,48977015320346625,48976654542503936,48976980961591296,48976950897016832,48977032501133313,49258146700328960,49258503181631489,49258125224443904,49258232599347200,49258417283661824,49258408694054912,49258133815361536,49258421577777152,49258494591762433,49258507477843969,49258391513595904,49258129519214592,49258455938301952,49258150995099648,49258490297057281,49258511783886849,49258412988760064,49258425873727488,49539767708483586,49539759118548994,49539875082665986,49539763413516290,49539737643712514,49539857902796802,49539754823581698,49539776298418178,49539772003450882,49539866492731394,49539784888352770,49539733348745218,49539870787698690,49539952392077314,49539750528614402,49539711873908738,49539741938679810,49539780593385474,49539729053777922,49539716168876034,49539789183320066,49539922327306242,49539724758810626,49539913737371650,49539926622273538,49539613089660930,49539746233647106,49539720463843330,49821075177865216,49821405891723264,49821466020085761,49821375827148800,49821440250478593,49821367237083136,49821470315511809,49821182552768512,49821483212210177,49821083768782848,49821461725708289,49821096653750272,49821358647476224,49821362942181376,49821474610348033,49821478904659969,49821444545183745,49821100948520960,49821453135052801,49821341467017216,49821457431265281,49821371531198464,49821079472635904,50102949587058689,50102936702418945,50102833624186880,50102928111763457,50102953894019073,50102940996796417,50102850803859456,50102842213793792,50102558745493504,50102816443727872,50102571630460928,50102837918892032,50102554449346560,50102919521894401,50102932407975937,50102575925231616,50102657529479168,50102880868433920,50102550154575872,50102945292222465,50102846507909120,50102915227189249,50384394498605057,50384420268933121,50384291420438528,50384029426057216,50384321484619776,50384312895602688,50384424563769345,50384046607171584,50384033722204160,50384308600897536,50384407384686593,50384415973507073,50384317190504448,50384403088474113,50384428870795265,50384025131286528,50384355845144576,50384411679129601,50384390203899905,50384050901942272,50384325780570112,50384132506189824,50665500107997184,50665800757280768,50665521583882240,50665792167215104,50665766397149184,50665504402767872,50665869475315713,50665796461330432,50665878065184769,50665783577608192,50665787872313344,50665830821855232,50665895257636865,50665607482900480,50665886655840257,50665890950217729,50665525878652928,50665865180610561,50665882361397249,50665508698914816,50947357338107905,50947370234413057,50947262849024000,50946975084707840,50947082459611136,50947275733991424,50946979379478528,50947271438041088,50947000855363584,50946983675625472,50947353041895425,50947258554318848,50947365926928385,50947241373859840,50947305798565888,50946996560592896,50947267143925760,50947344452026369,50947340157321217,50947361632550913,51228716350570496,51228450061418496,51228454356189184,51228746414751744,51228840916221953,51228819428737025,51228780775276544,51228557436321792,51228815134031873,51228458652336128,51228832314818561,51228750710702080,51228836609261569,51228471537303552,51228737825734656,51228475832074240,51228742120636416,51228733531029504,51228828018606081,51510221391462400,51509925038129152,51510315892998145,51509946514014208,51510255751987200,51509933629046784,51510294405447681,51510212802445312,51510311585972225,51509950808784896,51509929332899840,51510225687412736,51510307291529217,51510217097347072,51510290110742529,51510208507740160,51510302995316737,51510032413032448,51510191327281152,51791666303991808,51791558924697600,51791546040188928,51791769382158337,51791421490724864,51791795152486401,51791404309610496,51791777974779905,51791567513518080,51791730728697856,51791833809879041,51791876760272897,51791580400189440,51791683484450816,51791588989140992,51791799447322625,51791812332027905,51791816628371457,51791786562682881,51791408605757440,51791584695681024,51791412896137216,51791507389743104,51791803741634561,51791537450778624,51791533153976320,51791571809730560,51791541745090560,51791808037191681,51791846698844161,51791820922880001,51791425785495552,51791838104977409,51791885341687809,51791790857060353,51791924004847617,51791829512683521,51791692074057728,51791765087453185,51791700664123392,51791962668466177,51791400014839808,51791696368173056,51791576104632320,51791563218812928,51791687779155968,51791881046654977,51791782268239873,51791911111753729,51791898238582785,51791550334566400,51791825218240513,51791554629926912,52073227174936578,52072973771866114,52073188520230914,52072939412127746,52072969476898818,52072905052389378,52072960886964226,52073197110165506,52072917937291266,52072965181931522,52073154160492546,52073162750427138,52072930822193154,52073179930296322,52072943707095042,52072909347356674,52072956591996930,52073167045394434,52073222879969282,52072948002062338,52072935117160450,52073218585001986,52073136980623362,52073201405132802,52073231469903874,52073184225263618,52072913642323970,52072922232258562,52073205700100098,52073145570557954,52072978066833410,52072926527225858,52072952297029634,52073158455459842,52073209995067394,52073214290034690,52354349968261120,52354766581792769,52354788058398721,52354354263031808,52354762285449217,52354753695055873,52354732221661185,52354358559178752,52354749400743937,52354637732577280,52354796652265473,52354457343164416,52354783763300353,52354633437872128,52354371444146176,52354775171661825,52354740810481665,52354719335579649,52354642027479040,52354650617544704,52354745105907713,52354727928201217,52354757990612993,52354715040874497,52354779466104833,52354375738916864,52354770876301313,52354736516104193,52354646321594368,52354680682119168,52354616257413120,52635876480516098,52636155653390338,52635893660385282,52635910840254466,52635906545287170,52636164243324930,52635867890581506,52635885070450690,52636129883586562,52636177128226818,52635915135221762,52636108408750082,52636112703717378,52635897955352578,52636104113782786,52636151358423042,52636147063455746,52636172833259522,52636159948357634,52636181423194114,52636134178553858,52636138473521154,52636095523848194,52636168538292226,52635880775483394,52635855005679618,52635863595614210,52635919430189058,52635928020123650,52635872185548802,52635902250319874,52636116998684674,52635859300646914,52635889365417986,52636086933913602,52635923725156354,52917351457161218,52917622040100866,52917609155198978,52917355752128514,52917385816899586,52917377226964994,52917372931997698,52917570500493314,52917402996768770,52917613450166274,52917398701801474,52917591975329794,52917561910558722,52917587680362498,52917626335068162,52917656399839234,52917652104871938,52917604860231682,52917360047095810,52917381521932290,52917394406834178,52917334277292034,52917630630035458,52917364342063106,52917583385395202,52917329982324738,52917634925002754,52917647809904642,52917347162193922,52917643514937346,52917639219970050,52917338572259330,52917342867226626,52917368637030402,52917579090427906,52917390111866882,53199200101793793,53199058368004096,53199208693432321,53199187215581185,53199195806433281,53199221587968001,53199071251726336,53199152858333185,53199212988530689,53199041187545088,53199191511924737,53199178625187841,53199170036039681,53199174330875905,53199062662709248,53199066957611008,53198774898393088,53198796374278144,53199182920744961,53199157151793153,53199075547676672,53199161446236161,53198800669048832,53198783489310720,53199144265711617,53199204396236801,53199105612251136,53199165740613633,53198882273296384,53199139971006465,53198779193163776,53480627832291329,53480541934321664,53480537639419904,53480550524387328,53480649307586561,53480614947717121,53480357250007040,53480258466021376,53480675089907713,53480533344714752,53480275645759488,53480546228436992,53480632128503809,53480516164255744,53480254169874432,53480271350988800,53480653601898497,53480640717324289,53480619242422273,53480670783143937,53480636422946817,53480657897455617,53480645012750337,53480249875103744,53480662192291841,53480666488635393,53480580588961792,53762046984060928,53761995447861248,54043470424637440,54325241754288129,54325211689451521,54324945393090562,54325005514833920,54324941106446336,54324932508516352,54325246041194497,54606441841164288,54606527739133953,54606562099134465,54606433251557376,54606514854559745,54606519149264897,54606154076717056,54606158372864000,54606540624166913,54606549214429185,54606175552602112,54606566407208961,54606416071098368,54606544919592961,54606532035346433,54606446135279616,54606557804298241,54606536329789441,54606480495804416,54606257156849664,54606553508741121,54606437546262528,54606171257831424,54606450431229952,54606149781946368,54887710654005250,54887968352043010,54887693474136066,54887727833874434,54887959762108418,54887933992304642,54887706359037954,54887684884201474,54887895337598978,54887908222500866,54887723538907138,54887680589234178,54887951172173826,54887663409364994,54887689179168770,54887955467141122,54887702064070658,54887697769103362,54887964057075714,54887667704332290,54887972647010306,54887903927533570,54887981236944898,54887654819430402,54887912517468162,54887929697337346,54887659114397698,54887671999299586,54887714948972546,54887946877206530,54887719243939842,54887976941977602,54887886747664386,54887938287271938,54887916812435458,54887676294266882,55169391794585600,55169469102686209,55169207110270976,55169464807981057,55169512052555777,55169121211252736,55169430449225728,55169125506023424,55169516348899329,55169520655663105,55169477692555265,55169099735367680,55169499167850497,55169507757719553,55169400384651264,55169366024519680,55169503462162433,55169104030138368,55169387499683840,55169108326285312,55169396088700928,55169490577588225,55169481988767745,55169494873014273,55169486283210753,55169383204978688,55450871065411584,55450574712078336,55450939784691713,55450583302995968,55450858181689344,55450969849724929,55450600482734080,55450952669265921,55450579006849024,55450596187963392,55450956965478401,55450961259921409,55450862476394496,55450875361361920,55450682086981632,55450866771296256,55450944079396865,55450987042504705,55450974144561153,55450965554298881,55450841001230336,55450982734430209,55450978438873089,55450905425936384,55732071164674048,55732449121271809,55732462005977089,55732341748006912,55732337453105152,55732470596829185,55732440531009537,55732315977940992,55732457711140865,55732431942189057,55732419056107521,55732474892189697,55732453415583745,55732496379019265,55732436236632065,55732414761402369,55732487778926593,55732053983559680,55732479186632705,55732333158400000,55732075459444736,55732444826435585,55732350338072576,55732157063692288,55732380402647040,55732427648729089,55732466302320641,55732483483828225,55732049688788992,55732346042122240,55732058279706624,56013524673560578,56013808141402114,56013799551467522,56013821026304002,56013765191729154,56013550443364354,56013769486696450,56013739421925378,56013760896761858,56013756601794562,56013632047742978,56013546148397058,56013748011859970,56013816731336706,56013528968527874,56013773781663746,56013855386042370,56013812436369410,56013825321271298,56013730831990786,56013778076631042,56013735126958082,56013533263495170,56013838206173186,56013803846434818,56013790961532930,56013743716892674,56013752306827266,56295321774456832,56295313188519936,56576770978545666,56576659309395970,56576710849003522,56576496100638722,56576706554036226,56576607769788418,56576663604363266,56576594884886530,56576693669134338,56576646424494082,56576728028872706,56576637834559490,56576650719461378,56576642129526786,56576620654690306,56576680784232450,56576805338284034,56576633539592194,56576685079199746,56576483215736834,56576719438938114,56576762388611074,56576740913774594,56576474625802242,56576723733905410,56576487510704130,56576629244624898,56576624949657602,56576758093643778,56576616359723010,56576788158414850,56576586294951938,56576655014428674,56577114575929346,56576689374167042,56576500395606018,56576612064755714,56576715143970818,56576775273512962,56576697964101634,56576603474821122,56576599179853826,56576766683578370,56576478920769538,56576590589919234,56576749503709186,56576753798676482,56576581999984642,56576702259068930,56858336143474689,56858250244915200,56858194411192320,56858190115897344,56858533719703553,56858370503671809,56858245948964864,56858280309489664,56858340437852161,56858177232044032,56858366209163265,56858327555571713,56858318962950145,56858241654849536,56858185821716480,56858555187855361,56857953890402304,56858538008510465,56858374799032321,56858155756683264,56858164345896960,56858542304657409,56858233065242624,56858224471441408,56857971071516672,56858056970534912,56857949598580736,56858198705897472,56858203000668160,56858383390670849,56858314668244993,56858396275441665,56858172937207808,56858181527273472,56858361912819713,56858215884783616,56858357617983489,56858568073936897,56858263131324416,56858344733278209,56858160051519488,56857958186549248,56858349028114433,56858387685769217,56858331849031681,56858228782268416,56858559483215873,56858379093475329,56858237359947776,56858563778707457,56858353322426369,56857975366287360,57139738118782976,57421191614824450,57421127190315010,57421135780249602,57421230269530114,57421195909791746,57420899557048322,57421110010445826,57421178729922562,57421165845020674,57421114305413122,57420908146982914,57421187319857154,57421006931230722,57421174434955266,57421183024889858,57421105715478530,57420921031884802,57421140075216898,57421152960118786,57421148665151490,57421144370184194,57420925326852098,57420903852015618,57421213089660930,57421122895347714,57421131485282306,57421200204759042,57421118600380418,57702610756894722,57702589282058242,57702658001534978,57702653706567682,57702383123628034,57702584987090946,57702675181404162,57702400303497218,57702597871992834,57702593577025538,57702615051862018,57702640821665794,57702606461927426,57702623641796610,57702666591469570,57702662296502274,57702396008529922,57702670886436866,57702627936763906,57702374533693442,57702481907875842,57702705246175234,57702580692123650,57702378828660738,57702619346829314,57702649411600386,57702602166960130,57702688066306050,57984253229268993,57984150151757824,57984214575087617,57984287592611841,57984137266790400,57984296182284289,57984437915353089,57984077138886656,57983858093391872,57984059958362112,57984248934957057,57984180216332288,57984094318034944,57984141561692160,57984090022739968,57984467980779521,57984102907510784,57984085728559104,57983956877377536,57983853797244928,57984072844050432,57984132972085248,57984163038167040,57984081434116096,57984455094697985,57983849505423360,57984274705874945,57984279000317953,57984098612740096,57984231755874305,57984236050317313,57984244640120833,57984218869792769,57983870978359296,57984055663525888,57984442211500033,57984124378284032,57984240344694785,57983875273129984,57984064252739584,57984270410514433,57984283297513473,57984463685550081,57984145855807488,57984266116005889,57984115791626240,57984227462414337,57984433631920129,57984459390058497,57984261819662337,57984257524826113,58265513464561666,58265547824300034,58265461924954114,58265444745084930,58265500579659778,58265333075935234,58265612248809474,58265625133711362,58265603658874882,58265474809856002,58265483399790594,58265470514888706,58265345960837122,58265440450117634,58265552119267330,58265504874627074,58265496284692482,58265491989725186,58265324486000642,58265534939398146,58265638018613250,58265569299136514,58265431860183042,58265328780967938,58265565004169218,58265449040052226,58265607953842178,58265466219921410,58265556414234626,58265350255804418,58265560709201922,58265479104823298,58265573594103810,58265436155150338,58265453335019522,58265620838744066,58265539234365442,58265577889071106,58265616543776770,58265337370902530,58265599363907586,58265964436127746,58265655198482434,58265457629986818,58265543529332738,58265590773972994,58265487694757890,58265509169594370,58265530644430850,58546820937940994,58546808053039106,58547100110815234,58547048571207682,58547091520880642,58547130175586306,58547027096371202,58547044276240386,58547039981273090,58546906837286914,58547095815847938,58547052866174978,58547014211469314,58547031391338498,58547087225913346,58547065751076866,58547078635978754,58547009916502018,58547005621534722,58547022801403906,58547082930946050,58546803758071810,58546825232908290,58546799463104514,58547074341011458,58547112995717122,58547035686305794,58828600864079872,59110015696764930,59110045761536002,59109770883629058,59110037171601410,59109757998727170,59109775178596354,59110032876634114,59109856782974978,59110050056503298,59110041466568706,59110080121274370,59109749408792578,59109753703759874,59391331759357954,59391250154979330,59391228680142850,59391232975110146,59391490673147906,59391512147984386,59391555097657346,59391224385175554,59391516442951682,59391245860012034,59391507853017090,59391520737918978,59391525032886274,59672703656591362,59672965649596418,59672699361624066,59672982829465602,59672720836460546,59672987124432898,59672725131427842,59673000009334786,59672991419400194,59673030074105858,59672806735806466,59672707951558658,59672995714367490,59954457809059840,59954565181669377,59954569477095425,59954560887291905,59954195815333888,59954505053306880,59954612440137729,59954281714352128,59954578066243585,59954178634219520,59954470692782080,59954586656636929,59954474988732416,59954603837292545,59954200110104576,59954174339448832,59954539412062209,59954543706767361,59954573771931649,59954466398666752,59954556592848897,59954552299388929,59954440628600832,59954462103764992,59954590952980481,59954599542849537,59954182930366464,59954595247489025,59954608134488065,59954582361800705,60235670790275074,60235932783280130,60235756689620994,60235949963149314,60235653610405890,60235675085242370,60235915603410946,60235937078247426,60235980027920386,60235945668182018,60235657905373186,60235649315438594,60235941373214722,60517455004434434,60517407759794178,60517132881887234,60517231666135042,60517124291952642,60517150061756418,60517420644696066,60517145766789122,60517416349728770,60517390579924994,60517412054761474,60517128586919938,60517424939663362,60798603563565058,60798706642780162,60798929981079554,60798607858532354,60798865556570114,60798882736439298,60798899916308482,60798891326373890,60798895621341186,60798620743434242,60798887031406594,60798599268597762,60798625038401538,61080357712953346,61080100014915586,61080340533084162,61080370597855234,61080074245111810,61080181619294210,61080366302887938,61080078540079106,61080362007920642,61080374892822530,61080082835046402,61080404957593602,61080095719948290,61361832690253826,61361836985221122,61361574992216066,61361570697248770,61361841280188418,61361845575155714,61361549222412290,61361879934894082,61361815510384642,61361656596594690,61361557812346882,61361849870123010,61361553517379586,61643131572846594,61643290486636546,61643320551407618,61643311961473026,61643049968467970,61643307666505730,61643024198664194,61643354911145986,61643324846374914,61643032788598786,61643316256440322,61643045673500674,61643028493631490,61924795528380418,61924765463609346,61924507765571586,61924503470604290,61924520650473474,61924829888118786,61924791233413122,61924499175636994,61924786938445826,61924799823347714,61924524945440770,61924606549819394,61924782643478530,62206240440451074,62206270505222146,62206304864960514,62206081526661122,62205978447446018,62206257620320258,62205982742413314,62206261915287554,62205995627315202,62205999922282498,62206274800189442,62206266210254850,62205974152478722,62487715418996736,62487870037884929,62487844267491329,62487749779128320,62487895809654785,62488054734323713,62487827089784833,62487887219982337,62487736894160896,62487741189062656,62487779843702784,62487556504748032,62487878627688449,62487762665537536,62487835677687809,62487470605729792,62487474900500480,62487865743376385,62487453424615424,62487852856639489,62487818497163265,62487457720762368,62487857152196609,62487874333245441,62487882924883969,62487814202458113,62487745483177984,62487831383244801,62487839972065281,62487848562327553,62487861447032833,62487732599455744,62487449129844736,62768924109504512,62769516815581185,62769357901594625,62769327833350145,62769319244201985,62769211870871552,62769306359955457,62769031481458688,62769512519434241,62769508236263425,62769177511591936,62769190395707392,62769538289631233,62769340720087041,62769353604399105,62769160332640256,62769323539038209,62769370786365441,62769220459888640,62769164626821120,62769289179168769,62769332128907265,62768932697473024,62769542584860673,62769336423743489,62769168922116096,62769224755838976,62769293473873921,62769216165773312,62769207576166400,62768949877211136,62769533994139649,62769151742967808,62769310654398465,62769362196692993,62769345014595585,62769237642248192,62769147448131584,62769130267607040,62769138856820736,62769349309956097,62769198982365184,62769173216821248,62769134562443264,62768945582440448,62768928401326080,62769156038197248,62769254820413440,62769314948775937,62769529698779137,62769302066495489,63050682552877056,63050729797124096,63050789925486593,63050837173403649,63050815696797697,63050695436599296,63050506458169344,63050811400454145,63050777043206145,63050785631109121,63050420559151104,63050691142483968,63050824286666753,63050764155879425,63050768450584577,63050845774086145,63050403378036736,63050798515748865,63050807105617921,63050699732549632,63050819991306241,63050686847582208,63050407674183680,63050802810060801,63050781336666113,63050828581109761,63050424853921792,63050794220912641,63050832878305281,63050399083266048,63050665372418048,63332153240190978,63332166125092866,63332105995550722,63332114585485314,63332157535158274,63332127470387202,63332187599929346,63332084520714242,63332170420060162,63331895542153218,63332118880452610,63332088815681538,63332110290518018,63332161830125570,63332140355289090,63331981441499138,63332123175419906,63332080225746946,63331874067316738,63331882657251330,63332097405616130,63332101700583426,63331899837120514,63332204779798530,63332144650256386,63331878362284034,63332174715027458,63332148945223682,63332093110648834,63613374807343104,63613778534531073,63613735584530433,63613739878907905,63613641095905280,63613718404005889,63613752763482113,63613370512572416,63613349036687360,63613765650219009,63613649685970944,63613357627604992,63613748469170177,63613714109300737,63613632506298368,63613761353875457,63613645390020608,63613731290087425,63613782831726593,63613636801003520,63613679750545408,63613353331458048,63613726996627457,63613456411590656,63613774240088065,63613615325839360,63613787137638401,63613744174333953,63613757059039233,63613769944727553,63895262103535617,63894828308168704,63895257808437249,63895189086011393,63895201973338113,63895232035749889,63895206266798081,63895124662681600,63895253511241729,63895249216798721,63895154727256064,63894824013398016,63895240626929665,63895193380716545,63894849784053760,63894931388301312,63894832604315648,63895270704349185,63895120366731264,63895236330586113,63895214855618561,63895227740192769,63895244921438209,63895219151044609,63895223445880833,63895210561241089,63894845489283072,63895090302550016,63895107483009024,63895116072615936,63895111777714176,64176526637793280,64457915697070080,64457945761710080,64457911402758144,64458250712252417,64458272186957825,64457924286545920,64457950056611840,64458297956827137,64457958647660544,64457932876677120,64457786848116736,64458285063733249,64458053154177024,64457928581906432,64458267898478593,64457962941120512,64458259293667329,64457941465497600,64457907105955840,64457937170792448,64458254998634497,64457919992168448,64457954352168960,64739562478567426,64739571068502018,65021037467402240,65021046057402368,65302521022054402,65302525329145856,65302512432119810,65583682464579584,65583699644317696,65584099077062657,65584038946275329,65584060421505025,65583678168432640,65584056127062017,65584081896013825,65584094781702145,65583961637978112,65583781248565248,65584073306144769,65583957343272960,65584086190850049,65584124859973633,65583970226995200,65584064715882497,65584090487193601,65584004587520000,65584107666276353,65584051830849537,65584103371505665,65583940162813952,65584077600456705,65583974522945536,65584069011308545,65583965932879872,65584043240980481,65583695349547008,65583673873661952,65865148852666370,65865475270180866,65865479565148162,65865419435606018,65865415140638722,65865406550704130,66146881527283714,66146894412185602,66146950246760450,66146954541727746,66146890117218306,66146623829245954,66428266309222402,66428236244451330,66428253424320514,66428214769614850,66428365093470210,66428227654516738,66428356503535618,66428249129353218,66428244834385922,66428425223012354,66428262014255106,66428257719287810,66428111690399746,66428420928045058,66428412338110466,66428429517979650,66428270604189698,66428231949484034,66428219064582146,66428283489091586,66428287784058882,66428369388437506,66428098805497858,66428274899156994,66428279194124290,66428223359549442,66428210474647554,66428240539418626,66709715516456962,66709586667438082,66709741286260738,66709754171162626,66709852955410434,66709749876195330,66709732696326146,66709762761097218,66709724106391554,66709706926522370,66709728401358850,66709719811424258,66709758466129922,66709745581228034,66709711221489666,66709736991293442,66991327944900608,66991370890444800,67272931756277761,67272549504581632,67272910281768961,67272807203536896,67272523733925888,67272923166408705,67272927460720641,67272824383209472,67272944641966081,67272631108829184,67272901691113473,67272820087259136,67272815793143808,67272957526540289,67272914576146433,67272974720368641,67272528028696576,67272532324843520,67272545209810944,67272953231769601,67272918871572481,67272936051113985,67272854447783936,67272893101244417,67272940347457537,67272948937326593,67272905987325953,67272811498242048,67272790023077888,67272888806539265,67554011598290946,67554312246001666,67554153332211714,67554325130903554,67554179102015490,67554166217113602,67554320835936258,67554123267440642,67554149037244418,67554161922146306,67553998713389058,67554140447309826,67554170512080898,67554136152342530,67554131857375234,67554183396982786,67554144742277122,67554265001361410,67554157627179010,67554269296328706,67554174807048194,67554114677506050,67554256411426818,67554110382538754,67554118972473346,67554127562407938,67554187691950082,67554329425870850,67835473691607040,67835993393332225,68117270801678336,68117227851939840,68398745769345026,68398702819672066,68680169205268482,68680220744876034,68961695721259010,68961644181651458,69243119158231042,69524594145689600,69806069122465792,70087544089542658,70087531204640770,70087539794575362,70087595629150210,70369010486018048,70650494042701826,70650489747734530,70650545582309378,70650481157799938,70932029145022464,70932063503777793,70931719907049472,70932093568811009,70932149418131457,70931724201820160,70931707022082048,70932132223778817,70932084979007489,70931990490382336,70932106453516289,70932080684564481,70932076388352001,70932110748352513,70931698431164416,70932102157959169,70932119339204609,70932097863647233,70932123634565121,70931964720316416,70931960439504896,70932115044696065,70931981900775424,70931986195480576,70932089273384961,70932067798482945,70932127929008129,70931994784497664,70931805806067712,70931702725935104,70931999080448000,71213362382176256,71213349497667584,71213444006346752,71213306547011584,71213340906553344,71213645851066369,71213358088716288,71213336611848192,71213328022962176,71213345202765824,71213297957928960,71213723163099137,71213186289172480,71213632968916993,71213684504788993,71213650146557953,71213315138125824,71213319433224192,71213654439690241,71213310843813888,71213727458328577,71213658734723073,71213323727601664,71213353793224704,71213718884188161,71213302253551616,71213285072371712,71213697391067137,71213289367666688,71213293663551488,71213332317732864,71494918972702722,71494970512310274,71494914684026880,71494906094026752,71776402531745794,71776174898479106,71776428301549570,71776157727719424,71776432596516866,71776479841157122,71776166308544514,71776466956255234,71776471251222530,71776393941811202,71776436891484162,71776406826713090,71776449776386050,71776179193446402,71776162013577218,71776153432817664,71776183488413698,71776445481418754,71776385351876610,71776170603511810,72057641285124098,72057907573096450,72057860328456194,72057868918390786,72057649875058690,72057903278129154,72057881803292674,72057877508325378,72057946227802114,72057658464993282,72057636990156802,72057941932834818,72057920457998338,72057924752965634,72057954817736706,72057911868063746,72057628409528320,72057654170025986,72057632704430080,72057645580091394,72339111967064066,72339133441900546,72339103386238976,72339399729872898,72339116262031362,72339386844971010,72339416909742082,72339395434905602,72339120556998658,72339421204709378,72339343895298050,72339382550003714,72339107681140736,72339129146933250,72339356780199938,72339124851965954,72339378255036418,72339352485232642,72339335305363458,72339429794643970,72620599828545538,72620874706452482,72620586943643650,72620896181288962,72620904771223554,72620861821550594,72620831756779522,72620595533578242,72620818871877634,72620578362949632,72620810281943042,72620857526583298,72620870411485186,72620608418480130,72620604123512834,72620591238610946,72620827461812226,72620891886321666,72620582657851392,72620853231616002,72902285276741632,72902345400385536,73183820362809346,73183541189935106,73183566959738882,73183549779869698,73183519715098626,73183524010065922,73183764528234498,73183760233267202,73183841837645826,73183528305033218,73183562664771586,73183803182940162,73183558369804290,73183515420131330,73183828952743938,73183816067842050,73183854722547714,73183579844640770,73183592729542658,73183532600000514,73183837542678530,73183777413136386,73183807477907458,73183588434575362,73183786003070978,73183850427580418,73183584139608066,73183846132613122,73183790298038274,73183811772874754,73183545484902402,73183601319477250,73183597024509954,73183575549673474,73183824657776642,73183768823201794,73183833247711234,73183554074836994,73183781708103682,73183571254706178,73183536894967810,73183755938299906,73465295359836160,73465243820163072,73746705891590146,73746766021132290,73746495438192642,73746473963356162,73746783201001474,73746774611066882,73746796085903362,73746478258323458,73746800380870658,73746718776492034,73746770316099586,73746757431197698,73746804675837954,73746778906034178,73746534092898306,73746486848258050,73746512618061826,73746542682832898,73746761726164994,73746538387865602,73746491143225346,73746740251328514,73746529797931010,73746791790936066,73746525502963714,73746499733159938,73746521207996418,73746714481524738,73746727366426626,73746787495968770,73746469668388866,73746710186557442,73746465373421570,73746482553290754,73746753136230402,73746731661393922,73746504028127234,73746551272767490,73746735956361218,73746546977800194,73746508323094530,73746516913029122,74028193753595906,74028245293203458,74309668730109954,74309724564684802,74309445391810562,74309715974750210,74309720269717506,74309423916974082,74309655845208066,74309453981745154,74309754629455874,74309707384815618,74309471161614338,74309664435142658,74309462571679746,74309436801875970,74309501226385410,74309496931418114,74309660140175362,74309458276712450,74309492636450818,74309728859652098,74309737449586690,74309428211941378,74309746039521282,74309441096843266,74309449686777858,74309711679782914,74309703089848322,74309419622006786,74309479751548930,74309685909979138,74309484046516226,74309466866647042,74309690204946434,74309432506908674,74309741744553986,74309750334488578,74309415327039490,74309733154619394,74309677320044546,74309475456581634,74309681615011842,74309488341483522,74590907484930050,74590920369831938,74591182362836994,74591160888000514,74590903189962754,74590911779897346,74591212427608066,74591216722575362,74590928959766530,74591135118196738,74591199542706178,74591208132640770,74591186657804290,74591229607477250,74591195247738882,74591143708131330,74590933254733826,74590916074864642,74590924664799234,74591152298065922,74591178067869698,74591165182967810,74591221017542658,74591203837673474,74591156593033218,74872657339613186,74872610094972930,74872395346608130,74872674519482370,74872640159744002,74872687404384258,74872378166738946,74872670224515074,74872704584253442,74872399641575426,74872618684907522,74872695994318850,74872635864776706,74872391051640834,74872691699351554,74872386756673538,74872382461706242,74872683109416962,74872627274842114,74872678814449666,74872653044645890,74872631569809410,74872408231510018,74872403936542722,74872661634580482,75154115136520194,75154102251618306,75153874618351618,75153878913318914,75154085071749122,75154149496258562,75153866028417026,75154179561029634,75153861733449730,75154093661683714,75154128021422082,75154162381160450,75153857438482434,75153870323384322,75154153791225858,75154110841552898,75153883208286210,75153853143515138,75154136611356674,75154158086193154,75154166676127746,75154132316389378,75154170971095042,75154145201291266,75154106546585602,75435654538788866,75435345309728768,75435353891078146,75435624474017794,75435349604761600,75435581524344834,75435602999181314,75435620179050498,75435560049508354,75435358186045442,75435568639442946,75435611589115906,75435607294148610,75435577229377538,75717116638265344,75716828867592194,75717077975695362,75717056500858882,75717082270662658,75716815990620160,75717095155564546,75717035026022402,75716833162559490,75716824572624898,75717052205891586,75717086565629954,75717120933363712,75716811695521792,75717099450531842,75716820277657602,75717043615956994,75717129515302914,75998552952471554,75998286672232448,75998295254433794,75998510002798594,75998303844368386,75998308139335682,75998591614976000,75998290967330816,75998527182667778,75998595910074368,75998561542406146,75998604492079106,75998531477635074,75998570132340738,75998574427308034,75998299549401090,75998518592733186,75998557247438850,76280032223625218,76279783115522050,76280006453821442,76280036518592514,76279761640685570,76280070878330882,76280045108527106,76280010758356992,76280002158854146,76279757345718274,76280015053258752,76279774525587458,76279770230620162,76280027928657922,76280079468265474,76279993568919554,76279765935652866,76279778820554754,76280049403494402,76279984978984962,76279753050750978,76280066583363586,76561554444910594,76561468545564674,76561541560008706,76561481430466562,76561249502232578,76561232322363394,76561240912297986,76561258092167170,76561502905303042,76561511495237634,76561524380139522,76561490029969408,76561236617330690,76561245207265282,76561507200270338,76561459955630082,76561228027396098,76561545854976002,76561520085172226,76561485735067648,76561253797199874,76561477135499266,76842711593910274,76842715888877570,76842943522144258,76843020831555586,76842982176849922,76843003660795904,76842707298942978,76843012250861568,76842934932209666,76843029421490178,76842960702013442,76842728773779458,76842986471817218,76843007955828736,76843016536588290,76842720183844866,76842733068746754,76842952112078850,76842999356719106,76842703003975682,76842964996980738,76842724478812162,76842977881882626,76842995061751810,76842956407046146,77124452858527746,77124409908854786,77124431383691266,77124482932539392,77124495808200706,77124177980620802,77124418498789378,77124474333364226,77124182275588098,77124487227572224,77124190865522690,77124439973625858,77124457153495042,77124199455457282,77124186570555394,77124208045391874,77124478637506560,77124461448462338,77124203750424578,77124427088723970,77124195160489986,77124491513233410,77124470038396930,77124504398135298,77124435678658562,77405893494243328,77687420004466688,77687424305594368,77968852020297730,77968834840428546,77968929329709058,77968843430363138,77968632976965634,77968899264937986,77968886380036098,77968894969970690,77968628691238912,78250365648306178,78250086475431938,78250095065366530,78250129425104898,78250116540203010,78250305518764034,78250335583535106,78250107950268418,78250374238240770,78250391418109954,78250352763404290,78250090770399234,78250077885497346,78250382828175362,78250318403665922,78250133720072194,78250082180464642,78250125130137602,78250361353338882,78250357058371586,78250314108698626,78250069295562754,78250138015039490,78250112245235714,78250326993600514,78250099360333826,78250103655301122,78250073590530050,78250404303011842,78250400008044546,78250387123142658,78250331288567810,78250146604974082,78250150899941378,78250120835170306,78250395713077250,78250369943273474,78250339878502402,78250142310006786,78250065000595458,78250378533208066,78250309813731330,78531548573007872,78531810566668288,78531900759539713,78531892169670657,78531522802352128,78531905055752193,78531544278237184,78531909365334017,78531814861570048,78531887874965505,78531531393269760,78531819155685376,78531823451635712,78531853516210176,78531527097122816,78531789091504128,78531630177255424,78531806271963136,78813551829516289,78813328488660992,78813109443559424,78813169573953536,78813474517745665,78813457340104705,78813543251050497,78813470222254081,78813564725821441,78813113738854400,78813165277741056,78813268373209088,78813255482343424,78813186753363968,78813148098789376,78813152394149888,78813182459904000,78813010660360192,78813173868855296,78813483105910785,78813478810877953,78813534663278593,78813160983035904,78813521762254849,78813122329116672,78813135215001600,78813156688920576,78813508875976705,78813143804411904,78813126624739328,78813130918199296,78813547534286849,78813178164412416,78813139509313536,78813569015021569,78813118034739200,78813264080273408,79095043997958145,79094739056984064,79094743343759362,79094730459054080,79376218320404482,79657478542000130,79657701880299522,79657731954638848,79657749124939778,79657684700430338,79657736240037890,79657779189710850,79657727650103298,79657693290364930,79657482836967426,79657744829972482,79939224101781506,79939176857141250,79939168267206658,79939254166552578,79938953518841858,79939219806814210,79939211216879618,79939202636185600,79939159677272066,79938957813809154,80220677603393538,80220634653720578,80220651833589762,80220694783262722,80220643243655170,80220432790257666,80220681898360834,80220428495290370,80220686193328130,80220656136945664,80220699078230018,80220729143001090,80502169771573248,80502118238257152,80783610386972674,80783550257430530,80783326919131138,80783614681939970,80783537372528642,80783429998346242,80783533077561346,80783597502070786,80783563142332418,80783545962463234,80783571732267010,80783558847365122,80783576027234306,80783541667495938,80783606092005378,80783344099000322,80783554552397826,80783331214098434,80783348393967618,80783618976907266,80783322624163842,80783653336645634,80783636156776450,80783623271874562,80783588912136194,80783567437299714,80783528782594050,80783601797038082,81064943628582914,81065089657470978,81065038117863426,81064801894662146,81065437549821954,81064930743681026,81065029527928834,81064973693353986,81065012348059650,81064965103419394,81064926448713730,81065128312176642,81064935038648322,81065033822896130,81065072477601794,81064810484596738,81064922153746434,81065063887667202,81065081067536386,81064986578255874,81065020937994242,81064819074531330,81065093952438274,81064823369498626,81064797599694850,81065042412830722,81064939333615618,81064982283288578,81064977988321282,81065046707798018,81064904973877250,81065076772569090,81064917858779138,81065003758125058,81064909268844546,81064806189629442,81065016643026946,81064947923550210,81065008053092354,81064956513484802,81065051002765314,81064952218517506,81065025232961538,81064969398386690,81065098247405570,81064913563811842,81065111132307458,81064960808452098,81065085362503682,81346272577323010,81346276872290306,81346538865295362,81346495915622402,81346556045164546,81346478735753218,81346603289804802,81346513095491586,81346551750197250,81346573225033730,81346491620655106,81346521685426178,81346379951505410,81346298347126786,81346547455229954,81346517390458882,81346504505556994,81346560340131842,81346525980393474,81346483030720514,81346564635099138,81346500210589698,81346508800524290,81346281167257602,81346586109935618,81346487325687810,81346568930066434,81346294052159490,81628061085466626,81627854927036418,81628078265335810,81628043905597442,81628031020695554,81627953711284226,81627966596186114,81627769027690498,81627975186120706,81628039610630146,81627962301218818,81627988071022594,81627979481088002,81627992365989890,81628026725728258,81627996660957186,81627747552854018,81627751847821314,81627958006251522,81627756142788610,81628000955924482,81628048200564738,81627970891153410,81627983776055298,81627773322657794,81628013840826370,81628035315662850,81628022430760962,81909222525829120,81909587595493377,81909445864456192,81909243998765056,81909518876213248,81909454454521856,81909514582097920,81909553236738048,81909639136411649,81909600482820097,81909806654488577,81909832410464257,81909810935758849,81909613365100545,81909647726280705,81909652020723713,81909505992491008,81909828115103745,81909634840068097,81909450159292416,81909841001185281,81909604776280065,81909536058572800,81909248293535744,81909669202690049,81909471633145856,81909467338440704,81909656317919233,81909475927916544,81909660613017601,81909523172163584,81909836705955841,81909329897783296,81909815231905793,81909463043145728,81909630545231873,81909437273145344,81909432978767872,81909621955362817,81909428683931648,81909488812032000,81909591890198529,81909231113797632,81909497398689792,81909609070723073,81909226817650688,81909617660526593,81909626249674753,81909510287196160,81909458748964864,81909643430920193,82190968081285122,82190976671219714,82191023915859970,82191019620892674,82190959491350530,82191011030958082,82472606271340545,82472468829634560,82472550436241409,82472464535519232,82472567613947905,82472486011994112,82472563318521857,82472193952186368,82472597679702017,82472589089832961,82472778082811905,82472279851204608,82472438765453312,82472619156111361,82472537548914689,82472473125584896,82472181067218944,82472610566438913,82472198246957056,82472593384341505,82472176771072000,82472601974145025,82472559024144385,82472503190159360,82472554729701377,82472455945912320,82472580498653185,82472571908784129,82472584793489409,82472460240617472,82472576203096065,82472541843619841,82472172476301312,82753948107276290,82753939517341698,82753935222374402,82753892272701442,82753862207930370,82753883682766850,82753754833747970,82753960992178178,82753853617995778,82753930927407106,82753668934402050,82753651754532866,82753656049500162,82753900862636034,82753857912963074,82753673229369346,82753926632439810,82753866502897666,82753922337472514,82753978172047362,82753887977734146,82753870797864962,82753896567668738,82753943812308994,82753913747537922,82753875092832258,82753647459565570,82753879387799554,83035393028849664,83035444561969152,83316923823554562,83316910938652674,83316867988979714,83316859399045122,83316919528587266,83598394515390464,83598342982336512,83879813664145408,84161189841928194,84161155482189826,84161138302320642,84161168367091714,84161134007353346,84161202726830082,84161335870816258,84161348755718146,84161035223105538,84161181251993602,84161172662059010,84161353050685442,84161022338203650,84161142597287938,84161151187222530,84161164072124418,84161176957026306,84161344460750850,84161292921143298,84161288626176002,84161211316764674,84161146892255234,84161198431862786,84161280036241410,84161207021797378,84161185546960898,84161194136895490,84161159777157122,84442776488247298,84442647639228418,84442673409032194,84442510200274946,84442643344261122,84442664819097602,84442634754326530,84442686293934082,84442677703999490,84442669114064898,84442639049293826,84442656229163010,84442630459359234,84442660524130306,84442681998966786,84442651934195714,84724500581056513,84724302999584768,84724298717659136,84723972286906368,84724479112511489,84724509157425153,84724238573043712,84724504861212673,85005881059311617,85005816634015745,85005846699180033,85005455857614848,85005859583885313,85005850993491969,85005468742582272,85005735031013376,85005747915980800,85005739325915136,85005713555849216,85005451561467904,85005876764540929,85005868174737409,85005829520097281,85005473037352960,85005863880228865,85005855289049089,85005838108917761,85005825223884801,85005743620030464,85005777980555264,85005872470097921,85005447266697216,85005842404343809,85005833814540289,85005898254712833,85005554641600512,85005812339310593,85005730736308224,85287244368576514,85287235778641922,85568663510908930,85568530366922754,85568521776988162,85568723640451074,85568727935418370,85568526071955458,85568569021628418,85568538956857346,85568667805876226,85568577611563010,85568581906530306,85568586201497602,85568556136726530,85568517482020866,85568719345483778,85568513187053570,85568543251824642,85568508892086274,85568547546791938,85568564726661122,85568534661890050,85568654920974338,85568551841759234,85568573316595714,85568560431693826,85568710755549186,85568397222936578,85568410107838466,85850194322522114,85850151372849154,86131669299101698,86131626349428738,86413144278695938,86413101329022978,86413135688761346,86694722330361857,86694679380361217,86694683674804225,86694872669093889,86694305717878784,86694726624804865,86694301421731840,86694675086901249,86694718035001345,86694730922000385,86694572009652224,86694576316416000,86694666494279681,86694627840819200,86694593480294400,86694580596572160,86694563416113152,86694318602846208,86694735218343937,86694297126961152,86694709444149249,86694589186179072,86694597776244736,86694687969181697,86694700853755905,86694696559443969,86694404501864448,86694692264607745,86694322897616896,86694713740492801,86694662199574529,86694584891277312,86694705149313025,86976094231461890,86976042691854338,86976029806952450,86976038396887042,87257517668958210,87257513373990914,87257504784056322,87257569208565762,87538979760504834,87538988350439426,87538992645406722,87539044185014274,87820463327215618,87820467622182914,87820519161790466,87820454737281026,88101934020165632,88383417586876416,88664892552577026,88664888257609730,88664944092184578,88664879667675138,88946161360371714,88946414763442178,88946431943311362,88946195720110082,88946182835208194,88946165655339010,88946157065404418,88946178540240898,88946200015077378,88946380403703810,88946384698671106,88946144180502530,88946354633900034,88946423353376770,88946401878540290,88946367518801922,88946363223834626,88946436238278658,88946135590567938,88946148475469826,88946440533245954,88946174245273602,88946419058409474,88946410468474882,88946358928867330,88946114115731458,88946427648344066,88946449123180546,88946444828213250,88946187130175490,88946191425142786,88946453418147842,88946122705666050,88946118410698754,88946139885535234,88946131295600642,88946388993638402,88946152770437122,88946376108736514,88946406173507586,88946169950306306,88946127000633346,89227829610741762,89227881150349314,89227889740283906,89227898330218498,89227640632180738,89227606272442370,89227842495643650,89227855380545538,89227619157344258,89227610567409666,89227666401984514,89227662107017218,89227644927148034,89227919805054978,89227632042246146,89227894035251202,89227614862376962,89227851085578242,89227838200676354,89227649222115330,89227601977475074,89227924100022274,89227859675512834,89227863970480130,89227928394989570,89227833905709058,89227670696951810,89227597682507778,89227623452311554,89227911215120386,89227674991919106,89227636337213442,89227627747278850,89227902625185794,89227653517082626,89227657812049922,89227876855382018,89227906920153090,89227593387540482,89227885445316610,89227589092573186,89227915510087682,89509450620862465,89509454916419585,89509437736288257,89509411966681089,89509480689106945,89509068369952768,89509476391911425,89509334658383872,89509446326550529,89509051188838400,89509442031714305,89509055484985344,89509424854007809,89509347543351296,89509377607925760,89509429147467777,89509046894067712,89509472097468417,89509433441910785,89509330363678720,89509459211255809,89509463507599361,89509338953285632,89509484997509121,89509416261386241,89509072664723456,89509343247400960,89509467802107905,89509313183219712,89509154268971008,89790612061224962,89790805334753282,89790620651159554,89790616356192258,89790878349197314,89790843989458946,89790577701486594,89790809629720578,89790874054230018,89790594881355778,89790861169328130,89790573406519298,89790826809589762,89790813924687874,89790835399524354,89790564816584706,89790560521617410,89790590586388482,89790801039785986,89790569111552002,89790792449851394,89790856874360834,89790865464295426,89790603471290370,89790581996453890,89790556226650114,89790607766257666,89790848284426242,89790551931682818,89790783859916802,89790586291421186,89790869759262722,89790624946126850,89790599176323074,89790852579393538,89790831104557058,90072426345332737,90072396279971841,90072361920102401,90072430656028673,90072297496772608,90071996847489024,90072391985135617,90072387689709569,90072417755529217,90072379100889089,90072400574283777,90072288906706944,90072018323374080,90072422050889729,90072005438406656,90072293200822272,90072413461020673,90072327561347072,90072104222392320,90072022618144768,90072409164677121,90072284611805184,90072366214807553,90072001142259712,90072383395332097,90072374804676609,90072263136641024,90072280317100032,90072404869840897,90353501885628418,90353570605105154,90353742403796994,90353819713208322,90353553425235970,90353523360464898,90353510475563010,90353806828306434,90353733813862402,90353785353469954,90353531950399490,90353557720203266,90353544835301378,90353763878633474,90353519065497602,90353815418241026,90353527655432194,90353828303142914,90353514770530306,90353562015170562,90353798238371842,90353802533339138,90353776763535362,90353750993731586,90353549130268674,90353755288698882,90353574900072450,90353506180595714,90353824008175618,90353781058502658,90353793943404546,90353566310137858,90353811123273730,90353540540334082,90353536245366786,90353759583666178,90635556688494593,90635363414441985,90635350527705089,90635539509936129,90635195911176192,90635243154243584,90635260336603136,90635380595949569,90634968276795392,90634972571566080,90635372004311041,90635535213789185,90635191616471040,90635234565226496,90635324760850433,90635247450193920,90635174437322752,90635187321176064,90635221676720128,90635316168228865,90635346233393153,90635200205946880,90635054175813632,90634946803859456,90635560983986177,90635376298754049,90635367708950529,90635161551175680,90635530933370881,90635337643130881,90635213090062336,90635552393134081,90635359118098433,90635170142486528,90635384891047937,90635157256798208,90635329054310401,90634951095681024,90635311873523713,90635152961961984,90635178732552192,90635277514768384,90634955391827968,90635341938556929,90635565279215617,90635393480720385,90635230270521344,90635183026995200,90635238860128256,90635333348753409,90635354823262209,90916636532604930,90916735316852738,90916640827572226,90916421784240130,90916627942670338,90916529158422530,90916688072212482,90916649417506818,90916426079207426,90916632237637634,90916430374174722,90916666597376002,90916752496721922,90916722431950850,90916700957114370,90916705252081666,90916653712474114,90916713842016258,90916675187310594,90916443259076610,90916662302408706,90916670892343298,90916709547048962,90916658007441410,90916718136983554,90916447554043906,90916696662147074,90916645122539522,91198227468189696,91198279007731713,91198163043483648,91198296186814465,91198343447904257,91198309071519745,91198334844469249,91198304776683521,91197922524987392,91198274714271745,91197896754331648,91198326252175361,91198317662371841,91198188813549568,91198180223942656,91198313367863297,91198197403615232,91198291891978241,91198004129234944,91198321957732353,91198300481126401,91197901049102336,91198184518647808,91197918230216704,91198287596552193,91198193107664896,91198283302174721,91198167354310656,91197905345249280,91198266121650177,91198330549370881,91198261826945025,91479672380325888,91479771163525121,91479960143921153,91479668084375552,91479990209347585,91479685266735104,91479577892093952,91479376025812992,91479659495358464,91479985914118145,91479607957127168,91479380321959936,91479779753394177,91479809821179905,91479479105945600,91479792639082497,91479646606852096,91479955863699457,91479599367454720,91479736803655681,91479762573262849,91479964440068097,91479663790260224,91479749690982401,91479784048230401,91479788344573953,91479805526081537,91479582186930176,91479741098360833,91479753984442369,91479612251308032,91479603662684160,91479655200653312,91479801228886017,91479981618626561,91479625136078848,91479397501698048,91479796934443009,91479766868688897,91479616546603008,91479977323266049,91479758278885377,91479393206927360,91479638020194304,91479775457837057,91479586481307648,91479818410852353,91479702444900352,91479595072618496,91479371733991424,91479620841308160,91761061458018304,91761095818018816,91761254730104833,91761160243445760,91761147357036544,91761143061086208,91761134472069120,91761439416778753,91761091523313664,91760954082656256,91761259024941057,91761224667693057,91761233255596033,91761130177363968,91761074344165376,91761078639394816,91761237549973505,91761082933837824,91761177421611008,91761112996904960,91760868183638016,91760846710702080,91761271911153665,91760872478408704,91761250434547713,91761087228018688,91761263321284609,91761430840475649,91761267615793153,91761284797890561,91761241845399553,91761070049329152,91760855298670592,91761057163640832,91761138766970880,91761228961153025,91761460890828801,91761211780366337,91761452299976705,91761100112789504,91761435120631809,91761456595337217,91761121583562752,91761216075071489,91761293387563009,91761465186058241,91761276205596673,91761246140235777,91761052868804608,91760851002523648,91761280502792193,92042729706815489,92042347455119360,92042721116946433,92042738297995265,92042699644403713,92042330275381248,92042613743681536,92042712526684161,92042429059366912,92042768378298369,92042343160348672,92042325979234304,92042618037796864,92042716822110209,92042742592503809,92042759774601217,92042725411258369,92042622333747200,92042652398321664,92042703937863681,92042755479502849,92042734001651713,92042686757076993,92042321684463616,92042609448779776,92042708232306689,92042746887864321,92042691051782145,92042587973615616,92042605154074624,92042751182307329,92324118786211842,92324110196277250,92605585173184514,92605593763119106,92887025793564674,92887068743237634,93168500770144258,93168543719817218,93168535129882626,93449962861494274,93449967156461570,93450018696069122,93449954271559682,93731493673041922,93731437838467074,93731442133434370,93731429248532482,94012968639725570,94012917100118018,94294392079712258,94294383489777666,94294447914287106,94294443619319810,94294400669646850,94294435029385218,94575879950106626,94575596482265090,94575871360172034,94575875655139330,94575622252068866,94575824115531778,94575819820564482,94575703856447490,94575811230629890,94575617957101570,94575884245073922,94575849885335554,94575897129975810,94575841295400962,94575927194746882,94575862770237442,94575888540041218,94575837000433666,94575605072199682,94575815535493120,94575832705466370,94575910014877698,94575828410499074,94575892835008514,94575600777232386,94575802640695298,94575845590368258,94575806935662594,94857342051876864,94857393583816704,95139152020504577,95138752589332480,95138572198936576,95138769769857024,95138550723051520,95138971631681537,95138975926124545,95138915795599361,95138821304090624,95138834192596992,95138774064693248,95138782654365696,95138829897891840,95139156315865089,95138932976123905,95139164906586113,95138911500894209,95138945860763649,95138799833317376,95138555019198464,95138847077564416,95138791243841536,95138838487498752,95138842781614080,95138928681680897,95138756884168704,95138980223320065,95138761178546176,95138993108090881,95139134841159681,95138924388220929,95138567904165888,95139160611356673,95138950155075585,95138984518418433,95138859963973632,95138778359922688,95138795538546688,95138877142138880,95138963041812481,95138653803184128,95138941565927425,95138967336321025,95138958745468929,95138546431229952,95138812717432832,95138954450632705,95138937270501377,95138786948546560,95139139137306625,95139130561265665,95420287700566018,95420270520696834,95420253340827650,95420309175402498,95420128786776066,95420313470369794,95420236160958466,95420021412593666,95420334945206274,95420352125075458,95420249045860354,95420042887430146,95420257635794946,95420047182397442,95420025707560962,95420244750893058,95420240455925762,95420304880435202,95420274815664130,95420030002528258,95420231865991170,95420227571023874,95420300585467906,95420261930762242,95420322060304386,95420296290500610,95420266225729538,95420317765337090,95701715432570882,95701749792309250,95701517864075266,95701741202374658,95701827101720578,95701797036949506,95701788447014914,95701706842636290,95701728317472770,95701745497341954,95701809921851394,95701711137603586,95701736907407362,95701779857080322,95701496389238786,95701504979173378,95701732612440066,95701762677211138,95701702547668994,95701784152047618,95701724022505474,95701719727538178,95701771267145730,95701792741982210,95701500684206082,95701775562113026,95701603763421186,95701522159042562,95983241958850560,95983293490659328,96264875832967169,96264656791011328,96264824295063553,96264811407736833,96264467811008512,96264695445389312,96264893014933505,96265051927347201,96264746984407040,96264738394341376,96264850061918209,96264858652311553,96264446338072576,96264854357475329,96264871538524161,96265064813428737,96264678266765312,96264721210933248,96264729804734464,96264699740160000,96264734099439616,96264862948655105,96264669676699648,96264673971535872,96264777048981504,96264832882966529,96264837177344001,96264553710026752,96264845767606273,96264472105779200,96264884425261057,96264742688456704,96264867243163649,96265039044149249,96264759870816256,96264652496175104,96265060518199297,96264841472770049,96264454926041088,96265056222707713,96264686855389184,96264691150684160,96264880130162689,96265034748002305,96264815702441985,96264712624275456,96264828588523521,96265030468239361,96264682561208320,96264661085388800,96264450629894144,96546131767721984,96546174716870656,96546526904057857,96546316449480705,96546303565234177,96546213371052032,96546148948246528,96546320744316929,96546153243475968,96546196187643904,96546234847526912,96546209076150272,96545947082489856,96545925606604800,96546299271774209,96546217665167360,96546307859677185,96546346515234817,96545921314783232,96546187600986112,96546144653410304,96546337925365761,96546290679152641,96546355106873345,96546514020859905,96546161832099840,96546342219874305,96546127472885760,96546312154054657,96546286384447489,96546028686737408,96546509724712961,96546350809677825,96546221961117696,96546136062099456,96546367991644161,96546505445015553,96546359401971713,96545929902751744,96546157537918976,96546166127394816,96546531199418369,96546333629022209,96546170422099968,96545942787719168,96546204781445120,96546325038628865,96546329334185985,96546252025692160,96546539790139393,96546535494909953,96827503670460418,96827688354054146,96827641109413890,96827396296278018,96827636814446594,96827628224512002,96827645404381186,96827679764119554,96827606749675522,96827696943988738,96827615339610114,96827692649021442,96827611044642818,96827623929544706,96827675469152258,96827400591245314,96827417771114498,96827602454708226,96827404886212610,96827662584250370,96827649699348482,96827709828890626,96827671174184962,96827619634577410,96827684059086850,96827422066081794,96827727008759810,96827632519479298,97109184815562752,97390569587736578,97390350544404482,97390582472638466,97390556702834690,97390612537409538,97390578177671170,97390354839371778,97390599652507650,97390638307213314,97390629717278722,97390621127344130,97390676961918978,97390453623619586,97390560997801986,97390595357540354,97390591062573058,97390346249437186,97390634012246018,97390586767605762,97390573882703874,97390367724273666,97390565292769282,97390659782049794,97390646897147906,97390552407867394,97390625422311426,97390372019240962,97390642602180610,97672040269807618,97672104694317058,97671825521442818,97672087514447874,97672113284251650,97672134759088130,97672044564774914,97672117579218946,97672074629545986,97671842701312002,97671829816410114,97672121874186242,97672066039611394,97672035974840322,97672061744644098,97672070334578690,97672053154709506,97672027384905730,97672031679873026,97672048859742210,97672151938957314,97671846996279298,97672108989284354,97672100399349762,97672096104382466,97672057449676802,97671821226475522,97671928600657922,97953545311158274,97953502361485314,97953321972858882,97953523836321794,97953300498022402,97953317677891586,97953549606125570,97953506656452610,97953626915536898,97953515246387202,97953571080962050,97953536721223682,97953583965863938,97953592555798530,97953609735667714,97953596850765826,97953579670896642,97953296203055106,97953528131289090,97953562491027458,97953532426256386,97953403577237506,97953304792989698,97953541016190978,97953588260831234,97953519541354498,97953575375929346,97953510951419906,];


fn _semaction_rule_0_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> primary_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } 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_4(_x_4)=parser.popstack().value { _x_4 } else {<i32>::default()};  primary_expression::CONSTANT_1(_item0_) }

fn _semaction_rule_2_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> primary_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } else {<&'lt str>::default()};  primary_expression::STRING_LITERAL_2(_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_26(_x_26)=parser.popstack().value { _x_26 } 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>>) -> postfix_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_7(_x_7)=parser.popstack().value { _x_7 } else {<primary_expression<'lt>>::default()};  postfix_expression::postfix_expression_4(parser.lbx(0,_item0_)) }

fn _semaction_rule_5_<'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_26(_x_26)=parser.popstack().value { _x_26 } 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_8(_x_8)=parser.popstack().value { _x_8 } else {<postfix_expression<'lt>>::default()};  postfix_expression::postfix_expression_5(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_6_<'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_8(_x_8)=parser.popstack().value { _x_8 } else {<postfix_expression<'lt>>::default()};  _item0_ }

fn _semaction_rule_7_<'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_9(_x_9)=parser.popstack().value { _x_9 } 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_8(_x_8)=parser.popstack().value { _x_8 } else {<postfix_expression<'lt>>::default()};  postfix_expression::postfix_expression_7(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_8_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } 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_8(_x_8)=parser.popstack().value { _x_8 } else {<postfix_expression<'lt>>::default()};  postfix_expression::postfix_expression_8(parser.lbx(0,_item0_),_item2_) }

fn _semaction_rule_9_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> postfix_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } 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_8(_x_8)=parser.popstack().value { _x_8 } else {<postfix_expression<'lt>>::default()};  postfix_expression::postfix_expression_9(parser.lbx(0,_item0_),_item2_) }

fn _semaction_rule_10_<'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_8(_x_8)=parser.popstack().value { _x_8 } else {<postfix_expression<'lt>>::default()};  _item0_ }

fn _semaction_rule_11_<'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_8(_x_8)=parser.popstack().value { _x_8 } else {<postfix_expression<'lt>>::default()};  _item0_ }

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

fn _semaction_rule_13_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> argument_expression_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_24(_x_24)=parser.popstack().value { _x_24 } 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_9(_x_9)=parser.popstack().value { _x_9 } else {<argument_expression_list<'lt>>::default()};  argument_expression_list::argument_expression_list_13(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_15_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } 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_16_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } 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_17_<'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 {<cast_expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_11(_x_11)=parser.popstack().value { _x_11 } else {<unary_operator<'lt>>::default()};  unary_expression::unary_expression_17(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_18_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> unary_expression<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } 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_19_<'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_53(_x_53)=parser.popstack().value { _x_53 } 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_19(parser.lbx(2,_item2_)) }

fn _semaction_rule_20_<'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_21_<'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_22_<'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_22 }

fn _semaction_rule_23_<'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_23 }

fn _semaction_rule_24_<'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_24 }

fn _semaction_rule_25_<'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_26_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> cast_expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<unary_expression<'lt>>::default()};  cast_expression::cast_expression_26(parser.lbx(0,_item0_)) }

fn _semaction_rule_27_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> cast_expression<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } 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_53(_x_53)=parser.popstack().value { _x_53 } 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_27(parser.lbx(1,_item1_),parser.lbx(3,_item3_)) }

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

fn _semaction_rule_29_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> multiplicative_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } 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_13(_x_13)=parser.popstack().value { _x_13 } else {<multiplicative_expression<'lt>>::default()};  multiplicative_expression::multiplicative_expression_29(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_30_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> multiplicative_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } 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_13(_x_13)=parser.popstack().value { _x_13 } else {<multiplicative_expression<'lt>>::default()};  multiplicative_expression::multiplicative_expression_30(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_31_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> multiplicative_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } 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_13(_x_13)=parser.popstack().value { _x_13 } else {<multiplicative_expression<'lt>>::default()};  multiplicative_expression::multiplicative_expression_31(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_33_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> additive_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_13(_x_13)=parser.popstack().value { _x_13 } 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_14(_x_14)=parser.popstack().value { _x_14 } else {<additive_expression<'lt>>::default()};  additive_expression::additive_expression_33(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_34_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> additive_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_13(_x_13)=parser.popstack().value { _x_13 } 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_14(_x_14)=parser.popstack().value { _x_14 } else {<additive_expression<'lt>>::default()};  additive_expression::additive_expression_34(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_36_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> shift_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_14(_x_14)=parser.popstack().value { _x_14 } 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_15(_x_15)=parser.popstack().value { _x_15 } else {<shift_expression<'lt>>::default()};  shift_expression::shift_expression_36(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_37_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> shift_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_14(_x_14)=parser.popstack().value { _x_14 } 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_15(_x_15)=parser.popstack().value { _x_15 } else {<shift_expression<'lt>>::default()};  shift_expression::shift_expression_37(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_39_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } 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_16(_x_16)=parser.popstack().value { _x_16 } else {<relational_expression<'lt>>::default()};  relational_expression::relational_expression_39(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_40_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } 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_16(_x_16)=parser.popstack().value { _x_16 } else {<relational_expression<'lt>>::default()};  relational_expression::relational_expression_40(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_41_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } 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_16(_x_16)=parser.popstack().value { _x_16 } else {<relational_expression<'lt>>::default()};  relational_expression::relational_expression_41(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_42_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> relational_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_15(_x_15)=parser.popstack().value { _x_15 } 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_16(_x_16)=parser.popstack().value { _x_16 } else {<relational_expression<'lt>>::default()};  relational_expression::relational_expression_42(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_44_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> equality_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_16(_x_16)=parser.popstack().value { _x_16 } 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_17(_x_17)=parser.popstack().value { _x_17 } else {<equality_expression<'lt>>::default()};  equality_expression::equality_expression_44(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_45_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> equality_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_16(_x_16)=parser.popstack().value { _x_16 } 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_17(_x_17)=parser.popstack().value { _x_17 } else {<equality_expression<'lt>>::default()};  equality_expression::equality_expression_45(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_47_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> and_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_17(_x_17)=parser.popstack().value { _x_17 } 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_18(_x_18)=parser.popstack().value { _x_18 } else {<and_expression<'lt>>::default()};  and_expression::and_expression_47(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_49_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> exclusive_or_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_18(_x_18)=parser.popstack().value { _x_18 } 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_19(_x_19)=parser.popstack().value { _x_19 } else {<exclusive_or_expression<'lt>>::default()};  exclusive_or_expression::exclusive_or_expression_49(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_51_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> inclusive_or_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_19(_x_19)=parser.popstack().value { _x_19 } 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_20(_x_20)=parser.popstack().value { _x_20 } else {<inclusive_or_expression<'lt>>::default()};  inclusive_or_expression::inclusive_or_expression_51(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_53_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> logical_and_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_20(_x_20)=parser.popstack().value { _x_20 } 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_21(_x_21)=parser.popstack().value { _x_21 } else {<logical_and_expression<'lt>>::default()};  logical_and_expression::logical_and_expression_53(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_55_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> logical_or_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_21(_x_21)=parser.popstack().value { _x_21 } 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_22(_x_22)=parser.popstack().value { _x_22 } else {<logical_or_expression<'lt>>::default()};  logical_or_expression::logical_or_expression_55(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_57_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> conditional_expression<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_23(_x_23)=parser.popstack().value { _x_23 } 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_26(_x_26)=parser.popstack().value { _x_26 } 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_22(_x_22)=parser.popstack().value { _x_22 } else {<logical_or_expression<'lt>>::default()};  conditional_expression::conditional_expression_57(parser.lbx(0,_item0_),parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

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

fn _semaction_rule_59_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> assignment_expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_24(_x_24)=parser.popstack().value { _x_24 } else {<assignment_expression<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_25(_x_25)=parser.popstack().value { _x_25 } else {<assignment_operator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<unary_expression<'lt>>::default()};  assignment_expression::assignment_expression_59(parser.lbx(0,_item0_),parser.lbx(1,_item1_),parser.lbx(2,_item2_)) }

fn _semaction_rule_60_<'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_61_<'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_62_<'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_63_<'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_64_<'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_65_<'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_66_<'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_67_<'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_68_<'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_69_<'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_70_<'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_71_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> expression<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_24(_x_24)=parser.popstack().value { _x_24 } else {<assignment_expression<'lt>>::default()};  expression::expression_71(parser.lbx(0,_item0_)) }

fn _semaction_rule_72_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> expression<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_24(_x_24)=parser.popstack().value { _x_24 } 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_26(_x_26)=parser.popstack().value { _x_26 } else {<expression<'lt>>::default()};  expression::expression_72(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_74_<'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_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()};  declaration::DecSpec(parser.lbx(0,_item0_)) }

fn _semaction_rule_75_<'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_30(_x_30)=parser.popstack().value { _x_30 } else {<init_declarator_list<'lt>>::default()}; let mut ds = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()}; if let (DSCDS(td,_),init_declarator_list_84(x)) = (&ds,&il) {
    if let Typedef = &**td {
      if let init_declarator_86(y) = &**x {
        if let declarator_130(z) = &**y {
          if let IDENTIFIER_131(id)= &**z {
            parser.shared_state.borrow_mut().insert(id);
          }}}}}   declaration::DecSpecList(parser.lbx(0,ds),parser.lbx(1,il)) }

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

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

fn _semaction_rule_78_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_33(_x_33)=parser.popstack().value { _x_33 } else {<type_specifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_78(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

fn _semaction_rule_80_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_44(_x_44)=parser.popstack().value { _x_44 } else {<type_qualifier<'lt>>::default()};  declaration_specifiers::declaration_specifiers_80(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_81_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_specifiers<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_32(_x_32)=parser.popstack().value { _x_32 } else {<storage_class_specifier<'lt>>::default()};  declaration_specifiers::DSCDS(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_82_<'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_83_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } else {<&'lt str>::default()};  type_specifier::Typename(_item0_) }

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

fn _semaction_rule_85_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> init_declarator_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_31(_x_31)=parser.popstack().value { _x_31 } 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_30(_x_30)=parser.popstack().value { _x_30 } else {<init_declarator_list<'lt>>::default()};  init_declarator_list::init_declarator_list_85(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_87_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> init_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_56(_x_56)=parser.popstack().value { _x_56 } 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_45(_x_45)=parser.popstack().value { _x_45 } else {<declarator<'lt>>::default()};  init_declarator::init_declarator_87(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_88_<'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_89_<'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_90_<'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_91_<'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_92_<'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_93_<'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_94_<'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_95_<'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_96_<'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_97_<'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_98_<'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_99_<'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_100_<'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_101_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_specifier<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_34(_x_34)=parser.popstack().value { _x_34 } else {<struct_or_union_specifier<'lt>>::default()};  type_specifier::type_specifier_101(parser.lbx(0,_item0_)) }

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

fn _semaction_rule_103_<'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_36(_x_36)=parser.popstack().value { _x_36 } 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_6(_x_6)=parser.popstack().value { _x_6 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_35(_x_35)=parser.popstack().value { _x_35 } else {<struct_or_union<'lt>>::default()};  struct_or_union_specifier::struct_or_union_specifier_103(parser.lbx(0,_item0_),_item1_,parser.lbx(3,_item3_)) }

fn _semaction_rule_104_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_or_union_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_36(_x_36)=parser.popstack().value { _x_36 } else {<struct_declaration_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_35(_x_35)=parser.popstack().value { _x_35 } else {<struct_or_union<'lt>>::default()};  struct_or_union_specifier::struct_or_union_specifier_104(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_105_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_or_union_specifier<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_35(_x_35)=parser.popstack().value { _x_35 } else {<struct_or_union<'lt>>::default()};  struct_or_union_specifier::struct_or_union_specifier_105(parser.lbx(0,_item0_),_item1_) }

fn _semaction_rule_106_<'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_107_<'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_108_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declaration_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_37(_x_37)=parser.popstack().value { _x_37 } else {<struct_declaration<'lt>>::default()};  struct_declaration_list::struct_declaration_list_108(parser.lbx(0,_item0_)) }

fn _semaction_rule_109_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declaration_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_37(_x_37)=parser.popstack().value { _x_37 } else {<struct_declaration<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_36(_x_36)=parser.popstack().value { _x_36 } else {<struct_declaration_list<'lt>>::default()};  struct_declaration_list::struct_declaration_list_109(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_110_<'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_39(_x_39)=parser.popstack().value { _x_39 } else {<struct_declarator_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_38(_x_38)=parser.popstack().value { _x_38 } else {<specifier_qualifier_list<'lt>>::default()};  struct_declaration {_item0_:parser.lbx(0,_item0_), _item1_:parser.lbx(1,_item1_), } }

fn _semaction_rule_111_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> specifier_qualifier_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_38(_x_38)=parser.popstack().value { _x_38 } else {<specifier_qualifier_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_33(_x_33)=parser.popstack().value { _x_33 } else {<type_specifier<'lt>>::default()};  specifier_qualifier_list::specifier_qualifier_list_111(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

fn _semaction_rule_113_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> specifier_qualifier_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_38(_x_38)=parser.popstack().value { _x_38 } else {<specifier_qualifier_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_44(_x_44)=parser.popstack().value { _x_44 } else {<type_qualifier<'lt>>::default()};  specifier_qualifier_list::specifier_qualifier_list_113(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

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

fn _semaction_rule_116_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declarator_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_40(_x_40)=parser.popstack().value { _x_40 } 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_39(_x_39)=parser.popstack().value { _x_39 } else {<struct_declarator_list<'lt>>::default()};  struct_declarator_list::struct_declarator_list_116(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_118_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declarator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_27(_x_27)=parser.popstack().value { _x_27 } 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_118(parser.lbx(1,_item1_)) }

fn _semaction_rule_119_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> struct_declarator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_27(_x_27)=parser.popstack().value { _x_27 } 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_45(_x_45)=parser.popstack().value { _x_45 } else {<declarator<'lt>>::default()};  struct_declarator::struct_declarator_119(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_120_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enum_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_42(_x_42)=parser.popstack().value { _x_42 } 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_120(parser.lbx(2,_item2_)) }

fn _semaction_rule_121_<'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_42(_x_42)=parser.popstack().value { _x_42 } 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_6(_x_6)=parser.popstack().value { _x_6 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  enum_specifier::ENUM_121(_item1_,parser.lbx(3,_item3_)) }

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

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

fn _semaction_rule_124_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enumerator_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_43(_x_43)=parser.popstack().value { _x_43 } 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_42(_x_42)=parser.popstack().value { _x_42 } else {<enumerator_list<'lt>>::default()};  enumerator_list::enumerator_list_124(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_126_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> enumerator<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_27(_x_27)=parser.popstack().value { _x_27 } 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_6(_x_6)=parser.popstack().value { _x_6 } else {<&'lt str>::default()};  enumerator::IDENTIFIER_126(_item0_,parser.lbx(2,_item2_)) }

fn _semaction_rule_127_<'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_128_<'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_129_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declarator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_46(_x_46)=parser.popstack().value { _x_46 } else {<direct_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<pointer<'lt>>::default()};  declarator::declarator_129(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

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

fn _semaction_rule_132_<'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_45(_x_45)=parser.popstack().value { _x_45 } 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_132(parser.lbx(1,_item1_)) }

fn _semaction_rule_133_<'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_27(_x_27)=parser.popstack().value { _x_27 } 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_46(_x_46)=parser.popstack().value { _x_46 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_133(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_134_<'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_46(_x_46)=parser.popstack().value { _x_46 } else {<direct_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_135_<'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_49(_x_49)=parser.popstack().value { _x_49 } 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_46(_x_46)=parser.popstack().value { _x_46 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_135(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_136_<'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_52(_x_52)=parser.popstack().value { _x_52 } 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_46(_x_46)=parser.popstack().value { _x_46 } else {<direct_declarator<'lt>>::default()};  direct_declarator::direct_declarator_136(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_137_<'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_46(_x_46)=parser.popstack().value { _x_46 } else {<direct_declarator<'lt>>::default()};  _item0_ }

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

fn _semaction_rule_139_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> pointer<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<type_qualifier_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  pointer::Star_139(parser.lbx(1,_item1_)) }

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

fn _semaction_rule_141_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> pointer<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<pointer<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<type_qualifier_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  pointer::Star_141(parser.lbx(1,_item1_),parser.lbx(2,_item2_)) }

fn _semaction_rule_142_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_qualifier_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_44(_x_44)=parser.popstack().value { _x_44 } else {<type_qualifier<'lt>>::default()};  type_qualifier_list::type_qualifier_list_142(parser.lbx(0,_item0_)) }

fn _semaction_rule_143_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_qualifier_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_44(_x_44)=parser.popstack().value { _x_44 } else {<type_qualifier<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_48(_x_48)=parser.popstack().value { _x_48 } else {<type_qualifier_list<'lt>>::default()};  type_qualifier_list::type_qualifier_list_143(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

fn _semaction_rule_145_<'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_50(_x_50)=parser.popstack().value { _x_50 } else {<parameter_list<'lt>>::default()};  parameter_type_list::parameter_type_list_145(parser.lbx(0,_item0_)) }

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

fn _semaction_rule_147_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_51(_x_51)=parser.popstack().value { _x_51 } 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_50(_x_50)=parser.popstack().value { _x_50 } else {<parameter_list<'lt>>::default()};  parameter_list::parameter_list_147(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_148_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_declaration<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_45(_x_45)=parser.popstack().value { _x_45 } else {<declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()};  parameter_declaration::parameter_declaration_148(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_149_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> parameter_declaration<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_54(_x_54)=parser.popstack().value { _x_54 } else {<abstract_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()};  parameter_declaration::parameter_declaration_149(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

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

fn _semaction_rule_152_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> identifier_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } 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_52(_x_52)=parser.popstack().value { _x_52 } else {<identifier_list<'lt>>::default()};  identifier_list::identifier_list_152(parser.lbx(0,_item0_),_item2_) }

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

fn _semaction_rule_154_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> type_name<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_54(_x_54)=parser.popstack().value { _x_54 } else {<abstract_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_38(_x_38)=parser.popstack().value { _x_38 } else {<specifier_qualifier_list<'lt>>::default()};  type_name::type_name_154(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

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

fn _semaction_rule_157_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> abstract_declarator<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_55(_x_55)=parser.popstack().value { _x_55 } else {<direct_abstract_declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_47(_x_47)=parser.popstack().value { _x_47 } else {<pointer<'lt>>::default()};  abstract_declarator::abstract_declarator_157(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_158_<'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_54(_x_54)=parser.popstack().value { _x_54 } 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_158(parser.lbx(1,_item1_)) }

fn _semaction_rule_159_<'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_159 }

fn _semaction_rule_160_<'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_27(_x_27)=parser.popstack().value { _x_27 } else {<constant_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_160(parser.lbx(1,_item1_)) }

fn _semaction_rule_161_<'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_55(_x_55)=parser.popstack().value { _x_55 } else {<direct_abstract_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_162_<'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_27(_x_27)=parser.popstack().value { _x_27 } 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_55(_x_55)=parser.popstack().value { _x_55 } else {<direct_abstract_declarator<'lt>>::default()};  direct_abstract_declarator::direct_abstract_declarator_162(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

fn _semaction_rule_163_<'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_163 }

fn _semaction_rule_164_<'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_49(_x_49)=parser.popstack().value { _x_49 } 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_164(parser.lbx(1,_item1_)) }

fn _semaction_rule_165_<'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_55(_x_55)=parser.popstack().value { _x_55 } else {<direct_abstract_declarator<'lt>>::default()};  _item0_ }

fn _semaction_rule_166_<'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_49(_x_49)=parser.popstack().value { _x_49 } 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_55(_x_55)=parser.popstack().value { _x_55 } else {<direct_abstract_declarator<'lt>>::default()};  direct_abstract_declarator::direct_abstract_declarator_166(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

fn _semaction_rule_168_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> initializer<'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_57(_x_57)=parser.popstack().value { _x_57 } else {<initializer_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  initializer::Lbrace_168(parser.lbx(1,_item1_)) }

fn _semaction_rule_169_<'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_57(_x_57)=parser.popstack().value { _x_57 } else {<initializer_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  initializer::Lbrace_169(parser.lbx(1,_item1_)) }

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

fn _semaction_rule_171_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> initializer_list<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_56(_x_56)=parser.popstack().value { _x_56 } 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_57(_x_57)=parser.popstack().value { _x_57 } else {<initializer_list<'lt>>::default()};  initializer_list::initializer_list_171(parser.lbx(0,_item0_),parser.lbx(2,_item2_)) }

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

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

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

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

fn _semaction_rule_176_<'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 {<iteration_statement<'lt>>::default()};  statement::statement_176(parser.lbx(0,_item0_)) }

fn _semaction_rule_177_<'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 {<jump_statement<'lt>>::default()};  statement::statement_177(parser.lbx(0,_item0_)) }

fn _semaction_rule_178_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> labeled_statement<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } 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_6(_x_6)=parser.popstack().value { _x_6 } else {<&'lt str>::default()};  labeled_statement::IDENTIFIER_178(_item0_,parser.lbx(2,_item2_)) }

fn _semaction_rule_179_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> labeled_statement<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } 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_27(_x_27)=parser.popstack().value { _x_27 } 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_179(parser.lbx(1,_item1_),parser.lbx(3,_item3_)) }

fn _semaction_rule_180_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> labeled_statement<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } 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_180(parser.lbx(2,_item2_)) }

fn _semaction_rule_181_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> compound_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()};  compound_statement::Lbrace_181 }

fn _semaction_rule_182_<'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 _item1_ = if let RetTypeEnum::Enumvariant_62(_x_62)=parser.popstack().value { _x_62 } else {<statement_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  compound_statement::Lbrace_182(parser.lbx(1,_item1_)) }

fn _semaction_rule_183_<'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 _item1_ = if let RetTypeEnum::Enumvariant_61(_x_61)=parser.popstack().value { _x_61 } else {<declaration_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  compound_statement::Lbrace_183(parser.lbx(1,_item1_)) }

fn _semaction_rule_184_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> compound_statement<'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_62(_x_62)=parser.popstack().value { _x_62 } else {<statement_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_61(_x_61)=parser.popstack().value { _x_61 } else {<declaration_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  compound_statement::Lbrace_184(parser.lbx(1,_item1_),parser.lbx(2,_item2_)) }

fn _semaction_rule_185_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_list<'lt> {
let mut _item0_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<declaration<'lt>>::default()};  declaration_list::declaration_list_185(parser.lbx(0,_item0_)) }

fn _semaction_rule_186_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> declaration_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_28(_x_28)=parser.popstack().value { _x_28 } else {<declaration<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_61(_x_61)=parser.popstack().value { _x_61 } else {<declaration_list<'lt>>::default()};  declaration_list::declaration_list_186(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

fn _semaction_rule_188_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> statement_list<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } else {<statement<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_62(_x_62)=parser.popstack().value { _x_62 } else {<statement_list<'lt>>::default()};  statement_list::statement_list_188(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_189_<'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_189 }

fn _semaction_rule_190_<'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_26(_x_26)=parser.popstack().value { _x_26 } else {<expression<'lt>>::default()};  expression_statement::expression_statement_190(parser.lbx(0,_item0_)) }

fn _semaction_rule_191_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> selection_statement<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } 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_26(_x_26)=parser.popstack().value { _x_26 } 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_191(parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

fn _semaction_rule_192_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> selection_statement<'lt> {
let mut _item6_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } 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_58(_x_58)=parser.popstack().value { _x_58 } 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_26(_x_26)=parser.popstack().value { _x_26 } 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_192(parser.lbx(2,_item2_),parser.lbx(4,_item4_),parser.lbx(6,_item6_)) }

fn _semaction_rule_193_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> selection_statement<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } 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_26(_x_26)=parser.popstack().value { _x_26 } 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_193(parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

fn _semaction_rule_194_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> iteration_statement<'lt> {
let mut _item4_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } 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_26(_x_26)=parser.popstack().value { _x_26 } 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_194(parser.lbx(2,_item2_),parser.lbx(4,_item4_)) }

fn _semaction_rule_195_<'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_26(_x_26)=parser.popstack().value { _x_26 } 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_58(_x_58)=parser.popstack().value { _x_58 } else {<statement<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  iteration_statement::DO_195(parser.lbx(1,_item1_),parser.lbx(4,_item4_)) }

fn _semaction_rule_196_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> iteration_statement<'lt> {
let mut _item5_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } else {<statement<'lt>>::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_63(_x_63)=parser.popstack().value { _x_63 } else {<expression_statement<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_63(_x_63)=parser.popstack().value { _x_63 } 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_196(parser.lbx(2,_item2_),parser.lbx(3,_item3_),parser.lbx(5,_item5_)) }

fn _semaction_rule_197_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> iteration_statement<'lt> {
let mut _item6_ = if let RetTypeEnum::Enumvariant_58(_x_58)=parser.popstack().value { _x_58 } 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_26(_x_26)=parser.popstack().value { _x_26 } else {<expression<'lt>>::default()}; let mut _item3_ = if let RetTypeEnum::Enumvariant_63(_x_63)=parser.popstack().value { _x_63 } else {<expression_statement<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_63(_x_63)=parser.popstack().value { _x_63 } 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_197(parser.lbx(2,_item2_),parser.lbx(3,_item3_),parser.lbx(4,_item4_),parser.lbx(6,_item6_)) }

fn _semaction_rule_198_<'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_6(_x_6)=parser.popstack().value { _x_6 } else {<&'lt str>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  jump_statement::GOTO_198(_item1_) }

fn _semaction_rule_199_<'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_199 }

fn _semaction_rule_200_<'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_200 }

fn _semaction_rule_201_<'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_201 }

fn _semaction_rule_202_<'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_26(_x_26)=parser.popstack().value { _x_26 } else {<expression<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_1(_x_1)=parser.popstack().value { _x_1 } else {<()>::default()};  jump_statement::RETURN_202(parser.lbx(1,_item1_)) }

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

fn _semaction_rule_204_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> translation_unit<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_68(_x_68)=parser.popstack().value { _x_68 } else {<external_declaration<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<translation_unit<'lt>>::default()};  translation_unit::translation_unit_204(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

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

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

fn _semaction_rule_207_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> function_definition<'lt> {
let mut _item3_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<compound_statement<'lt>>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_61(_x_61)=parser.popstack().value { _x_61 } else {<declaration_list<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_45(_x_45)=parser.popstack().value { _x_45 } else {<declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()};  function_definition::function_definition_207(parser.lbx(0,_item0_),parser.lbx(1,_item1_),parser.lbx(2,_item2_),parser.lbx(3,_item3_)) }

fn _semaction_rule_208_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> function_definition<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<compound_statement<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_45(_x_45)=parser.popstack().value { _x_45 } else {<declarator<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_29(_x_29)=parser.popstack().value { _x_29 } else {<declaration_specifiers<'lt>>::default()};  function_definition::function_definition_208(parser.lbx(0,_item0_),parser.lbx(1,_item1_),parser.lbx(2,_item2_)) }

fn _semaction_rule_209_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> function_definition<'lt> {
let mut _item2_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<compound_statement<'lt>>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_61(_x_61)=parser.popstack().value { _x_61 } else {<declaration_list<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_45(_x_45)=parser.popstack().value { _x_45 } else {<declarator<'lt>>::default()};  function_definition::function_definition_209(parser.lbx(0,_item0_),parser.lbx(1,_item1_),parser.lbx(2,_item2_)) }

fn _semaction_rule_210_<'lt>(parser:&mut ZCParser<RetTypeEnum<'lt>,HashSet<&'lt str>>) -> function_definition<'lt> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_60(_x_60)=parser.popstack().value { _x_60 } else {<compound_statement<'lt>>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_45(_x_45)=parser.popstack().value { _x_45 } else {<declarator<'lt>>::default()};  function_definition::function_definition_210(parser.lbx(0,_item0_),parser.lbx(1,_item1_)) }

fn _semaction_rule_211_<'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(212,349);
 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_7(_semaction_rule_0_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("primary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_7(_semaction_rule_1_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("primary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_7(_semaction_rule_2_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("primary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_7(_semaction_rule_3_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_8(_semaction_rule_4_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_8(_semaction_rule_5_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_8(_semaction_rule_6_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_8(_semaction_rule_7_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_8(_semaction_rule_8_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_8(_semaction_rule_9_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_8(_semaction_rule_10_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("postfix_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_8(_semaction_rule_11_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("argument_expression_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_9(_semaction_rule_12_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("argument_expression_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_9(_semaction_rule_13_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_14_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_15_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_16_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_17_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_18_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_10(_semaction_rule_19_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_11(_semaction_rule_20_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_11(_semaction_rule_21_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_11(_semaction_rule_22_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_11(_semaction_rule_23_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_11(_semaction_rule_24_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("unary_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_11(_semaction_rule_25_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("cast_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_26_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("cast_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_12(_semaction_rule_27_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("multiplicative_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_28_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("multiplicative_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_29_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("multiplicative_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_30_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("multiplicative_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_13(_semaction_rule_31_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("additive_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_14(_semaction_rule_32_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("additive_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_14(_semaction_rule_33_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("additive_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_14(_semaction_rule_34_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("shift_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_15(_semaction_rule_35_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("shift_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_15(_semaction_rule_36_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("shift_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_15(_semaction_rule_37_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_16(_semaction_rule_38_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_16(_semaction_rule_39_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_16(_semaction_rule_40_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_16(_semaction_rule_41_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("relational_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_16(_semaction_rule_42_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("equality_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_17(_semaction_rule_43_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("equality_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_17(_semaction_rule_44_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("equality_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_17(_semaction_rule_45_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("and_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_18(_semaction_rule_46_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("and_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_18(_semaction_rule_47_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("exclusive_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_19(_semaction_rule_48_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("exclusive_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_19(_semaction_rule_49_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("inclusive_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_20(_semaction_rule_50_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("inclusive_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_20(_semaction_rule_51_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("logical_and_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_21(_semaction_rule_52_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("logical_and_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_21(_semaction_rule_53_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("logical_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_22(_semaction_rule_54_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("logical_or_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_22(_semaction_rule_55_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("conditional_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_23(_semaction_rule_56_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("conditional_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_23(_semaction_rule_57_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_24(_semaction_rule_58_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_24(_semaction_rule_59_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_60_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_61_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_62_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_63_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_64_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_65_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_66_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_67_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_68_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_69_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("assignment_operator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_25(_semaction_rule_70_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_26(_semaction_rule_71_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_26(_semaction_rule_72_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("constant_expression");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_27(_semaction_rule_73_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_28(_semaction_rule_74_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_28(_semaction_rule_75_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_29(_semaction_rule_76_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_29(_semaction_rule_77_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_29(_semaction_rule_78_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_29(_semaction_rule_79_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_29(_semaction_rule_80_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_specifiers");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_29(_semaction_rule_81_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_32(_semaction_rule_82_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_83_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("init_declarator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_30(_semaction_rule_84_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("init_declarator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_30(_semaction_rule_85_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("init_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_86_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("init_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_31(_semaction_rule_87_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_32(_semaction_rule_88_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_32(_semaction_rule_89_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_32(_semaction_rule_90_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("storage_class_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_32(_semaction_rule_91_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_92_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_93_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_94_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_95_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_96_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_97_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_98_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_99_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_100_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_101_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_33(_semaction_rule_102_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_103_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_104_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_34(_semaction_rule_105_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_106_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_or_union");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_35(_semaction_rule_107_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declaration_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_36(_semaction_rule_108_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declaration_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_36(_semaction_rule_109_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_37(_semaction_rule_110_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("specifier_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_38(_semaction_rule_111_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("specifier_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_38(_semaction_rule_112_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("specifier_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_38(_semaction_rule_113_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("specifier_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_38(_semaction_rule_114_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_39(_semaction_rule_115_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_39(_semaction_rule_116_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_40(_semaction_rule_117_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_40(_semaction_rule_118_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("struct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_40(_semaction_rule_119_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enum_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_41(_semaction_rule_120_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enum_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_41(_semaction_rule_121_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enum_specifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_41(_semaction_rule_122_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enumerator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_42(_semaction_rule_123_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enumerator_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_42(_semaction_rule_124_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enumerator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_43(_semaction_rule_125_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("enumerator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_43(_semaction_rule_126_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_44(_semaction_rule_127_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_44(_semaction_rule_128_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_45(_semaction_rule_129_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_45(_semaction_rule_130_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_131_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_132_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_133_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_134_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_135_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_136_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_46(_semaction_rule_137_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("pointer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_47(_semaction_rule_138_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("pointer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_47(_semaction_rule_139_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("pointer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_47(_semaction_rule_140_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("pointer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_47(_semaction_rule_141_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_142_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_qualifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_48(_semaction_rule_143_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_type_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_49(_semaction_rule_144_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_type_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_49(_semaction_rule_145_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_50(_semaction_rule_146_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_50(_semaction_rule_147_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_51(_semaction_rule_148_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_51(_semaction_rule_149_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("parameter_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_51(_semaction_rule_150_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("identifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_52(_semaction_rule_151_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("identifier_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_52(_semaction_rule_152_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_name");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_53(_semaction_rule_153_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("type_name");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_53(_semaction_rule_154_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_54(_semaction_rule_155_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_54(_semaction_rule_156_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_54(_semaction_rule_157_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_158_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_159_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_160_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_161_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_162_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_163_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_164_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_165_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("direct_abstract_declarator");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_55(_semaction_rule_166_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_56(_semaction_rule_167_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_56(_semaction_rule_168_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_56(_semaction_rule_169_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_170_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("initializer_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_57(_semaction_rule_171_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_58(_semaction_rule_172_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_58(_semaction_rule_173_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_58(_semaction_rule_174_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_58(_semaction_rule_175_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_58(_semaction_rule_176_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_58(_semaction_rule_177_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("labeled_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_59(_semaction_rule_178_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("labeled_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_59(_semaction_rule_179_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("labeled_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_59(_semaction_rule_180_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("compound_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_181_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("compound_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_182_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("compound_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_183_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("compound_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_60(_semaction_rule_184_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_61(_semaction_rule_185_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("declaration_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_61(_semaction_rule_186_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_62(_semaction_rule_187_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("statement_list");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_62(_semaction_rule_188_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("expression_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_63(_semaction_rule_189_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("expression_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_63(_semaction_rule_190_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("selection_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_64(_semaction_rule_191_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("selection_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_64(_semaction_rule_192_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("selection_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_64(_semaction_rule_193_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("iteration_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_65(_semaction_rule_194_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("iteration_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_65(_semaction_rule_195_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("iteration_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_65(_semaction_rule_196_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("iteration_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_65(_semaction_rule_197_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_66(_semaction_rule_198_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_66(_semaction_rule_199_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_66(_semaction_rule_200_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_66(_semaction_rule_201_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("jump_statement");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_66(_semaction_rule_202_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("translation_unit");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_0(_semaction_rule_203_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("translation_unit");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_0(_semaction_rule_204_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("external_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_68(_semaction_rule_205_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("external_declaration");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_68(_semaction_rule_206_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("function_definition");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_69(_semaction_rule_207_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("function_definition");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_69(_semaction_rule_208_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("function_definition");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_69(_semaction_rule_209_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("function_definition");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_69(_semaction_rule_210_(parser)) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<RetTypeEnum<'lt>,HashSet<&'lt str>>::new_skeleton("START");
 rule.Ruleaction = |parser|{  RetTypeEnum::Enumvariant_0(_semaction_rule_211_(parser)) };
 parser1.Rules.push(rule);
 parser1.Errsym = "";

 for i in 0..7041 {
   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 cautolexer<'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 cautolexer<'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_15(shift_expression<'lt>),
  Enumvariant_31(init_declarator<'lt>),
  Enumvariant_57(initializer_list<'lt>),
  Enumvariant_8(postfix_expression<'lt>),
  Enumvariant_56(initializer<'lt>),
  Enumvariant_27(constant_expression<'lt>),
  Enumvariant_7(primary_expression<'lt>),
  Enumvariant_39(struct_declarator_list<'lt>),
  Enumvariant_65(iteration_statement<'lt>),
  Enumvariant_0(translation_unit<'lt>),
  Enumvariant_54(abstract_declarator<'lt>),
  Enumvariant_17(equality_expression<'lt>),
  Enumvariant_28(declaration<'lt>),
  Enumvariant_52(identifier_list<'lt>),
  Enumvariant_34(struct_or_union_specifier<'lt>),
  Enumvariant_24(assignment_expression<'lt>),
  Enumvariant_20(inclusive_or_expression<'lt>),
  Enumvariant_11(unary_operator<'lt>),
  Enumvariant_55(direct_abstract_declarator<'lt>),
  Enumvariant_59(labeled_statement<'lt>),
  Enumvariant_29(declaration_specifiers<'lt>),
  Enumvariant_61(declaration_list<'lt>),
  Enumvariant_63(expression_statement<'lt>),
  Enumvariant_33(type_specifier<'lt>),
  Enumvariant_47(pointer<'lt>),
  Enumvariant_62(statement_list<'lt>),
  Enumvariant_25(assignment_operator<'lt>),
  Enumvariant_12(cast_expression<'lt>),
  Enumvariant_50(parameter_list<'lt>),
  Enumvariant_21(logical_and_expression<'lt>),
  Enumvariant_40(struct_declarator<'lt>),
  Enumvariant_49(parameter_type_list<'lt>),
  Enumvariant_9(argument_expression_list<'lt>),
  Enumvariant_2((usize,usize)),
  Enumvariant_23(conditional_expression<'lt>),
  Enumvariant_18(and_expression<'lt>),
  Enumvariant_64(selection_statement<'lt>),
  Enumvariant_60(compound_statement<'lt>),
  Enumvariant_43(enumerator<'lt>),
  Enumvariant_10(unary_expression<'lt>),
  Enumvariant_36(struct_declaration_list<'lt>),
  Enumvariant_4(i32),
  Enumvariant_48(type_qualifier_list<'lt>),
  Enumvariant_35(struct_or_union<'lt>),
  Enumvariant_44(type_qualifier<'lt>),
  Enumvariant_13(multiplicative_expression<'lt>),
  Enumvariant_14(additive_expression<'lt>),
  Enumvariant_19(exclusive_or_expression<'lt>),
  Enumvariant_68(external_declaration<'lt>),
  Enumvariant_30(init_declarator_list<'lt>),
  Enumvariant_32(storage_class_specifier<'lt>),
  Enumvariant_38(specifier_qualifier_list<'lt>),
  Enumvariant_46(direct_declarator<'lt>),
  Enumvariant_69(function_definition<'lt>),
  Enumvariant_16(relational_expression<'lt>),
  Enumvariant_53(type_name<'lt>),
  Enumvariant_26(expression<'lt>),
  Enumvariant_37(struct_declaration<'lt>),
  Enumvariant_1(()),
  Enumvariant_58(statement<'lt>),
  Enumvariant_51(parameter_declaration<'lt>),
  Enumvariant_42(enumerator_list<'lt>),
  Enumvariant_41(enum_specifier<'lt>),
  Enumvariant_66(jump_statement<'lt>),
  Enumvariant_45(declarator<'lt>),
  Enumvariant_6(&'lt str),
  Enumvariant_22(logical_or_expression<'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 cautolexer<'lt> {
   stk: StrTokenizer<'lt>,
   keywords: HashSet<&'static str>,
   lexnames: HashMap<&'static str,&'static str>,
   shared_state: Rc<RefCell<HashSet<&'lt str>>>,
}
impl<'lt> cautolexer<'lt> 
{
  pub fn from_str(s:&'lt str) -> cautolexer<'lt>  {
    Self::new(StrTokenizer::from_str(s))
  }
  pub fn from_source(s:&'lt LexSource<'lt>) -> cautolexer<'lt>  {
    Self::new(StrTokenizer::from_source(s))
  }
  pub fn new(mut stk:StrTokenizer<'lt>) -> cautolexer<'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 ["long","_WILDCARD_TOKEN_","return","break","do","if","continue","while","for","short","case","struct","enum","include","define","default","typedef","register","const","goto","double","int","volatile","float","void","union","else","static","unsigned","signed","extern","char","auto","sizeof","switch",] {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"-=","SUB_ASSIGN"),(r"++","INC_OP"),(r"volatile","VOLATILE"),(r"else","ELSE"),(r"void","VOID"),(r"^","Hat"),(r"!=","NE_OP"),(r"break","BREAK"),(r"#","Hash"),(r"static","STATIC"),(r"->","PTR_OP"),(r"<=","LE_OP"),(r">=","GE_OP"),(r"define","DEFINE"),(r"+=","ADD_ASSIGN"),(r"float","FLOAT"),(r"union","UNION"),(r">","Gt"),(r"auto","AUTO"),(r"while","WHILE"),(r"||","OR_OP"),(r"/","Div"),(r"goto","GOTO"),(r"long","LONG"),(r"default","DEFAULT"),(r"struct","STRUCT"),(r"typedef","TYPEDEF"),(r"for","FOR"),(r"==","EQ_OP"),(r"short","SHORT"),(r"continue","CONTINUE"),(r"unsigned","UNSIGNED"),(r"%","Percent"),(r"}","Rbrace"),(r"const","CONST"),(r"{","Lbrace"),(r"include","INCLUDE"),(r"!","Bang"),(r"if","IF"),(r"&=","AND_ASSIGN"),(r"|","Bar"),(r"signed","SIGNED"),(r"int","INT"),(r"<","Lt"),(r">>","RIGHT_OP"),(r"--","DEC_OP"),(r"extern","EXTERN"),(r"char","CHAR"),(r"double","DOUBLE"),(r"|=","OR_ASSIGN"),(r"*","Star"),(r"*=","MUL_ASSIGN"),(r"return","RETURN"),(r":","Colon"),(r".","Dot"),(r"%=","MOD_ASSIGN"),(r"<<","LEFT_OP"),(r"register","REGISTER"),(r"sizeof","SIZEOF"),(r"enum","ENUM"),(r"do","DO"),(r"...","ELLIPSIS"),(r"&&","AND_OP"),(r"/=","DIV_ASSIGN"),(r"case","CASE"),(r"switch","SWITCH"),(r"?","Quest"),(r"<<=","LEFT_ASSIGN"),(r"=","Eq1"),(r"^=","XOR_ASSIGN"),(r">>=","RIGHT_ASSIGN"),(r"&","Amp"),(r",","Comma"),] {lexnames.insert(k,v);}
    cautolexer {stk,keywords,lexnames,shared_state}
  }
}
impl<'lt> Tokenizer<'lt,RetTypeEnum<'lt>> for cautolexer<'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,"TYPE_NAME",RetTypeEnum::Enumvariant_6( n
))),
      RawToken::Alphanum(s) => Some(TerminalToken::from_raw(token,"IDENTIFIER",RetTypeEnum::Enumvariant_6(s))),
      RawToken::Num(n) => Some(TerminalToken::from_raw(token,"CONSTANT",RetTypeEnum::Enumvariant_4((n as i32)))),
      RawToken::Strlit(n) => Some(TerminalToken::from_raw(token,"STRING_LITERAL",RetTypeEnum::Enumvariant_6(n))),
      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