This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
43803325158028386ae4ac7e0dd013e2c750b975
[perl5.git] / perly.tab
1 #define YYFINAL  3
2 /* YYLAST -- Last index in YYTABLE.  */
3 #define YYLAST   2088
4
5 /* YYNTOKENS -- Number of terminals. */
6 #define YYNTOKENS  85
7 /* YYNNTS -- Number of nonterminals. */
8 #define YYNNTS  61
9 /* YYNRULES -- Number of rules. */
10 #define YYNRULES  199
11 /* YYNRULES -- Number of states. */
12 #define YYNSTATES  399
13
14 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
15 #define YYUNDEFTOK  2
16 #define YYMAXUTOK   320
17
18 #define YYTRANSLATE(YYX)                                                \
19   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
20
21 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
22 static const unsigned char yytranslate[] =
23 {
24        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
25        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
26        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
27        2,     2,     2,    63,     2,     2,    81,    83,    46,     2,
28       74,    73,    84,    80,    52,    79,     2,     2,     2,     2,
29        2,     2,     2,     2,     2,     2,     2,     2,    55,    77,
30        2,     2,     2,    54,    82,     2,     2,     2,     2,     2,
31        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
32        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
33        2,    75,     2,    78,     2,     2,     2,     2,     2,     2,
34        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
35        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
36        2,     2,     2,     3,     2,    76,    64,     2,     2,     2,
37        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
38        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
39        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
40        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
41        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
42        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
43        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
44        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
45        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
48        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
49        2,     2,     2,     2,     2,     2,     1,     2,     4,     5,
50        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
51       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
52       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
53       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
54       47,    48,    49,    50,    51,    53,    56,    57,    58,    59,
55       60,    61,    62,    65,    66,    67,    68,    69,    70,    71,
56       72
57 };
58
59 #if YYDEBUG
60 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
61    YYRHS.  */
62 static const unsigned short yyprhs[] =
63 {
64        0,     0,     3,     6,    11,    12,    13,    18,    19,    20,
65       23,    26,    29,    31,    34,    38,    40,    42,    46,    50,
66       54,    58,    62,    63,    66,    73,    81,    89,    90,    93,
67      102,   111,   122,   132,   141,   153,   157,   158,   160,   161,
68      163,   165,   167,   169,   171,   173,   174,   176,   178,   180,
69      182,   184,   186,   191,   193,   194,   201,   208,   209,   210,
70      211,   213,   214,   216,   217,   220,   222,   225,   227,   229,
71      231,   235,   236,   244,   248,   252,   256,   258,   261,   265,
72      267,   271,   277,   284,   288,   292,   298,   301,   306,   307,
73      313,   315,   317,   323,   328,   334,   339,   345,   352,   358,
74      363,   369,   374,   378,   382,   386,   390,   394,   398,   402,
75      406,   410,   414,   418,   422,   426,   430,   434,   437,   440,
76      443,   446,   449,   452,   455,   458,   462,   465,   470,   474,
77      480,   483,   486,   491,   497,   502,   508,   510,   512,   514,
78      516,   522,   525,   527,   530,   534,   537,   539,   541,   543,
79      545,   547,   549,   556,   562,   567,   573,   575,   577,   581,
80      586,   590,   592,   595,   598,   600,   603,   606,   609,   611,
81      615,   617,   621,   626,   631,   638,   640,   642,   646,   649,
82      653,   656,   658,   660,   662,   663,   665,   666,   668,   671,
83      673,   676,   679,   682,   685,   688,   691,   693,   695,   697
84 };
85
86 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
87 static const short yyrhs[] =
88 {
89       86,     0,    -1,    89,    92,    -1,     3,    88,    92,    76,
90       -1,    -1,    -1,     3,    91,    92,    76,    -1,    -1,    -1,
91       92,   107,    -1,    92,    93,    -1,   106,    96,    -1,    98,
92       -1,   106,    77,    -1,   106,    94,    77,    -1,     1,    -1,
93      123,    -1,   123,    21,   123,    -1,   123,    22,   123,    -1,
94      123,    19,   123,    -1,   123,    20,   101,    -1,   123,    26,
95      123,    -1,    -1,    23,    90,    -1,    24,    74,   102,    73,
96       90,    95,    -1,    21,    74,    88,   102,    73,    90,    95,
97       -1,    22,    74,    88,   105,    73,    90,    95,    -1,    -1,
98       25,    87,    -1,   106,    19,    74,    88,   104,    73,    90,
99       97,    -1,   106,    20,    74,    88,   105,    73,    90,    97,
100       -1,   106,    26,    43,    88,   138,    74,   102,    73,    90,
101       97,    -1,   106,    26,   140,    74,    88,   102,    73,    90,
102       97,    -1,   106,    26,    74,    88,   102,    73,    90,    97,
103       -1,   106,    26,    74,    88,   103,    77,   104,    77,   103,
104       73,    90,    -1,   106,    87,    97,    -1,    -1,    94,    -1,
105       -1,   123,    -1,   123,    -1,   123,    -1,    99,    -1,   100,
106       -1,   101,    -1,    -1,    13,    -1,   108,    -1,   111,    -1,
107      110,    -1,   120,    -1,   121,    -1,    14,   114,   109,    87,
108       -1,     4,    -1,    -1,    44,   112,   115,   116,   117,   119,
109       -1,    15,   112,   115,   116,   117,   119,    -1,    -1,    -1,
110       -1,     4,    -1,    -1,     7,    -1,    -1,    45,     7,    -1,
111       45,    -1,    45,     7,    -1,    45,    -1,    87,    -1,    77,
112       -1,    17,     4,    77,    -1,    -1,    18,   112,   122,     4,
113        4,   136,    77,    -1,   123,    50,   123,    -1,   123,    49,
114      123,    -1,   123,    48,   123,    -1,   124,    -1,   124,    52,
115       -1,   124,    52,   133,    -1,   133,    -1,    33,   145,   124,
116       -1,    31,    74,   145,   123,    73,    -1,   133,    72,   127,
117       74,   137,    73,    -1,   133,    72,   127,    -1,     5,   145,
118      136,    -1,     6,   145,    74,   137,    73,    -1,    33,   136,
119       -1,    31,    74,   137,    73,    -1,    -1,    12,   113,    87,
120      126,   136,    -1,     5,    -1,   140,    -1,   144,     3,   123,
121       77,    76,    -1,   140,    75,   123,    78,    -1,   133,    72,
122       75,   123,    78,    -1,   128,    75,   123,    78,    -1,   140,
123        3,   123,    77,    76,    -1,   133,    72,     3,   123,    77,
124       76,    -1,   128,     3,   123,    77,    76,    -1,   133,    72,
125       74,    73,    -1,   133,    72,    74,   123,    73,    -1,   128,
126       74,   123,    73,    -1,   128,    74,    73,    -1,   133,    53,
127      133,    -1,   133,    67,   133,    -1,   133,    36,   133,    -1,
128      133,    37,   133,    -1,   133,    61,   133,    -1,   133,    34,
129      133,    -1,   133,    35,   133,    -1,   133,    60,   133,    -1,
130      133,    59,   133,    -1,   133,    28,   133,    -1,   133,    58,
131      133,    -1,   133,    57,   133,    -1,   133,    56,   133,    -1,
132      133,    62,   133,    -1,    79,   133,    -1,    80,   133,    -1,
133       63,   133,    -1,    64,   133,    -1,   133,    69,    -1,   133,
134       68,    -1,    71,   133,    -1,    70,   133,    -1,    75,   123,
135       78,    -1,    75,    78,    -1,    40,   123,    77,    76,    -1,
136       40,    77,    76,    -1,    16,   113,   116,   117,    87,    -1,
137       39,   133,    -1,    39,    87,    -1,    39,     4,    74,    73,
138       -1,    39,     4,    74,   123,    73,    -1,    39,   140,    74,
139       73,    -1,    39,   140,    74,   123,    73,    -1,   129,    -1,
140      130,    -1,   131,    -1,   132,    -1,   133,    54,   133,    55,
141      133,    -1,    65,   133,    -1,   134,    -1,    42,   133,    -1,
142       74,   123,    73,    -1,    74,    73,    -1,   140,    -1,   144,
143       -1,   142,    -1,   141,    -1,   143,    -1,   128,    -1,    74,
144      123,    73,    75,   123,    78,    -1,    74,    73,    75,   123,
145       78,    -1,   141,    75,   123,    78,    -1,   141,     3,   123,
146       77,    76,    -1,     7,    -1,   139,    -1,   139,    74,    73,
147       -1,   139,    74,   123,    73,    -1,    41,     4,   136,    -1,
148       27,    -1,    27,   133,    -1,    51,   124,    -1,    32,    -1,
149       32,    87,    -1,    32,   133,    -1,    11,   133,    -1,    29,
150       -1,    29,    74,    73,    -1,    10,    -1,    30,    74,    73,
151       -1,    30,    74,   123,    73,    -1,     8,    74,   133,    73,
152       -1,     8,    74,   133,    52,   133,    73,    -1,     4,    -1,
153      125,    -1,    43,   135,   118,    -1,    43,   135,    -1,    74,
154      123,    73,    -1,    74,    73,    -1,   140,    -1,   142,    -1,
155      141,    -1,    -1,   124,    -1,    -1,   123,    -1,   123,    52,
156       -1,   140,    -1,    46,   145,    -1,    81,   145,    -1,    82,
157      145,    -1,    83,   145,    -1,    38,   145,    -1,    84,   145,
158       -1,     4,    -1,   140,    -1,    87,    -1,     9,    -1
159 };
160
161 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
162 static const unsigned short yyrline[] =
163 {
164        0,    86,    86,    92,    99,   103,   109,   116,   121,   122,
165      124,   132,   134,   135,   144,   150,   152,   154,   156,   158,
166      160,   162,   169,   170,   172,   179,   183,   191,   192,   197,
167      203,   209,   212,   216,   219,   235,   243,   244,   249,   250,
168      254,   259,   263,   267,   271,   277,   278,   282,   284,   286,
169      288,   290,   294,   298,   299,   303,   308,   313,   317,   321,
170      325,   334,   335,   340,   341,   343,   348,   350,   355,   356,
171      359,   364,   363,   370,   372,   374,   376,   380,   382,   384,
172      388,   391,   394,   399,   403,   408,   413,   415,   418,   417,
173      426,   427,   431,   436,   438,   442,   446,   449,   454,   459,
174      462,   467,   471,   477,   479,   481,   485,   487,   489,   491,
175      493,   495,   497,   499,   501,   503,   505,   510,   512,   514,
176      516,   518,   521,   524,   527,   534,   536,   538,   540,   542,
177      548,   550,   552,   560,   569,   573,   581,   582,   583,   584,
178      585,   587,   589,   591,   593,   595,   597,   599,   601,   603,
179      605,   607,   609,   611,   613,   619,   626,   628,   630,   632,
180      635,   638,   641,   643,   645,   647,   649,   651,   654,   656,
181      658,   661,   663,   665,   667,   669,   670,   674,   676,   681,
182      683,   685,   687,   689,   694,   696,   701,   702,   704,   710,
183      714,   718,   722,   726,   730,   734,   739,   741,   743,   746
184 };
185 #endif
186
187 #if YYDEBUG || YYERROR_VERBOSE
188 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
189    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
190 static const char *const yytname[] =
191 {
192   "$end", "error", "$undefined", "'{'", "WORD", "METHOD", "FUNCMETH", 
193   "THING", "PMFUNC", "PRIVATEREF", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", 
194   "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL", 
195   "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "LOOPEX", "DOTDOT", 
196   "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP", 
197   "ADDOP", "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY", "MYSUB", 
198   "COLONATTR", "'&'", "PREC_LOW", "DOROP", "OROP", "ANDOP", "NOTOP", 
199   "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", "BITOROP", 
200   "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS", 
201   "POWOP", "POSTDEC", "POSTINC", "PREDEC", "PREINC", "ARROW", "')'", 
202   "'('", "'['", "'}'", "';'", "']'", "'-'", "'+'", "'$'", "'@'", "'%'", 
203   "'*'", "$accept", "prog", "block", "remember", "progstart", "mblock", 
204   "mremember", "lineseq", "line", "sideff", "else", "cond", "cont", 
205   "loop", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "mtexpr", 
206   "miexpr", "label", "decl", "format", "formname", "mysubrout", "subrout", 
207   "startsub", "startanonsub", "startformsub", "subname", "proto", 
208   "subattrlist", "myattrlist", "subbody", "package", "use", "@1", "expr", 
209   "argexpr", "listop", "@2", "method", "subscripted", "termbinop", 
210   "termunop", "anonymous", "termdo", "term", "myattrterm", "myterm", 
211   "listexpr", "listexprcom", "my_scalar", "amper", "scalar", "ary", "hsh", 
212   "arylen", "star", "indirob", 0
213 };
214 #endif
215
216 # ifdef YYPRINT
217 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
218    token YYLEX-NUM.  */
219 static const unsigned short yytoknum[] =
220 {
221        0,   256,   257,   123,   258,   259,   260,   261,   262,   263,
222      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
223      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
224      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
225      294,   295,   296,   297,   298,   299,    38,   300,   301,   302,
226      303,   304,    44,   305,    63,    58,   306,   307,   308,   309,
227      310,   311,   312,    33,   126,   313,   314,   315,   316,   317,
228      318,   319,   320,    41,    40,    91,   125,    59,    93,    45,
229       43,    36,    64,    37,    42
230 };
231 # endif
232
233 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
234 static const unsigned char yyr1[] =
235 {
236        0,    85,    86,    87,    88,    89,    90,    91,    92,    92,
237       92,    93,    93,    93,    93,    94,    94,    94,    94,    94,
238       94,    94,    95,    95,    95,    96,    96,    97,    97,    98,
239       98,    98,    98,    98,    98,    98,    99,    99,   100,   100,
240      101,   102,   103,   104,   105,   106,   106,   107,   107,   107,
241      107,   107,   108,   109,   109,   110,   111,   112,   113,   114,
242      115,   116,   116,   117,   117,   117,   118,   118,   119,   119,
243      120,   122,   121,   123,   123,   123,   123,   124,   124,   124,
244      125,   125,   125,   125,   125,   125,   125,   125,   126,   125,
245      127,   127,   128,   128,   128,   128,   128,   128,   128,   128,
246      128,   128,   128,   129,   129,   129,   129,   129,   129,   129,
247      129,   129,   129,   129,   129,   129,   129,   130,   130,   130,
248      130,   130,   130,   130,   130,   131,   131,   131,   131,   131,
249      132,   132,   132,   132,   132,   132,   133,   133,   133,   133,
250      133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
251      133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
252      133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
253      133,   133,   133,   133,   133,   133,   133,   134,   134,   135,
254      135,   135,   135,   135,   136,   136,   137,   137,   137,   138,
255      139,   140,   141,   142,   143,   144,   145,   145,   145,   145
256 };
257
258 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
259 static const unsigned char yyr2[] =
260 {
261        0,     2,     2,     4,     0,     0,     4,     0,     0,     2,
262        2,     2,     1,     2,     3,     1,     1,     3,     3,     3,
263        3,     3,     0,     2,     6,     7,     7,     0,     2,     8,
264        8,    10,     9,     8,    11,     3,     0,     1,     0,     1,
265        1,     1,     1,     1,     1,     0,     1,     1,     1,     1,
266        1,     1,     4,     1,     0,     6,     6,     0,     0,     0,
267        1,     0,     1,     0,     2,     1,     2,     1,     1,     1,
268        3,     0,     7,     3,     3,     3,     1,     2,     3,     1,
269        3,     5,     6,     3,     3,     5,     2,     4,     0,     5,
270        1,     1,     5,     4,     5,     4,     5,     6,     5,     4,
271        5,     4,     3,     3,     3,     3,     3,     3,     3,     3,
272        3,     3,     3,     3,     3,     3,     3,     2,     2,     2,
273        2,     2,     2,     2,     2,     3,     2,     4,     3,     5,
274        2,     2,     4,     5,     4,     5,     1,     1,     1,     1,
275        5,     2,     1,     2,     3,     2,     1,     1,     1,     1,
276        1,     1,     6,     5,     4,     5,     1,     1,     3,     4,
277        3,     1,     2,     2,     1,     2,     2,     2,     1,     3,
278        1,     3,     4,     4,     6,     1,     1,     3,     2,     3,
279        2,     1,     1,     1,     0,     1,     0,     1,     2,     1,
280        2,     2,     2,     2,     2,     2,     1,     1,     1,     1
281 };
282
283 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
284    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
285    means the default is an error.  */
286 static const unsigned char yydefact[] =
287 {
288        5,     0,     8,     1,    45,    46,    59,    57,     0,    57,
289       57,    10,    12,     0,     9,    47,    49,    48,    50,    51,
290       54,     0,     0,    71,     0,    15,     4,   175,     0,     0,
291      156,     0,   170,     0,    58,    58,     0,     0,     0,     0,
292        0,   161,   168,     0,     0,   164,   184,     0,     0,     0,
293        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
294        0,     0,    13,     0,     0,     0,     0,     0,     0,    27,
295        0,    11,    16,    76,   176,   151,   136,   137,   138,   139,
296       79,   142,   157,   146,   149,   148,   150,   147,    53,     0,
297       60,    61,    70,     0,    61,     8,   196,   199,   198,   197,
298      184,     0,     0,   167,     0,    61,     4,     4,     4,     4,
299        4,     4,     0,   162,     0,     0,   186,   165,   166,   196,
300      185,    86,   197,     0,   194,   175,   131,   130,   146,     0,
301        0,   184,   143,     0,   178,   181,   183,   182,   190,   163,
302      119,   120,   141,   124,   123,   145,     0,   126,     0,   117,
303      118,   191,   192,   193,   195,     0,    35,    14,     0,     0,
304        0,     0,     0,     0,     0,     0,    77,     0,     0,     0,
305        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
306        0,     0,     0,     0,     0,   122,   121,     0,     0,     0,
307        0,     0,     0,     0,    52,    62,    63,     0,    63,    45,
308       84,   186,     0,    88,    63,    38,     0,     0,     0,     0,
309        0,     4,   169,   171,     0,   187,     0,     0,    80,     0,
310        0,   128,     0,   160,   180,     0,    67,   177,     0,   144,
311      125,    28,    19,    20,    40,    17,    18,    21,    75,    74,
312       73,    78,     0,   102,     0,     0,   112,   108,   109,   105,
313      106,   103,     0,   115,   114,   113,   111,   110,   107,   116,
314      104,     0,    90,     0,     0,    83,    91,   158,     0,     0,
315        0,     0,     0,     0,    65,     0,   184,     0,     3,     0,
316        0,   173,   184,     0,    43,     0,    39,    44,     0,     0,
317       41,     0,     0,   189,    37,    42,     0,     0,    16,     0,
318      172,   188,    87,     0,   132,     0,   134,     0,   127,   179,
319       66,     0,     0,     0,   101,    95,     0,     0,    99,     0,
320        0,   186,   159,     0,    93,     0,   154,     0,    64,    69,
321       68,    56,     0,    55,    85,     0,    89,   129,     0,     0,
322        0,     0,     0,     0,    38,     0,    81,   133,   135,   153,
323        0,    98,   140,     0,   100,    94,     0,    96,   155,    92,
324       72,   174,     7,    27,    27,    22,    22,     0,    27,     0,
325        0,   152,    97,    82,     8,    29,    30,     0,     0,    25,
326       26,     0,    33,     0,    27,    45,    23,     0,    27,     0,
327       32,     6,     0,    31,     0,     0,    34,    22,    24
328 };
329
330 /* YYDEFGOTO[NTERM-NUM]. */
331 static const short yydefgoto[] =
332 {
333       -1,     1,    98,    95,     2,   363,   374,     4,    11,   294,
334      379,    71,   156,    12,   295,   284,   287,   289,   297,   285,
335      288,    13,    14,    15,    89,    16,    17,    21,   104,    20,
336       91,   196,   275,   227,   331,    18,    19,    93,   290,    73,
337       74,   282,   265,    75,    76,    77,    78,    79,    80,    81,
338      134,   121,   216,   292,    82,    83,    84,    85,    86,    87,
339      100
340 };
341
342 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
343    STATE-NUM.  */
344 #define YYPACT_NINF -337
345 static const short yypact[] =
346 {
347     -337,    18,  -337,  -337,   244,  -337,  -337,  -337,    31,  -337,
348     -337,  -337,  -337,   314,  -337,  -337,  -337,  -337,  -337,  -337,
349       50,    56,   -14,  -337,    56,  -337,  -337,  -337,    49,    49,
350     -337,    -7,  -337,  1619,  -337,  -337,    10,    25,    47,    53,
351      -19,  1619,    55,    60,    61,   646,   564,    49,   728,   809,
352      138,  1619,   -17,    49,  1619,  1619,  1619,  1619,  1619,  1619,
353      890,   971,  -337,  1619,  1619,    49,    49,    49,    49,   118,
354       76,  -337,   611,    35,  -337,    11,  -337,  -337,  -337,  -337,
355     1917,  -337,    92,    23,    26,  -337,  -337,   170,  -337,   171,
356     -337,   174,  -337,   181,   174,  -337,  -337,  -337,  -337,  -337,
357     1619,   112,  1619,   795,   171,   174,  -337,  -337,  -337,  -337,
358     -337,  -337,   116,  1917,   123,  1052,   564,  -337,   795,  1745,
359       35,  -337,  1685,  1619,  -337,   117,  -337,   795,    22,   125,
360       83,  1619,   795,  1133,   153,  -337,  -337,  -337,  -337,    35,
361      344,   344,   344,    40,    40,   124,   197,  -337,    -4,   344,
362      344,  -337,  -337,  -337,  -337,   171,  -337,  -337,  1619,  1619,
363     1619,  1619,  1619,  1619,  1619,  1619,  1619,  1619,  1214,  1619,
364     1619,  1619,  1619,  1619,  1619,  1619,  1619,  1619,  1619,  1619,
365     1619,  1619,  1619,  1619,  1619,  -337,  -337,    14,  1295,  1619,
366     1619,  1619,  1619,  1619,  -337,  -337,   157,   201,   157,    62,
367     -337,  1619,  1791,  -337,   157,  1619,  1619,  1619,  1619,   130,
368      398,  -337,  -337,  -337,   219,   447,   139,  1619,    35,  1376,
369     1457,  -337,   140,  -337,  -337,   301,   207,  -337,  1619,   142,
370     -337,  -337,   332,  -337,   332,   332,   332,   332,   173,   173,
371     -337,  1917,   261,  -337,   319,    33,  2001,   714,   550,   141,
372      229,  1917,  1875,  2016,  2016,   386,   469,   632,   217,   344,
373      344,  1619,  -337,  1538,  1619,   147,  -337,  -337,   369,   313,
374       91,   323,   109,   500,   220,    13,  1619,    13,  -337,   151,
375     1619,  -337,  1619,   171,  -337,   155,   332,  -337,   179,   182,
376      332,   190,   209,  -337,  -337,  -337,   198,   213,   256,  1619,
377     -337,  -337,  -337,   384,  -337,   510,  -337,   540,  -337,  -337,
378     -337,   122,  1619,   224,  -337,  -337,  1619,   664,  -337,   551,
379      245,  1619,  -337,   226,  -337,   227,  -337,   231,  -337,  -337,
380     -337,  -337,   239,  -337,  -337,  1833,  -337,  -337,   324,   324,
381      324,   324,  1619,   324,  1619,   255,  -337,  -337,  -337,  -337,
382      264,  -337,  1959,   272,  -337,  -337,   259,  -337,  -337,  -337,
383     -337,  -337,  -337,   118,   118,   101,   101,   285,   118,   260,
384      324,  -337,  -337,  -337,  -337,  -337,  -337,   324,   290,  -337,
385     -337,   324,  -337,   482,   118,   150,  -337,  1619,   118,   286,
386     -337,  -337,   293,  -337,   324,   324,  -337,   101,  -337
387 };
388
389 /* YYPGOTO[NTERM-NUM].  */
390 static const short yypgoto[] =
391 {
392     -337,  -337,   -11,   -98,  -337,  -121,  -337,   -94,  -337,   363,
393     -336,  -337,   574,  -337,  -337,  -337,   228,  -205,     0,    42,
394      193,  -337,  -337,  -337,  -337,  -337,  -337,    63,   372,  -337,
395      391,   -74,  -165,  -337,   149,  -337,  -337,  -337,   -13,     5,
396     -337,  -337,  -337,  -337,  -337,  -337,  -337,  -337,    59,  -337,
397     -337,   -93,  -195,  -337,  -337,   -25,   383,   399,  -337,  -337,
398        3
399 };
400
401 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
402    positive, shift that token.  If negative, reduce the rule which
403    number is the opposite.  If zero, do what YYDEFACT says.
404    If YYTABLE_NINF, syntax error.  */
405 #define YYTABLE_NINF -176
406 static const short yytable[] =
407 {
408       72,   199,    69,    99,    99,   296,   279,   200,   205,   206,
409      207,   208,   209,   210,   167,   112,    26,   261,     3,   262,
410      198,   122,    99,   128,   110,   189,   189,   135,    99,   191,
411      380,   204,   101,   277,   117,    22,   130,   126,   223,   283,
412       99,    99,    99,    99,   163,   164,   165,   146,   148,   123,
413      124,   120,    26,    96,    88,   111,   138,   133,    97,   139,
414       90,   398,    65,    92,    65,    66,    67,   102,   151,   152,
415      153,   154,    23,    24,   230,     5,     6,     7,   194,     8,
416        9,   163,   164,   165,   106,   168,   169,   166,   263,   264,
417      329,   122,   103,   203,   345,    65,   220,   190,   190,   107,
418      113,   192,   214,   215,   118,   120,    10,   127,  -176,  -176,
419      132,   315,   187,   299,   140,   141,   142,   143,   144,   217,
420      225,   108,   149,   150,   377,   378,   356,   109,   218,   114,
421       65,   163,   164,   165,   115,   116,   120,   367,   278,   163,
422      164,   165,   131,   155,   231,   232,   234,   235,   236,   237,
423      238,   239,   240,   157,   242,   244,   245,   163,   164,   165,
424      222,   202,   266,     5,     6,     7,   188,     8,     9,   324,
425      163,   164,   165,   193,    26,   268,   269,   270,   271,   272,
426      273,   195,   392,   332,   293,   197,   201,   326,   215,   336,
427      211,   219,   286,   234,    10,   234,   212,   298,   226,   228,
428      349,   221,   274,   183,   303,   276,   305,   307,   184,   185,
429      186,    65,   302,   187,   310,   311,   308,   312,   364,   365,
430      366,   321,   368,   165,   334,   241,   391,   328,   338,   246,
431      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
432      257,   258,   259,   260,    -2,   163,   164,   165,   317,   384,
433      319,   320,   339,   173,   174,   340,   386,     5,     6,     7,
434      388,     8,     9,   341,   330,   173,   330,   163,   164,   165,
435      229,   343,   337,   396,   397,   158,   159,   160,   161,   183,
436      385,   120,   162,   342,   184,   185,   186,   120,    10,   187,
437      344,   183,   300,   163,   164,   165,   184,   185,   186,   350,
438      351,   187,   357,   358,   163,   164,   165,   359,   215,   163,
439      164,   165,   163,   164,   165,    25,   360,    26,    27,    28,
440       29,    30,    31,   355,    32,    33,    34,   362,   370,   -41,
441       35,   286,   373,    36,    37,    38,    39,   383,   313,   335,
442       40,    41,   371,    42,    43,    44,    45,    46,   372,   163,
443      164,   165,    47,    48,    49,    50,    51,    52,   381,   394,
444       53,   163,   164,   165,   387,    54,   395,   163,   164,   165,
445       72,   163,   164,   165,   309,   352,    70,    55,    56,    57,
446      163,   164,   165,   389,    58,    59,   369,   233,    60,    61,
447      323,    62,   314,    63,    64,    65,    66,    67,    68,    25,
448      325,   291,    27,    28,    29,    30,    31,   105,    32,    33,
449       34,   184,   185,   186,    35,    94,   187,   163,   164,   165,
450      171,   172,   173,   174,     0,    41,   333,    42,    43,    44,
451       45,    46,   163,   164,   165,   136,    47,    48,    49,    50,
452       51,    52,   322,     0,    53,   180,   181,   182,   183,    54,
453        0,   137,     0,   184,   185,   186,     0,   346,   187,     0,
454        0,    55,    56,    57,     0,     0,     0,     0,    58,    59,
455        0,     0,    60,    61,     0,   -36,     0,    63,    64,    65,
456       66,    67,    68,    25,     0,     0,    27,    28,    29,    30,
457       31,     0,    32,    33,    34,   163,   164,   165,    35,   301,
458        0,     0,     0,   171,   172,   173,   174,     0,     0,    41,
459        0,    42,    43,    44,    45,    46,     0,     0,     0,     0,
460       47,    48,    49,    50,    51,    52,     0,     0,    53,   181,
461      182,   183,     0,    54,     0,     0,   184,   185,   186,     0,
462        0,   187,     0,     0,     0,    55,    56,    57,   163,   164,
463      165,     0,    58,    59,     0,   -36,    60,    61,   163,   164,
464      165,    63,    64,    65,    66,    67,    68,    26,   119,    28,
465       29,    30,    31,    97,    32,    33,    34,   327,     0,     0,
466       35,     0,     0,   347,   171,  -176,   173,   174,   163,   164,
467      165,    41,     0,    42,    43,    44,    45,    46,     0,   163,
468      164,   165,    47,    48,    49,    50,    51,    52,     0,     0,
469       53,   182,   183,   348,     0,    54,     0,   184,   185,   186,
470        0,     0,   187,     0,   354,     0,     0,    55,    56,    57,
471      158,   159,   160,   161,    58,    59,     0,   162,    60,    61,
472        0,     0,     0,    63,    64,    65,    66,    67,    68,    26,
473       27,    28,    29,    30,    31,     0,    32,    33,    34,   163,
474      164,   165,    35,     0,     0,     0,   171,   172,   173,   174,
475        0,     0,     0,    41,     0,    42,    43,    44,    45,    46,
476        0,     0,     0,     0,    47,    48,    49,    50,    51,    52,
477        0,     0,    53,   182,   183,     0,     0,    54,     0,   184,
478      185,   186,     0,     0,   187,     0,     0,     0,     0,    55,
479       56,    57,   163,   164,   165,     0,    58,    59,     0,     0,
480       60,    61,     0,     0,     0,    63,    64,    65,    66,    67,
481       68,    26,   125,    28,    29,    30,    31,     0,    32,    33,
482       34,   353,     0,     0,    35,     0,     0,     0,  -176,     0,
483      173,   174,     0,     0,     0,    41,     0,    42,    43,    44,
484       45,    46,     0,     0,     0,     0,    47,    48,    49,    50,
485       51,    52,     0,     0,    53,   182,   183,     0,     0,    54,
486        0,   184,   185,   186,     0,     0,   187,     0,     0,     0,
487        0,    55,    56,    57,     0,     0,     0,     0,    58,    59,
488        0,     0,    60,    61,     0,     0,     0,    63,    64,    65,
489       66,    67,    68,    27,    28,    29,    30,    31,     0,    32,
490       33,    34,     0,     0,     0,    35,     0,     0,     0,     0,
491        0,   173,   174,     0,     0,     0,    41,     0,    42,    43,
492       44,    45,    46,     0,     0,     0,     0,    47,    48,    49,
493       50,    51,    52,     0,     0,    53,   182,   183,     0,     0,
494       54,     0,   184,   185,   186,     0,     0,   187,     0,     0,
495        0,     0,    55,    56,    57,     0,     0,     0,     0,    58,
496       59,     0,     0,    60,    61,     0,   129,     0,    63,    64,
497       65,    66,    67,    68,    27,    28,    29,    30,    31,     0,
498       32,    33,    34,     0,     0,     0,    35,     0,     0,     0,
499        0,     0,     0,     0,     0,     0,     0,    41,     0,    42,
500       43,    44,    45,    46,     0,     0,     0,     0,    47,    48,
501       49,    50,    51,    52,     0,     0,    53,   375,   376,     0,
502        0,    54,   382,     0,     0,     0,     0,     0,     0,     0,
503        0,     0,     0,    55,    56,    57,     0,     0,   390,     0,
504       58,    59,   393,   145,    60,    61,     0,     0,     0,    63,
505       64,    65,    66,    67,    68,    27,    28,    29,    30,    31,
506        0,    32,    33,    34,     0,     0,     0,    35,     0,     0,
507        0,     0,     0,     0,     0,     0,     0,     0,    41,     0,
508       42,    43,    44,    45,    46,     0,     0,     0,     0,    47,
509       48,    49,    50,    51,    52,     0,     0,    53,     0,     0,
510        0,     0,    54,     0,     0,     0,     0,     0,     0,     0,
511        0,     0,     0,     0,    55,    56,    57,     0,     0,     0,
512        0,    58,    59,     0,     0,    60,    61,     0,     0,   147,
513       63,    64,    65,    66,    67,    68,    27,    28,    29,    30,
514       31,     0,    32,    33,    34,     0,     0,     0,    35,     0,
515        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
516        0,    42,    43,    44,    45,    46,     0,     0,     0,     0,
517       47,    48,    49,    50,    51,    52,     0,     0,    53,     0,
518        0,     0,     0,    54,     0,     0,     0,     0,     0,     0,
519        0,     0,     0,     0,     0,    55,    56,    57,     0,     0,
520        0,     0,    58,    59,     0,   213,    60,    61,     0,     0,
521        0,    63,    64,    65,    66,    67,    68,    27,    28,    29,
522       30,    31,     0,    32,    33,    34,     0,     0,     0,    35,
523        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
524       41,     0,    42,    43,    44,    45,    46,     0,     0,     0,
525        0,    47,    48,    49,    50,    51,    52,     0,     0,    53,
526        0,     0,     0,     0,    54,     0,     0,     0,     0,     0,
527        0,     0,     0,     0,     0,     0,    55,    56,    57,     0,
528        0,     0,     0,    58,    59,     0,   224,    60,    61,     0,
529        0,     0,    63,    64,    65,    66,    67,    68,    27,    28,
530       29,    30,    31,     0,    32,    33,    34,     0,     0,     0,
531       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
532        0,    41,     0,    42,    43,    44,    45,    46,     0,     0,
533        0,     0,    47,    48,    49,    50,    51,    52,     0,     0,
534       53,     0,     0,     0,     0,    54,     0,     0,     0,     0,
535        0,     0,     0,     0,     0,     0,     0,    55,    56,    57,
536        0,     0,     0,     0,    58,    59,     0,   243,    60,    61,
537        0,     0,     0,    63,    64,    65,    66,    67,    68,    27,
538       28,    29,    30,    31,     0,    32,    33,    34,     0,     0,
539        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
540        0,     0,    41,     0,    42,    43,    44,    45,    46,     0,
541        0,     0,     0,    47,    48,    49,    50,    51,    52,     0,
542        0,    53,     0,     0,     0,     0,    54,     0,     0,     0,
543        0,     0,     0,     0,     0,     0,     0,     0,    55,    56,
544       57,     0,     0,     0,     0,    58,    59,     0,   267,    60,
545       61,     0,     0,     0,    63,    64,    65,    66,    67,    68,
546       27,    28,    29,    30,    31,     0,    32,    33,    34,     0,
547        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
548        0,     0,     0,    41,     0,    42,    43,    44,    45,    46,
549        0,     0,     0,     0,    47,    48,    49,    50,    51,    52,
550        0,     0,    53,     0,     0,     0,     0,    54,     0,     0,
551        0,     0,     0,     0,     0,     0,     0,     0,     0,    55,
552       56,    57,     0,     0,     0,     0,    58,    59,     0,   304,
553       60,    61,     0,     0,     0,    63,    64,    65,    66,    67,
554       68,    27,    28,    29,    30,    31,     0,    32,    33,    34,
555        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
556        0,     0,     0,     0,    41,     0,    42,    43,    44,    45,
557       46,     0,     0,     0,     0,    47,    48,    49,    50,    51,
558       52,     0,     0,    53,     0,     0,     0,     0,    54,     0,
559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
560       55,    56,    57,     0,     0,     0,     0,    58,    59,     0,
561      306,    60,    61,     0,     0,     0,    63,    64,    65,    66,
562       67,    68,    27,    28,    29,    30,    31,     0,    32,    33,
563       34,     0,     0,     0,    35,     0,     0,     0,     0,     0,
564        0,     0,     0,     0,     0,    41,     0,    42,    43,    44,
565       45,    46,     0,     0,     0,     0,    47,    48,    49,    50,
566       51,    52,     0,     0,    53,     0,     0,     0,     0,    54,
567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
568        0,    55,    56,    57,     0,     0,     0,     0,    58,    59,
569        0,   318,    60,    61,     0,     0,     0,    63,    64,    65,
570       66,    67,    68,    27,    28,    29,    30,    31,     0,    32,
571       33,    34,     0,     0,     0,    35,     0,     0,     0,     0,
572        0,     0,     0,     0,     0,     0,    41,     0,    42,    43,
573       44,    45,    46,     0,     0,     0,     0,    47,    48,    49,
574       50,    51,    52,     0,     0,    53,     0,     0,     0,     0,
575       54,     0,     0,     0,     0,     0,     0,     0,     0,     0,
576        0,     0,    55,    56,    57,     0,     0,     0,   189,    58,
577       59,     0,     0,    60,    61,     0,     0,     0,    63,    64,
578       65,    66,    67,    68,  -146,  -146,  -146,  -146,     0,     0,
579        0,  -146,     0,  -146,     0,     0,     0,     0,     0,  -146,
580     -146,  -146,  -146,     0,     0,     0,     0,     0,     0,     0,
581        0,     0,     0,  -146,  -146,  -146,     0,  -146,  -146,  -146,
582     -146,  -146,  -146,  -146,  -146,  -146,  -146,  -146,     0,     0,
583        0,     0,  -146,  -146,  -146,     0,     0,  -146,  -146,     0,
584      190,     0,  -146,  -146,  -175,  -175,  -175,  -175,     0,     0,
585        0,  -175,     0,  -175,     0,     0,     0,     0,     0,  -175,
586     -175,  -175,  -175,     0,     0,     0,     0,     0,     0,     0,
587        0,     0,     0,  -175,  -175,  -175,     0,  -175,  -175,  -175,
588     -175,  -175,  -175,  -175,  -175,  -175,  -175,  -175,     0,     0,
589        0,     0,  -175,  -175,  -175,     0,     0,  -175,  -175,   170,
590        0,     0,  -175,  -175,     0,   171,   172,   173,   174,     0,
591        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
592        0,     0,     0,   280,   175,   176,     0,   177,   178,   179,
593      180,   181,   182,   183,     0,     0,     0,     0,   184,   185,
594      186,   170,     0,   187,   281,     0,     0,   171,   172,   173,
595      174,     0,     0,     0,     0,     0,     0,     0,     0,     0,
596        0,     0,     0,     0,     0,     0,   175,   176,     0,   177,
597      178,   179,   180,   181,   182,   183,     0,     0,     0,     0,
598      184,   185,   186,   170,     0,   187,   361,     0,     0,   171,
599      172,   173,   174,     0,     0,     0,     0,     0,     0,     0,
600        0,     0,     0,     0,     0,     0,     0,     0,   175,   176,
601      316,   177,   178,   179,   180,   181,   182,   183,     0,     0,
602        0,     0,   184,   185,   186,   170,     0,   187,     0,     0,
603        0,   171,   172,   173,   174,     0,     0,     0,     0,     0,
604        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
605      175,   176,     0,   177,   178,   179,   180,   181,   182,   183,
606        0,     0,     0,     0,   184,   185,   186,   170,     0,   187,
607        0,     0,     0,   171,   172,   173,   174,     0,     0,     0,
608        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
609        0,     0,     0,   176,     0,   177,   178,   179,   180,   181,
610      182,   183,     0,     0,     0,     0,   184,   185,   186,  -176,
611        0,   187,     0,     0,     0,   171,   172,   173,   174,     0,
612        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
613      171,   172,   173,   174,     0,     0,     0,   177,   178,   179,
614      180,   181,   182,   183,     0,     0,     0,     0,   184,   185,
615      186,     0,     0,   187,   179,   180,   181,   182,   183,     0,
616        0,     0,     0,   184,   185,   186,     0,     0,   187
617 };
618
619 static const short yycheck[] =
620 {
621       13,    95,    13,    28,    29,   210,   201,   100,   106,   107,
622      108,   109,   110,   111,     3,    40,     3,     3,     0,     5,
623       94,    46,    47,    48,    43,     3,     3,    52,    53,     3,
624      366,   105,    29,   198,    45,     4,    49,    48,   131,   204,
625       65,    66,    67,    68,    48,    49,    50,    60,    61,    46,
626       47,    46,     3,     4,     4,    74,    53,    74,     9,    54,
627        4,   397,    81,    77,    81,    82,    83,    74,    65,    66,
628       67,    68,     9,    10,    78,    13,    14,    15,    89,    17,
629       18,    48,    49,    50,    74,    74,    75,    52,    74,    75,
630       77,   116,    33,   104,   299,    81,    74,    75,    75,    74,
631       41,    75,   115,   116,    45,   100,    44,    48,    68,    69,
632       51,    78,    72,   211,    55,    56,    57,    58,    59,   116,
633      133,    74,    63,    64,    23,    24,   321,    74,   123,    74,
634       81,    48,    49,    50,    74,    74,   131,   342,    76,    48,
635       49,    50,     4,    25,   155,   158,   159,   160,   161,   162,
636      163,   164,   165,    77,   167,   168,   169,    48,    49,    50,
637       77,   102,   187,    13,    14,    15,    74,    17,    18,    78,
638       48,    49,    50,     3,     3,   188,   189,   190,   191,   192,
639      193,     7,   387,   276,   209,     4,    74,    78,   201,   282,
640       74,    74,   205,   206,    44,   208,    73,   210,    45,    75,
641       78,    76,    45,    62,   217,     4,   219,   220,    67,    68,
642       69,    81,    73,    72,     7,   228,    76,    75,   339,   340,
643      341,    74,   343,    50,    73,   166,    76,     7,    73,   170,
644      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
645      181,   182,   183,   184,     0,    48,    49,    50,   261,   370,
646      263,   264,    73,    36,    37,    73,   377,    13,    14,    15,
647      381,    17,    18,    73,   275,    36,   277,    48,    49,    50,
648       73,    73,   283,   394,   395,    19,    20,    21,    22,    62,
649      374,   276,    26,    74,    67,    68,    69,   282,    44,    72,
650       77,    62,    73,    48,    49,    50,    67,    68,    69,   312,
651       76,    72,    76,    76,    48,    49,    50,    76,   321,    48,
652       49,    50,    48,    49,    50,     1,    77,     3,     4,     5,
653        6,     7,     8,    78,    10,    11,    12,     3,    73,    73,
654       16,   344,    73,    19,    20,    21,    22,    77,    77,   280,
655       26,    27,    78,    29,    30,    31,    32,    33,    76,    48,
656       49,    50,    38,    39,    40,    41,    42,    43,    73,    73,
657       46,    48,    49,    50,    74,    51,    73,    48,    49,    50,
658      383,    48,    49,    50,    73,   316,    13,    63,    64,    65,
659       48,    49,    50,   383,    70,    71,   344,   159,    74,    75,
660       77,    77,    73,    79,    80,    81,    82,    83,    84,     1,
661       77,   208,     4,     5,     6,     7,     8,    35,    10,    11,
662       12,    67,    68,    69,    16,    24,    72,    48,    49,    50,
663       34,    35,    36,    37,    -1,    27,   277,    29,    30,    31,
664       32,    33,    48,    49,    50,    52,    38,    39,    40,    41,
665       42,    43,    73,    -1,    46,    59,    60,    61,    62,    51,
666       -1,    52,    -1,    67,    68,    69,    -1,    73,    72,    -1,
667       -1,    63,    64,    65,    -1,    -1,    -1,    -1,    70,    71,
668       -1,    -1,    74,    75,    -1,    77,    -1,    79,    80,    81,
669       82,    83,    84,     1,    -1,    -1,     4,     5,     6,     7,
670        8,    -1,    10,    11,    12,    48,    49,    50,    16,    52,
671       -1,    -1,    -1,    34,    35,    36,    37,    -1,    -1,    27,
672       -1,    29,    30,    31,    32,    33,    -1,    -1,    -1,    -1,
673       38,    39,    40,    41,    42,    43,    -1,    -1,    46,    60,
674       61,    62,    -1,    51,    -1,    -1,    67,    68,    69,    -1,
675       -1,    72,    -1,    -1,    -1,    63,    64,    65,    48,    49,
676       50,    -1,    70,    71,    -1,    73,    74,    75,    48,    49,
677       50,    79,    80,    81,    82,    83,    84,     3,     4,     5,
678        6,     7,     8,     9,    10,    11,    12,    77,    -1,    -1,
679       16,    -1,    -1,    73,    34,    35,    36,    37,    48,    49,
680       50,    27,    -1,    29,    30,    31,    32,    33,    -1,    48,
681       49,    50,    38,    39,    40,    41,    42,    43,    -1,    -1,
682       46,    61,    62,    73,    -1,    51,    -1,    67,    68,    69,
683       -1,    -1,    72,    -1,    73,    -1,    -1,    63,    64,    65,
684       19,    20,    21,    22,    70,    71,    -1,    26,    74,    75,
685       -1,    -1,    -1,    79,    80,    81,    82,    83,    84,     3,
686        4,     5,     6,     7,     8,    -1,    10,    11,    12,    48,
687       49,    50,    16,    -1,    -1,    -1,    34,    35,    36,    37,
688       -1,    -1,    -1,    27,    -1,    29,    30,    31,    32,    33,
689       -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,    43,
690       -1,    -1,    46,    61,    62,    -1,    -1,    51,    -1,    67,
691       68,    69,    -1,    -1,    72,    -1,    -1,    -1,    -1,    63,
692       64,    65,    48,    49,    50,    -1,    70,    71,    -1,    -1,
693       74,    75,    -1,    -1,    -1,    79,    80,    81,    82,    83,
694       84,     3,     4,     5,     6,     7,     8,    -1,    10,    11,
695       12,    77,    -1,    -1,    16,    -1,    -1,    -1,    34,    -1,
696       36,    37,    -1,    -1,    -1,    27,    -1,    29,    30,    31,
697       32,    33,    -1,    -1,    -1,    -1,    38,    39,    40,    41,
698       42,    43,    -1,    -1,    46,    61,    62,    -1,    -1,    51,
699       -1,    67,    68,    69,    -1,    -1,    72,    -1,    -1,    -1,
700       -1,    63,    64,    65,    -1,    -1,    -1,    -1,    70,    71,
701       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    80,    81,
702       82,    83,    84,     4,     5,     6,     7,     8,    -1,    10,
703       11,    12,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,
704       -1,    36,    37,    -1,    -1,    -1,    27,    -1,    29,    30,
705       31,    32,    33,    -1,    -1,    -1,    -1,    38,    39,    40,
706       41,    42,    43,    -1,    -1,    46,    61,    62,    -1,    -1,
707       51,    -1,    67,    68,    69,    -1,    -1,    72,    -1,    -1,
708       -1,    -1,    63,    64,    65,    -1,    -1,    -1,    -1,    70,
709       71,    -1,    -1,    74,    75,    -1,    77,    -1,    79,    80,
710       81,    82,    83,    84,     4,     5,     6,     7,     8,    -1,
711       10,    11,    12,    -1,    -1,    -1,    16,    -1,    -1,    -1,
712       -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    -1,    29,
713       30,    31,    32,    33,    -1,    -1,    -1,    -1,    38,    39,
714       40,    41,    42,    43,    -1,    -1,    46,   363,   364,    -1,
715       -1,    51,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
716       -1,    -1,    -1,    63,    64,    65,    -1,    -1,   384,    -1,
717       70,    71,   388,    73,    74,    75,    -1,    -1,    -1,    79,
718       80,    81,    82,    83,    84,     4,     5,     6,     7,     8,
719       -1,    10,    11,    12,    -1,    -1,    -1,    16,    -1,    -1,
720       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    -1,
721       29,    30,    31,    32,    33,    -1,    -1,    -1,    -1,    38,
722       39,    40,    41,    42,    43,    -1,    -1,    46,    -1,    -1,
723       -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
724       -1,    -1,    -1,    -1,    63,    64,    65,    -1,    -1,    -1,
725       -1,    70,    71,    -1,    -1,    74,    75,    -1,    -1,    78,
726       79,    80,    81,    82,    83,    84,     4,     5,     6,     7,
727        8,    -1,    10,    11,    12,    -1,    -1,    -1,    16,    -1,
728       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
729       -1,    29,    30,    31,    32,    33,    -1,    -1,    -1,    -1,
730       38,    39,    40,    41,    42,    43,    -1,    -1,    46,    -1,
731       -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,
732       -1,    -1,    -1,    -1,    -1,    63,    64,    65,    -1,    -1,
733       -1,    -1,    70,    71,    -1,    73,    74,    75,    -1,    -1,
734       -1,    79,    80,    81,    82,    83,    84,     4,     5,     6,
735        7,     8,    -1,    10,    11,    12,    -1,    -1,    -1,    16,
736       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
737       27,    -1,    29,    30,    31,    32,    33,    -1,    -1,    -1,
738       -1,    38,    39,    40,    41,    42,    43,    -1,    -1,    46,
739       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,
740       -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    65,    -1,
741       -1,    -1,    -1,    70,    71,    -1,    73,    74,    75,    -1,
742       -1,    -1,    79,    80,    81,    82,    83,    84,     4,     5,
743        6,     7,     8,    -1,    10,    11,    12,    -1,    -1,    -1,
744       16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
745       -1,    27,    -1,    29,    30,    31,    32,    33,    -1,    -1,
746       -1,    -1,    38,    39,    40,    41,    42,    43,    -1,    -1,
747       46,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,
748       -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    65,
749       -1,    -1,    -1,    -1,    70,    71,    -1,    73,    74,    75,
750       -1,    -1,    -1,    79,    80,    81,    82,    83,    84,     4,
751        5,     6,     7,     8,    -1,    10,    11,    12,    -1,    -1,
752       -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
753       -1,    -1,    27,    -1,    29,    30,    31,    32,    33,    -1,
754       -1,    -1,    -1,    38,    39,    40,    41,    42,    43,    -1,
755       -1,    46,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
756       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,
757       65,    -1,    -1,    -1,    -1,    70,    71,    -1,    73,    74,
758       75,    -1,    -1,    -1,    79,    80,    81,    82,    83,    84,
759        4,     5,     6,     7,     8,    -1,    10,    11,    12,    -1,
760       -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
761       -1,    -1,    -1,    27,    -1,    29,    30,    31,    32,    33,
762       -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,    43,
763       -1,    -1,    46,    -1,    -1,    -1,    -1,    51,    -1,    -1,
764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
765       64,    65,    -1,    -1,    -1,    -1,    70,    71,    -1,    73,
766       74,    75,    -1,    -1,    -1,    79,    80,    81,    82,    83,
767       84,     4,     5,     6,     7,     8,    -1,    10,    11,    12,
768       -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,
769       -1,    -1,    -1,    -1,    27,    -1,    29,    30,    31,    32,
770       33,    -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,
771       43,    -1,    -1,    46,    -1,    -1,    -1,    -1,    51,    -1,
772       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
773       63,    64,    65,    -1,    -1,    -1,    -1,    70,    71,    -1,
774       73,    74,    75,    -1,    -1,    -1,    79,    80,    81,    82,
775       83,    84,     4,     5,     6,     7,     8,    -1,    10,    11,
776       12,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,
777       -1,    -1,    -1,    -1,    -1,    27,    -1,    29,    30,    31,
778       32,    33,    -1,    -1,    -1,    -1,    38,    39,    40,    41,
779       42,    43,    -1,    -1,    46,    -1,    -1,    -1,    -1,    51,
780       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
781       -1,    63,    64,    65,    -1,    -1,    -1,    -1,    70,    71,
782       -1,    73,    74,    75,    -1,    -1,    -1,    79,    80,    81,
783       82,    83,    84,     4,     5,     6,     7,     8,    -1,    10,
784       11,    12,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,
785       -1,    -1,    -1,    -1,    -1,    -1,    27,    -1,    29,    30,
786       31,    32,    33,    -1,    -1,    -1,    -1,    38,    39,    40,
787       41,    42,    43,    -1,    -1,    46,    -1,    -1,    -1,    -1,
788       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
789       -1,    -1,    63,    64,    65,    -1,    -1,    -1,     3,    70,
790       71,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    80,
791       81,    82,    83,    84,    19,    20,    21,    22,    -1,    -1,
792       -1,    26,    -1,    28,    -1,    -1,    -1,    -1,    -1,    34,
793       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
794       -1,    -1,    -1,    48,    49,    50,    -1,    52,    53,    54,
795       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
796       -1,    -1,    67,    68,    69,    -1,    -1,    72,    73,    -1,
797       75,    -1,    77,    78,    19,    20,    21,    22,    -1,    -1,
798       -1,    26,    -1,    28,    -1,    -1,    -1,    -1,    -1,    34,
799       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
800       -1,    -1,    -1,    48,    49,    50,    -1,    52,    53,    54,
801       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
802       -1,    -1,    67,    68,    69,    -1,    -1,    72,    73,    28,
803       -1,    -1,    77,    78,    -1,    34,    35,    36,    37,    -1,
804       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
805       -1,    -1,    -1,    52,    53,    54,    -1,    56,    57,    58,
806       59,    60,    61,    62,    -1,    -1,    -1,    -1,    67,    68,
807       69,    28,    -1,    72,    73,    -1,    -1,    34,    35,    36,
808       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
809       -1,    -1,    -1,    -1,    -1,    -1,    53,    54,    -1,    56,
810       57,    58,    59,    60,    61,    62,    -1,    -1,    -1,    -1,
811       67,    68,    69,    28,    -1,    72,    73,    -1,    -1,    34,
812       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    54,
814       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
815       -1,    -1,    67,    68,    69,    28,    -1,    72,    -1,    -1,
816       -1,    34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,
817       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
818       53,    54,    -1,    56,    57,    58,    59,    60,    61,    62,
819       -1,    -1,    -1,    -1,    67,    68,    69,    28,    -1,    72,
820       -1,    -1,    -1,    34,    35,    36,    37,    -1,    -1,    -1,
821       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
822       -1,    -1,    -1,    54,    -1,    56,    57,    58,    59,    60,
823       61,    62,    -1,    -1,    -1,    -1,    67,    68,    69,    28,
824       -1,    72,    -1,    -1,    -1,    34,    35,    36,    37,    -1,
825       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
826       34,    35,    36,    37,    -1,    -1,    -1,    56,    57,    58,
827       59,    60,    61,    62,    -1,    -1,    -1,    -1,    67,    68,
828       69,    -1,    -1,    72,    58,    59,    60,    61,    62,    -1,
829       -1,    -1,    -1,    67,    68,    69,    -1,    -1,    72
830 };
831
832 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
833    symbol of state STATE-NUM.  */
834 static const unsigned char yystos[] =
835 {
836        0,    86,    89,     0,    92,    13,    14,    15,    17,    18,
837       44,    93,    98,   106,   107,   108,   110,   111,   120,   121,
838      114,   112,     4,   112,   112,     1,     3,     4,     5,     6,
839        7,     8,    10,    11,    12,    16,    19,    20,    21,    22,
840       26,    27,    29,    30,    31,    32,    33,    38,    39,    40,
841       41,    42,    43,    46,    51,    63,    64,    65,    70,    71,
842       74,    75,    77,    79,    80,    81,    82,    83,    84,    87,
843       94,    96,   123,   124,   125,   128,   129,   130,   131,   132,
844      133,   134,   139,   140,   141,   142,   143,   144,     4,   109,
845        4,   115,    77,   122,   115,    88,     4,     9,    87,   140,
846      145,   145,    74,   133,   113,   113,    74,    74,    74,    74,
847       43,    74,   140,   133,    74,    74,    74,    87,   133,     4,
848      124,   136,   140,   145,   145,     4,    87,   133,   140,    77,
849      123,     4,   133,    74,   135,   140,   141,   142,   145,   124,
850      133,   133,   133,   133,   133,    73,   123,    78,   123,   133,
851      133,   145,   145,   145,   145,    25,    97,    77,    19,    20,
852       21,    22,    26,    48,    49,    50,    52,     3,    74,    75,
853       28,    34,    35,    36,    37,    53,    54,    56,    57,    58,
854       59,    60,    61,    62,    67,    68,    69,    72,    74,     3,
855       75,     3,    75,     3,    87,     7,   116,     4,   116,    92,
856      136,    74,   133,    87,   116,    88,    88,    88,    88,    88,
857       88,    74,    73,    73,   123,   123,   137,   145,   124,    74,
858       74,    76,    77,   136,    73,   123,    45,   118,    75,    73,
859       78,    87,   123,   101,   123,   123,   123,   123,   123,   123,
860      123,   133,   123,    73,   123,   123,   133,   133,   133,   133,
861      133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
862      133,     3,     5,    74,    75,   127,   140,    73,   123,   123,
863      123,   123,   123,   123,    45,   117,     4,   117,    76,   137,
864       52,    73,   126,   117,   100,   104,   123,   101,   105,   102,
865      123,   105,   138,   140,    94,    99,   102,   103,   123,    88,
866       73,    52,    73,   123,    73,   123,    73,   123,    76,    73,
867        7,   123,    75,    77,    73,    78,    55,   123,    73,   123,
868      123,    74,    73,    77,    78,    77,    78,    77,     7,    77,
869       87,   119,   136,   119,    73,   133,   136,    87,    73,    73,
870       73,    73,    74,    73,    77,   102,    73,    73,    73,    78,
871      123,    76,   133,    77,    73,    78,   137,    76,    76,    76,
872       77,    73,     3,    90,    90,    90,    90,   102,    90,   104,
873       73,    78,    76,    73,    91,    97,    97,    23,    24,    95,
874       95,    73,    97,    77,    90,    92,    90,    74,    90,   103,
875       97,    76,   102,    97,    73,    73,    90,    90,    95
876 };