add verbose stack display option, -Dvs
[p5sagit/p5-mst-13.2.git] / perly.c
1 #ifndef lint
2 /* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
3 #endif
4 #define YYBYACC 1
5 #line 16 "perly.y"
6 #include "EXTERN.h"
7 #define PERL_IN_PERLY_C
8 #include "perl.h"
9 #ifdef EBCDIC
10 #undef YYDEBUG
11 #endif
12 #define dep() deprecate_old("\"do\" to call subroutines")
13
14 /* stuff included here to make perly_c.diff apply better */
15
16 #define yydebug     PL_yydebug
17 #define yynerrs     PL_yynerrs
18 #define yyerrflag   PL_yyerrflag
19 #define yychar      PL_yychar
20 #define yyval       PL_yyval
21 #define yylval      PL_yylval
22
23 struct ysv {
24     short* yyss;
25     YYSTYPE* yyvs;
26     int oldyydebug;
27     int oldyynerrs;
28     int oldyyerrflag;
29     int oldyychar;
30     YYSTYPE oldyyval;
31     YYSTYPE oldyylval;
32 };
33
34 static void yydestruct(pTHX_ void *ptr);
35
36 #line 51 "perly.y"
37 #if 0 /* get this from perly.h instead */
38 #line 54 "perly.y"
39 typedef union {
40     I32 ival;
41     char *pval;
42     OP *opval;
43     GV *gvval;
44 } YYSTYPE;
45 #line 62 "perly.y"
46 #endif /* 0 */
47
48 #ifdef USE_PURE_BISON
49 #define YYLEX_PARAM (&yychar)
50 #define yylex yylex_r
51 #endif
52
53 #line 54 "perly.c"
54 #define YYERRCODE 256
55 static short yylhs[] = {                                        -1,
56     0,    9,    7,    6,   10,    8,   11,   11,   11,   12,
57    12,   12,   12,   25,   25,   25,   25,   25,   25,   25,
58    15,   15,   15,   14,   14,   43,   43,   13,   13,   13,
59    13,   13,   13,   13,   27,   27,   28,   28,   29,   30,
60    31,   32,   33,   54,   54,    1,    1,    1,    1,    1,
61     2,   39,   39,   47,   55,    3,    4,    5,   40,   41,
62    41,   45,   45,   45,   46,   46,   42,   42,   56,   56,
63    58,   57,   16,   16,   16,   16,   26,   26,   26,   37,
64    37,   37,   37,   37,   37,   37,   37,   59,   37,   38,
65    38,   18,   18,   18,   18,   18,   18,   18,   18,   18,
66    18,   18,   50,   50,   50,   50,   50,   50,   50,   50,
67    50,   50,   50,   50,   50,   50,   51,   51,   51,   51,
68    51,   51,   51,   51,   52,   52,   52,   52,   52,   53,
69    53,   53,   53,   53,   53,   17,   17,   17,   17,   17,
70    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
71    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
72    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
73    17,   17,   17,   17,   17,   17,   48,   48,   49,   49,
74    49,   49,   49,   34,   34,   35,   35,   35,   44,   24,
75    19,   20,   21,   22,   23,   36,   36,   36,   36,
76 };
77 static short yylen[] = {                                         2,
78     2,    4,    0,    0,    4,    0,    0,    2,    2,    2,
79     1,    2,    3,    1,    1,    3,    3,    3,    3,    3,
80     0,    2,    6,    7,    7,    0,    2,    8,    8,   10,
81     9,    8,   11,    3,    0,    1,    0,    1,    1,    1,
82     1,    1,    1,    0,    1,    1,    1,    1,    1,    1,
83     4,    1,    0,    6,    6,    0,    0,    0,    1,    0,
84     1,    0,    2,    1,    2,    1,    1,    1,    3,    2,
85     0,    7,    3,    3,    3,    1,    2,    3,    1,    3,
86     5,    6,    3,    3,    5,    2,    4,    0,    5,    1,
87     1,    5,    4,    5,    4,    5,    6,    5,    4,    5,
88     4,    3,    3,    3,    3,    3,    3,    3,    3,    3,
89     3,    3,    3,    3,    3,    3,    2,    2,    2,    2,
90     2,    2,    2,    2,    3,    2,    4,    3,    5,    2,
91     2,    4,    5,    4,    5,    1,    1,    1,    1,    5,
92     2,    1,    2,    3,    2,    1,    1,    1,    1,    1,
93     1,    6,    5,    4,    5,    1,    1,    3,    4,    3,
94     1,    2,    2,    1,    2,    2,    2,    1,    3,    1,
95     3,    4,    4,    6,    1,    1,    3,    2,    3,    2,
96     1,    1,    1,    0,    1,    0,    1,    2,    1,    2,
97     2,    2,    2,    2,    2,    1,    1,    1,    1,
98 };
99 static short yydefred[] = {                                      4,
100     0,    7,    0,   45,   58,   56,    0,   56,   56,    8,
101    46,    9,   11,   48,    0,   47,   49,   50,    0,    0,
102     0,   70,   71,    0,   14,    3,  175,    0,    0,  156,
103     0,  170,    0,   57,   57,    0,    0,    0,    0,    0,
104     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
105     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
106     0,   12,    0,    0,    0,    0,    0,    0,    0,   10,
107     0,    0,    0,    0,    0,  148,  150,    0,    0,    0,
108     0,  176,  142,  136,  137,  138,  139,   52,    0,   59,
109     0,   69,    0,    0,    7,  196,  199,  198,  197,    0,
110     0,    0,    0,    0,    0,    3,    3,    3,    3,    3,
111     3,    0,    0,    0,    0,    0,  165,    0,    0,    0,
112     0,   86,    0,  194,    0,  131,    0,    0,    0,    0,
113     0,    0,    0,  181,  183,  182,    0,  190,    0,    0,
114     0,    0,    0,    0,    0,    0,  126,    0,    0,    0,
115   191,  192,  193,  195,    0,   34,    0,    0,    0,    0,
116     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
117     0,    0,    0,    0,    0,    0,    0,    0,    0,  121,
118   122,    0,    0,    0,    0,    0,    0,    0,    0,    0,
119     0,   13,    0,   51,   61,    0,    0,    0,    0,   84,
120     0,    0,   88,    0,    0,    0,    0,    0,    0,    0,
121     3,  169,  171,    0,    0,    0,    0,    0,    0,    0,
122   128,    0,  160,  180,    0,    0,  177,    0,    0,  125,
123    27,    0,    0,   19,    0,    0,    0,    0,    0,   73,
124     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
125     0,    0,    0,    0,    0,    0,   90,    0,    0,   91,
126     0,    0,  102,    0,    0,    0,    0,    0,    0,    0,
127   158,    0,    0,    0,    0,    0,    0,    2,    0,    0,
128   173,    0,    0,    0,   42,    0,   43,    0,    0,    0,
129     0,  189,    0,    0,   36,   41,    0,    0,    0,  172,
130   188,   87,    0,  132,    0,  134,    0,  127,  179,   65,
131     0,    0,    0,    0,   99,    0,    0,    0,    0,  101,
132    95,    0,   93,    0,  154,    0,  159,   63,   68,   67,
133    55,    0,   54,   85,    0,   89,  129,    0,    0,    0,
134     0,    0,    0,    0,    0,   81,  133,  135,  153,    0,
135     0,    0,  100,   94,    0,   98,   96,  155,   92,   72,
136   174,    6,    0,    0,    0,    0,    0,    0,    0,    0,
137   152,   97,   82,    7,   28,   29,    0,    0,   24,   25,
138     0,   32,    0,    0,    0,   22,    0,    0,    0,   31,
139     5,    0,   30,    0,    0,   33,    0,   23,
140 };
141 static short yydgoto[] = {                                       1,
142    10,   11,   20,  104,   19,    2,   95,  374,   98,  363,
143     3,   12,   13,   70,  379,  289,   72,   73,   74,   75,
144    76,   77,   78,   79,  295,   81,  296,  285,  287,  290,
145   298,  286,  288,  122,  216,  100,   82,  261,   89,   91,
146   196,  331,  156,  293,  275,  227,   14,   83,  137,   84,
147    85,   86,   87,   15,   16,   17,   18,   93,  282,
148 };
149 static short yysindex[] = {                                      0,
150     0,    0, -183,    0,    0,    0,  -57,    0,    0,    0,
151     0,    0,    0,    0,  820,    0,    0,    0, -222, -208,
152     7,    0,    0, -208,    0,    0,    0,  -31,  -31,    0,
153    32,    0, 2214,    0,    0,   33,   49,   56,   59,  -30,
154  2214,   63,   65,   66, 1005,  941,  -31, 1150, 1269, -149,
155  2214,   -7,  -31, 2214, 2214, 2214, 2214, 2214, 2214, 1329,
156  1414,    0, 2214, 2214,  -31,  -31,  -31,  -31, -168,    0,
157  -121,  704,  -16,  -63,  -59,    0,    0,   -8,   80,   64,
158    81,    0,    0,    0,    0,    0,    0,    0,   -1,    0,
159  -134,    0, -125, -134,    0,    0,    0,    0,    0, 2214,
160    95, 2214,  744,   -1, -134,    0,    0,    0,    0,    0,
161     0,  117,  704,   97, 1455,  941,    0,  744,    0,  -63,
162    81,    0, 2214,    0,  123,    0,  744,  -14,   36,  -52,
163  2214,  744, 1563,    0,    0,    0, -132,    0,   81, -111,
164  -111, -111, -155, -155,   76,  -37,    0,  -66, -111, -111,
165     0,    0,    0,    0,   -1,    0, 2214, 2214, 2214, 2214,
166  2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214,
167  2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214,    0,
168     0,  -21, 2214, 1724, 2214, 2214, 2214, 2214, 2214, 2214,
169  1797,    0, 2214,    0,    0, -120,  -74, -120,  343,    0,
170  2214,   27,    0, -120, 2214, 2214, 2214, 2214,  153, 1860,
171     0,    0,    0,  -25,    4,  156, 2214,   81, 1933, 2005,
172     0,   73,    0,    0,   18,  -51,    0, 2214,  110,    0,
173     0,  228,  228,    0,  228,  228,  228,  -92,  -92,    0,
174  1351,  744,  961,  375,  271,  704,  585, 1068, 1068,  646,
175  1485,  394,  611, -111, -111, 2214,    0, 2141, 2214,    0,
176   172,  101,    0,   21,  -62,  133,  -43,  137,  128,  140,
177     0,   24,  704,  -38,  -45, 2214,  -45,    0,  177, 2214,
178     0, 2214,   -1,  228,    0,  178,    0,  204,  228,  206,
179   211,    0,  175, -121,    0,    0,  220,  169, 2214,    0,
180     0,    0,   78,    0,   98,    0,  121,    0,    0,    0,
181   186, 2214, 2214,  174,    0,  124,  191, 2214,  142,    0,
182     0,  147,    0,  148,    0,  168,    0,    0,    0,    0,
183     0,  235,    0,    0,  233,    0,    0,  179,  179,  179,
184   179, 2214,  179, 2214,  260,    0,    0,    0,    0,  216,
185  1035,  182,    0,    0,  270,    0,    0,    0,    0,    0,
186     0,    0, -168, -168, -256, -256,  286, -168,  269,  179,
187     0,    0,    0,    0,    0,    0,  179,  290,    0,    0,
188   179,    0, 1860, -168,  352,    0, 2214, -168,  298,    0,
189     0,  299,    0,  179,  179,    0, -256,    0,
190 };
191 static short yyrindex[] = {                                      0,
192     0,    0,  372,    0,    0,    0,    0,    0,    0,    0,
193     0,    0,    0,    0,    0,    0,    0,    0,  219,    0,
194     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
195     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
196   -19, 2283,    0,    0, 2402, 2567,    0,    0,    0,    0,
197     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
198     0,    0,    0,    0,    0,    0,    0,    0,   91,    0,
199   -18, 1608, 2621, 2674, 2722,    0,    0, 2770, 2857,    0,
200   118,    0,    0,    0,    0,    0,    0,    0,    0,    0,
201   -56,    0,    0,  -56,    0,    0,    0,    0,    0, 2567,
202     0,    0, 4275,    0, -114,    0,    0,    0,    0,    0,
203     0,    0, 1887,    0,    0,  302,    0, 4340,  468,  533,
204  3225,    0,    0,    0, 3006,    0, 4395, 2674,    0,    0,
205  2567, 4405,    0,    0,    0,    0, 3056,    0, 3460, 3696,
206  3747, 3802, 3583, 3631, 3128,    0,    0,    0, 3867, 3915,
207     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
208     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
209     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
210     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
211     0,    0, 3176,    0,    0,  -42,    0,  -42,  881,    0,
212   302,    0,    0,  230,  326,    0,    0,    0,    0,  310,
213     0,    0,    0,    0,  340,    0,    0, 3511,    0,    0,
214     0,    0,    0,    0,    0, 3292,    0,    0, 3347,    0,
215     0,   17,   20,    0,   39,   45,   52, 1480, 1643,    0,
216  2275, 4446, 4494, 4121, 4169, 2422,    0, 4698, 4746, 4631,
217  4592, 4544, 4220, 4001, 4056,    0,    0,    0,    0,    0,
218  3412,    0,    0,    0,    0,    0,    0,    0,    0,    0,
219     0,    0, 2475,  -41,    0,  330,    0,    0,    0,    0,
220     0, 2567,    0,   53,    0,    0,    0,    0,  354,    0,
221     0,    0,    0,   54,    0,    0,    0,    0,    0,    0,
222     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
223     0,    0,    0,    0,    0,    0,    0,  302,    0,    0,
224     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
225     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
226     0,    0,    0,  337,    0,    0,    0,    0,    0,    0,
227  1202,    0,    0,    0,    0,    0,    0,    0,    0,    0,
228     0,    0,   91,   91,  187,  187,    0,   91,    0,    0,
229     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
230     0,    0,  370,   91,  881,    0,    0,   91,    0,    0,
231     0,    0,    0,    0,    0,    0,  187,    0,
232 };
233 static short yygindex[] = {                                      0,
234     0,    0,   29,  378,    0,    0,  -55,    0,  676,  567,
235   -94,    0,    0,    0, -355,  -15, 2480,    0,  650,  364,
236   380,    0,    0,    0,  412,  755,    0,    0,  291, -202,
237    82,  120,  277,  -88, -188,  534,    0,    0,    0,  465,
238   -58,  217, -247,    0, -135,    0,    0,    0,    0,    0,
239     0,    0,    0,    0,    0,    0,    0,    0,    0,
240 };
241 #define YYTABLESIZE 5052
242 static short yytable[] = {                                      71,
243   199,   22,   60,  229,   65,   65,  222,  297,   60,  111,
244   380,  200,  279,  329,   65,  300,   62,   64,  258,  377,
245   378,  161,   15,  184,  161,  220,  230,  187,   65,   67,
246   321,  189,  133,  130,   88,  198,   23,   24,  161,  161,
247    15,  398,  223,  161,  146,  148,  204,  301,   90,  323,
248   205,  206,  207,  208,  209,  210,   66,   18,  309,  186,
249    39,  320,  277,  188,  327,   92,   60,  281,  283,  259,
250   280,  102,  106,  161,  185,   18,  187,   26,   39,   16,
251    62,   64,    4,    5,    6,   17,    7,    8,  107,  171,
252    26,   26,   20,   38,   40,  108,  345,   16,  109,  214,
253   215,  256,  114,   17,  115,  116,  183,  131,  186,  155,
254    20,   38,   15,    9,  190,  375,  376,  225,  346,  191,
255   382,   26,  192,   26,  193,  195,   26,   26,   26,  355,
256    26,  197,   26,   26,  201,   26,  390,  212,  347,  367,
257   393,  232,  233,  235,  236,  237,  238,  239,  240,   26,
258   157,  158,  159,  160,   26,  299,  211,  161,   76,  319,
259   221,  348,  219,  182,  353,  226,  228,  262,  264,  265,
260   266,  267,  268,  269,  270,  272,   76,  274,  162,  163,
261   164,   26,  276,   60,  392,  215,   21,  332,   65,  284,
262   233,  322,  233,  336,  294,  324,  302,  308,  326,   21,
263   312,  303,  179,  305,  307,  180,  181,  182,  310,  164,
264    76,  318,  311,   26,  342,   26,   26,  334,  338,   21,
265   325,  328,   21,   21,   21,   96,   21,  344,   21,   21,
266    97,   21,  352,  162,  163,  164,  257,  162,  163,  164,
267   314,   60,  316,  317,  339,   21,  340,  162,  163,  164,
268    21,  341,  161,  161,  161,  161,  162,  163,  164,  161,
269   343,  161,  162,  163,  164,  110,  356,  161,  161,  161,
270   161,  357,  358,  361,  162,  163,  164,   21,  349,  385,
271   161,  161,  161,  354,  161,  161,  161,  161,  161,  161,
272   161,  161,  359,  360,  161,  171,  350,  161,  161,  161,
273   370,  362,  215,  162,  163,  164,  372,  165,  371,   21,
274   373,   21,   21,  166,  167,  168,  169,  162,  163,  164,
275   162,  163,  164,  162,  163,  164,  381,  383,  284,  387,
276   170,  172,  173,  174,  175,  176,  177,  178,  394,  395,
277   179,   53,  186,  180,  181,  182,   26,   26,   26,   26,
278    26,   26,   62,   26,   26,   26,   26,   26,   26,   26,
279    26,   26,   26,   26,   26,   26,   37,   71,   35,   26,
280    26,    1,   26,   26,   26,   26,   26,  162,  163,  164,
281   187,   26,   26,   26,   26,   26,   26,   26,  184,   76,
282    76,   76,   76,   26,   40,   37,   76,  162,  163,  164,
283   162,  163,  164,   26,   44,   26,   26,   44,   44,   44,
284    35,   44,  105,   44,   44,  135,   44,   76,   76,   76,
285   162,  163,  164,  162,  163,  164,   80,  162,  163,  164,
286    44,  136,  162,  163,  164,   44,  162,  163,  164,  162,
287   163,  164,   21,   21,   21,   21,   21,   21,  234,   21,
288    21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
289    21,   21,   44,  369,  389,   21,   21,  278,   21,   21,
290    21,   21,   21,  162,  163,  164,  391,   21,   21,   21,
291    21,   21,   21,   21,  291,  162,  163,  164,   94,   21,
292   162,  163,  164,  333,   44,    0,    0,   44,    0,   21,
293   196,   21,   21,  196,  196,  196,    0,  196,  175,  196,
294   196,  175,  196,  165,    0,  162,  163,  164,    0,  166,
295   167,  168,  169,    0,    0,  175,  175,  162,  163,  164,
296   175,  196,    0,    0,    0,    0,  170,  172,  173,  174,
297   175,  176,  177,  178,    0,    0,  179,    0,    0,  180,
298   181,  182,    0,    0,    0,    0,    0,    0,  196,  168,
299   175,    0,  101,    0,    0,  197,    0,    0,  197,  197,
300   197,    0,  197,  146,  197,  197,  146,  197,    0,  123,
301   124,  178,    0,    0,  179,    0,  138,  180,  181,  182,
302   146,  146,    0,  196,    0,  146,  197,    0,  151,  152,
303   153,  154,    0,    0,    0,    0,    0,    0,    4,    5,
304     6,    0,    7,    8,    0,    0,    0,    4,    5,    6,
305     0,    7,    8,    0,    0,  146,    0,   44,   44,   44,
306    44,   44,   44,    0,   44,   44,   44,    0,    0,    9,
307    44,    0,  313,   44,   44,   44,   44,  171,    9,  217,
308    44,   44,    0,   44,   44,   44,   44,   44,  197,    0,
309     0,    0,   44,   44,   44,   44,   44,   44,    0,    0,
310     0,    0,    0,    0,   44,    0,    0,   99,   99,    0,
311   166,  167,  168,  169,   44,  178,   44,   44,  179,  112,
312    69,  180,  181,  182,    0,  120,   99,  128,    0,    0,
313     0,  134,   99,  177,  178,    0,    0,  179,    0,    0,
314   180,  181,  182,    0,   99,   99,   99,   99,    0,    0,
315   117,    0,    0,  126,  196,  196,  196,  196,  196,    0,
316   196,  196,  196,    0,    0,    0,  196,    0,    0,  175,
317   175,  175,  175,    0,    0,    0,  175,  196,  175,  196,
318   196,  196,  196,  196,  175,  175,  175,  175,  196,  196,
319   196,  196,  196,  196,  194,  120,  171,  175,  175,  175,
320   196,  175,  175,  175,  175,  175,  175,  175,  175,  203,
321   196,  175,  196,  196,  175,  175,  175,    0,    0,  197,
322   197,  197,  197,  197,    0,  197,  197,  197,    0,    0,
323   121,  197,    0,    0,  146,  146,  146,  146,  139,    0,
324     0,  146,  197,  146,  197,  197,  197,  197,  197,  146,
325   146,  146,  146,  197,  197,  197,  197,  197,  197,    0,
326   231,  260,  146,  146,  146,  197,  146,  146,  146,  146,
327   146,  146,  146,  146,    0,  197,  146,  197,  197,  146,
328   146,  146,   55,    0,  121,   65,   67,   53,  292,   60,
329     0,   68,   64,    0,   63,  165,    0,    0,    0,    0,
330     0,  166,  167,  168,  169,    0,    0,  218,   62,    0,
331     0,    0,    0,   66,    0,  121,    0,    0,  170,  172,
332   173,  174,  175,  176,  177,  178,    0,    0,  179,  168,
333   169,  180,  181,  182,    0,  364,  365,  366,    0,  368,
334    61,    0,    0,   44,    0,    0,   44,   44,   44,    0,
335    44,  178,   44,   44,  179,   44,    0,  180,  181,  182,
336     0,    0,  166,  167,  168,  169,  384,    0,    0,   44,
337     0,    0,   26,  386,   44,   56,    0,  388,    0,    0,
338   330,    0,  330,  175,  176,  177,  178,    0,  337,  179,
339   396,  397,  180,  181,  182,    0,    0,    0,    0,    0,
340     0,   44,    0,   55,    0,    0,   65,   67,   53,    0,
341    60,    0,   68,   64,  165,   63,    0,    0,    0,    0,
342   166,  167,  168,  169,    0,    0,    0,    0,    0,    0,
343     0,    0,    0,   44,   66,    0,   44,  170,  172,  173,
344   174,  175,  176,  177,  178,    0,    0,  179,    0,    0,
345   180,  181,  182,    0,    0,    0,    0,    0,    0,    0,
346   121,   61,  168,  169,    0,    0,  121,   55,    0,    0,
347    65,   67,   53,    0,   60,    0,   68,   64,    0,   63,
348     0,    0,    0,  177,  178,    0,    0,  179,    0,    0,
349   180,  181,  182,   26,    0,    0,   56,    0,   66,    0,
350     0,    0,    0,    0,    0,   25,   27,   28,   29,   30,
351    31,    0,   32,   33,   34,    0,    0,    0,   35,    0,
352     0,   36,   37,   38,   39,   61,    0,  171,   40,   41,
353     0,   42,   43,   44,   45,   46,    0,    0,    0,    0,
354    47,   48,   49,   50,   51,   52,    0,    0,    0,    0,
355     0,    0,   54,    0,    0,    0,    0,   26,    0,    0,
356    56,    0,   57,    0,   58,   59,   44,   44,   44,   44,
357    44,   44,    0,   44,   44,   44,    0,    0,    0,   44,
358     0,    0,   44,   44,   44,   44,    0,    0,    0,   44,
359    44,    0,   44,   44,   44,   44,   44,    0,    0,    0,
360     0,   44,   44,   44,   44,   44,   44,    0,    0,    0,
361     0,    0,   55,   44,    0,   65,   67,   53,    0,   60,
362     0,   68,   64,   44,   63,   44,   44,  119,   28,   29,
363    30,   31,   97,   32,   33,   34,    0,    0,    0,   35,
364     0,    0,    0,   66,    0,    0,    0,    0,    0,    0,
365    41,    0,   42,   43,   44,   45,   46,    0,    0,    0,
366     0,   47,   48,   49,   50,   51,   52,    0,    0,    0,
367    61,    0,  140,   54,    0,  140,    0,  166,    0,  168,
368   169,    0,    0,   57,    0,   58,   59,    0,    0,  140,
369   140,   27,   28,   29,   30,   31,    0,   32,   33,   34,
370   177,  178,   26,   35,  179,   56,    0,  180,  181,  182,
371     0,    0,    0,    0,   41,    0,   42,   43,   44,   45,
372    46,    0,    0,    0,  140,   47,   48,   49,   50,   51,
373    52,   55,    0,    0,   65,   67,   53,   54,   60,    0,
374    68,   64,    0,   63,    0,  165,    0,   57,    0,   58,
375    59,  166,  167,  168,  169,    0,    0,  129,    0,    0,
376     0,    0,   66,    0,    0,    0,    0,    0,    0,  172,
377   173,  174,  175,  176,  177,  178,    0,    0,  179,    0,
378     0,  180,  181,  182,  166,  167,  168,  169,    0,   61,
379     0,   55,    0,    0,   65,   67,   53,    0,   60,  145,
380    68,   64,    0,   63,  174,  175,  176,  177,  178,    0,
381     0,  179,    0,    0,  180,  181,  182,    0,    0,    0,
382     0,    0,   66,    0,   56,    0,    0,    0,    0,    0,
383     0,    0,    0,    0,    0,    0,  125,   28,   29,   30,
384    31,    0,   32,   33,   34,    0,    0,    0,   35,   61,
385     0,    0,    0,    0,    0,    0,    0,    0,    0,   41,
386     0,   42,   43,   44,   45,   46,    0,    0,    0,    0,
387    47,   48,   49,   50,   51,   52,   55,    0,    0,   65,
388    67,   53,   54,   60,   56,   68,   64,    0,   63,    0,
389     0,    0,   57,    0,   58,   59,    0,    0,    0,    0,
390     0,    0,    0,  140,  140,  140,  140,   66,    0,    0,
391   140,    0,    0,    0,    0,    0,    0,   55,    0,    0,
392    65,   67,   53,    0,   60,  213,   68,   64,    0,   63,
393     0,  140,  140,  140,   61,  140,  147,    0,    0,    0,
394     0,    0,    0,    0,    0,    0,    0,    0,   66,    0,
395    74,    0,    0,   74,    0,   27,   28,   29,   30,   31,
396     0,   32,   33,   34,    0,    0,    0,   35,   74,   56,
397     0,    0,    0,    0,    0,   61,    0,    0,   41,    0,
398    42,   43,   44,   45,   46,    0,    0,    0,    0,   47,
399    48,   49,   50,   51,   52,    0,    0,    0,    0,    0,
400     0,   54,   74,    0,    0,    0,    0,    0,    0,    0,
401    56,   57,    0,   58,   59,   27,   28,   29,   30,   31,
402     0,   32,   33,   34,    0,   55,    0,   35,   65,   67,
403    53,    0,   60,  224,   68,   64,    0,   63,   41,    0,
404    42,   43,   44,   45,   46,    0,    0,    0,    0,   47,
405    48,   49,   50,   51,   52,    0,   66,    0,    0,    0,
406     0,   54,    0,    0,    0,    0,    0,  166,  167,  168,
407   169,   57,    0,   58,   59,    0,    0,    0,   79,    0,
408     0,   79,    0,   61,    0,  172,  173,  174,  175,  176,
409   177,  178,    0,    0,  179,   79,   79,  180,  181,  182,
410    27,   28,   29,   30,   31,    0,   32,   33,   34,    0,
411     0,    0,   35,   75,    0,    0,   75,    0,   56,    0,
412     0,    0,    0,   41,    0,   42,   43,   44,   45,   46,
413    79,   75,    0,    0,   47,   48,   49,   50,   51,   52,
414     0,   27,   28,   29,   30,   31,   54,   32,   33,   34,
415     0,    0,    0,   35,    0,    0,   57,    0,   58,   59,
416     0,    0,    0,    0,   41,   75,   42,   43,   44,   45,
417    46,    0,    0,    0,    0,   47,   48,   49,   50,   51,
418    52,   74,   74,   74,   74,    0,   55,   54,   74,   65,
419    67,   53,    0,   60,  263,   68,   64,   57,   63,   58,
420    59,  166,  167,  168,  169,    0,    0,    0,    0,   74,
421    74,    0,    0,    0,    0,    0,    0,   66,    0,    0,
422     0,    0,    0,  176,  177,  178,    0,    0,  179,    0,
423     0,  180,  181,  182,    0,    0,    0,    0,    0,    0,
424     0,    0,    0,    0,   61,    0,    0,    0,    0,   27,
425    28,   29,   30,   31,    0,   32,   33,   34,    0,   55,
426     0,   35,   65,   67,   53,    0,   60,  271,   68,   64,
427     0,   63,   41,    0,   42,   43,   44,   45,   46,   56,
428     0,    0,    0,   47,   48,   49,   50,   51,   52,    0,
429    66,    0,    0,    0,    0,   54,    0,    0,    0,    0,
430     0,    0,    0,    0,    0,   57,    0,   58,   59,   79,
431    79,   79,   79,    0,    0,    0,   79,   61,    0,    0,
432     0,    0,   55,    0,    0,   65,   67,   53,    0,   60,
433     0,   68,   64,    0,   63,    0,    0,   79,   79,   79,
434     0,    0,    0,    0,   75,   75,   75,   75,    0,    0,
435     0,   75,   56,   66,    0,    0,    0,  162,    0,    0,
436   162,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437     0,    0,   75,   75,  162,  162,    0,    0,    0,    0,
438    61,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439     0,    0,    0,    0,    0,   55,    0,    0,   65,   67,
440    53,    0,   60,  304,   68,   64,    0,   63,    0,  162,
441    27,   28,   29,   30,   31,   56,   32,   33,   34,    0,
442     0,    0,   35,    0,    0,    0,   66,    0,    0,    0,
443     0,    0,    0,   41,    0,   42,   43,   44,   45,   46,
444     0,    0,    0,    0,   47,   48,   49,   50,   51,   52,
445     0,    0,    0,   61,    0,    0,   54,    0,    0,    0,
446     0,    0,    0,    0,    0,    0,   57,   55,   58,   59,
447    65,   67,   53,    0,   60,  306,   68,   64,    0,   63,
448     0,    0,    0,   27,   28,   29,   30,   31,   56,   32,
449    33,   34,    0,    0,    0,   35,    0,    0,   66,    0,
450     0,    0,    0,    0,    0,    0,   41,    0,   42,   43,
451    44,   45,   46,    0,    0,    0,    0,   47,   48,   49,
452    50,   51,   52,    0,    0,   61,    0,    0,    0,   54,
453     0,    0,    0,    0,    0,    0,    0,    0,    0,   57,
454     0,   58,   59,    0,    0,   25,   27,   28,   29,   30,
455    31,    0,   32,   33,   34,    0,    0,    0,   35,    0,
456    56,    0,    0,    0,    0,    0,    0,    0,    0,   41,
457     0,   42,   43,   44,   45,   46,    0,    0,    0,    0,
458    47,   48,   49,   50,   51,   52,    0,    0,  162,  162,
459   162,  162,   54,    0,    0,  162,    0,    0,    0,    0,
460     0,    0,   57,   55,   58,   59,   65,   67,   53,    0,
461    60,  315,   68,   64,    0,   63,  162,  162,  162,   27,
462    28,   29,   30,   31,    0,   32,   33,   34,    0,    0,
463     0,   35,    0,    0,   66,    0,    0,    0,    0,    0,
464     0,    0,   41,    0,   42,   43,   44,   45,   46,    0,
465     0,    0,    0,   47,   48,   49,   50,   51,   52,    0,
466     0,   61,    0,    0,    0,   54,    0,    0,    0,    0,
467     0,    0,    0,    0,    0,   57,   55,   58,   59,   65,
468    67,   53,    0,   60,    0,   68,   64,    0,   63,    0,
469     0,   27,   28,   29,   30,   31,   56,   32,   33,   34,
470     0,    0,    0,   35,    0,    0,    0,   66,    0,    0,
471     0,    0,    0,    0,   41,    0,   42,   43,   44,   45,
472    46,    0,    0,    0,    0,   47,   48,   49,   50,   51,
473    52,    0,    0,    0,   61,    0,    0,   54,    0,    0,
474     0,    0,    0,    0,    0,  112,    0,   57,  112,   58,
475    59,    0,    0,  168,    0,    0,  168,    0,    0,    0,
476     0,    0,  112,  112,    0,    0,    0,  112,    0,   56,
477   168,  168,    0,    0,    0,  168,    0,    0,    0,    0,
478     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
479     0,    0,    0,    0,    0,    0,    0,  112,    0,    0,
480     0,    0,    0,    0,    0,  168,    0,    0,    0,    0,
481     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
482     0,    0,    0,    0,    0,    0,    0,   27,   28,   29,
483    30,   31,    0,   32,   33,   34,    0,    0,    0,   35,
484     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
485    41,    0,   42,   43,   44,   45,   46,    0,    0,    0,
486     0,   47,   48,   49,   50,   51,   52,    0,    0,    0,
487     0,    0,  164,   54,    0,  164,    0,    0,    0,    0,
488     0,    0,    0,   57,    0,   58,   59,    0,    0,  164,
489   164,    0,  103,    0,  164,  103,    0,    0,    0,    0,
490    27,   28,   29,   30,   31,    0,   32,   33,   34,  103,
491   103,    0,   35,    0,    0,    0,    0,    0,    0,    0,
492     0,    0,    0,   41,  164,   42,   43,   44,   45,   46,
493     0,    0,    0,    0,   47,   48,   49,   50,   51,   52,
494     0,    0,  103,    0,  103,   78,   54,    0,   78,    0,
495   113,    0,    0,    0,  118,    0,   57,  127,   58,   59,
496   132,    0,   78,   78,  140,  141,  142,  143,  144,    0,
497     0,    0,  149,  150,    0,    0,  112,  112,  112,  112,
498     0,    0,    0,  112,  168,  168,  168,  168,    0,    0,
499     0,  168,    0,  168,    0,    0,    0,   78,    0,  168,
500   168,  168,  168,    0,  112,  112,  112,    0,  112,    0,
501     0,  202,  168,  168,  168,    0,  168,  168,  168,  168,
502   168,  168,  168,  168,    0,    0,  168,    0,    0,  168,
503   168,  168,    0,    0,    0,    0,    0,  184,    0,    0,
504   184,    0,    0,    0,    0,    0,    0,    0,    0,    0,
505     0,    0,    0,    0,  184,  184,    0,    0,    0,  184,
506     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
507     0,    0,    0,    0,  241,  242,  243,  244,  245,  246,
508   247,  248,  249,  250,  251,  252,  253,  254,  255,  184,
509     0,  151,    0,    0,  151,    0,    0,    0,    0,    0,
510     0,    0,  273,  164,  164,  164,  164,    0,  151,  151,
511   164,    0,  164,  151,    0,    0,    0,    0,  164,  164,
512   164,  164,    0,  103,  103,  103,  103,    0,    0,    0,
513   103,  164,  164,  164,    0,  164,  164,  164,  164,  164,
514   164,  164,  164,  151,  146,  164,    0,  146,  164,  164,
515   164,  103,  103,  103,    0,    0,    0,    0,    0,    0,
516     0,  146,  146,    0,    0,    0,  146,    0,    0,    0,
517     0,    0,    0,    0,    0,    0,   78,   78,   78,   78,
518     0,    0,    0,   78,    0,    0,    0,    0,    0,  335,
519     0,    0,  149,    0,    0,  149,  146,    0,    0,    0,
520     0,    0,    0,    0,   78,   78,   78,    0,    0,  149,
521   149,    0,    0,    0,  149,    0,    0,    0,    0,    0,
522     0,    0,  351,    0,    0,    0,    0,    0,    0,    0,
523     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
524   147,    0,    0,  147,  149,    0,    0,    0,    0,    0,
525     0,    0,    0,    0,    0,    0,    0,  147,  147,    0,
526     0,    0,  147,    0,    0,    0,    0,    0,  184,  184,
527   184,  184,    0,    0,    0,  184,    0,  184,    0,    0,
528     0,    0,    0,  184,  184,  184,  184,    0,    0,    0,
529     0,    0,  147,    0,    0,    0,  184,  184,  184,    0,
530   184,  184,  184,  184,  184,  184,  184,  184,    0,    0,
531   184,    0,    0,  184,  184,  184,    0,    0,    0,    0,
532     0,    0,  151,  151,  151,  151,    0,  157,    0,  151,
533   157,  151,    0,    0,    0,    0,    0,  151,  151,  151,
534   151,    0,    0,    0,  157,  157,    0,    0,    0,  157,
535   151,  151,  151,    0,  151,  151,  151,  151,  151,  151,
536   151,  151,    0,    0,  151,    0,    0,  151,  151,  151,
537     0,    0,    0,    0,    0,  146,  146,  146,  146,  157,
538     0,    0,  146,    0,  146,    0,    0,    0,    0,    0,
539   146,  146,  146,  146,    0,    0,    0,    0,    0,    0,
540     0,    0,    0,  146,  146,  146,    0,  146,  146,  146,
541   146,  146,  146,  146,  146,    0,    0,  146,    0,    0,
542   146,  146,  146,  149,  149,  149,  149,    0,    0,    0,
543   149,    0,  149,    0,    0,    0,    0,    0,  149,  149,
544   149,  149,    0,    0,    0,    0,    0,    0,    0,    0,
545     0,  149,  149,  149,    0,  149,  149,  149,  149,  149,
546   149,  149,  149,    0,    0,  149,    0,    0,  149,  149,
547   149,  147,  147,  147,  147,    0,  175,    0,  147,  175,
548   147,    0,    0,    0,    0,    0,  147,  147,  147,  147,
549     0,    0,    0,  175,  175,    0,    0,    0,  175,  147,
550   147,  147,    0,  147,  147,  147,  147,  147,  147,  147,
551   147,    0,    0,  147,    0,    0,  147,  147,  147,    0,
552     0,    0,    0,    0,    0,    0,  178,    0,  175,  178,
553     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554     0,    0,    0,  178,  178,    0,    0,    0,  178,    0,
555     0,    0,    0,    0,    0,    0,    0,    0,  157,  157,
556   157,  157,    0,    0,    0,  157,    0,  157,    0,    0,
557     0,    0,    0,  157,  157,  157,  157,    0,  178,    0,
558     0,    0,    0,    0,    0,    0,  157,  157,  157,    0,
559   157,  157,  157,  157,  157,  157,  157,  157,  145,    0,
560   157,  145,    0,  157,  157,  157,    0,    0,    0,    0,
561     0,    0,    0,    0,    0,  145,  145,    0,    0,    0,
562   145,    0,    0,    0,    0,    0,    0,    0,    0,    0,
563     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
564     0,    0,    0,    0,    0,    0,   77,    0,    0,   77,
565   145,    0,    0,    0,    0,    0,    0,    0,    0,    0,
566     0,    0,    0,   77,   77,    0,    0,    0,   77,    0,
567     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
568     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
569     0,    0,    0,    0,    0,  185,    0,    0,   77,    0,
570     0,    0,    0,    0,    0,    0,    0,  175,  175,  175,
571   175,    0,  185,  185,  175,    0,  175,  185,    0,    0,
572     0,    0,  175,  175,  175,  175,    0,    0,    0,    0,
573     0,    0,    0,    0,    0,  175,  175,  175,    0,  175,
574   175,  175,  175,  175,  175,  175,  175,  185,    0,  175,
575     0,    0,  175,  175,  175,    0,    0,  178,  178,  178,
576   178,    0,   66,    0,  178,   66,  178,    0,    0,    0,
577     0,    0,  178,  178,  178,  178,    0,    0,    0,   66,
578    66,    0,    0,    0,   66,  178,  178,  178,    0,  178,
579   178,  178,  178,  178,  178,  178,  178,    0,    0,  178,
580     0,    0,  178,  178,  178,    0,    0,    0,    0,    0,
581     0,    0,    0,    0,   66,    0,    0,  144,    0,    0,
582   144,    0,    0,    0,    0,    0,    0,    0,    0,  145,
583   145,  145,  145,    0,  144,  144,  145,    0,  145,  144,
584     0,    0,    0,    0,  145,  145,  145,  145,    0,    0,
585     0,    0,    0,    0,    0,    0,    0,  145,  145,  145,
586     0,  145,  145,  145,  145,  145,  145,  145,  145,  144,
587     0,  145,    0,    0,  145,  145,  145,   77,   77,   77,
588    77,    0,   83,    0,   77,   83,   77,    0,    0,    0,
589     0,    0,   77,   77,   77,   77,    0,    0,    0,   83,
590    83,    0,    0,    0,   83,   77,   77,   77,    0,   77,
591    77,   77,   77,   77,   77,   77,   77,    0,    0,   77,
592     0,    0,   77,   77,   77,    0,  185,  185,  185,  185,
593   163,    0,    0,  185,   83,  185,    0,    0,    0,    0,
594     0,  185,  185,  185,  185,    0,    0,  163,  163,    0,
595     0,    0,  163,    0,  185,  185,  185,    0,  185,  185,
596   185,  185,  185,  185,  185,  185,    0,    0,  185,    0,
597     0,  185,  185,  185,    0,    0,    0,    0,    0,    0,
598     0,   80,  163,    0,    0,    0,    0,    0,    0,    0,
599     0,    0,    0,   66,   66,   66,   66,    0,   80,   80,
600    66,    0,   66,   80,    0,    0,    0,    0,   66,   66,
601    66,   66,    0,    0,    0,    0,    0,    0,    0,    0,
602     0,   66,   66,   66,    0,   66,   66,   66,   66,   66,
603    66,   66,   66,   80,    0,   66,    0,    0,   66,   66,
604    66,    0,    0,    0,    0,    0,    0,    0,  144,  144,
605   144,  144,    0,  123,    0,  144,  123,  144,    0,    0,
606     0,    0,    0,  144,  144,  144,  144,    0,    0,    0,
607   123,  123,    0,    0,    0,  123,  144,  144,  144,    0,
608   144,  144,  144,  144,  144,  144,  144,  144,    0,    0,
609   144,    0,    0,  144,  144,  144,    0,    0,    0,    0,
610     0,  124,    0,    0,  124,  123,    0,    0,    0,    0,
611     0,    0,    0,   83,   83,   83,   83,    0,  124,  124,
612    83,    0,   83,  124,    0,    0,    0,    0,   83,   83,
613    83,   83,    0,    0,    0,    0,    0,    0,    0,    0,
614     0,   83,   83,   83,    0,   83,   83,   83,   83,   83,
615    83,   83,   83,  124,    0,   83,    0,    0,   83,   83,
616    83,  163,  163,  163,  163,    0,  119,    0,  163,  119,
617   163,    0,    0,    0,    0,    0,  163,  163,  163,  163,
618     0,    0,    0,  119,  119,    0,    0,    0,  119,  163,
619   163,  163,    0,  163,  163,  163,  163,  163,  163,  163,
620   163,    0,    0,  163,    0,    0,  163,  163,  163,    0,
621     0,    0,   80,   80,   80,   80,    0,  120,  119,   80,
622   120,   80,    0,    0,    0,    0,    0,   80,   80,   80,
623    80,    0,    0,    0,  120,  120,    0,    0,    0,  120,
624    80,   80,   80,    0,   80,   80,   80,   80,   80,   80,
625    80,   80,    0,    0,   80,    0,    0,   80,   80,   80,
626     0,    0,    0,    0,    0,    0,    0,    0,    0,  120,
627     0,    0,  141,    0,    0,  141,    0,    0,    0,    0,
628     0,    0,    0,    0,  123,  123,  123,  123,    0,  141,
629   141,  123,    0,  123,  141,    0,    0,    0,    0,  123,
630   123,  123,  123,    0,    0,    0,    0,    0,    0,    0,
631     0,    0,  123,  123,  123,    0,  123,  123,  123,  123,
632   123,  123,  123,  123,  141,    0,  123,    0,    0,    0,
633     0,    0,  124,  124,  124,  124,    0,  117,    0,  124,
634   117,  124,    0,    0,    0,    0,    0,  124,  124,  124,
635   124,    0,    0,    0,  117,  117,    0,    0,    0,  117,
636   124,  124,  124,    0,  124,  124,  124,  124,  124,  124,
637   124,  124,    0,    0,  124,    0,    0,    0,    0,    0,
638     0,    0,    0,    0,    0,  118,    0,    0,  118,  117,
639     0,    0,    0,    0,    0,    0,    0,  119,  119,  119,
640   119,    0,  118,  118,  119,    0,  119,  118,    0,    0,
641     0,    0,  119,  119,  119,  119,    0,    0,    0,    0,
642     0,    0,    0,    0,    0,  119,  119,  119,    0,  119,
643   119,  119,  119,  119,  119,  119,  119,  118,    0,    0,
644     0,    0,    0,    0,    0,    0,    0,    0,  120,  120,
645   120,  120,    0,    0,    0,  120,    0,  120,    0,    0,
646     0,    0,    0,  120,  120,  120,  120,    0,    0,    0,
647     0,  116,    0,    0,  116,    0,  120,  120,  120,    0,
648   120,  120,  120,  120,  120,  120,  120,  120,  116,  116,
649     0,    0,    0,  116,    0,    0,    0,    0,    0,    0,
650     0,    0,    0,  141,  141,  141,  141,    0,    0,    0,
651   141,    0,  141,    0,    0,    0,    0,    0,  141,  141,
652   141,  141,    0,  116,    0,    0,  104,    0,    0,  104,
653     0,  141,  141,  141,    0,  141,  141,  141,  141,  141,
654   141,  141,  141,  104,  104,    0,    0,    0,  104,    0,
655     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
656     0,    0,    0,    0,    0,    0,    0,    0,  117,  117,
657   117,  117,    0,    0,    0,  117,    0,  117,  104,    0,
658     0,    0,    0,  117,  117,  117,  117,    0,    0,    0,
659     0,  105,    0,    0,  105,    0,  117,  117,  117,    0,
660   117,  117,  117,  117,  117,  117,  117,  117,  105,  105,
661     0,    0,    0,  105,    0,    0,  118,  118,  118,  118,
662     0,    0,    0,  118,    0,  118,    0,    0,    0,    0,
663     0,  118,  118,  118,  118,    0,    0,    0,    0,  106,
664     0,    0,  106,  105,  118,  118,  118,    0,  118,  118,
665   118,  118,  118,  118,  118,  118,  106,  106,    0,    0,
666     0,  106,    0,    0,    0,    0,    0,    0,    0,    0,
667     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
668     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669   107,  106,    0,  107,    0,    0,    0,    0,    0,    0,
670     0,    0,  116,  116,  116,  116,    0,  107,  107,  116,
671     0,  116,  107,    0,    0,    0,    0,  116,  116,  116,
672   116,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673   116,  116,  116,    0,  116,  116,  116,  116,  116,  116,
674   116,  116,  107,    0,    0,  167,    0,    0,  167,    0,
675     0,    0,    0,    0,    0,    0,    0,  104,  104,  104,
676   104,    0,  167,  167,  104,    0,  104,  167,    0,    0,
677     0,    0,  104,  104,  104,  104,    0,    0,    0,    0,
678     0,    0,    0,    0,    0,  104,  104,  104,    0,  104,
679   104,  104,  104,  104,  104,  104,  104,  167,    0,    0,
680     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
681   166,    0,    0,  166,    0,    0,    0,    0,    0,    0,
682     0,    0,  105,  105,  105,  105,    0,  166,  166,  105,
683     0,  105,  166,    0,    0,    0,    0,  105,  105,  105,
684   105,    0,    0,    0,    0,    0,    0,    0,    0,    0,
685   105,  105,  105,    0,  105,  105,  105,  105,  105,  105,
686   105,    0,  166,    0,    0,  130,    0,    0,  130,    0,
687   106,  106,  106,  106,    0,  143,    0,  106,  143,  106,
688     0,    0,  130,  130,    0,  106,  106,  130,  106,    0,
689     0,    0,  143,  143,    0,    0,    0,  143,  106,  106,
690   106,    0,  106,  106,  106,  106,  106,  106,  106,    0,
691     0,    0,    0,    0,    0,    0,  108,  130,    0,  108,
692     0,  107,  107,  107,  107,    0,    0,  143,  107,    0,
693   107,    0,    0,  108,  108,    0,  107,  107,  108,    0,
694     0,    0,    0,    0,    0,    0,    0,    0,    0,  107,
695   107,  107,    0,  107,  107,  107,  107,  107,  107,  107,
696     0,    0,    0,    0,  109,    0,    0,  109,  108,    0,
697     0,    0,    0,    0,    0,    0,  167,  167,  167,  167,
698     0,  109,  109,  167,    0,  167,  109,    0,    0,    0,
699     0,  167,  167,    0,    0,    0,    0,    0,    0,    0,
700     0,    0,    0,    0,  167,  167,  167,    0,  167,  167,
701   167,  167,  167,  167,  110,    0,  109,  110,    0,    0,
702     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
703     0,  110,  110,    0,    0,    0,  110,    0,    0,    0,
704     0,  166,  166,  166,  166,    0,    0,    0,  166,    0,
705   166,    0,    0,    0,    0,    0,  166,  166,    0,    0,
706     0,    0,  111,    0,    0,  111,  110,    0,    0,  166,
707   166,  166,    0,  166,  166,  166,  166,  166,  166,  111,
708   111,    0,    0,    0,  111,    0,    0,    0,    0,    0,
709     0,    0,    0,    0,    0,    0,  130,  130,  130,  130,
710     0,  113,    0,  130,  113,  130,  143,  143,  143,  143,
711     0,  130,  130,  143,  111,  143,    0,    0,  113,  113,
712     0,  143,  143,  113,  130,  130,  130,    0,  130,  130,
713   130,  130,  130,  130,  143,  143,  143,    0,  143,  143,
714   143,  143,  143,  143,    0,    0,    0,  108,  108,  108,
715   108,    0,    0,  113,  108,    0,  108,    0,    0,    0,
716     0,    0,    0,  108,    0,    0,    0,    0,  114,    0,
717     0,  114,    0,    0,    0,  108,  108,  108,    0,  108,
718   108,  108,  108,  108,  108,  114,  114,    0,    0,    0,
719   114,    0,    0,    0,    0,  109,  109,  109,  109,    0,
720     0,    0,  109,    0,  109,    0,    0,    0,    0,    0,
721     0,    0,    0,    0,    0,    0,  115,    0,    0,  115,
722   114,    0,    0,  109,  109,  109,    0,  109,  109,  109,
723   109,  109,  109,  115,  115,    0,    0,    0,  115,    0,
724     0,    0,    0,    0,    0,  110,  110,  110,  110,    0,
725     0,    0,  110,    0,  110,    0,    0,    0,    0,    0,
726     0,    0,    0,    0,    0,    0,    0,    0,  115,    0,
727     0,    0,    0,  110,  110,  110,    0,  110,  110,  110,
728   110,  110,  110,    0,    0,    0,    0,    0,    0,    0,
729     0,    0,    0,  111,  111,  111,  111,    0,    0,    0,
730   111,    0,  111,    0,    0,    0,    0,    0,    0,    0,
731     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
732     0,  111,  111,  111,    0,  111,  111,  111,  111,  111,
733     0,    0,  113,  113,  113,  113,    0,    0,    0,  113,
734     0,  113,    0,    0,    0,    0,    0,    0,    0,    0,
735     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
736   113,  113,  113,    0,  113,  113,  113,  113,    0,    0,
737     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
738     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
739     0,    0,    0,    0,    0,    0,    0,    0,    0,  114,
740   114,  114,  114,    0,    0,    0,  114,    0,  114,    0,
741     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742     0,    0,    0,    0,    0,    0,    0,  114,  114,  114,
743     0,  114,  114,  114,    0,    0,    0,    0,    0,    0,
744     0,    0,    0,    0,    0,    0,    0,  115,  115,  115,
745   115,    0,    0,    0,  115,    0,  115,    0,    0,    0,
746     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
747     0,    0,    0,    0,    0,  115,  115,  115,    0,  115,
748   115,  115,
749 };
750 static short yycheck[] = {                                      15,
751    95,   59,   59,   41,   36,   36,   59,  210,  123,   40,
752   366,  100,  201,   59,   36,   41,   59,   59,   40,  276,
753   277,   41,   41,   40,   44,   40,   93,   91,   36,   37,
754    93,   91,   40,   49,  257,   94,    8,    9,   58,   59,
755    59,  397,  131,   63,   60,   61,  105,   44,  257,   93,
756   106,  107,  108,  109,  110,  111,   64,   41,   41,  123,
757    41,   41,  198,  123,   41,   59,  123,   41,  204,   91,
758    44,   40,   40,   93,   91,   59,   91,  123,   59,   41,
759   123,  123,  266,  267,  268,   41,  270,  271,   40,   63,
760     0,  123,   41,   41,   41,   40,  299,   59,   40,  115,
761   116,  123,   40,   59,   40,   40,  123,  257,  123,  278,
762    59,   59,   59,  297,  123,  363,  364,  133,   41,   40,
763   368,  123,   59,   33,   44,  260,   36,   37,   38,  318,
764    40,  257,   42,   43,   40,   45,  384,   41,   41,  342,
765   388,  157,  158,  159,  160,  161,  162,  163,  164,   59,
766   272,  273,  274,  275,   64,  211,   40,  279,   41,   59,
767   125,   41,   40,  319,   41,  298,   91,  183,  184,  185,
768   186,  187,  188,  189,  190,  191,   59,  298,  300,  301,
769   302,   91,  257,  298,  387,  201,    0,  276,   36,  205,
770   206,   59,  208,  282,  210,   59,   41,  125,   59,  257,
771    91,  217,  314,  219,  220,  317,  318,  319,  260,  302,
772    93,   40,  228,  123,   40,  125,  126,   41,   41,   33,
773    93,  260,   36,   37,   38,  257,   40,   59,   42,   43,
774   262,   45,   59,  300,  301,  302,  258,  300,  301,  302,
775   256,  298,  258,  259,   41,   59,   41,  300,  301,  302,
776    64,   41,  272,  273,  274,  275,  300,  301,  302,  279,
777    41,  281,  300,  301,  302,  296,  125,  287,  288,  289,
778   290,  125,  125,   41,  300,  301,  302,   91,   93,  374,
779   300,  301,  302,   93,  304,  305,  306,  307,  308,  309,
780   310,  311,  125,   59,  314,   63,  312,  317,  318,  319,
781    41,  123,  318,  300,  301,  302,  125,  281,   93,  123,
782    41,  125,  126,  287,  288,  289,  290,  300,  301,  302,
783   300,  301,  302,  300,  301,  302,   41,   59,  344,   40,
784   304,  305,  306,  307,  308,  309,  310,  311,   41,   41,
785   314,  123,   41,  317,  318,  319,  256,  257,  258,  259,
786   260,  261,  123,  263,  264,  265,  266,  267,  268,  269,
787   270,  271,  272,  273,  274,  275,   41,  383,   59,  279,
788   280,    0,  282,  283,  284,  285,  286,  300,  301,  302,
789    41,  291,  292,  293,  294,  295,  296,  297,   59,  272,
790   273,  274,  275,  303,   41,   59,  279,  300,  301,  302,
791   300,  301,  302,  313,   33,  315,  316,   36,   37,   38,
792    41,   40,   35,   42,   43,   52,   45,  300,  301,  302,
793   300,  301,  302,  300,  301,  302,   15,  300,  301,  302,
794    59,   52,  300,  301,  302,   64,  300,  301,  302,  300,
795   301,  302,  256,  257,  258,  259,  260,  261,  158,  263,
796   264,  265,  266,  267,  268,  269,  270,  271,  272,  273,
797   274,  275,   91,  344,  383,  279,  280,  125,  282,  283,
798   284,  285,  286,  300,  301,  302,  125,  291,  292,  293,
799   294,  295,  296,  297,  208,  300,  301,  302,   24,  303,
800   300,  301,  302,  277,  123,   -1,   -1,  126,   -1,  313,
801    33,  315,  316,   36,   37,   38,   -1,   40,   41,   42,
802    43,   44,   45,  281,   -1,  300,  301,  302,   -1,  287,
803   288,  289,  290,   -1,   -1,   58,   59,  300,  301,  302,
804    63,   64,   -1,   -1,   -1,   -1,  304,  305,  306,  307,
805   308,  309,  310,  311,   -1,   -1,  314,   -1,   -1,  317,
806   318,  319,   -1,   -1,   -1,   -1,   -1,   -1,   91,  289,
807    93,   -1,   29,   -1,   -1,   33,   -1,   -1,   36,   37,
808    38,   -1,   40,   41,   42,   43,   44,   45,   -1,   46,
809    47,  311,   -1,   -1,  314,   -1,   53,  317,  318,  319,
810    58,   59,   -1,  126,   -1,   63,   64,   -1,   65,   66,
811    67,   68,   -1,   -1,   -1,   -1,   -1,   -1,  266,  267,
812   268,   -1,  270,  271,   -1,   -1,   -1,  266,  267,  268,
813    -1,  270,  271,   -1,   -1,   93,   -1,  256,  257,  258,
814   259,  260,  261,   -1,  263,  264,  265,   -1,   -1,  297,
815   269,   -1,   58,  272,  273,  274,  275,   63,  297,  116,
816   279,  280,   -1,  282,  283,  284,  285,  286,  126,   -1,
817    -1,   -1,  291,  292,  293,  294,  295,  296,   -1,   -1,
818    -1,   -1,   -1,   -1,  303,   -1,   -1,   28,   29,   -1,
819   287,  288,  289,  290,  313,  311,  315,  316,  314,   40,
820    15,  317,  318,  319,   -1,   46,   47,   48,   -1,   -1,
821    -1,   52,   53,  310,  311,   -1,   -1,  314,   -1,   -1,
822   317,  318,  319,   -1,   65,   66,   67,   68,   -1,   -1,
823    45,   -1,   -1,   48,  257,  258,  259,  260,  261,   -1,
824   263,  264,  265,   -1,   -1,   -1,  269,   -1,   -1,  272,
825   273,  274,  275,   -1,   -1,   -1,  279,  280,  281,  282,
826   283,  284,  285,  286,  287,  288,  289,  290,  291,  292,
827   293,  294,  295,  296,   89,  116,   63,  300,  301,  302,
828   303,  304,  305,  306,  307,  308,  309,  310,  311,  104,
829   313,  314,  315,  316,  317,  318,  319,   -1,   -1,  257,
830   258,  259,  260,  261,   -1,  263,  264,  265,   -1,   -1,
831    46,  269,   -1,   -1,  272,  273,  274,  275,   54,   -1,
832    -1,  279,  280,  281,  282,  283,  284,  285,  286,  287,
833   288,  289,  290,  291,  292,  293,  294,  295,  296,   -1,
834   155,  182,  300,  301,  302,  303,  304,  305,  306,  307,
835   308,  309,  310,  311,   -1,  313,  314,  315,  316,  317,
836   318,  319,   33,   -1,  100,   36,   37,   38,  209,   40,
837    -1,   42,   43,   -1,   45,  281,   -1,   -1,   -1,   -1,
838    -1,  287,  288,  289,  290,   -1,   -1,  123,   59,   -1,
839    -1,   -1,   -1,   64,   -1,  131,   -1,   -1,  304,  305,
840   306,  307,  308,  309,  310,  311,   -1,   -1,  314,  289,
841   290,  317,  318,  319,   -1,  339,  340,  341,   -1,  343,
842    91,   -1,   -1,   33,   -1,   -1,   36,   37,   38,   -1,
843    40,  311,   42,   43,  314,   45,   -1,  317,  318,  319,
844    -1,   -1,  287,  288,  289,  290,  370,   -1,   -1,   59,
845    -1,   -1,  123,  377,   64,  126,   -1,  381,   -1,   -1,
846   275,   -1,  277,  308,  309,  310,  311,   -1,  283,  314,
847   394,  395,  317,  318,  319,   -1,   -1,   -1,   -1,   -1,
848    -1,   91,   -1,   33,   -1,   -1,   36,   37,   38,   -1,
849    40,   -1,   42,   43,  281,   45,   -1,   -1,   -1,   -1,
850   287,  288,  289,  290,   -1,   -1,   -1,   -1,   -1,   -1,
851    -1,   -1,   -1,  123,   64,   -1,  126,  304,  305,  306,
852   307,  308,  309,  310,  311,   -1,   -1,  314,   -1,   -1,
853   317,  318,  319,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
854   276,   91,  289,  290,   -1,   -1,  282,   33,   -1,   -1,
855    36,   37,   38,   -1,   40,   -1,   42,   43,   -1,   45,
856    -1,   -1,   -1,  310,  311,   -1,   -1,  314,   -1,   -1,
857   317,  318,  319,  123,   -1,   -1,  126,   -1,   64,   -1,
858    -1,   -1,   -1,   -1,   -1,  256,  257,  258,  259,  260,
859   261,   -1,  263,  264,  265,   -1,   -1,   -1,  269,   -1,
860    -1,  272,  273,  274,  275,   91,   -1,   63,  279,  280,
861    -1,  282,  283,  284,  285,  286,   -1,   -1,   -1,   -1,
862   291,  292,  293,  294,  295,  296,   -1,   -1,   -1,   -1,
863    -1,   -1,  303,   -1,   -1,   -1,   -1,  123,   -1,   -1,
864   126,   -1,  313,   -1,  315,  316,  256,  257,  258,  259,
865   260,  261,   -1,  263,  264,  265,   -1,   -1,   -1,  269,
866    -1,   -1,  272,  273,  274,  275,   -1,   -1,   -1,  279,
867   280,   -1,  282,  283,  284,  285,  286,   -1,   -1,   -1,
868    -1,  291,  292,  293,  294,  295,  296,   -1,   -1,   -1,
869    -1,   -1,   33,  303,   -1,   36,   37,   38,   -1,   40,
870    -1,   42,   43,  313,   45,  315,  316,  257,  258,  259,
871   260,  261,  262,  263,  264,  265,   -1,   -1,   -1,  269,
872    -1,   -1,   -1,   64,   -1,   -1,   -1,   -1,   -1,   -1,
873   280,   -1,  282,  283,  284,  285,  286,   -1,   -1,   -1,
874    -1,  291,  292,  293,  294,  295,  296,   -1,   -1,   -1,
875    91,   -1,   41,  303,   -1,   44,   -1,  287,   -1,  289,
876   290,   -1,   -1,  313,   -1,  315,  316,   -1,   -1,   58,
877    59,  257,  258,  259,  260,  261,   -1,  263,  264,  265,
878   310,  311,  123,  269,  314,  126,   -1,  317,  318,  319,
879    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,
880   286,   -1,   -1,   -1,   93,  291,  292,  293,  294,  295,
881   296,   33,   -1,   -1,   36,   37,   38,  303,   40,   -1,
882    42,   43,   -1,   45,   -1,  281,   -1,  313,   -1,  315,
883   316,  287,  288,  289,  290,   -1,   -1,   59,   -1,   -1,
884    -1,   -1,   64,   -1,   -1,   -1,   -1,   -1,   -1,  305,
885   306,  307,  308,  309,  310,  311,   -1,   -1,  314,   -1,
886    -1,  317,  318,  319,  287,  288,  289,  290,   -1,   91,
887    -1,   33,   -1,   -1,   36,   37,   38,   -1,   40,   41,
888    42,   43,   -1,   45,  307,  308,  309,  310,  311,   -1,
889    -1,  314,   -1,   -1,  317,  318,  319,   -1,   -1,   -1,
890    -1,   -1,   64,   -1,  126,   -1,   -1,   -1,   -1,   -1,
891    -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
892   261,   -1,  263,  264,  265,   -1,   -1,   -1,  269,   91,
893    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,
894    -1,  282,  283,  284,  285,  286,   -1,   -1,   -1,   -1,
895   291,  292,  293,  294,  295,  296,   33,   -1,   -1,   36,
896    37,   38,  303,   40,  126,   42,   43,   -1,   45,   -1,
897    -1,   -1,  313,   -1,  315,  316,   -1,   -1,   -1,   -1,
898    -1,   -1,   -1,  272,  273,  274,  275,   64,   -1,   -1,
899   279,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,
900    36,   37,   38,   -1,   40,   41,   42,   43,   -1,   45,
901    -1,  300,  301,  302,   91,  304,   93,   -1,   -1,   -1,
902    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   64,   -1,
903    41,   -1,   -1,   44,   -1,  257,  258,  259,  260,  261,
904    -1,  263,  264,  265,   -1,   -1,   -1,  269,   59,  126,
905    -1,   -1,   -1,   -1,   -1,   91,   -1,   -1,  280,   -1,
906   282,  283,  284,  285,  286,   -1,   -1,   -1,   -1,  291,
907   292,  293,  294,  295,  296,   -1,   -1,   -1,   -1,   -1,
908    -1,  303,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
909   126,  313,   -1,  315,  316,  257,  258,  259,  260,  261,
910    -1,  263,  264,  265,   -1,   33,   -1,  269,   36,   37,
911    38,   -1,   40,   41,   42,   43,   -1,   45,  280,   -1,
912   282,  283,  284,  285,  286,   -1,   -1,   -1,   -1,  291,
913   292,  293,  294,  295,  296,   -1,   64,   -1,   -1,   -1,
914    -1,  303,   -1,   -1,   -1,   -1,   -1,  287,  288,  289,
915   290,  313,   -1,  315,  316,   -1,   -1,   -1,   41,   -1,
916    -1,   44,   -1,   91,   -1,  305,  306,  307,  308,  309,
917   310,  311,   -1,   -1,  314,   58,   59,  317,  318,  319,
918   257,  258,  259,  260,  261,   -1,  263,  264,  265,   -1,
919    -1,   -1,  269,   41,   -1,   -1,   44,   -1,  126,   -1,
920    -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,  286,
921    93,   59,   -1,   -1,  291,  292,  293,  294,  295,  296,
922    -1,  257,  258,  259,  260,  261,  303,  263,  264,  265,
923    -1,   -1,   -1,  269,   -1,   -1,  313,   -1,  315,  316,
924    -1,   -1,   -1,   -1,  280,   93,  282,  283,  284,  285,
925   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,
926   296,  272,  273,  274,  275,   -1,   33,  303,  279,   36,
927    37,   38,   -1,   40,   41,   42,   43,  313,   45,  315,
928   316,  287,  288,  289,  290,   -1,   -1,   -1,   -1,  300,
929   301,   -1,   -1,   -1,   -1,   -1,   -1,   64,   -1,   -1,
930    -1,   -1,   -1,  309,  310,  311,   -1,   -1,  314,   -1,
931    -1,  317,  318,  319,   -1,   -1,   -1,   -1,   -1,   -1,
932    -1,   -1,   -1,   -1,   91,   -1,   -1,   -1,   -1,  257,
933   258,  259,  260,  261,   -1,  263,  264,  265,   -1,   33,
934    -1,  269,   36,   37,   38,   -1,   40,   41,   42,   43,
935    -1,   45,  280,   -1,  282,  283,  284,  285,  286,  126,
936    -1,   -1,   -1,  291,  292,  293,  294,  295,  296,   -1,
937    64,   -1,   -1,   -1,   -1,  303,   -1,   -1,   -1,   -1,
938    -1,   -1,   -1,   -1,   -1,  313,   -1,  315,  316,  272,
939   273,  274,  275,   -1,   -1,   -1,  279,   91,   -1,   -1,
940    -1,   -1,   33,   -1,   -1,   36,   37,   38,   -1,   40,
941    -1,   42,   43,   -1,   45,   -1,   -1,  300,  301,  302,
942    -1,   -1,   -1,   -1,  272,  273,  274,  275,   -1,   -1,
943    -1,  279,  126,   64,   -1,   -1,   -1,   41,   -1,   -1,
944    44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
945    -1,   -1,  300,  301,   58,   59,   -1,   -1,   -1,   -1,
946    91,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
947    -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   36,   37,
948    38,   -1,   40,   41,   42,   43,   -1,   45,   -1,   93,
949   257,  258,  259,  260,  261,  126,  263,  264,  265,   -1,
950    -1,   -1,  269,   -1,   -1,   -1,   64,   -1,   -1,   -1,
951    -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,  286,
952    -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,  296,
953    -1,   -1,   -1,   91,   -1,   -1,  303,   -1,   -1,   -1,
954    -1,   -1,   -1,   -1,   -1,   -1,  313,   33,  315,  316,
955    36,   37,   38,   -1,   40,   41,   42,   43,   -1,   45,
956    -1,   -1,   -1,  257,  258,  259,  260,  261,  126,  263,
957   264,  265,   -1,   -1,   -1,  269,   -1,   -1,   64,   -1,
958    -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,
959   284,  285,  286,   -1,   -1,   -1,   -1,  291,  292,  293,
960   294,  295,  296,   -1,   -1,   91,   -1,   -1,   -1,  303,
961    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  313,
962    -1,  315,  316,   -1,   -1,  256,  257,  258,  259,  260,
963   261,   -1,  263,  264,  265,   -1,   -1,   -1,  269,   -1,
964   126,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,
965    -1,  282,  283,  284,  285,  286,   -1,   -1,   -1,   -1,
966   291,  292,  293,  294,  295,  296,   -1,   -1,  272,  273,
967   274,  275,  303,   -1,   -1,  279,   -1,   -1,   -1,   -1,
968    -1,   -1,  313,   33,  315,  316,   36,   37,   38,   -1,
969    40,   41,   42,   43,   -1,   45,  300,  301,  302,  257,
970   258,  259,  260,  261,   -1,  263,  264,  265,   -1,   -1,
971    -1,  269,   -1,   -1,   64,   -1,   -1,   -1,   -1,   -1,
972    -1,   -1,  280,   -1,  282,  283,  284,  285,  286,   -1,
973    -1,   -1,   -1,  291,  292,  293,  294,  295,  296,   -1,
974    -1,   91,   -1,   -1,   -1,  303,   -1,   -1,   -1,   -1,
975    -1,   -1,   -1,   -1,   -1,  313,   33,  315,  316,   36,
976    37,   38,   -1,   40,   -1,   42,   43,   -1,   45,   -1,
977    -1,  257,  258,  259,  260,  261,  126,  263,  264,  265,
978    -1,   -1,   -1,  269,   -1,   -1,   -1,   64,   -1,   -1,
979    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,
980   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,
981   296,   -1,   -1,   -1,   91,   -1,   -1,  303,   -1,   -1,
982    -1,   -1,   -1,   -1,   -1,   41,   -1,  313,   44,  315,
983   316,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,
984    -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,  126,
985    58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
986    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
987    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
988    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
989    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
990    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
991   260,  261,   -1,  263,  264,  265,   -1,   -1,   -1,  269,
992    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
993   280,   -1,  282,  283,  284,  285,  286,   -1,   -1,   -1,
994    -1,  291,  292,  293,  294,  295,  296,   -1,   -1,   -1,
995    -1,   -1,   41,  303,   -1,   44,   -1,   -1,   -1,   -1,
996    -1,   -1,   -1,  313,   -1,  315,  316,   -1,   -1,   58,
997    59,   -1,   41,   -1,   63,   44,   -1,   -1,   -1,   -1,
998   257,  258,  259,  260,  261,   -1,  263,  264,  265,   58,
999    59,   -1,  269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1000    -1,   -1,   -1,  280,   93,  282,  283,  284,  285,  286,
1001    -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,  296,
1002    -1,   -1,   33,   -1,   93,   41,  303,   -1,   44,   -1,
1003    41,   -1,   -1,   -1,   45,   -1,  313,   48,  315,  316,
1004    51,   -1,   58,   59,   55,   56,   57,   58,   59,   -1,
1005    -1,   -1,   63,   64,   -1,   -1,  272,  273,  274,  275,
1006    -1,   -1,   -1,  279,  272,  273,  274,  275,   -1,   -1,
1007    -1,  279,   -1,  281,   -1,   -1,   -1,   93,   -1,  287,
1008   288,  289,  290,   -1,  300,  301,  302,   -1,  304,   -1,
1009    -1,  102,  300,  301,  302,   -1,  304,  305,  306,  307,
1010   308,  309,  310,  311,   -1,   -1,  314,   -1,   -1,  317,
1011   318,  319,   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,
1012    44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1013    -1,   -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   63,
1014    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1015    -1,   -1,   -1,   -1,  165,  166,  167,  168,  169,  170,
1016   171,  172,  173,  174,  175,  176,  177,  178,  179,   93,
1017    -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
1018    -1,   -1,  193,  272,  273,  274,  275,   -1,   58,   59,
1019   279,   -1,  281,   63,   -1,   -1,   -1,   -1,  287,  288,
1020   289,  290,   -1,  272,  273,  274,  275,   -1,   -1,   -1,
1021   279,  300,  301,  302,   -1,  304,  305,  306,  307,  308,
1022   309,  310,  311,   93,   41,  314,   -1,   44,  317,  318,
1023   319,  300,  301,  302,   -1,   -1,   -1,   -1,   -1,   -1,
1024    -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,
1025    -1,   -1,   -1,   -1,   -1,   -1,  272,  273,  274,  275,
1026    -1,   -1,   -1,  279,   -1,   -1,   -1,   -1,   -1,  280,
1027    -1,   -1,   41,   -1,   -1,   44,   93,   -1,   -1,   -1,
1028    -1,   -1,   -1,   -1,  300,  301,  302,   -1,   -1,   58,
1029    59,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,
1030    -1,   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1031    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1032    41,   -1,   -1,   44,   93,   -1,   -1,   -1,   -1,   -1,
1033    -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,
1034    -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,  272,  273,
1035   274,  275,   -1,   -1,   -1,  279,   -1,  281,   -1,   -1,
1036    -1,   -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,
1037    -1,   -1,   93,   -1,   -1,   -1,  300,  301,  302,   -1,
1038   304,  305,  306,  307,  308,  309,  310,  311,   -1,   -1,
1039   314,   -1,   -1,  317,  318,  319,   -1,   -1,   -1,   -1,
1040    -1,   -1,  272,  273,  274,  275,   -1,   41,   -1,  279,
1041    44,  281,   -1,   -1,   -1,   -1,   -1,  287,  288,  289,
1042   290,   -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   63,
1043   300,  301,  302,   -1,  304,  305,  306,  307,  308,  309,
1044   310,  311,   -1,   -1,  314,   -1,   -1,  317,  318,  319,
1045    -1,   -1,   -1,   -1,   -1,  272,  273,  274,  275,   93,
1046    -1,   -1,  279,   -1,  281,   -1,   -1,   -1,   -1,   -1,
1047   287,  288,  289,  290,   -1,   -1,   -1,   -1,   -1,   -1,
1048    -1,   -1,   -1,  300,  301,  302,   -1,  304,  305,  306,
1049   307,  308,  309,  310,  311,   -1,   -1,  314,   -1,   -1,
1050   317,  318,  319,  272,  273,  274,  275,   -1,   -1,   -1,
1051   279,   -1,  281,   -1,   -1,   -1,   -1,   -1,  287,  288,
1052   289,  290,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1053    -1,  300,  301,  302,   -1,  304,  305,  306,  307,  308,
1054   309,  310,  311,   -1,   -1,  314,   -1,   -1,  317,  318,
1055   319,  272,  273,  274,  275,   -1,   41,   -1,  279,   44,
1056   281,   -1,   -1,   -1,   -1,   -1,  287,  288,  289,  290,
1057    -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   63,  300,
1058   301,  302,   -1,  304,  305,  306,  307,  308,  309,  310,
1059   311,   -1,   -1,  314,   -1,   -1,  317,  318,  319,   -1,
1060    -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,   93,   44,
1061    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1062    -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,
1063    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,  273,
1064   274,  275,   -1,   -1,   -1,  279,   -1,  281,   -1,   -1,
1065    -1,   -1,   -1,  287,  288,  289,  290,   -1,   93,   -1,
1066    -1,   -1,   -1,   -1,   -1,   -1,  300,  301,  302,   -1,
1067   304,  305,  306,  307,  308,  309,  310,  311,   41,   -1,
1068   314,   44,   -1,  317,  318,  319,   -1,   -1,   -1,   -1,
1069    -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,   -1,
1070    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1071    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1072    -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,
1073    93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1074    -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,
1075    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1076    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1077    -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,   93,   -1,
1078    -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,  273,  274,
1079   275,   -1,   58,   59,  279,   -1,  281,   63,   -1,   -1,
1080    -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,   -1,
1081    -1,   -1,   -1,   -1,   -1,  300,  301,  302,   -1,  304,
1082   305,  306,  307,  308,  309,  310,  311,   93,   -1,  314,
1083    -1,   -1,  317,  318,  319,   -1,   -1,  272,  273,  274,
1084   275,   -1,   41,   -1,  279,   44,  281,   -1,   -1,   -1,
1085    -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,   58,
1086    59,   -1,   -1,   -1,   63,  300,  301,  302,   -1,  304,
1087   305,  306,  307,  308,  309,  310,  311,   -1,   -1,  314,
1088    -1,   -1,  317,  318,  319,   -1,   -1,   -1,   -1,   -1,
1089    -1,   -1,   -1,   -1,   93,   -1,   -1,   41,   -1,   -1,
1090    44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,
1091   273,  274,  275,   -1,   58,   59,  279,   -1,  281,   63,
1092    -1,   -1,   -1,   -1,  287,  288,  289,  290,   -1,   -1,
1093    -1,   -1,   -1,   -1,   -1,   -1,   -1,  300,  301,  302,
1094    -1,  304,  305,  306,  307,  308,  309,  310,  311,   93,
1095    -1,  314,   -1,   -1,  317,  318,  319,  272,  273,  274,
1096   275,   -1,   41,   -1,  279,   44,  281,   -1,   -1,   -1,
1097    -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,   58,
1098    59,   -1,   -1,   -1,   63,  300,  301,  302,   -1,  304,
1099   305,  306,  307,  308,  309,  310,  311,   -1,   -1,  314,
1100    -1,   -1,  317,  318,  319,   -1,  272,  273,  274,  275,
1101    41,   -1,   -1,  279,   93,  281,   -1,   -1,   -1,   -1,
1102    -1,  287,  288,  289,  290,   -1,   -1,   58,   59,   -1,
1103    -1,   -1,   63,   -1,  300,  301,  302,   -1,  304,  305,
1104   306,  307,  308,  309,  310,  311,   -1,   -1,  314,   -1,
1105    -1,  317,  318,  319,   -1,   -1,   -1,   -1,   -1,   -1,
1106    -1,   41,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1107    -1,   -1,   -1,  272,  273,  274,  275,   -1,   58,   59,
1108   279,   -1,  281,   63,   -1,   -1,   -1,   -1,  287,  288,
1109   289,  290,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1110    -1,  300,  301,  302,   -1,  304,  305,  306,  307,  308,
1111   309,  310,  311,   93,   -1,  314,   -1,   -1,  317,  318,
1112   319,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,  273,
1113   274,  275,   -1,   41,   -1,  279,   44,  281,   -1,   -1,
1114    -1,   -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,
1115    58,   59,   -1,   -1,   -1,   63,  300,  301,  302,   -1,
1116   304,  305,  306,  307,  308,  309,  310,  311,   -1,   -1,
1117   314,   -1,   -1,  317,  318,  319,   -1,   -1,   -1,   -1,
1118    -1,   41,   -1,   -1,   44,   93,   -1,   -1,   -1,   -1,
1119    -1,   -1,   -1,  272,  273,  274,  275,   -1,   58,   59,
1120   279,   -1,  281,   63,   -1,   -1,   -1,   -1,  287,  288,
1121   289,  290,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1122    -1,  300,  301,  302,   -1,  304,  305,  306,  307,  308,
1123   309,  310,  311,   93,   -1,  314,   -1,   -1,  317,  318,
1124   319,  272,  273,  274,  275,   -1,   41,   -1,  279,   44,
1125   281,   -1,   -1,   -1,   -1,   -1,  287,  288,  289,  290,
1126    -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   63,  300,
1127   301,  302,   -1,  304,  305,  306,  307,  308,  309,  310,
1128   311,   -1,   -1,  314,   -1,   -1,  317,  318,  319,   -1,
1129    -1,   -1,  272,  273,  274,  275,   -1,   41,   93,  279,
1130    44,  281,   -1,   -1,   -1,   -1,   -1,  287,  288,  289,
1131   290,   -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   63,
1132   300,  301,  302,   -1,  304,  305,  306,  307,  308,  309,
1133   310,  311,   -1,   -1,  314,   -1,   -1,  317,  318,  319,
1134    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
1135    -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
1136    -1,   -1,   -1,   -1,  272,  273,  274,  275,   -1,   58,
1137    59,  279,   -1,  281,   63,   -1,   -1,   -1,   -1,  287,
1138   288,  289,  290,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1139    -1,   -1,  300,  301,  302,   -1,  304,  305,  306,  307,
1140   308,  309,  310,  311,   93,   -1,  314,   -1,   -1,   -1,
1141    -1,   -1,  272,  273,  274,  275,   -1,   41,   -1,  279,
1142    44,  281,   -1,   -1,   -1,   -1,   -1,  287,  288,  289,
1143   290,   -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   63,
1144   300,  301,  302,   -1,  304,  305,  306,  307,  308,  309,
1145   310,  311,   -1,   -1,  314,   -1,   -1,   -1,   -1,   -1,
1146    -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   93,
1147    -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,  273,  274,
1148   275,   -1,   58,   59,  279,   -1,  281,   63,   -1,   -1,
1149    -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,   -1,
1150    -1,   -1,   -1,   -1,   -1,  300,  301,  302,   -1,  304,
1151   305,  306,  307,  308,  309,  310,  311,   93,   -1,   -1,
1152    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,  273,
1153   274,  275,   -1,   -1,   -1,  279,   -1,  281,   -1,   -1,
1154    -1,   -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,
1155    -1,   41,   -1,   -1,   44,   -1,  300,  301,  302,   -1,
1156   304,  305,  306,  307,  308,  309,  310,  311,   58,   59,
1157    -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
1158    -1,   -1,   -1,  272,  273,  274,  275,   -1,   -1,   -1,
1159   279,   -1,  281,   -1,   -1,   -1,   -1,   -1,  287,  288,
1160   289,  290,   -1,   93,   -1,   -1,   41,   -1,   -1,   44,
1161    -1,  300,  301,  302,   -1,  304,  305,  306,  307,  308,
1162   309,  310,  311,   58,   59,   -1,   -1,   -1,   63,   -1,
1163    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1164    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,  273,
1165   274,  275,   -1,   -1,   -1,  279,   -1,  281,   93,   -1,
1166    -1,   -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,
1167    -1,   41,   -1,   -1,   44,   -1,  300,  301,  302,   -1,
1168   304,  305,  306,  307,  308,  309,  310,  311,   58,   59,
1169    -1,   -1,   -1,   63,   -1,   -1,  272,  273,  274,  275,
1170    -1,   -1,   -1,  279,   -1,  281,   -1,   -1,   -1,   -1,
1171    -1,  287,  288,  289,  290,   -1,   -1,   -1,   -1,   41,
1172    -1,   -1,   44,   93,  300,  301,  302,   -1,  304,  305,
1173   306,  307,  308,  309,  310,  311,   58,   59,   -1,   -1,
1174    -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1175    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1176    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1177    41,   93,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
1178    -1,   -1,  272,  273,  274,  275,   -1,   58,   59,  279,
1179    -1,  281,   63,   -1,   -1,   -1,   -1,  287,  288,  289,
1180   290,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1181   300,  301,  302,   -1,  304,  305,  306,  307,  308,  309,
1182   310,  311,   93,   -1,   -1,   41,   -1,   -1,   44,   -1,
1183    -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,  273,  274,
1184   275,   -1,   58,   59,  279,   -1,  281,   63,   -1,   -1,
1185    -1,   -1,  287,  288,  289,  290,   -1,   -1,   -1,   -1,
1186    -1,   -1,   -1,   -1,   -1,  300,  301,  302,   -1,  304,
1187   305,  306,  307,  308,  309,  310,  311,   93,   -1,   -1,
1188    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1189    41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
1190    -1,   -1,  272,  273,  274,  275,   -1,   58,   59,  279,
1191    -1,  281,   63,   -1,   -1,   -1,   -1,  287,  288,  289,
1192   290,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1193   300,  301,  302,   -1,  304,  305,  306,  307,  308,  309,
1194   310,   -1,   93,   -1,   -1,   41,   -1,   -1,   44,   -1,
1195   272,  273,  274,  275,   -1,   41,   -1,  279,   44,  281,
1196    -1,   -1,   58,   59,   -1,  287,  288,   63,  290,   -1,
1197    -1,   -1,   58,   59,   -1,   -1,   -1,   63,  300,  301,
1198   302,   -1,  304,  305,  306,  307,  308,  309,  310,   -1,
1199    -1,   -1,   -1,   -1,   -1,   -1,   41,   93,   -1,   44,
1200    -1,  272,  273,  274,  275,   -1,   -1,   93,  279,   -1,
1201   281,   -1,   -1,   58,   59,   -1,  287,  288,   63,   -1,
1202    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  300,
1203   301,  302,   -1,  304,  305,  306,  307,  308,  309,  310,
1204    -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   93,   -1,
1205    -1,   -1,   -1,   -1,   -1,   -1,  272,  273,  274,  275,
1206    -1,   58,   59,  279,   -1,  281,   63,   -1,   -1,   -1,
1207    -1,  287,  288,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1208    -1,   -1,   -1,   -1,  300,  301,  302,   -1,  304,  305,
1209   306,  307,  308,  309,   41,   -1,   93,   44,   -1,   -1,
1210    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1211    -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,
1212    -1,  272,  273,  274,  275,   -1,   -1,   -1,  279,   -1,
1213   281,   -1,   -1,   -1,   -1,   -1,  287,  288,   -1,   -1,
1214    -1,   -1,   41,   -1,   -1,   44,   93,   -1,   -1,  300,
1215   301,  302,   -1,  304,  305,  306,  307,  308,  309,   58,
1216    59,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,
1217    -1,   -1,   -1,   -1,   -1,   -1,  272,  273,  274,  275,
1218    -1,   41,   -1,  279,   44,  281,  272,  273,  274,  275,
1219    -1,  287,  288,  279,   93,  281,   -1,   -1,   58,   59,
1220    -1,  287,  288,   63,  300,  301,  302,   -1,  304,  305,
1221   306,  307,  308,  309,  300,  301,  302,   -1,  304,  305,
1222   306,  307,  308,  309,   -1,   -1,   -1,  272,  273,  274,
1223   275,   -1,   -1,   93,  279,   -1,  281,   -1,   -1,   -1,
1224    -1,   -1,   -1,  288,   -1,   -1,   -1,   -1,   41,   -1,
1225    -1,   44,   -1,   -1,   -1,  300,  301,  302,   -1,  304,
1226   305,  306,  307,  308,  309,   58,   59,   -1,   -1,   -1,
1227    63,   -1,   -1,   -1,   -1,  272,  273,  274,  275,   -1,
1228    -1,   -1,  279,   -1,  281,   -1,   -1,   -1,   -1,   -1,
1229    -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,
1230    93,   -1,   -1,  300,  301,  302,   -1,  304,  305,  306,
1231   307,  308,  309,   58,   59,   -1,   -1,   -1,   63,   -1,
1232    -1,   -1,   -1,   -1,   -1,  272,  273,  274,  275,   -1,
1233    -1,   -1,  279,   -1,  281,   -1,   -1,   -1,   -1,   -1,
1234    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
1235    -1,   -1,   -1,  300,  301,  302,   -1,  304,  305,  306,
1236   307,  308,  309,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1237    -1,   -1,   -1,  272,  273,  274,  275,   -1,   -1,   -1,
1238   279,   -1,  281,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1239    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1240    -1,  300,  301,  302,   -1,  304,  305,  306,  307,  308,
1241    -1,   -1,  272,  273,  274,  275,   -1,   -1,   -1,  279,
1242    -1,  281,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1243    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1244   300,  301,  302,   -1,  304,  305,  306,  307,   -1,   -1,
1245    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1246    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1247    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,
1248   273,  274,  275,   -1,   -1,   -1,  279,   -1,  281,   -1,
1249    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1250    -1,   -1,   -1,   -1,   -1,   -1,   -1,  300,  301,  302,
1251    -1,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,
1252    -1,   -1,   -1,   -1,   -1,   -1,   -1,  272,  273,  274,
1253   275,   -1,   -1,   -1,  279,   -1,  281,   -1,   -1,   -1,
1254    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1255    -1,   -1,   -1,   -1,   -1,  300,  301,  302,   -1,  304,
1256   305,  306,
1257 };
1258 #define YYFINAL 1
1259 #ifndef YYDEBUG
1260 #define YYDEBUG 0
1261 #endif
1262 #define YYMAXTOKEN 319
1263 #if YYDEBUG
1264 static char *yyname[] = {
1265 "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1266 "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0,
1267 0,0,0,0,0,"':'","';'",0,0,0,"'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1268 0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1269 0,0,"'{'",0,"'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1270 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1271 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1272 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","METHOD","FUNCMETH","THING",
1273 "PMFUNC","PRIVATEREF","FUNC0SUB","UNIOPSUB","LSTOPSUB","LABEL","FORMAT","SUB",
1274 "ANONSUB","PACKAGE","USE","WHILE","UNTIL","IF","UNLESS","ELSE","ELSIF",
1275 "CONTINUE","FOR","LOOPEX","DOTDOT","FUNC0","FUNC1","FUNC","UNIOP","LSTOP",
1276 "RELOP","EQOP","MULOP","ADDOP","DOLSHARP","DO","HASHBRACK","NOAMP","LOCAL","MY",
1277 "MYSUB","COLONATTR","PREC_LOW","OROP","DOROP","ANDOP","NOTOP","ASSIGNOP","OROR",
1278 "DORDOR","ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN",
1279 "POWOP","PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
1280 };
1281 static char *yyrule[] = {
1282 "$accept : prog",
1283 "prog : progstart lineseq",
1284 "block : '{' remember lineseq '}'",
1285 "remember :",
1286 "progstart :",
1287 "mblock : '{' mremember lineseq '}'",
1288 "mremember :",
1289 "lineseq :",
1290 "lineseq : lineseq decl",
1291 "lineseq : lineseq line",
1292 "line : label cond",
1293 "line : loop",
1294 "line : label ';'",
1295 "line : label sideff ';'",
1296 "sideff : error",
1297 "sideff : expr",
1298 "sideff : expr IF expr",
1299 "sideff : expr UNLESS expr",
1300 "sideff : expr WHILE expr",
1301 "sideff : expr UNTIL iexpr",
1302 "sideff : expr FOR expr",
1303 "else :",
1304 "else : ELSE mblock",
1305 "else : ELSIF '(' mexpr ')' mblock else",
1306 "cond : IF '(' remember mexpr ')' mblock else",
1307 "cond : UNLESS '(' remember miexpr ')' mblock else",
1308 "cont :",
1309 "cont : CONTINUE block",
1310 "loop : label WHILE '(' remember mtexpr ')' mblock cont",
1311 "loop : label UNTIL '(' remember miexpr ')' mblock cont",
1312 "loop : label FOR MY remember my_scalar '(' mexpr ')' mblock cont",
1313 "loop : label FOR scalar '(' remember mexpr ')' mblock cont",
1314 "loop : label FOR '(' remember mexpr ')' mblock cont",
1315 "loop : label FOR '(' remember mnexpr ';' mtexpr ';' mnexpr ')' mblock",
1316 "loop : label block cont",
1317 "nexpr :",
1318 "nexpr : sideff",
1319 "texpr :",
1320 "texpr : expr",
1321 "iexpr : expr",
1322 "mexpr : expr",
1323 "mnexpr : nexpr",
1324 "mtexpr : texpr",
1325 "miexpr : iexpr",
1326 "label :",
1327 "label : LABEL",
1328 "decl : format",
1329 "decl : subrout",
1330 "decl : mysubrout",
1331 "decl : package",
1332 "decl : use",
1333 "format : FORMAT startformsub formname block",
1334 "formname : WORD",
1335 "formname :",
1336 "mysubrout : MYSUB startsub subname proto subattrlist subbody",
1337 "subrout : SUB startsub subname proto subattrlist subbody",
1338 "startsub :",
1339 "startanonsub :",
1340 "startformsub :",
1341 "subname : WORD",
1342 "proto :",
1343 "proto : THING",
1344 "subattrlist :",
1345 "subattrlist : COLONATTR THING",
1346 "subattrlist : COLONATTR",
1347 "myattrlist : COLONATTR THING",
1348 "myattrlist : COLONATTR",
1349 "subbody : block",
1350 "subbody : ';'",
1351 "package : PACKAGE WORD ';'",
1352 "package : PACKAGE ';'",
1353 "$$1 :",
1354 "use : USE startsub $$1 WORD WORD listexpr ';'",
1355 "expr : expr ANDOP expr",
1356 "expr : expr OROP expr",
1357 "expr : expr DOROP expr",
1358 "expr : argexpr",
1359 "argexpr : argexpr ','",
1360 "argexpr : argexpr ',' term",
1361 "argexpr : term",
1362 "listop : LSTOP indirob argexpr",
1363 "listop : FUNC '(' indirob expr ')'",
1364 "listop : term ARROW method '(' listexprcom ')'",
1365 "listop : term ARROW method",
1366 "listop : METHOD indirob listexpr",
1367 "listop : FUNCMETH indirob '(' listexprcom ')'",
1368 "listop : LSTOP listexpr",
1369 "listop : FUNC '(' listexprcom ')'",
1370 "$$2 :",
1371 "listop : LSTOPSUB startanonsub block $$2 listexpr",
1372 "method : METHOD",
1373 "method : scalar",
1374 "subscripted : star '{' expr ';' '}'",
1375 "subscripted : scalar '[' expr ']'",
1376 "subscripted : term ARROW '[' expr ']'",
1377 "subscripted : subscripted '[' expr ']'",
1378 "subscripted : scalar '{' expr ';' '}'",
1379 "subscripted : term ARROW '{' expr ';' '}'",
1380 "subscripted : subscripted '{' expr ';' '}'",
1381 "subscripted : term ARROW '(' ')'",
1382 "subscripted : term ARROW '(' expr ')'",
1383 "subscripted : subscripted '(' expr ')'",
1384 "subscripted : subscripted '(' ')'",
1385 "termbinop : term ASSIGNOP term",
1386 "termbinop : term POWOP term",
1387 "termbinop : term MULOP term",
1388 "termbinop : term ADDOP term",
1389 "termbinop : term SHIFTOP term",
1390 "termbinop : term RELOP term",
1391 "termbinop : term EQOP term",
1392 "termbinop : term BITANDOP term",
1393 "termbinop : term BITOROP term",
1394 "termbinop : term DOTDOT term",
1395 "termbinop : term ANDAND term",
1396 "termbinop : term OROR term",
1397 "termbinop : term DORDOR term",
1398 "termbinop : term MATCHOP term",
1399 "termunop : '-' term",
1400 "termunop : '+' term",
1401 "termunop : '!' term",
1402 "termunop : '~' term",
1403 "termunop : term POSTINC",
1404 "termunop : term POSTDEC",
1405 "termunop : PREINC term",
1406 "termunop : PREDEC term",
1407 "anonymous : '[' expr ']'",
1408 "anonymous : '[' ']'",
1409 "anonymous : HASHBRACK expr ';' '}'",
1410 "anonymous : HASHBRACK ';' '}'",
1411 "anonymous : ANONSUB startanonsub proto subattrlist block",
1412 "termdo : DO term",
1413 "termdo : DO block",
1414 "termdo : DO WORD '(' ')'",
1415 "termdo : DO WORD '(' expr ')'",
1416 "termdo : DO scalar '(' ')'",
1417 "termdo : DO scalar '(' expr ')'",
1418 "term : termbinop",
1419 "term : termunop",
1420 "term : anonymous",
1421 "term : termdo",
1422 "term : term '?' term ':' term",
1423 "term : REFGEN term",
1424 "term : myattrterm",
1425 "term : LOCAL term",
1426 "term : '(' expr ')'",
1427 "term : '(' ')'",
1428 "term : scalar",
1429 "term : star",
1430 "term : hsh",
1431 "term : ary",
1432 "term : arylen",
1433 "term : subscripted",
1434 "term : '(' expr ')' '[' expr ']'",
1435 "term : '(' ')' '[' expr ']'",
1436 "term : ary '[' expr ']'",
1437 "term : ary '{' expr ';' '}'",
1438 "term : THING",
1439 "term : amper",
1440 "term : amper '(' ')'",
1441 "term : amper '(' expr ')'",
1442 "term : NOAMP WORD listexpr",
1443 "term : LOOPEX",
1444 "term : LOOPEX term",
1445 "term : NOTOP argexpr",
1446 "term : UNIOP",
1447 "term : UNIOP block",
1448 "term : UNIOP term",
1449 "term : UNIOPSUB term",
1450 "term : FUNC0",
1451 "term : FUNC0 '(' ')'",
1452 "term : FUNC0SUB",
1453 "term : FUNC1 '(' ')'",
1454 "term : FUNC1 '(' expr ')'",
1455 "term : PMFUNC '(' term ')'",
1456 "term : PMFUNC '(' term ',' term ')'",
1457 "term : WORD",
1458 "term : listop",
1459 "myattrterm : MY myterm myattrlist",
1460 "myattrterm : MY myterm",
1461 "myterm : '(' expr ')'",
1462 "myterm : '(' ')'",
1463 "myterm : scalar",
1464 "myterm : hsh",
1465 "myterm : ary",
1466 "listexpr :",
1467 "listexpr : argexpr",
1468 "listexprcom :",
1469 "listexprcom : expr",
1470 "listexprcom : expr ','",
1471 "my_scalar : scalar",
1472 "amper : '&' indirob",
1473 "scalar : '$' indirob",
1474 "ary : '@' indirob",
1475 "hsh : '%' indirob",
1476 "arylen : DOLSHARP indirob",
1477 "star : '*' indirob",
1478 "indirob : WORD",
1479 "indirob : scalar",
1480 "indirob : block",
1481 "indirob : PRIVATEREF",
1482 };
1483 #endif
1484 #define yyclearin (yychar=(-1))
1485 #define yyerrok (yyerrflag=0)
1486 #ifdef YYSTACKSIZE
1487 #ifndef YYMAXDEPTH
1488 #define YYMAXDEPTH YYSTACKSIZE
1489 #endif
1490 #else
1491 #ifdef YYMAXDEPTH
1492 #define YYSTACKSIZE YYMAXDEPTH
1493 #else
1494 #define YYSTACKSIZE 500
1495 #define YYMAXDEPTH 500
1496 #endif
1497 #endif
1498 #line 797 "perly.y"
1499  /* PROGRAM */
1500
1501 /* more stuff added to make perly_c.diff easier to apply */
1502
1503 #ifdef yyparse
1504 #undef yyparse
1505 #endif
1506 #define yyparse() Perl_yyparse(pTHX)
1507
1508 #line 1509 "perly.c"
1509 #define YYABORT goto yyabort
1510 #define YYACCEPT goto yyaccept
1511 #define YYERROR goto yyerrlab
1512 int
1513 yyparse()
1514 {
1515     register int yym, yyn, yystate;
1516     register short *yyssp;
1517     register YYSTYPE *yyvsp;
1518     short* yyss;
1519     YYSTYPE* yyvs;
1520     unsigned yystacksize = YYSTACKSIZE;
1521     int retval = 0;
1522 #if YYDEBUG
1523     register char *yys;
1524 #endif
1525
1526     struct ysv *ysave;
1527 #ifdef USE_ITHREADS
1528     ENTER;                      /* force yydestruct() before we return */
1529 #endif
1530     New(73, ysave, 1, struct ysv);
1531     SAVEDESTRUCTOR_X(yydestruct, ysave);
1532     ysave->oldyydebug   = yydebug;
1533     ysave->oldyynerrs   = yynerrs;
1534     ysave->oldyyerrflag = yyerrflag;
1535     ysave->oldyychar    = yychar;
1536     ysave->oldyyval     = yyval;
1537     ysave->oldyylval    = yylval;
1538
1539 #if YYDEBUG
1540     if ((yys = getenv("YYDEBUG")))
1541     {
1542         yyn = *yys;
1543         if (yyn >= '0' && yyn <= '9')
1544             yydebug = yyn - '0';
1545     }
1546 #endif
1547
1548     yynerrs = 0;
1549     yyerrflag = 0;
1550     yychar = (-1);
1551
1552     /*
1553     ** Initialize private stacks (yyparse may be called from an action)
1554     */
1555     New(73, yyss, yystacksize, short);
1556     New(73, yyvs, yystacksize, YYSTYPE);
1557     ysave->yyss = yyss;
1558     ysave->yyvs = yyvs;
1559     if (!yyvs || !yyss)
1560         goto yyoverflow;
1561
1562     yyssp = yyss;
1563     yyvsp = yyvs;
1564     *yyssp = yystate = 0;
1565
1566 yyloop:
1567     if ((yyn = yydefred[yystate])) goto yyreduce;
1568     if (yychar < 0)
1569     {
1570         if ((yychar = yylex()) < 0) yychar = 0;
1571 #if YYDEBUG
1572         if (yydebug)
1573         {
1574             yys = 0;
1575             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1576             if (!yys) yys = "illegal-symbol";
1577             PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
1578                     yychar, yys);
1579         }
1580 #endif
1581     }
1582     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1583             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1584     {
1585 #if YYDEBUG
1586         if (yydebug)
1587             PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
1588                     yystate, yytable[yyn]);
1589 #endif
1590         if (yyssp >= yyss + yystacksize - 1)
1591         {
1592             /*
1593             ** reallocate and recover.  Note that pointers
1594             ** have to be reset, or bad things will happen
1595             */
1596             int yyps_index = (yyssp - yyss);
1597             int yypv_index = (yyvsp - yyvs);
1598             yystacksize += YYSTACKSIZE;
1599             ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1600             ysave->yyss = Renew(yyss, yystacksize, short);
1601             if (!yyvs || !yyss)
1602             goto yyoverflow;
1603             yyssp = yyss + yyps_index;
1604             yyvsp = yyvs + yypv_index;
1605         }
1606         *++yyssp = yystate = yytable[yyn];
1607         *++yyvsp = yylval;
1608         yychar = (-1);
1609         if (yyerrflag > 0)  --yyerrflag;
1610         goto yyloop;
1611     }
1612     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1613             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1614     {
1615         yyn = yytable[yyn];
1616         goto yyreduce;
1617     }
1618     if (yyerrflag) goto yyinrecovery;
1619 #ifdef lint
1620
1621 #endif
1622
1623     yyerror("syntax error");
1624 #ifdef lint
1625
1626 #endif
1627
1628     ++yynerrs;
1629 yyinrecovery:
1630     if (yyerrflag < 3)
1631     {
1632         yyerrflag = 3;
1633         for (;;)
1634         {
1635             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1636                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1637             {
1638 #if YYDEBUG
1639                 if (yydebug)
1640                     PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
1641  to state %d\n", *yyssp, yytable[yyn]);
1642 #endif
1643                 if (yyssp >= yyss + yystacksize - 1)
1644                 {
1645                     /*
1646                     ** reallocate and recover.  Note that pointers
1647                     ** have to be reset, or bad things will happen
1648                     */
1649                     int yyps_index = (yyssp - yyss);
1650                     int yypv_index = (yyvsp - yyvs);
1651                     yystacksize += YYSTACKSIZE;
1652                     ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1653                     ysave->yyss = Renew(yyss, yystacksize, short);
1654                     if (!yyvs || !yyss)
1655                     goto yyoverflow;
1656                     yyssp = yyss + yyps_index;
1657                     yyvsp = yyvs + yypv_index;
1658                 }
1659                 *++yyssp = yystate = yytable[yyn];
1660                 *++yyvsp = yylval;
1661                 goto yyloop;
1662             }
1663             else
1664             {
1665 #if YYDEBUG
1666                 if (yydebug)
1667                     PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
1668                             *yyssp);
1669 #endif
1670                 if (yyssp <= yyss) goto yyabort;
1671                 --yyssp;
1672                 --yyvsp;
1673             }
1674         }
1675     }
1676     else
1677     {
1678         if (yychar == 0) goto yyabort;
1679 #if YYDEBUG
1680         if (yydebug)
1681         {
1682             yys = 0;
1683             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1684             if (!yys) yys = "illegal-symbol";
1685             PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
1686                     yystate, yychar, yys);
1687         }
1688 #endif
1689         yychar = (-1);
1690         goto yyloop;
1691     }
1692 yyreduce:
1693 #if YYDEBUG
1694     if (yydebug)
1695         PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
1696                 yystate, yyn, yyrule[yyn]);
1697 #endif
1698     yym = yylen[yyn];
1699     yyval = yyvsp[1-yym];
1700     switch (yyn)
1701     {
1702 case 1:
1703 #line 131 "perly.y"
1704 { yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
1705 break;
1706 case 2:
1707 #line 136 "perly.y"
1708 { if (PL_copline > (line_t)yyvsp[-3].ival)
1709                               PL_copline = (line_t)yyvsp[-3].ival;
1710                           yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1711 break;
1712 case 3:
1713 #line 142 "perly.y"
1714 { yyval.ival = block_start(TRUE); }
1715 break;
1716 case 4:
1717 #line 146 "perly.y"
1718 {
1719 #if defined(YYDEBUG) && defined(DEBUGGING)
1720                     yydebug = (DEBUG_p_TEST);
1721 #endif
1722                     PL_expect = XSTATE; yyval.ival = block_start(TRUE);
1723                 }
1724 break;
1725 case 5:
1726 #line 156 "perly.y"
1727 { if (PL_copline > (line_t)yyvsp[-3].ival)
1728                               PL_copline = (line_t)yyvsp[-3].ival;
1729                           yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1730 break;
1731 case 6:
1732 #line 162 "perly.y"
1733 { yyval.ival = block_start(FALSE); }
1734 break;
1735 case 7:
1736 #line 167 "perly.y"
1737 { yyval.opval = Nullop; }
1738 break;
1739 case 8:
1740 #line 169 "perly.y"
1741 { yyval.opval = yyvsp[-1].opval; }
1742 break;
1743 case 9:
1744 #line 171 "perly.y"
1745 {   yyval.opval = append_list(OP_LINESEQ,
1746                                 (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
1747                             PL_pad_reset_pending = TRUE;
1748                             if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; }
1749 break;
1750 case 10:
1751 #line 179 "perly.y"
1752 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1753 break;
1754 case 12:
1755 #line 182 "perly.y"
1756 { if (yyvsp[-1].pval != Nullch) {
1757                               yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
1758                             }
1759                             else {
1760                               yyval.opval = Nullop;
1761                               PL_copline = NOLINE;
1762                             }
1763                             PL_expect = XSTATE; }
1764 break;
1765 case 13:
1766 #line 191 "perly.y"
1767 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1768                           PL_expect = XSTATE; }
1769 break;
1770 case 14:
1771 #line 197 "perly.y"
1772 { yyval.opval = Nullop; }
1773 break;
1774 case 15:
1775 #line 199 "perly.y"
1776 { yyval.opval = yyvsp[0].opval; }
1777 break;
1778 case 16:
1779 #line 201 "perly.y"
1780 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1781 break;
1782 case 17:
1783 #line 203 "perly.y"
1784 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1785 break;
1786 case 18:
1787 #line 205 "perly.y"
1788 { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1789 break;
1790 case 19:
1791 #line 207 "perly.y"
1792 { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
1793 break;
1794 case 20:
1795 #line 209 "perly.y"
1796 { yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
1797                                         Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
1798 break;
1799 case 21:
1800 #line 215 "perly.y"
1801 { yyval.opval = Nullop; }
1802 break;
1803 case 22:
1804 #line 217 "perly.y"
1805 { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
1806 break;
1807 case 23:
1808 #line 219 "perly.y"
1809 { PL_copline = (line_t)yyvsp[-5].ival;
1810                             yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
1811                             PL_hints |= HINT_BLOCK_SCOPE; }
1812 break;
1813 case 24:
1814 #line 226 "perly.y"
1815 { PL_copline = (line_t)yyvsp[-6].ival;
1816                             yyval.opval = block_end(yyvsp[-4].ival,
1817                                    newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
1818 break;
1819 case 25:
1820 #line 230 "perly.y"
1821 { PL_copline = (line_t)yyvsp[-6].ival;
1822                             yyval.opval = block_end(yyvsp[-4].ival,
1823                                    newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
1824 break;
1825 case 26:
1826 #line 237 "perly.y"
1827 { yyval.opval = Nullop; }
1828 break;
1829 case 27:
1830 #line 239 "perly.y"
1831 { yyval.opval = scope(yyvsp[0].opval); }
1832 break;
1833 case 28:
1834 #line 244 "perly.y"
1835 { PL_copline = (line_t)yyvsp[-6].ival;
1836                             yyval.opval = block_end(yyvsp[-4].ival,
1837                                    newSTATEOP(0, yyvsp[-7].pval,
1838                                      newWHILEOP(0, 1, (LOOP*)Nullop,
1839                                                 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
1840 break;
1841 case 29:
1842 #line 250 "perly.y"
1843 { PL_copline = (line_t)yyvsp[-6].ival;
1844                             yyval.opval = block_end(yyvsp[-4].ival,
1845                                    newSTATEOP(0, yyvsp[-7].pval,
1846                                      newWHILEOP(0, 1, (LOOP*)Nullop,
1847                                                 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
1848 break;
1849 case 30:
1850 #line 256 "perly.y"
1851 { yyval.opval = block_end(yyvsp[-6].ival,
1852                                  newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1853 break;
1854 case 31:
1855 #line 259 "perly.y"
1856 { yyval.opval = block_end(yyvsp[-4].ival,
1857                                  newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
1858                                           yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1859 break;
1860 case 32:
1861 #line 263 "perly.y"
1862 { yyval.opval = block_end(yyvsp[-4].ival,
1863                                  newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1864 break;
1865 case 33:
1866 #line 267 "perly.y"
1867 { OP *forop;
1868                           PL_copline = (line_t)yyvsp[-9].ival;
1869                           forop = newSTATEOP(0, yyvsp[-10].pval,
1870                                             newWHILEOP(0, 1, (LOOP*)Nullop,
1871                                                 yyvsp[-9].ival, scalar(yyvsp[-4].opval),
1872                                                 yyvsp[0].opval, yyvsp[-2].opval));
1873                           if (yyvsp[-6].opval) {
1874                                 forop = append_elem(OP_LINESEQ,
1875                                         newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
1876                                                    yyvsp[-6].opval),
1877                                         forop);
1878                           }
1879
1880                           yyval.opval = block_end(yyvsp[-7].ival, forop); }
1881 break;
1882 case 34:
1883 #line 282 "perly.y"
1884 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
1885                                  newWHILEOP(0, 1, (LOOP*)Nullop,
1886                                             NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
1887 break;
1888 case 35:
1889 #line 289 "perly.y"
1890 { yyval.opval = Nullop; }
1891 break;
1892 case 37:
1893 #line 295 "perly.y"
1894 { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
1895 break;
1896 case 39:
1897 #line 301 "perly.y"
1898 { yyval.opval = invert(scalar(yyvsp[0].opval)); }
1899 break;
1900 case 40:
1901 #line 306 "perly.y"
1902 { yyval.opval = yyvsp[0].opval; intro_my(); }
1903 break;
1904 case 41:
1905 #line 310 "perly.y"
1906 { yyval.opval = yyvsp[0].opval; intro_my(); }
1907 break;
1908 case 42:
1909 #line 314 "perly.y"
1910 { yyval.opval = yyvsp[0].opval; intro_my(); }
1911 break;
1912 case 43:
1913 #line 318 "perly.y"
1914 { yyval.opval = yyvsp[0].opval; intro_my(); }
1915 break;
1916 case 44:
1917 #line 323 "perly.y"
1918 { yyval.pval = Nullch; }
1919 break;
1920 case 46:
1921 #line 329 "perly.y"
1922 { yyval.ival = 0; }
1923 break;
1924 case 47:
1925 #line 331 "perly.y"
1926 { yyval.ival = 0; }
1927 break;
1928 case 48:
1929 #line 333 "perly.y"
1930 { yyval.ival = 0; }
1931 break;
1932 case 49:
1933 #line 335 "perly.y"
1934 { yyval.ival = 0; }
1935 break;
1936 case 50:
1937 #line 337 "perly.y"
1938 { yyval.ival = 0; }
1939 break;
1940 case 51:
1941 #line 341 "perly.y"
1942 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1943 break;
1944 case 52:
1945 #line 344 "perly.y"
1946 { yyval.opval = yyvsp[0].opval; }
1947 break;
1948 case 53:
1949 #line 345 "perly.y"
1950 { yyval.opval = Nullop; }
1951 break;
1952 case 54:
1953 #line 350 "perly.y"
1954 { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1955 break;
1956 case 55:
1957 #line 355 "perly.y"
1958 { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1959 break;
1960 case 56:
1961 #line 359 "perly.y"
1962 { yyval.ival = start_subparse(FALSE, 0); }
1963 break;
1964 case 57:
1965 #line 363 "perly.y"
1966 { yyval.ival = start_subparse(FALSE, CVf_ANON); }
1967 break;
1968 case 58:
1969 #line 367 "perly.y"
1970 { yyval.ival = start_subparse(TRUE, 0); }
1971 break;
1972 case 59:
1973 #line 371 "perly.y"
1974 { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
1975                           if (strEQ(name, "BEGIN") || strEQ(name, "END")
1976                               || strEQ(name, "INIT") || strEQ(name, "CHECK"))
1977                               CvSPECIAL_on(PL_compcv);
1978                           yyval.opval = yyvsp[0].opval; }
1979 break;
1980 case 60:
1981 #line 380 "perly.y"
1982 { yyval.opval = Nullop; }
1983 break;
1984 case 62:
1985 #line 386 "perly.y"
1986 { yyval.opval = Nullop; }
1987 break;
1988 case 63:
1989 #line 388 "perly.y"
1990 { yyval.opval = yyvsp[0].opval; }
1991 break;
1992 case 64:
1993 #line 390 "perly.y"
1994 { yyval.opval = Nullop; }
1995 break;
1996 case 65:
1997 #line 395 "perly.y"
1998 { yyval.opval = yyvsp[0].opval; }
1999 break;
2000 case 66:
2001 #line 397 "perly.y"
2002 { yyval.opval = Nullop; }
2003 break;
2004 case 67:
2005 #line 401 "perly.y"
2006 { yyval.opval = yyvsp[0].opval; }
2007 break;
2008 case 68:
2009 #line 402 "perly.y"
2010 { yyval.opval = Nullop; PL_expect = XSTATE; }
2011 break;
2012 case 69:
2013 #line 406 "perly.y"
2014 { package(yyvsp[-1].opval); }
2015 break;
2016 case 70:
2017 #line 408 "perly.y"
2018 { package(Nullop); }
2019 break;
2020 case 71:
2021 #line 412 "perly.y"
2022 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
2023 break;
2024 case 72:
2025 #line 414 "perly.y"
2026 { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
2027 break;
2028 case 73:
2029 #line 419 "perly.y"
2030 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2031 break;
2032 case 74:
2033 #line 421 "perly.y"
2034 { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2035 break;
2036 case 75:
2037 #line 423 "perly.y"
2038 { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2039 break;
2040 case 77:
2041 #line 429 "perly.y"
2042 { yyval.opval = yyvsp[-1].opval; }
2043 break;
2044 case 78:
2045 #line 431 "perly.y"
2046 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
2047 break;
2048 case 80:
2049 #line 437 "perly.y"
2050 { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
2051                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
2052 break;
2053 case 81:
2054 #line 440 "perly.y"
2055 { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
2056                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
2057 break;
2058 case 82:
2059 #line 443 "perly.y"
2060 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
2061                                 append_elem(OP_LIST,
2062                                     prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
2063                                     newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
2064 break;
2065 case 83:
2066 #line 448 "perly.y"
2067 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
2068                                 append_elem(OP_LIST, scalar(yyvsp[-2].opval),
2069                                     newUNOP(OP_METHOD, 0, yyvsp[0].opval))); }
2070 break;
2071 case 84:
2072 #line 452 "perly.y"
2073 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
2074                                 append_elem(OP_LIST,
2075                                     prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
2076                                     newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
2077 break;
2078 case 85:
2079 #line 457 "perly.y"
2080 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
2081                                 append_elem(OP_LIST,
2082                                     prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
2083                                     newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
2084 break;
2085 case 86:
2086 #line 462 "perly.y"
2087 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2088 break;
2089 case 87:
2090 #line 464 "perly.y"
2091 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2092 break;
2093 case 88:
2094 #line 466 "perly.y"
2095 { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
2096 break;
2097 case 89:
2098 #line 468 "perly.y"
2099 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2100                                  append_elem(OP_LIST,
2101                                    prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); }
2102 break;
2103 case 92:
2104 #line 482 "perly.y"
2105 { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); }
2106 break;
2107 case 93:
2108 #line 484 "perly.y"
2109 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
2110 break;
2111 case 94:
2112 #line 486 "perly.y"
2113 { yyval.opval = newBINOP(OP_AELEM, 0,
2114                                         ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
2115                                         scalar(yyvsp[-1].opval));}
2116 break;
2117 case 95:
2118 #line 490 "perly.y"
2119 { yyval.opval = newBINOP(OP_AELEM, 0,
2120                                         ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
2121                                         scalar(yyvsp[-1].opval));}
2122 break;
2123 case 96:
2124 #line 494 "perly.y"
2125 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2126                             PL_expect = XOPERATOR; }
2127 break;
2128 case 97:
2129 #line 497 "perly.y"
2130 { yyval.opval = newBINOP(OP_HELEM, 0,
2131                                         ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
2132                                         jmaybe(yyvsp[-2].opval));
2133                             PL_expect = XOPERATOR; }
2134 break;
2135 case 98:
2136 #line 502 "perly.y"
2137 { yyval.opval = newBINOP(OP_HELEM, 0,
2138                                         ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
2139                                         jmaybe(yyvsp[-2].opval));
2140                             PL_expect = XOPERATOR; }
2141 break;
2142 case 99:
2143 #line 507 "perly.y"
2144 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2145                                    newCVREF(0, scalar(yyvsp[-3].opval))); }
2146 break;
2147 case 100:
2148 #line 510 "perly.y"
2149 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2150                                    append_elem(OP_LIST, yyvsp[-1].opval,
2151                                        newCVREF(0, scalar(yyvsp[-4].opval)))); }
2152 break;
2153 case 101:
2154 #line 515 "perly.y"
2155 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2156                                    append_elem(OP_LIST, yyvsp[-1].opval,
2157                                                newCVREF(0, scalar(yyvsp[-3].opval)))); }
2158 break;
2159 case 102:
2160 #line 519 "perly.y"
2161 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2162                                    newCVREF(0, scalar(yyvsp[-2].opval))); }
2163 break;
2164 case 103:
2165 #line 525 "perly.y"
2166 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
2167 break;
2168 case 104:
2169 #line 527 "perly.y"
2170 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2171 break;
2172 case 105:
2173 #line 529 "perly.y"
2174 {   if (yyvsp[-1].ival != OP_REPEAT)
2175                                 scalar(yyvsp[-2].opval);
2176                             yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
2177 break;
2178 case 106:
2179 #line 533 "perly.y"
2180 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2181 break;
2182 case 107:
2183 #line 535 "perly.y"
2184 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2185 break;
2186 case 108:
2187 #line 537 "perly.y"
2188 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2189 break;
2190 case 109:
2191 #line 539 "perly.y"
2192 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2193 break;
2194 case 110:
2195 #line 541 "perly.y"
2196 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2197 break;
2198 case 111:
2199 #line 543 "perly.y"
2200 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2201 break;
2202 case 112:
2203 #line 545 "perly.y"
2204 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2205 break;
2206 case 113:
2207 #line 547 "perly.y"
2208 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2209 break;
2210 case 114:
2211 #line 549 "perly.y"
2212 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2213 break;
2214 case 115:
2215 #line 551 "perly.y"
2216 { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2217 break;
2218 case 116:
2219 #line 553 "perly.y"
2220 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2221 break;
2222 case 117:
2223 #line 558 "perly.y"
2224 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2225 break;
2226 case 118:
2227 #line 560 "perly.y"
2228 { yyval.opval = yyvsp[0].opval; }
2229 break;
2230 case 119:
2231 #line 562 "perly.y"
2232 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2233 break;
2234 case 120:
2235 #line 564 "perly.y"
2236 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2237 break;
2238 case 121:
2239 #line 566 "perly.y"
2240 { yyval.opval = newUNOP(OP_POSTINC, 0,
2241                                         mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2242 break;
2243 case 122:
2244 #line 569 "perly.y"
2245 { yyval.opval = newUNOP(OP_POSTDEC, 0,
2246                                         mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2247 break;
2248 case 123:
2249 #line 572 "perly.y"
2250 { yyval.opval = newUNOP(OP_PREINC, 0,
2251                                         mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2252 break;
2253 case 124:
2254 #line 575 "perly.y"
2255 { yyval.opval = newUNOP(OP_PREDEC, 0,
2256                                         mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2257 break;
2258 case 125:
2259 #line 582 "perly.y"
2260 { yyval.opval = newANONLIST(yyvsp[-1].opval); }
2261 break;
2262 case 126:
2263 #line 584 "perly.y"
2264 { yyval.opval = newANONLIST(Nullop); }
2265 break;
2266 case 127:
2267 #line 586 "perly.y"
2268 { yyval.opval = newANONHASH(yyvsp[-2].opval); }
2269 break;
2270 case 128:
2271 #line 588 "perly.y"
2272 { yyval.opval = newANONHASH(Nullop); }
2273 break;
2274 case 129:
2275 #line 590 "perly.y"
2276 { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2277 break;
2278 case 130:
2279 #line 596 "perly.y"
2280 { yyval.opval = dofile(yyvsp[0].opval); }
2281 break;
2282 case 131:
2283 #line 598 "perly.y"
2284 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2285 break;
2286 case 132:
2287 #line 600 "perly.y"
2288 { yyval.opval = newUNOP(OP_ENTERSUB,
2289                             OPf_SPECIAL|OPf_STACKED,
2290                             prepend_elem(OP_LIST,
2291                                 scalar(newCVREF(
2292                                     (OPpENTERSUB_AMPER<<8),
2293                                     scalar(yyvsp[-2].opval)
2294                                 )),Nullop)); dep();}
2295 break;
2296 case 133:
2297 #line 608 "perly.y"
2298 { yyval.opval = newUNOP(OP_ENTERSUB,
2299                             OPf_SPECIAL|OPf_STACKED,
2300                             append_elem(OP_LIST,
2301                                 yyvsp[-1].opval,
2302                                 scalar(newCVREF(
2303                                     (OPpENTERSUB_AMPER<<8),
2304                                     scalar(yyvsp[-3].opval)
2305                                 )))); dep();}
2306 break;
2307 case 134:
2308 #line 617 "perly.y"
2309 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2310                             prepend_elem(OP_LIST,
2311                                 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
2312 break;
2313 case 135:
2314 #line 621 "perly.y"
2315 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2316                             prepend_elem(OP_LIST,
2317                                 yyvsp[-1].opval,
2318                                 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
2319 break;
2320 case 140:
2321 #line 633 "perly.y"
2322 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2323 break;
2324 case 141:
2325 #line 635 "perly.y"
2326 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2327 break;
2328 case 142:
2329 #line 637 "perly.y"
2330 { yyval.opval = yyvsp[0].opval; }
2331 break;
2332 case 143:
2333 #line 639 "perly.y"
2334 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2335 break;
2336 case 144:
2337 #line 641 "perly.y"
2338 { yyval.opval = sawparens(yyvsp[-1].opval); }
2339 break;
2340 case 145:
2341 #line 643 "perly.y"
2342 { yyval.opval = sawparens(newNULLLIST()); }
2343 break;
2344 case 146:
2345 #line 645 "perly.y"
2346 { yyval.opval = yyvsp[0].opval; }
2347 break;
2348 case 147:
2349 #line 647 "perly.y"
2350 { yyval.opval = yyvsp[0].opval; }
2351 break;
2352 case 148:
2353 #line 649 "perly.y"
2354 { yyval.opval = yyvsp[0].opval; }
2355 break;
2356 case 149:
2357 #line 651 "perly.y"
2358 { yyval.opval = yyvsp[0].opval; }
2359 break;
2360 case 150:
2361 #line 653 "perly.y"
2362 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2363 break;
2364 case 151:
2365 #line 655 "perly.y"
2366 { yyval.opval = yyvsp[0].opval; }
2367 break;
2368 case 152:
2369 #line 657 "perly.y"
2370 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2371 break;
2372 case 153:
2373 #line 659 "perly.y"
2374 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2375 break;
2376 case 154:
2377 #line 661 "perly.y"
2378 { yyval.opval = prepend_elem(OP_ASLICE,
2379                                 newOP(OP_PUSHMARK, 0),
2380                                     newLISTOP(OP_ASLICE, 0,
2381                                         list(yyvsp[-1].opval),
2382                                         ref(yyvsp[-3].opval, OP_ASLICE))); }
2383 break;
2384 case 155:
2385 #line 667 "perly.y"
2386 { yyval.opval = prepend_elem(OP_HSLICE,
2387                                 newOP(OP_PUSHMARK, 0),
2388                                     newLISTOP(OP_HSLICE, 0,
2389                                         list(yyvsp[-2].opval),
2390                                         ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
2391                             PL_expect = XOPERATOR; }
2392 break;
2393 case 156:
2394 #line 674 "perly.y"
2395 { yyval.opval = yyvsp[0].opval; }
2396 break;
2397 case 157:
2398 #line 676 "perly.y"
2399 { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
2400 break;
2401 case 158:
2402 #line 678 "perly.y"
2403 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2404 break;
2405 case 159:
2406 #line 680 "perly.y"
2407 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2408                             append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
2409 break;
2410 case 160:
2411 #line 683 "perly.y"
2412 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2413                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2414 break;
2415 case 161:
2416 #line 686 "perly.y"
2417 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
2418                             PL_hints |= HINT_BLOCK_SCOPE; }
2419 break;
2420 case 162:
2421 #line 689 "perly.y"
2422 { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
2423 break;
2424 case 163:
2425 #line 691 "perly.y"
2426 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2427 break;
2428 case 164:
2429 #line 693 "perly.y"
2430 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2431 break;
2432 case 165:
2433 #line 695 "perly.y"
2434 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2435 break;
2436 case 166:
2437 #line 697 "perly.y"
2438 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2439 break;
2440 case 167:
2441 #line 699 "perly.y"
2442 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2443                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2444 break;
2445 case 168:
2446 #line 702 "perly.y"
2447 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2448 break;
2449 case 169:
2450 #line 704 "perly.y"
2451 { yyval.opval = newOP(yyvsp[-2].ival, 0); }
2452 break;
2453 case 170:
2454 #line 706 "perly.y"
2455 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2456                                 scalar(yyvsp[0].opval)); }
2457 break;
2458 case 171:
2459 #line 709 "perly.y"
2460 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2461 break;
2462 case 172:
2463 #line 711 "perly.y"
2464 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2465 break;
2466 case 173:
2467 #line 713 "perly.y"
2468 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2469 break;
2470 case 174:
2471 #line 715 "perly.y"
2472 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2473 break;
2474 case 177:
2475 #line 722 "perly.y"
2476 { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
2477 break;
2478 case 178:
2479 #line 724 "perly.y"
2480 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2481 break;
2482 case 179:
2483 #line 729 "perly.y"
2484 { yyval.opval = sawparens(yyvsp[-1].opval); }
2485 break;
2486 case 180:
2487 #line 731 "perly.y"
2488 { yyval.opval = sawparens(newNULLLIST()); }
2489 break;
2490 case 181:
2491 #line 733 "perly.y"
2492 { yyval.opval = yyvsp[0].opval; }
2493 break;
2494 case 182:
2495 #line 735 "perly.y"
2496 { yyval.opval = yyvsp[0].opval; }
2497 break;
2498 case 183:
2499 #line 737 "perly.y"
2500 { yyval.opval = yyvsp[0].opval; }
2501 break;
2502 case 184:
2503 #line 742 "perly.y"
2504 { yyval.opval = Nullop; }
2505 break;
2506 case 185:
2507 #line 744 "perly.y"
2508 { yyval.opval = yyvsp[0].opval; }
2509 break;
2510 case 186:
2511 #line 748 "perly.y"
2512 { yyval.opval = Nullop; }
2513 break;
2514 case 187:
2515 #line 750 "perly.y"
2516 { yyval.opval = yyvsp[0].opval; }
2517 break;
2518 case 188:
2519 #line 752 "perly.y"
2520 { yyval.opval = yyvsp[-1].opval; }
2521 break;
2522 case 189:
2523 #line 758 "perly.y"
2524 { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
2525 break;
2526 case 190:
2527 #line 762 "perly.y"
2528 { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
2529 break;
2530 case 191:
2531 #line 766 "perly.y"
2532 { yyval.opval = newSVREF(yyvsp[0].opval); }
2533 break;
2534 case 192:
2535 #line 770 "perly.y"
2536 { yyval.opval = newAVREF(yyvsp[0].opval); }
2537 break;
2538 case 193:
2539 #line 774 "perly.y"
2540 { yyval.opval = newHVREF(yyvsp[0].opval); }
2541 break;
2542 case 194:
2543 #line 778 "perly.y"
2544 { yyval.opval = newAVREF(yyvsp[0].opval); }
2545 break;
2546 case 195:
2547 #line 782 "perly.y"
2548 { yyval.opval = newGVREF(0,yyvsp[0].opval); }
2549 break;
2550 case 196:
2551 #line 787 "perly.y"
2552 { yyval.opval = scalar(yyvsp[0].opval); }
2553 break;
2554 case 197:
2555 #line 789 "perly.y"
2556 { yyval.opval = scalar(yyvsp[0].opval);  }
2557 break;
2558 case 198:
2559 #line 791 "perly.y"
2560 { yyval.opval = scope(yyvsp[0].opval); }
2561 break;
2562 case 199:
2563 #line 794 "perly.y"
2564 { yyval.opval = yyvsp[0].opval; }
2565 break;
2566 #line 2567 "perly.c"
2567     }
2568     yyssp -= yym;
2569     yystate = *yyssp;
2570     yyvsp -= yym;
2571     yym = yylhs[yyn];
2572     if (yystate == 0 && yym == 0)
2573     {
2574 #if YYDEBUG
2575         if (yydebug)
2576             PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
2577  state %d\n", YYFINAL);
2578 #endif
2579         yystate = YYFINAL;
2580         *++yyssp = YYFINAL;
2581         *++yyvsp = yyval;
2582         if (yychar < 0)
2583         {
2584             if ((yychar = yylex()) < 0) yychar = 0;
2585 #if YYDEBUG
2586             if (yydebug)
2587             {
2588                 yys = 0;
2589                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2590                 if (!yys) yys = "illegal-symbol";
2591                 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
2592                         YYFINAL, yychar, yys);
2593             }
2594 #endif
2595         }
2596         if (yychar == 0) goto yyaccept;
2597         goto yyloop;
2598     }
2599     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2600             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2601         yystate = yytable[yyn];
2602     else
2603         yystate = yydgoto[yym];
2604 #if YYDEBUG
2605     if (yydebug)
2606         PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
2607 to state %d\n", *yyssp, yystate);
2608 #endif
2609     if (yyssp >= yyss + yystacksize - 1)
2610     {
2611         /*
2612         ** reallocate and recover.  Note that pointers
2613         ** have to be reset, or bad things will happen
2614         */
2615         int yyps_index = (yyssp - yyss);
2616         int yypv_index = (yyvsp - yyvs);
2617         yystacksize += YYSTACKSIZE;
2618         ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2619         ysave->yyss = Renew(yyss, yystacksize, short);
2620         if (!yyvs || !yyss)
2621         goto yyoverflow;
2622         yyssp = yyss + yyps_index;
2623         yyvsp = yyvs + yypv_index;
2624     }
2625     *++yyssp = yystate;
2626     *++yyvsp = yyval;
2627     goto yyloop;
2628 yyoverflow:
2629     yyerror("Out of memory for yacc stack");
2630 yyabort:
2631     retval = 1;
2632 yyaccept:
2633 #ifdef USE_ITHREADS
2634     LEAVE;                      /* force yydestruct() before we return */
2635 #endif
2636     return retval;
2637 }
2638
2639 static void
2640 yydestruct(pTHX_ void *ptr)
2641 {
2642     struct ysv* ysave = (struct ysv*)ptr;
2643     if (ysave->yyss) Safefree(ysave->yyss);
2644     if (ysave->yyvs) Safefree(ysave->yyvs);
2645     yydebug     = ysave->oldyydebug;
2646     yynerrs     = ysave->oldyynerrs;
2647     yyerrflag   = ysave->oldyyerrflag;
2648     yychar      = ysave->oldyychar;
2649     yyval       = ysave->oldyyval;
2650     yylval      = ysave->oldyylval;
2651     Safefree(ysave);
2652 }