c-common.c (decl_attributes): Allow applying attribute `unused' on a LABEL_DECL.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Mon, 4 Jan 1999 07:48:37 +0000 (07:48 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Mon, 4 Jan 1999 07:48:37 +0000 (07:48 +0000)
        * c-common.c (decl_attributes): Allow applying attribute `unused'
        on a LABEL_DECL.
        * c-parse.in (label): Parse attributes after a label, and call
        `decl_attributes' to handle them.
        * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
        * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
        generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
        * invoke.texi: Note that labels can be marked `unused'.

From-SVN: r24478

gcc/ChangeLog
gcc/c-common.c
gcc/c-parse.c
gcc/c-parse.in
gcc/c-parse.y
gcc/gansidecl.h
gcc/genrecog.c
gcc/invoke.texi
gcc/objc/objc-parse.c
gcc/objc/objc-parse.y

index cc6eb67..30f9cad 100644 (file)
@@ -1,3 +1,18 @@
+Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.c (decl_attributes): Allow applying attribute `unused'
+       on a LABEL_DECL.
+
+       * c-parse.in (label): Parse attributes after a label, and call
+       `decl_attributes' to handle them.
+
+       * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
+
+       * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
+       generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
+
+       * invoke.texi: Note that labels can be marked `unused'.
+
 Sun Jan 3 23:32:18 PST 1999 Jeff Law  (law@cygnus.com)
 
        * version.c: Bump for snapshot.
index cfa4b78..008663e 100644 (file)
@@ -521,7 +521,8 @@ decl_attributes (node, attributes, prefix_attributes)
            TREE_USED (type) = 1;
          else if (TREE_CODE (decl) == PARM_DECL
                   || TREE_CODE (decl) == VAR_DECL
-                  || TREE_CODE (decl) == FUNCTION_DECL)
+                  || TREE_CODE (decl) == FUNCTION_DECL
+                  || TREE_CODE (decl) == LABEL_DECL)
            TREE_USED (decl) = 1;
          else
            warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
index 47e11a6..005496c 100644 (file)
@@ -134,7 +134,7 @@ extern void yyprint                 PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         688
+#define        YYFINAL         689
 #define        YYFLAG          -32768
 #define        YYNTBASE        84
 
@@ -213,11 +213,11 @@ static const short yyprhs[] = {     0,
   1034,  1036,  1038,  1041,  1042,  1047,  1049,  1053,  1054,  1055,
   1063,  1069,  1072,  1073,  1074,  1075,  1088,  1089,  1096,  1099,
   1102,  1105,  1109,  1116,  1125,  1136,  1149,  1153,  1158,  1160,
-  1162,  1163,  1170,  1174,  1180,  1183,  1186,  1187,  1189,  1190,
-  1192,  1193,  1195,  1197,  1201,  1206,  1208,  1212,  1213,  1216,
-  1219,  1220,  1225,  1228,  1229,  1231,  1233,  1237,  1239,  1243,
-  1248,  1253,  1258,  1263,  1268,  1269,  1272,  1274,  1277,  1279,
-  1283,  1285,  1289
+  1162,  1163,  1170,  1174,  1180,  1183,  1187,  1188,  1190,  1191,
+  1193,  1194,  1196,  1198,  1202,  1207,  1209,  1213,  1214,  1217,
+  1220,  1221,  1226,  1229,  1230,  1232,  1234,  1238,  1240,  1244,
+  1249,  1254,  1259,  1264,  1269,  1270,  1273,  1275,  1278,  1280,
+  1284,  1286,  1290
 };
 
 static const short yyrhs[] = {    -1,
@@ -339,17 +339,18 @@ static const short yyrhs[] = {    -1,
     77,     0,    26,    50,    99,    77,     0,    77,     0,   219,
      0,     0,    19,    59,   113,    76,   220,   207,     0,    21,
    107,    38,     0,    21,   107,    10,   107,    38,     0,    22,
-    38,     0,    97,    38,     0,     0,     7,     0,     0,    99,
-     0,     0,   225,     0,   226,     0,   225,    81,   226,     0,
-     9,    59,    99,    76,     0,   115,     0,   227,    81,   115,
-     0,     0,   229,   230,     0,   232,    76,     0,     0,   233,
-    77,   231,   230,     0,     1,    76,     0,     0,    10,     0,
-   233,     0,   233,    81,    10,     0,   234,     0,   233,    81,
-   234,     0,   125,   122,   166,   142,     0,   125,   122,   167,
-   142,     0,   125,   122,   186,   142,     0,   129,   122,   167,
-   142,     0,   129,   122,   186,   142,     0,     0,   236,   237,
-     0,   230,     0,   238,    76,     0,     3,     0,   238,    81,
-     3,     0,    97,     0,   239,    81,    97,     0,    31,     0
+    38,     0,    97,    38,   142,     0,     0,     7,     0,     0,
+    99,     0,     0,   225,     0,   226,     0,   225,    81,   226,
+     0,     9,    59,    99,    76,     0,   115,     0,   227,    81,
+   115,     0,     0,   229,   230,     0,   232,    76,     0,     0,
+   233,    77,   231,   230,     0,     1,    76,     0,     0,    10,
+     0,   233,     0,   233,    81,    10,     0,   234,     0,   233,
+    81,   234,     0,   125,   122,   166,   142,     0,   125,   122,
+   167,   142,     0,   125,   122,   186,   142,     0,   129,   122,
+   167,   142,     0,   129,   122,   186,   142,     0,     0,   236,
+   237,     0,   230,     0,   238,    76,     0,     3,     0,   238,
+    81,     3,     0,    97,     0,   239,    81,    97,     0,    31,
+     0
 };
 
 #endif
@@ -392,11 +393,11 @@ static const short yyrline[] = { 0,
   1681,  1684,  1685,  1702,  1707,  1710,  1722,  1724,  1734,  1744,
   1745,  1753,  1756,  1768,  1772,  1789,  1799,  1808,  1813,  1818,
   1823,  1827,  1831,  1842,  1849,  1856,  1863,  1874,  1880,  1883,
-  1888,  1911,  1945,  1976,  2007,  2022,  2033,  2037,  2041,  2044,
-  2049,  2051,  2054,  2056,  2060,  2065,  2068,  2074,  2079,  2084,
-  2086,  2095,  2096,  2102,  2104,  2114,  2116,  2120,  2123,  2129,
-  2139,  2148,  2157,  2167,  2181,  2186,  2191,  2193,  2202,  2205,
-  2210,  2213,  2217
+  1888,  1911,  1945,  1976,  2007,  2022,  2036,  2040,  2044,  2047,
+  2052,  2054,  2057,  2059,  2063,  2068,  2071,  2077,  2082,  2087,
+  2089,  2098,  2099,  2105,  2107,  2117,  2119,  2123,  2126,  2132,
+  2142,  2151,  2160,  2170,  2184,  2189,  2194,  2196,  2205,  2208,
+  2213,  2216,  2220
 };
 #endif
 
@@ -521,7 +522,7 @@ static const short yyr2[] = {     0,
      1,     1,     2,     0,     4,     1,     3,     0,     0,     7,
      5,     2,     0,     0,     0,    12,     0,     6,     2,     2,
      2,     3,     6,     8,    10,    12,     3,     4,     1,     1,
-     0,     6,     3,     5,     2,     2,     0,     1,     0,     1,
+     0,     6,     3,     5,     2,     3,     0,     1,     0,     1,
      0,     1,     1,     3,     4,     1,     3,     0,     2,     2,
      0,     4,     2,     0,     1,     1,     3,     1,     3,     4,
      4,     4,     4,     4,     0,     2,     1,     2,     1,     3,
@@ -586,21 +587,21 @@ static const short yydefact[] = {     3,
    118,   331,   336,     0,     0,   328,   329,   332,   360,   330,
      0,     0,   207,     0,     0,   193,   194,     0,   224,   225,
    188,   276,   170,     0,     0,   324,   369,     0,     0,   365,
-   349,   350,   351,     0,     0,     0,   368,     0,   366,   333,
+   349,   350,   351,     0,     0,     0,   368,     0,   170,   333,
    124,     0,   125,     0,     0,   320,   325,   319,   342,     0,
    126,     0,   200,   197,   275,     0,     0,     0,   370,    45,
-     0,     0,     0,   363,   352,     0,   357,     0,     0,   122,
-   208,     0,   123,   211,   337,   324,     0,     0,   206,   321,
-     0,   323,   361,   343,   347,     0,   358,     0,   120,     0,
-   121,     0,   335,   326,   324,     0,   339,   324,   369,   324,
-   364,   371,     0,   209,   212,   327,   341,   324,   362,     0,
-   348,     0,     0,   372,   373,   353,     0,     0,   340,   344,
-     0,   371,     0,     0,   210,   213,   369,     0,     0,   354,
-   374,     0,   375,     0,     0,   345,   376,     0,   355,   324,
-     0,     0,   346,   356,   377,     0,     0,     0
+     0,     0,     0,   363,   352,     0,   357,     0,   366,     0,
+   122,   208,     0,   123,   211,   337,   324,     0,     0,   206,
+   321,     0,   323,   361,   343,   347,     0,   358,     0,   120,
+     0,   121,     0,   335,   326,   324,     0,   339,   324,   369,
+   324,   364,   371,     0,   209,   212,   327,   341,   324,   362,
+     0,   348,     0,     0,   372,   373,   353,     0,     0,   340,
+   344,     0,   371,     0,     0,   210,   213,   369,     0,     0,
+   354,   374,     0,   375,     0,     0,   345,   376,     0,   355,
+   324,     0,     0,   346,   356,   377,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   686,
+static const short yydefgoto[] = {   687,
      1,     2,     3,    17,    18,    19,   223,   375,   229,   378,
    112,   306,   450,    85,   144,   275,    87,    88,    89,    90,
     91,   393,    92,   260,   259,   257,   458,   258,    93,   145,
@@ -608,605 +609,595 @@ static const short yydefgoto[] = {   686,
    295,    57,   371,   420,   296,    23,    98,   185,    24,   129,
    117,    44,   113,   118,   426,    45,   374,   215,   216,    26,
    194,   195,   196,   424,   477,   452,   453,   454,   555,   455,
-   497,   456,   457,   610,   630,   657,   613,   632,   658,   201,
+   497,   456,   457,   611,   631,   658,   614,   633,   659,   201,
    121,   507,   122,    27,    28,    29,    30,   237,   239,   244,
    137,   501,   332,   132,   133,   234,   379,   380,   242,   243,
    100,   183,   101,   103,   184,   439,   440,   489,   213,   335,
    390,   391,   392,   368,   248,   369,   543,   544,   545,   566,
-   587,   310,   588,   443,   546,   547,   616,   565,   648,   639,
-   667,   680,   640,   548,   549,   638,   550,   578,   601,   653,
-   654,   655,   678,   280,   281,   297,   410,   298,   299,   300,
+   587,   310,   588,   443,   546,   547,   617,   565,   649,   640,
+   668,   681,   641,   548,   549,   639,   550,   578,   601,   654,
+   655,   656,   679,   280,   281,   297,   410,   298,   299,   300,
    204,   205,   301,   302,   435,    95
 };
 
-static const short yypact[] = {    58,
-    63,  2224,  2224,   400,-32768,-32768,-32768,-32768,    39,    39,
-    39,    28,    71,    75,-32768,-32768,-32768,-32768,-32768,   289,
-   124,  2252,    69,-32768,    39,-32768,    87,   107,   112,-32768,
-  2224,-32768,-32768,-32768,    39,    39,    39,  2086,  2020,    93,
--32768,-32768,   289,    94,-32768,    39,  1373,-32768,   519,-32768,
-   289,    69,-32768,    39,-32768,-32768,   702,-32768,-32768,-32768,
--32768,    23,-32768,   146,-32768,   178,-32768,-32768,-32768,-32768,
--32768,-32768,  2086,  2086,   434,-32768,-32768,-32768,  2086,-32768,
--32768,  1072,-32768,-32768,  2086,   192,   195,-32768,  2113,  2140,
--32768,  2353,   646,   270,  2086,-32768,   214,   266,-32768,   222,
-   398,   786,   469,   315,-32768,   519,   289,-32768,   228,-32768,
-  1448,   357,    39,-32768,-32768,   519,   132,-32768,    39,   598,
-   423,   430,   173,  1435,   702,-32768,-32768,-32768,-32768,    39,
--32768,   230,   402,-32768,   246,-32768,   431,-32768,-32768,-32768,
--32768,-32768,   251,   261,   265,   283,-32768,   280,  2086,  1072,
--32768,  1072,-32768,  2086,  2086,   334,-32768,-32768,  2086,  2086,
-  2086,  2086,  2086,  2086,  2086,  2086,  2086,  2086,  2086,  2086,
--32768,-32768,   434,   434,  2086,  2086,-32768,-32768,-32768,-32768,
-   266,  1475,-32768,   482,   894,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,    -1,-32768,   319,-32768,   430,-32768,-32768,
-   353,   430,   377,-32768,   723,  1530,-32768,   324,   312,-32768,
-   211,    54,-32768,-32768,   392,    39,   462,   322,-32768,   519,
-   519,-32768,   357,    39,-32768,  1557,-32768,-32768,   357,    39,
--32768,-32768,   416,   368,   113,   440,-32768,    39,-32768,-32768,
-   404,   374,-32768,   431,-32768,-32768,-32768,   384,   388,  1909,
--32768,  2353,   405,   409,  2353,  2353,  2086,   436,  2086,  2086,
-  1582,   698,  1662,  1379,  1875,  1002,  1002,   463,   463,-32768,
--32768,-32768,-32768,-32768,   411,   195,   414,   186,   360,-32768,
-   816,-32768,   419,-32768,  1612,-32768,   894,   428,   786,  2167,
-    48,   432,-32768,-32768,-32768,  1320,-32768,   435,   229,-32768,
--32768,   126,-32768,-32768,-32768,    51,-32768,-32768,-32768,   308,
--32768,   423,-32768,-32768,   423,-32768,   480,-32768,-32768,   437,
--32768,-32768,-32768,-32768,-32768,-32768,   447,-32768,   449,  2086,
-   434,   455,   374,-32768,   474,-32768,-32768,-32768,-32768,-32768,
-   497,  2086,   959,  1501,-32768,-32768,   482,-32768,-32768,-32768,
--32768,-32768,   461,-32768,-32768,   185,   489,-32768,-32768,   245,
-   184,-32768,-32768,  1143,-32768,   547,   265,-32768,-32768,-32768,
-   481,   921,-32768,  1309,    51,-32768,-32768,    51,   487,-32768,
--32768,   487,    39,    39,  2353,-32768,    39,   483,   434,   754,
-   474,-32768,  1129,-32768,  2369,-32768,-32768,  2086,-32768,-32768,
--32768,   184,    39,   151,   226,    39,-32768,   226,    39,   816,
--32768,-32768,-32768,-32768,-32768,   519,-32768,   289,-32768,   891,
--32768,-32768,  2353,-32768,-32768,  1309,-32768,-32768,   363,-32768,
--32768,-32768,    39,-32768,   268,   470,   643,   494,   516,   834,
--32768,-32768,-32768,-32768,-32768,   557,   434,  2086,-32768,   568,
-  2353,   529,   532,-32768,-32768,    34,  1249,  2086,   218,   223,
-   550,-32768,  1639,-32768,-32768,-32768,   281,-32768,-32768,-32768,
-   279,   306,   120,   891,-32768,-32768,  1129,-32768,-32768,  2086,
-   167,-32768,-32768,   434,-32768,-32768,-32768,-32768,   546,-32768,
--32768,-32768,-32768,  1775,-32768,  2263,  1129,-32768,-32768,  1189,
--32768,  1364,-32768,-32768,  2369,-32768,   496,-32768,   496,-32768,
-  1694,-32768,   544,-32768,-32768,   552,  1796,  2086,-32768,-32768,
--32768,  1855,   593,   573,-32768,-32768,   574,   576,  2086,   599,
-   559,   563,  2033,   128,   635,-32768,   605,   582,-32768,   601,
-  2256,-32768,   629,   935,    53,-32768,-32768,-32768,-32768,-32768,
-  1966,  2086,-32768,   575,  1364,-32768,-32768,   681,-32768,-32768,
--32768,-32768,  1796,  2086,   628,-32768,  2086,  2086,  1719,-32768,
--32768,-32768,-32768,   612,  2086,   613,-32768,   636,-32768,-32768,
--32768,   519,-32768,   289,  1015,-32768,-32768,-32768,-32768,  2086,
--32768,  2308,-32768,-32768,-32768,   618,  2086,   679,-32768,   562,
-   622,   634,  2086,-32768,-32768,   640,-32768,  2086,   311,-32768,
-   156,   318,-32768,   537,-32768,-32768,  1855,   637,-32768,-32768,
-   642,-32768,-32768,-32768,-32768,  2326,-32768,    10,-32768,   357,
--32768,   357,-32768,-32768,-32768,   657,-32768,-32768,  2086,-32768,
--32768,   703,   661,-32768,-32768,-32768,-32768,-32768,-32768,   662,
--32768,   660,    27,   673,-32768,-32768,   265,   265,-32768,-32768,
-  2086,   703,   693,   703,-32768,-32768,  2086,   680,    61,-32768,
--32768,   710,-32768,   377,   718,-32768,   270,   221,-32768,-32768,
-   721,   377,-32768,-32768,   270,   800,   801,-32768
+static const short yypact[] = {    74,
+    97,  2227,  2227,    54,-32768,-32768,-32768,-32768,    17,    17,
+    17,    87,    94,   134,-32768,-32768,-32768,-32768,-32768,   369,
+     5,   476,   261,-32768,    17,-32768,    59,    61,    90,-32768,
+  2227,-32768,-32768,-32768,    17,    17,    17,  2089,  2023,   189,
+-32768,-32768,   369,   129,-32768,    17,   320,-32768,   519,-32768,
+   369,   261,-32768,    17,-32768,-32768,   793,-32768,-32768,-32768,
+-32768,   114,-32768,   181,-32768,   191,-32768,-32768,-32768,-32768,
+-32768,-32768,  2089,  2089,   241,-32768,-32768,-32768,  2089,-32768,
+-32768,   708,-32768,-32768,  2089,    40,   211,-32768,  2116,  2143,
+-32768,  2293,  1062,   286,  2089,-32768,   247,   210,-32768,   254,
+  1674,   639,   272,   276,-32768,   519,   369,-32768,   238,-32768,
+  1451,   357,    17,-32768,-32768,   519,   137,-32768,    17,  1438,
+   378,   395,   232,  1376,   793,-32768,-32768,-32768,-32768,    17,
+-32768,   259,   870,-32768,   282,-32768,   228,-32768,-32768,-32768,
+-32768,-32768,   305,   307,   328,   337,-32768,   277,  2089,   708,
+-32768,   708,-32768,  2089,  2089,   355,-32768,-32768,  2089,  2089,
+  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,
+-32768,-32768,   241,   241,  2089,  2089,-32768,-32768,-32768,-32768,
+   210,  1478,-32768,   398,   438,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,    14,-32768,   361,-32768,   395,-32768,-32768,
+   400,   395,   426,-32768,   402,  1533,-32768,   363,   371,-32768,
+   767,    48,-32768,-32768,   430,    17,   461,   281,-32768,   519,
+   519,-32768,   357,    17,-32768,  1560,-32768,-32768,   357,    17,
+-32768,-32768,   385,   392,   209,  1323,-32768,    17,-32768,-32768,
+   457,   393,-32768,   228,-32768,-32768,-32768,   416,   420,  1912,
+-32768,  2293,   421,   423,  2293,  2293,  2089,   463,  2089,  2089,
+  1667,  1881,  2060,   936,  1098,   760,   760,   294,   294,-32768,
+-32768,-32768,-32768,-32768,   432,   211,   419,   246,   315,-32768,
+  1052,-32768,   431,-32768,  1615,-32768,   438,   433,   639,  2170,
+    44,   437,-32768,-32768,-32768,  1542,-32768,   439,   239,-32768,
+-32768,    66,-32768,-32768,-32768,    47,-32768,-32768,-32768,  1027,
+-32768,   378,-32768,-32768,   378,-32768,   480,-32768,-32768,   436,
+-32768,-32768,-32768,-32768,-32768,-32768,   443,-32768,   447,  2089,
+   241,   449,   393,-32768,   496,-32768,-32768,-32768,-32768,-32768,
+   493,  2089,  2328,  1586,-32768,-32768,   398,-32768,-32768,-32768,
+-32768,-32768,   455,-32768,-32768,    99,   465,-32768,-32768,   221,
+   374,-32768,-32768,  1465,-32768,   543,   328,-32768,-32768,-32768,
+   471,   172,-32768,  1312,    47,-32768,-32768,    47,   469,-32768,
+-32768,   469,    17,    17,  2293,-32768,    17,   477,   241,   813,
+   496,-32768,  1132,-32768,  2222,-32768,-32768,  2089,-32768,-32768,
+-32768,   374,    17,   135,   258,    17,-32768,   258,    17,  1052,
+-32768,-32768,-32768,-32768,-32768,   519,-32768,   369,-32768,   845,
+-32768,-32768,  2293,-32768,-32768,  1312,-32768,-32768,   205,-32768,
+-32768,-32768,    17,-32768,   278,   394,   646,   478,   483,   912,
+-32768,-32768,-32768,-32768,-32768,   516,   241,  2089,-32768,   520,
+  2293,   485,   484,-32768,-32768,   123,  1252,  2089,   111,   167,
+   688,-32768,  1642,-32768,-32768,-32768,   269,-32768,-32768,-32768,
+   301,   311,   225,   845,-32768,-32768,  1132,-32768,-32768,  2089,
+   160,-32768,-32768,   241,-32768,-32768,-32768,-32768,   486,-32768,
+-32768,-32768,-32768,  1778,-32768,  2266,  1132,-32768,-32768,  1192,
+-32768,  1367,-32768,-32768,  2222,-32768,   417,-32768,   417,-32768,
+  1697,-32768,   489,-32768,-32768,   490,  1799,  2089,-32768,-32768,
+-32768,  1858,   529,   514,-32768,-32768,   515,   534,  2089,   537,
+   502,   518,  2036,    52,   589,-32768,   559,   522,-32768,   523,
+   607,-32768,   585,   995,    45,-32768,-32768,-32768,-32768,-32768,
+  1969,  2089,-32768,   525,  1367,-32768,-32768,   950,-32768,-32768,
+-32768,-32768,  1799,  2089,   545,-32768,  2089,  2089,  1722,-32768,
+-32768,-32768,-32768,   528,  2089,   532,-32768,   557,    17,-32768,
+-32768,   519,-32768,   369,  1075,-32768,-32768,-32768,-32768,  2089,
+-32768,  2248,-32768,-32768,-32768,   541,  2089,   601,-32768,   849,
+   546,   549,  2089,-32768,-32768,   556,-32768,  2089,-32768,   317,
+-32768,   359,   345,-32768,   672,-32768,-32768,  1858,   550,-32768,
+-32768,   558,-32768,-32768,-32768,-32768,  2315,-32768,    23,-32768,
+   357,-32768,   357,-32768,-32768,-32768,   561,-32768,-32768,  2089,
+-32768,-32768,   613,   563,-32768,-32768,-32768,-32768,-32768,-32768,
+   571,-32768,   577,    33,   581,-32768,-32768,   328,   328,-32768,
+-32768,  2089,   613,   606,   613,-32768,-32768,  2089,   602,    34,
+-32768,-32768,   609,-32768,   426,   610,-32768,   286,   157,-32768,
+-32768,   611,   426,-32768,-32768,   286,   690,   693,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    78,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -24,-32768,   -38,   515,  -139,   485,-32768,-32768,
-   -50,-32768,   422,-32768,-32768,-32768,-32768,-32768,   239,-32768,
-  -186,  -201,   595,-32768,-32768,   372,-32768,     5,  -112,   260,
-     9,   759,-32768,   395,    11,    -7,   -77,   630,    22,  -165,
-  -378,   -45,  -104,   -59,-32768,-32768,-32768,   -54,    57,    47,
--32768,   527,-32768,   393,-32768,  -226,-32768,   325,-32768,  -407,
--32768,-32768,   371,-32768,-32768,-32768,-32768,-32768,-32768,   -39,
-   -63,  -319,   -18,-32768,-32768,-32768,   -23,-32768,-32768,-32768,
--32768,-32768,   491,   -31,-32768,   596,   514,   412,   597,   531,
-    46,   -80,   -71,   -84,  -132,   426,-32768,-32768,  -168,-32768,
--32768,-32768,   456,  -143,-32768,  -126,-32768,-32768,-32768,-32768,
-   -94,  -335,  -495,   410,-32768,   249,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   252,-32768,  -472,   209,
--32768,   208,-32768,   589,-32768,  -242,-32768,-32768,-32768,   511,
+-32768,-32768,-32768,    81,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -24,-32768,   -38,   407,  -139,   193,-32768,-32768,
+    -4,-32768,   422,-32768,-32768,-32768,-32768,-32768,   131,-32768,
+  -196,  -202,   491,-32768,-32768,   268,-32768,    -5,   -91,   156,
+     9,   657,-32768,   308,    11,    -7,   -88,   542,     4,  -163,
+  -378,   -45,  -100,   -65,-32768,-32768,-32768,   223,    57,    82,
+-32768,   424,-32768,   303,-32768,  -401,-32768,   233,-32768,  -422,
+-32768,-32768,   279,-32768,-32768,-32768,-32768,-32768,-32768,   -39,
+   -59,  -316,   -18,-32768,-32768,-32768,   -33,-32768,-32768,-32768,
+-32768,-32768,   401,   -32,-32768,   507,   425,   316,   501,   415,
+    39,   -67,   -79,   -97,  -152,   321,-32768,-32768,  -179,-32768,
+-32768,-32768,   364,  -209,-32768,  -126,-32768,-32768,-32768,-32768,
+   -89,  -331,  -514,   314,-32768,   142,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   143,-32768,  -553,   102,
+-32768,   101,-32768,   492,-32768,  -242,-32768,-32768,-32768,   405,
   -195,-32768,-32768,-32768,-32768,     6
 };
 
 
-#define        YYLAST          2421
+#define        YYLAST          2380
 
 
 static const short yytable[] = {    86,
-    97,    47,    62,    64,    66,   123,   221,    31,    31,   120,
-    21,    21,    22,    22,    52,   224,   291,   214,   249,   286,
-   189,   316,   139,   140,   104,    49,    51,   321,   142,   318,
-   217,   135,   124,   131,   147,   276,    31,   471,   349,    21,
-   404,    22,   307,    53,   178,   429,   200,   642,   279,   504,
-   141,   367,   218,   589,  -102,   233,   177,    -1,    25,    25,
-    99,   235,    -2,   308,   662,    35,    36,    37,    14,   502,
-   598,    58,   208,    55,   288,    56,    46,   193,    54,   289,
-    32,    58,    58,    58,   198,   643,    38,    25,   202,    59,
-    60,   447,    58,   448,   557,   278,   224,   104,   674,    46,
-    58,   131,   663,    99,   134,   119,   494,    46,    67,    59,
-    60,   590,   241,   130,    59,    60,     5,   214,     7,   187,
-   633,   286,   188,   358,     9,    10,    11,   146,   214,    39,
-    59,    60,   247,    40,   214,  -102,   675,   277,   236,   646,
-    13,   509,   649,   283,   651,   347,   109,   594,   273,   274,
-   276,   102,   659,   312,    99,   142,   522,   315,   233,    46,
-   314,   131,   119,    46,   235,    58,   650,   470,    61,   317,
-   105,    99,   119,    99,   106,   322,    58,   575,   110,   111,
-    14,   130,   109,   328,   683,  -162,    41,   320,    63,  -269,
-  -269,  -162,   197,    65,   672,   253,    14,   254,   198,   338,
-    48,   365,   202,   609,   518,   327,   366,   329,   219,   462,
-   463,   209,   220,    14,  -105,  -105,  -105,  -105,   341,   241,
-  -105,   441,  -105,  -105,  -105,    41,   400,   136,   381,   197,
-   381,   425,  -162,   407,   427,   180,  -162,   323,  -105,   325,
-   414,   236,   402,   182,   181,   182,   353,    41,   400,   227,
-   516,   617,    14,   106,   476,    14,   188,    99,   459,   138,
-   397,    25,    58,   131,   193,   398,   510,   148,   486,   279,
-   554,   491,   401,   119,    14,   149,   119,   119,   177,   406,
-   409,   402,   182,    41,   110,   111,   203,   197,    52,   179,
-   461,    41,  -105,   506,   401,   442,   681,   186,   149,   360,
-   361,   682,   372,   402,   182,   363,   241,   230,   476,   364,
-    14,     5,     6,     7,     8,   180,   460,    53,    14,     9,
-    10,    11,   467,   238,   181,   182,   245,   347,   430,   431,
-   407,   373,   432,   381,   347,    13,   246,    25,    42,   402,
-   182,   405,   408,   442,   483,   492,   247,    43,   484,   464,
-   465,   466,    54,   468,   469,   514,   251,   209,   250,   220,
-  -324,  -324,  -324,  -324,   434,    41,   114,   542,  -324,  -324,
-  -324,   -82,   472,   110,   111,   416,   418,   290,   482,   109,
-   225,   226,   515,   104,  -324,    70,   106,   629,   305,   481,
-   199,   220,    14,   419,   631,   542,   131,   313,   106,   473,
-   480,     5,   231,     7,   187,     5,   304,     7,    96,     9,
-    10,    11,   115,     9,    10,    11,   403,    46,   284,   285,
-    25,   116,   495,   558,   513,    13,   519,   311,   644,    13,
-   645,   240,    15,    59,    60,   348,    59,    60,  -101,   330,
-   231,   198,   202,     5,   324,     7,    96,   180,   198,    58,
-   131,     9,    10,    11,   331,   538,   181,   182,    46,   520,
-   142,   334,   562,   336,    41,   114,    25,    13,   197,   537,
-    15,    41,   119,   342,    46,   197,    33,    34,   232,  -261,
-   339,   225,   226,   538,   340,   119,   345,   677,   110,   111,
-   542,    14,  -267,  -267,   574,   685,   346,   537,    14,   551,
-   178,   350,   540,   354,   541,   389,   224,   359,   595,   576,
-   362,   115,   168,   169,   170,   376,   403,   403,    42,   377,
-   116,    41,   114,    46,   383,   596,   384,    43,   599,   602,
-   665,   666,   387,    52,   394,   214,   606,   214,   612,   198,
-   284,   285,   611,   396,   582,   584,   305,   485,    14,   413,
-    25,   618,    41,   400,   462,   463,   551,   415,   621,   540,
-   433,   541,    53,   109,   399,   614,  -162,   428,   115,   628,
-   252,  -303,  -162,   151,   153,   255,   256,   116,   538,    14,
+    97,    47,    62,    64,    66,   123,   291,    31,    31,   120,
+    21,    21,    22,    22,    52,    49,    51,   217,   249,   224,
+   316,   286,   214,   131,   104,    53,   321,   221,   279,   318,
+   135,   307,   124,   189,   504,   276,    31,   471,   349,    21,
+   200,    22,    99,   404,   233,   589,    14,   367,  -102,   429,
+   141,   598,   177,   235,    59,    60,   218,   308,    25,    25,
+   643,    59,    60,    59,    60,    35,    36,    37,   139,   140,
+   663,   675,   208,    -1,   142,   516,    46,   193,    54,   557,
+   147,    48,   278,    32,   198,    99,   651,    25,   202,   288,
+   178,   131,    59,    60,   289,   554,    -2,   104,   644,    46,
+   224,   575,   634,   590,   188,   119,    58,    46,   664,   676,
+   494,    67,   241,   130,   673,   148,    58,    58,    58,   358,
+   146,   647,   214,   286,   650,   347,   652,    58,   247,  -102,
+    33,    34,   594,   214,   660,    58,    99,   277,   236,   214,
+    61,   365,    63,   283,   509,    38,   366,   233,   273,   274,
+   276,   131,    39,    99,   314,    99,   235,   312,   502,    46,
+   522,   315,   119,    46,    14,   425,   684,   470,   427,    41,
+   400,    65,   119,   197,   397,     5,    55,     7,    56,   398,
+   447,   130,   448,     9,    10,    11,   506,   320,   253,    14,
+   254,   149,    40,   462,   463,   134,    14,   518,   198,    13,
+    58,   142,   202,   610,   327,   105,   329,    41,   114,   106,
+   441,    58,     5,   219,     7,   187,   401,   220,   341,   241,
+     9,    10,    11,    41,   400,   402,   182,   323,   240,   325,
+    59,    60,   682,   381,    14,   381,    13,   683,   188,    99,
+   414,   236,   480,    59,    60,   338,   353,   102,   417,   279,
+    14,   109,   197,   131,   115,   618,   476,   486,   459,   180,
+   491,    25,   136,   116,   193,    55,   510,    56,   181,   182,
+   401,    41,   138,   119,    41,   197,   119,   119,   197,   402,
+   182,   151,   153,   110,   111,  -269,  -269,    14,    52,   360,
+   361,   149,   406,   409,   177,   180,   203,    58,    14,    53,
+   442,    14,   372,   460,   181,   182,   241,   347,   227,   467,
+   476,   461,   106,   373,   347,   363,   110,   111,   407,   364,
+   108,    42,   179,   -27,   -27,   -27,   -27,   402,   182,   186,
+    43,   -27,   -27,   -27,   110,   111,   230,    25,   381,   225,
+   226,   405,   408,   168,   169,   170,   109,   -27,   442,  -162,
+   492,   199,    54,   251,   483,  -162,   313,   209,   484,   238,
+  -324,  -324,  -324,  -324,   434,   416,   418,   542,  -324,  -324,
+  -324,    41,   472,   284,   285,   419,    41,   514,   110,   111,
+   245,   220,   246,   104,  -324,   109,   131,   515,  -162,   481,
+   348,   106,   -82,   630,  -162,   542,  -162,   220,    14,   473,
+  -162,   -27,   292,    14,   293,     5,     6,     7,     8,   247,
+   558,   294,   250,     9,    10,    11,   403,    46,    42,   290,
+    25,   632,   495,   407,   513,   106,   109,    43,   645,    13,
+   646,    14,   402,   182,    70,  -162,   225,   226,  -101,  -162,
+   131,   198,   202,   127,   128,   304,   317,   305,   198,     9,
+    10,    11,   322,   110,   111,   538,   284,   285,    46,   520,
+   328,  -267,  -267,    41,   114,   311,    25,   197,   324,   537,
+   305,   485,   119,   331,    46,   462,   463,  -384,   678,     5,
+     6,     7,     8,   538,    58,   119,   686,     9,    10,    11,
+    14,   542,   330,   334,   574,   336,   339,   537,   340,   551,
+   342,   346,   540,    13,   541,    14,   142,   345,   354,   576,
+   115,   224,   359,   350,   362,   376,   403,   403,   377,   116,
+   383,    41,   114,    46,   384,   596,   387,   389,   599,   602,
+   394,   666,   667,    52,   582,   584,   606,   396,   613,   198,
+   399,   214,   612,   214,    53,   413,   178,   415,    14,   428,
+    25,   619,    50,   -31,   433,  -303,   551,   498,   622,   540,
+   490,   541,   499,   521,   500,   615,   -32,   561,   115,   629,
+   252,   560,   564,   567,   570,   255,   256,   116,   571,   538,
    261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-   271,   272,   537,   490,   -31,   110,   111,    54,   222,   508,
-   599,   -19,   -19,   -19,   -19,   498,   499,    25,    43,   -19,
-   -19,   -19,   500,  -162,   403,   171,   172,  -162,   173,   174,
-   175,   176,   668,   521,   109,   -19,   560,  -162,   599,   561,
-   -32,   564,   567,  -162,   568,   571,   570,   623,   119,   572,
-    46,   577,   579,   209,   585,  -114,  -114,  -114,  -114,  -114,
-  -114,  -114,   593,  -114,  -114,  -114,  -114,  -114,   580,  -114,
-  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
-  -114,  -114,  -114,  -114,  -162,  -114,  -114,   581,  -162,   -19,
-   343,   344,  -114,    41,   400,  -114,   597,   197,   605,   607,
-  -114,  -114,  -114,   620,   608,   622,  -114,  -114,   624,   171,
-   172,  -114,   173,   174,   175,   176,   126,   127,   128,   625,
-    14,   652,   636,     9,    10,    11,   627,   637,   661,  -114,
-  -114,  -114,  -114,   292,  -114,   293,     5,     6,     7,     8,
-   508,    14,   294,   647,     9,    10,    11,   656,   660,    43,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-    13,   385,    14,   664,   436,   673,  -324,  -324,  -324,  -324,
-  -324,  -324,  -324,   395,  -324,  -324,  -324,  -324,  -324,   670,
-  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
-  -324,  -324,  -324,  -324,  -324,   676,  -324,  -324,    59,    60,
-   190,   191,   192,  -324,   679,   423,  -324,   684,  -384,   687,
-   688,  -324,  -324,  -324,   357,   600,   309,  -324,  -324,   487,
-   591,   125,  -324,   474,   451,   355,   292,   287,   478,     5,
-     6,     7,     8,   388,   556,   294,   503,     9,    10,    11,
-  -324,   326,  -324,  -324,   209,  -324,  -324,  -324,   382,   479,
-   333,  -324,  -324,    13,  -324,    14,   444,   423,  -324,   493,
+   271,   272,   568,   537,   572,   577,   579,    54,   580,   581,
+   585,   599,   593,   597,   605,   430,   431,    25,   607,   432,
+     5,     6,     7,     8,   403,   608,   621,   623,     9,    10,
+    11,   653,   625,   669,   626,   637,   464,   465,   466,   599,
+   468,   469,   628,   638,    13,   662,    14,   648,   119,   657,
+    46,    59,    60,   190,   191,   192,   209,   661,  -114,  -114,
+  -114,  -114,  -114,  -114,  -114,   482,  -114,  -114,  -114,  -114,
+  -114,   665,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
+  -114,  -114,  -114,  -114,  -114,  -114,  -114,   674,  -114,  -114,
+   343,   344,   671,   583,   677,  -114,   680,   685,  -114,   688,
+    41,   400,   689,  -114,  -114,  -114,   357,   600,   109,  -114,
+  -114,  -162,   309,   519,  -114,   487,   591,  -162,   143,   125,
+    68,     5,   355,     7,    96,    69,    70,    14,    71,     9,
+    10,    11,  -114,  -114,  -114,  -114,   474,  -114,   478,   287,
+   110,   111,   556,   388,   503,    13,    72,   508,    15,   562,
+    73,    74,   326,   479,   333,   386,    43,    75,  -162,   382,
+    76,   385,  -162,   493,   444,    77,    78,    79,   488,   635,
+   636,    80,    81,   395,   670,   672,    82,   209,   412,     0,
+  -105,  -105,  -105,  -105,     0,   351,  -105,     0,  -105,  -105,
+  -105,     0,     0,     0,     0,   595,    83,    84,     0,   -91,
+     0,     0,     0,     0,  -105,   423,     0,   126,   127,   128,
+     0,   609,     0,     0,     9,    10,    11,   166,   167,   168,
+   169,   170,     0,   436,   451,  -324,  -324,  -324,  -324,  -324,
+  -324,  -324,    14,  -324,  -324,  -324,  -324,  -324,     0,  -324,
   -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
-  -324,   386,  -324,   488,  -324,   634,  -324,  -324,   635,   496,
-   669,   671,   351,  -324,   412,     0,  -324,     0,   451,   505,
-     0,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,     0,
-     0,  -384,  -324,     0,     0,   475,   127,   128,   451,   127,
-   128,   517,     9,    10,    11,     9,    10,    11,     0,     0,
-  -324,  -299,  -324,  -324,     0,  -324,     0,     0,   451,     0,
-     0,   451,     0,   451,     5,    55,     7,    56,     0,     0,
-     0,     0,     9,    10,    11,   586,     0,  -324,  -324,   563,
-     0,     0,  -324,  -324,     0,  -324,     0,     0,    13,  -324,
-   569,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
-  -324,  -324,     0,  -324,     0,  -324,     0,  -324,  -324,     0,
-     0,     0,     0,   592,  -324,     0,   451,  -324,     0,     0,
-     0,     0,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,
-     0,     0,     0,  -324,     0,     0,     0,   417,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,  -324,     0,  -324,  -324,   615,  -324,  -334,  -334,     0,
-     0,     0,  -334,  -334,   626,  -334,     0,     0,     0,  -334,
+  -324,  -324,  -324,  -324,     0,  -324,  -324,   423,  -105,   475,
+   127,   128,  -324,     0,     0,  -324,     9,    10,    11,     0,
+  -324,  -324,  -324,     0,     0,     0,  -324,  -324,     0,   496,
+   231,  -324,     0,     5,     0,     7,    96,     0,   451,   505,
+     0,     9,    10,    11,     0,     0,     0,     0,     0,  -324,
+     0,  -324,  -324,     0,  -324,     0,     0,    13,   451,     0,
+    15,   517,   171,   172,     0,   173,   174,   175,   176,     0,
+     0,     0,   209,     0,  -324,  -324,     0,     0,   451,  -324,
+  -324,   451,  -324,   451,   624,     0,  -324,     0,  -324,  -324,
+  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,   563,
+  -324,     0,  -324,     0,  -324,  -324,   232,  -261,     0,     0,
+   569,  -324,    41,   400,  -324,     0,   197,     0,     0,  -324,
+  -324,  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,
+  -324,     0,     0,   592,     0,     0,   451,     0,     0,    14,
+   163,   164,   165,   166,   167,   168,   169,   170,  -324,  -299,
+  -324,  -324,     0,  -324,     0,   586,     0,  -324,  -324,   508,
+     0,     0,  -324,  -324,     0,  -324,     0,     0,    43,  -324,
+     0,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
+  -324,  -324,     0,  -324,   627,  -324,     0,  -324,  -324,     0,
+     5,     6,     7,     8,  -324,     0,     0,  -324,     9,    10,
+    11,     0,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,
+     0,     0,   292,  -324,    13,     5,     6,     7,     8,     0,
+     0,   294,     0,     9,    10,    11,     0,     0,     0,     0,
+     0,  -324,     0,  -324,  -324,   616,  -324,  -334,  -334,    13,
+     0,    14,  -334,  -334,     0,  -334,     0,     0,     0,  -334,
      0,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
-  -334,  -334,     0,  -334,     0,  -334,     0,  -334,  -334,   166,
-   167,   168,   169,   170,  -334,     0,     0,  -334,     0,     0,
-     0,     0,  -334,  -334,  -334,     0,     0,     0,  -334,  -334,
-     0,     0,   143,  -334,    68,     5,     0,     7,    96,    69,
-    70,     0,    71,     9,    10,    11,     0,     0,     0,     0,
-     0,  -334,     0,  -334,  -334,     0,  -334,     0,     0,    13,
+  -334,  -334,     0,  -334,     0,  -334,     0,  -334,  -334,     0,
+     0,     0,     0,     0,  -334,   171,   172,  -334,   173,   174,
+   175,   176,  -334,  -334,  -334,     0,     0,  -384,  -334,  -334,
+     0,     0,   445,  -334,   446,    60,     0,     0,     0,    69,
+    70,     0,    71,   164,   165,   166,   167,   168,   169,   170,
+     0,  -334,     0,  -334,  -334,     0,  -334,     0,     0,     0,
     72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
      0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,     0,     0,   445,
-    82,   446,    60,     0,     0,     0,    69,    70,     0,    71,
-     0,     0,     0,     0,     0,     0,     5,     6,     7,     8,
-    83,    84,   411,   -91,     9,    10,    11,    72,     0,    15,
-     0,    73,    74,     0,     0,     0,     0,     0,    75,     0,
-    13,    76,    14,     0,     0,     0,    77,    78,    79,     0,
-     0,     0,    80,    81,     0,     0,   447,    82,   448,   445,
-     0,   446,    60,     0,     0,     0,    69,    70,     0,    71,
-     0,     0,     0,     0,     0,     0,  -190,    83,    84,     0,
-   449,     0,     0,     0,     0,     0,     0,    72,     0,    15,
-     0,    73,    74,     0,     0,     0,     0,     0,    75,     0,
-     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
-     0,     0,    80,    81,     0,     0,   447,    82,   448,   445,
-     0,    68,     0,     0,     0,     0,    69,    70,     0,    71,
-     0,     0,     0,     0,     0,     0,  -258,    83,    84,     0,
-   449,     0,     0,     0,     0,     0,     0,    72,     0,    15,
-     0,    73,    74,     0,  -203,     0,     0,     0,    75,     0,
-     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
-     0,     0,    80,    81,     0,     0,  -203,    82,  -203,   421,
-     0,    68,     0,     0,     0,     0,    69,    70,     0,    71,
-     0,     0,     0,     5,     6,     7,     8,    83,    84,     0,
-   449,     9,    10,    11,     0,     0,     0,    72,     0,    15,
-     0,    73,    74,     0,     0,     0,     0,    13,    75,    14,
-     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
-     0,     0,    80,    81,   445,     0,    68,    82,     0,     0,
-     0,    69,    70,   108,    71,     0,   -27,   -27,   -27,   -27,
-     0,     0,     0,     0,   -27,   -27,   -27,    83,    84,     0,
-   422,     0,    72,     0,    15,     0,    73,    74,     0,   109,
-   -27,     0,  -162,    75,     0,     0,    76,     0,  -162,     0,
-     0,    77,    78,    79,     0,     0,     0,    80,    81,     0,
-     0,     0,    82,   163,   164,   165,   166,   167,   168,   169,
-   170,   110,   111,     0,     0,   228,     0,     0,   -23,   -23,
-   -23,   -23,    83,    84,     0,   449,   -23,   -23,   -23,  -162,
-    68,     0,     0,  -162,   -27,    69,    70,     0,    71,     0,
-     0,   109,   -23,     0,  -162,     0,     0,     0,     0,     0,
-  -162,     0,     0,     0,     0,     0,    72,    68,    15,     0,
-    73,    74,    69,    70,     0,    71,     0,    75,     0,     0,
-    76,     0,     0,   110,   111,    77,    78,   206,     0,     0,
-     0,    80,    81,    72,     0,    15,    82,    73,    74,     0,
-     0,  -162,     0,     0,    75,  -162,   -23,    76,     0,     0,
-     0,     0,    77,    78,    79,     0,    83,    84,    80,    81,
-   207,     0,    68,    82,     0,     0,     0,    69,    70,     0,
-    71,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-   168,   169,   170,    83,    84,     0,     0,   282,    72,    68,
-    15,     0,    73,    74,    69,    70,     0,    71,     0,    75,
-     0,     0,    76,     0,     0,     0,     0,    77,    78,    79,
-     0,     0,     0,    80,    81,    72,     0,    15,    82,    73,
-    74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
-     0,     0,     0,     0,    77,    78,    79,     0,    83,    84,
-    80,    81,   303,     0,    68,    82,     0,     0,     0,    69,
-    70,     0,    71,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,   170,     0,    83,    84,     0,     0,   319,
-    72,    68,    15,     0,    73,    74,    69,    70,     0,    71,
+    78,    79,     0,     0,     0,    80,    81,     0,     0,   447,
+    82,   448,   445,     0,   446,    60,     0,     0,     0,    69,
+    70,     0,    71,     0,     0,     0,     0,     0,     0,  -190,
+    83,    84,     0,   449,     0,     0,     0,     0,     0,     0,
+    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
      0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,    72,     0,    15,
-    82,    73,    74,     0,     0,     0,     0,     0,    75,     0,
-     0,    76,     0,     0,     0,     0,    77,    78,   511,     0,
-    83,    84,    80,    81,   352,     0,    68,    82,     0,     0,
-     0,    69,    70,     0,    71,   162,   163,   164,   165,   166,
-   167,   168,   169,   170,     0,     0,     0,    83,    84,     0,
-     0,   512,    72,     0,    15,     0,    73,    74,   603,     0,
-     0,     0,     0,    75,     0,     0,    76,     0,     0,     0,
-     0,    77,    78,    79,     0,     0,     0,    80,    81,     0,
-     0,     0,    82,   154,   155,   156,   604,   157,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,     0,    83,    84,     0,     0,   559,   446,   523,     6,
-     7,     8,    69,    70,     0,    71,     9,    10,    11,   524,
-     0,   525,   526,   527,   528,   529,   530,   531,   532,   533,
-   534,   535,    13,    72,    14,    15,     0,    73,    74,     0,
-     0,     0,     0,     0,    75,     0,     0,    76,     0,     0,
-     0,     0,    77,    78,    79,    14,     0,     0,    80,    81,
-   154,   155,   156,    82,   157,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,   170,     0,     0,
-     0,   536,     0,    83,    84,     0,   247,   446,    60,     0,
-     0,     0,    69,    70,     0,    71,     0,     0,     0,   524,
-     0,   525,   526,   527,   528,   529,   530,   531,   532,   533,
-   534,   535,     0,    72,     0,    15,     0,    73,    74,     0,
-     0,     0,     0,     0,    75,     0,     0,    76,     0,     0,
+    78,    79,     0,     0,     0,    80,    81,     0,     0,   447,
+    82,   448,   445,     0,    68,     0,     0,     0,     0,    69,
+    70,     0,    71,     0,     0,     0,     0,     0,     0,  -258,
+    83,    84,     0,   449,     0,     0,     0,     0,     0,     0,
+    72,     0,    15,     0,    73,    74,     0,  -203,     0,     0,
+     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
+    78,    79,     0,     0,     0,    80,    81,     0,     0,  -203,
+    82,  -203,   421,     0,    68,     0,     0,     0,     0,    69,
+    70,     0,    71,   231,     0,     0,     5,     0,     7,    96,
+    83,    84,     0,   449,     9,    10,    11,     0,     0,     0,
+    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
+    13,    75,     0,    15,    76,     0,     0,     0,     0,    77,
+    78,    79,     0,     0,     0,    80,    81,   445,     0,    68,
+    82,     0,     0,     0,    69,    70,   228,    71,     0,   -23,
+   -23,   -23,   -23,     0,     0,     0,     0,   -23,   -23,   -23,
+    83,    84,     0,   422,     0,    72,     0,    15,     0,    73,
+    74,     0,   109,   -23,     0,  -162,    75,     0,     0,    76,
+     0,  -162,     0,     0,    77,    78,    79,     0,     0,     0,
+    80,    81,     0,     0,     0,    82,     0,     0,     0,     0,
+     0,     0,     0,     0,   110,   111,     0,     0,   222,     0,
+     0,   -19,   -19,   -19,   -19,    83,    84,     0,   449,   -19,
+   -19,   -19,  -162,    68,     0,     0,  -162,   -23,    69,    70,
+     0,    71,     0,     0,   109,   -19,     0,  -162,     5,     6,
+     7,     8,     0,  -162,   411,     0,     9,    10,    11,    72,
+    68,    15,     0,    73,    74,    69,    70,     0,    71,     0,
+    75,     0,    13,    76,    14,     0,     0,     0,    77,    78,
+   206,     0,     0,     0,    80,    81,    72,     0,    15,    82,
+    73,    74,     0,     0,  -162,     0,     0,    75,  -162,   -19,
+    76,     0,     0,     0,     0,    77,    78,    79,     0,    83,
+    84,    80,    81,   207,     0,    68,    82,     0,     0,     0,
+    69,    70,     0,    71,     0,     5,     6,     7,     8,     0,
+     0,     0,     0,     9,    10,    11,    83,    84,     0,     0,
+   282,    72,    68,    15,     0,    73,    74,    69,    70,    13,
+    71,    14,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,    72,     0,
+    15,    82,    73,    74,     0,     0,     0,     0,     0,    75,
+     0,     0,    76,     0,     0,     0,     0,    77,    78,    79,
+     0,    83,    84,    80,    81,   303,     0,    68,    82,     0,
+     0,     0,    69,    70,     0,    71,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,   168,   169,   170,    83,    84,
+     0,     0,   319,    72,    68,    15,     0,    73,    74,    69,
+    70,     0,    71,     0,    75,     0,     0,    76,     0,     0,
      0,     0,    77,    78,    79,     0,     0,     0,    80,    81,
-     0,    68,     0,    82,     0,     0,    69,    70,     0,    71,
-   164,   165,   166,   167,   168,   169,   170,     0,     0,     0,
-     0,   536,     0,    83,    84,     0,   247,    72,     0,    15,
+    72,     0,    15,    82,    73,    74,     0,     5,     0,     7,
+   187,    75,     0,     0,    76,     9,    10,    11,     0,    77,
+    78,   511,     0,    83,    84,    80,    81,   352,     0,    68,
+    82,    13,     0,     0,    69,    70,     0,    71,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,     0,
+    83,    84,     0,   180,   512,    72,     0,    15,     0,    73,
+    74,   603,   181,   182,     0,     0,    75,     0,     0,    76,
+     0,     0,     0,     0,    77,    78,    79,     0,     0,     0,
+    80,    81,     0,     0,     0,    82,   154,   155,   156,   604,
+   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,   168,   169,   170,     0,    83,    84,     0,     0,   559,
+   446,   523,     6,     7,     8,    69,    70,     0,    71,     9,
+    10,    11,   524,     0,   525,   526,   527,   528,   529,   530,
+   531,   532,   533,   534,   535,    13,    72,    14,    15,     0,
+    73,    74,     0,     0,     0,     0,     0,    75,     0,     0,
+    76,     0,     0,     0,     0,    77,    78,    79,    14,     0,
+     0,    80,    81,   154,   155,   156,    82,   157,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,     0,     0,     0,   536,     0,    83,    84,     0,   247,
+   446,    60,     0,     0,     0,    69,    70,     0,    71,     0,
+     0,     0,   524,     0,   525,   526,   527,   528,   529,   530,
+   531,   532,   533,   534,   535,     0,    72,     0,    15,     0,
+    73,    74,     0,     0,     0,     0,     0,    75,     0,     0,
+    76,     0,     0,     0,     0,    77,    78,    79,     0,     0,
+     0,    80,    81,     0,    68,     0,    82,     0,     0,    69,
+    70,     0,    71,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,     0,   536,     0,    83,    84,     0,   247,
+    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
+     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
+    78,    79,     0,     0,     0,    80,    81,     0,     0,     0,
+    82,    68,     5,     6,     7,     8,    69,    70,     0,    71,
+     9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
+    83,    84,     0,   337,     0,     0,    13,    72,    14,    15,
      0,    73,    74,     0,     0,     0,     0,     0,    75,     0,
      0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
-     0,     0,    80,    81,     0,     0,     0,    82,    68,     5,
-     6,     7,     8,    69,    70,     0,    71,     9,    10,    11,
-     0,     0,     0,     0,     0,     0,     0,    83,    84,     0,
-   337,     0,     0,    13,    72,    14,    15,     0,    73,    74,
-     0,     0,     0,     0,     0,    75,     0,     0,    76,     0,
-     0,     0,     0,    77,    78,    79,     0,     0,     0,    80,
-    81,     0,    68,     5,    82,     7,    96,    69,    70,     0,
-    71,     9,    10,    11,     0,    68,     0,     0,     0,     0,
-    69,    70,     0,    71,    83,    84,     0,    13,    72,     0,
-    15,     0,    73,    74,     0,     0,     0,     0,     0,    75,
-     0,    72,    76,    15,     0,    73,    74,    77,    78,    79,
-     0,     0,    75,    80,    81,    76,     0,     0,    82,     0,
-    77,    78,    79,     0,     0,     0,    80,    81,    68,     0,
-     0,    82,     0,    69,    70,     0,    71,     0,    83,    84,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   573,
-     0,    83,    84,     0,    72,    68,    15,     0,    73,    74,
+     0,     0,    80,    81,     0,    68,     5,    82,     7,    96,
+    69,    70,     0,    71,     9,    10,    11,     0,    68,     0,
+     0,     0,     0,    69,    70,     0,    71,    83,    84,     0,
+    13,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,    72,    76,    15,     0,    73,    74,
+    77,    78,    79,     0,     0,    75,    80,    81,    76,     0,
+     0,    82,     0,    77,    78,    79,     0,     0,     0,    80,
+    81,    68,     0,     0,    82,     0,    69,    70,     0,    71,
+     0,    83,    84,   162,   163,   164,   165,   166,   167,   168,
+   169,   170,   573,     0,    83,    84,     0,    72,    68,    15,
+     0,    73,    74,    69,    70,     0,    71,     0,    75,     0,
+     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
+     0,     0,    80,    81,    72,    68,    15,    82,    73,    74,
     69,    70,     0,    71,     0,    75,     0,     0,    76,     0,
-     0,     0,     0,    77,    78,    79,     0,     0,     0,    80,
-    81,    72,    68,    15,    82,    73,    74,    69,    70,     0,
+     0,     0,     0,    77,    78,    79,     0,    83,    84,    80,
+    81,    72,   356,    15,   150,    73,    74,    69,    70,     0,
     71,     0,    75,     0,     0,    76,     0,     0,     0,     0,
-    77,    78,    79,     0,    83,    84,    80,    81,    72,   356,
-    15,   150,    73,    74,    69,    70,     0,    71,     0,    75,
+    77,    78,    79,     0,    83,    84,    80,    81,    72,     0,
+    15,   152,    73,    74,     0,     0,     0,     0,     0,    75,
      0,     0,    76,     0,     0,     0,     0,    77,    78,    79,
-     0,    83,    84,    80,    81,    72,     0,    15,   152,    73,
-    74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
-     0,     0,     0,     0,    77,    78,    79,     0,    83,    84,
-    80,    81,     0,     0,     4,    82,  -118,     5,     6,     7,
-     8,     0,     0,     0,     0,     9,    10,    11,     0,     0,
-     0,     0,     0,     0,     0,    83,    84,     0,     0,     0,
-    12,    13,     0,    14,    15,     5,     6,     7,     8,     5,
-     6,     7,     8,     9,    10,    11,     0,     9,    10,    11,
-     0,     0,   552,  -118,     0,     0,     0,     0,     0,    13,
-     0,    14,  -118,    13,     0,    14,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   154,   155,   156,
-    16,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    50,     0,
-     0,     0,   583,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   154,   155,   156,   553,   157,   158,   159,   160,
+     0,    83,    84,    80,    81,     0,     0,     4,    82,  -118,
+     5,     6,     7,     8,     0,     0,     0,     0,     9,    10,
+    11,     0,     0,     0,     0,     0,     0,     0,    83,    84,
+     0,     0,     0,    12,    13,     0,    14,    15,   156,     0,
+   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,   168,   169,   170,     0,   552,  -118,     0,     0,     0,
+     0,     0,   154,   155,   156,  -118,   157,   158,   159,   160,
    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-   154,   155,   156,   641,   157,   158,   159,   160,   161,   162,
+   154,   155,   156,    16,   157,   158,   159,   160,   161,   162,
    163,   164,   165,   166,   167,   168,   169,   170,     0,     0,
      0,     0,     0,     0,     0,     0,     0,   154,   155,   156,
-   619,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,   156,     0,   157,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170
+   620,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,   170,     0,     0,     0,   553,   154,
+   155,   156,   642,   157,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,   158,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,   168,   169,   170
 };
 
 static const short yycheck[] = {    38,
-    39,    20,    27,    28,    29,    51,   119,     2,     3,    49,
-     2,     3,     2,     3,    22,   120,   203,   112,   145,   185,
-   101,   223,    73,    74,    43,    21,    22,   229,    79,   225,
-   115,    63,    51,    57,    85,   175,    31,   416,   281,    31,
-   360,    31,   211,    22,    95,   381,   106,    38,   181,   457,
-    75,     1,   116,     1,     1,   133,     9,     0,     2,     3,
-    39,   133,     0,    10,    38,     9,    10,    11,    30,    36,
-   566,    25,   111,     5,    76,     7,    20,   102,    22,    81,
-     3,    35,    36,    37,   103,    76,    59,    31,   107,     3,
-     4,    58,    46,    60,   502,   180,   201,   116,    38,    43,
-    54,   125,    76,    82,    82,    49,   442,    51,    31,     3,
-     4,    59,   137,    57,     3,     4,     4,   212,     6,     7,
-   616,   287,   101,    76,    12,    13,    14,    82,   223,    59,
-     3,     4,    82,    59,   229,    82,    76,   176,   133,   635,
-    28,   461,   638,   182,   640,   278,    27,   555,   173,   174,
-   290,    59,   648,   217,   133,   206,   492,   221,   236,   103,
-   220,   185,   106,   107,   236,   119,   639,   410,    82,   224,
-    77,   150,   116,   152,    81,   230,   130,    50,    59,    60,
-    30,   125,    27,   238,   680,    30,     3,   226,    82,    77,
-    78,    36,     7,    82,   667,   150,    30,   152,   217,   250,
-    77,    76,   221,   582,    38,   237,    81,   239,    77,    59,
-    60,     1,    81,    30,     4,     5,     6,     7,   257,   244,
-    10,   390,    12,    13,    14,     3,     4,    82,   323,     7,
-   325,   375,    77,    50,   378,    50,    81,   233,    28,   235,
-   367,   236,    59,    60,    59,    60,   285,     3,     4,    77,
-   477,   587,    30,    81,   420,    30,   235,   236,   398,    82,
-    76,   205,   216,   287,   289,    81,   462,    76,   437,   402,
-   497,   440,    50,   217,    30,    81,   220,   221,     9,   360,
-   361,    59,    60,     3,    59,    60,    59,     7,   296,    76,
-   403,     3,    82,    76,    50,   390,    76,    76,    81,   295,
-   296,    81,   310,    59,    60,    77,   331,    78,   474,    81,
-    30,     4,     5,     6,     7,    50,   401,   296,    30,    12,
-    13,    14,   407,    78,    59,    60,    76,   460,   383,   384,
-    50,   310,   387,   428,   467,    28,    76,   281,    50,    59,
-    60,   360,   361,   438,    77,   440,    82,    59,    81,   404,
-   405,   406,   296,   408,   409,    77,    77,     1,    76,    81,
-     4,     5,     6,     7,   389,     3,     4,   494,    12,    13,
-    14,    38,   418,    59,    60,   371,   372,    59,   433,    27,
-    59,    60,    77,   402,    28,     9,    81,    77,    77,   429,
-    76,    81,    30,   372,    77,   522,   420,    76,    81,   418,
-    38,     4,     1,     6,     7,     4,    83,     6,     7,    12,
-    13,    14,    50,    12,    13,    14,   360,   361,    59,    60,
-   364,    59,   447,   508,   463,    28,   481,    36,   630,    28,
-   632,     1,    31,     3,     4,    76,     3,     4,    82,    36,
-     1,   460,   461,     4,    77,     6,     7,    50,   467,   403,
-   474,    12,    13,    14,    81,   494,    59,    60,   402,   484,
-   511,    78,   517,    76,     3,     4,   410,    28,     7,   494,
-    31,     3,   416,    38,   418,     7,    77,    78,    77,    78,
-    76,    59,    60,   522,    76,   429,    76,   674,    59,    60,
-   617,    30,    77,    78,   533,   682,    83,   522,    30,   494,
-   551,    83,   494,    76,   494,    32,   611,    76,   563,   534,
-    76,    50,    50,    51,    52,    36,   460,   461,    50,    83,
-    59,     3,     4,   467,    78,   564,    78,    59,   567,   568,
-   657,   658,    78,   541,    38,   630,   575,   632,   584,   558,
-    59,    60,   582,    83,   540,   541,    77,    78,    30,     3,
-   494,   590,     3,     4,    59,    60,   551,    77,   597,   551,
-    78,   551,   541,    27,    76,   584,    30,    81,    50,   608,
-   149,    78,    36,    89,    90,   154,   155,    59,   617,    30,
+    39,    20,    27,    28,    29,    51,   203,     2,     3,    49,
+     2,     3,     2,     3,    22,    21,    22,   115,   145,   120,
+   223,   185,   112,    57,    43,    22,   229,   119,   181,   225,
+    63,   211,    51,   101,   457,   175,    31,   416,   281,    31,
+   106,    31,    39,   360,   133,     1,    30,     1,     1,   381,
+    75,   566,     9,   133,     3,     4,   116,    10,     2,     3,
+    38,     3,     4,     3,     4,     9,    10,    11,    73,    74,
+    38,    38,   111,     0,    79,   477,    20,   102,    22,   502,
+    85,    77,   180,     3,   103,    82,   640,    31,   107,    76,
+    95,   125,     3,     4,    81,   497,     0,   116,    76,    43,
+   201,    50,   617,    59,   101,    49,    25,    51,    76,    76,
+   442,    31,   137,    57,   668,    76,    35,    36,    37,    76,
+    82,   636,   212,   287,   639,   278,   641,    46,    82,    82,
+    77,    78,   555,   223,   649,    54,   133,   176,   133,   229,
+    82,    76,    82,   182,   461,    59,    81,   236,   173,   174,
+   290,   185,    59,   150,   220,   152,   236,   217,    36,   103,
+   492,   221,   106,   107,    30,   375,   681,   410,   378,     3,
+     4,    82,   116,     7,    76,     4,     5,     6,     7,    81,
+    58,   125,    60,    12,    13,    14,    76,   226,   150,    30,
+   152,    81,    59,    59,    60,    82,    30,    38,   217,    28,
+   119,   206,   221,   582,   237,    77,   239,     3,     4,    81,
+   390,   130,     4,    77,     6,     7,    50,    81,   257,   244,
+    12,    13,    14,     3,     4,    59,    60,   233,     1,   235,
+     3,     4,    76,   323,    30,   325,    28,    81,   235,   236,
+   367,   236,    38,     3,     4,   250,   285,    59,    77,   402,
+    30,    27,     7,   287,    50,   587,   420,   437,   398,    50,
+   440,   205,    82,    59,   289,     5,   462,     7,    59,    60,
+    50,     3,    82,   217,     3,     7,   220,   221,     7,    59,
+    60,    89,    90,    59,    60,    77,    78,    30,   296,   295,
+   296,    81,   360,   361,     9,    50,    59,   216,    30,   296,
+   390,    30,   310,   401,    59,    60,   331,   460,    77,   407,
+   474,   403,    81,   310,   467,    77,    59,    60,    50,    81,
+     1,    50,    76,     4,     5,     6,     7,    59,    60,    76,
+    59,    12,    13,    14,    59,    60,    78,   281,   428,    59,
+    60,   360,   361,    50,    51,    52,    27,    28,   438,    30,
+   440,    76,   296,    77,    77,    36,    76,     1,    81,    78,
+     4,     5,     6,     7,   389,   371,   372,   494,    12,    13,
+    14,     3,   418,    59,    60,   372,     3,    77,    59,    60,
+    76,    81,    76,   402,    28,    27,   420,    77,    30,   429,
+    76,    81,    38,    77,    36,   522,    77,    81,    30,   418,
+    81,    82,     1,    30,     3,     4,     5,     6,     7,    82,
+   508,    10,    76,    12,    13,    14,   360,   361,    50,    59,
+   364,    77,   447,    50,   463,    81,    27,    59,   631,    28,
+   633,    30,    59,    60,     9,    77,    59,    60,    82,    81,
+   474,   460,   461,     6,     7,    83,   224,    77,   467,    12,
+    13,    14,   230,    59,    60,   494,    59,    60,   402,   484,
+   238,    77,    78,     3,     4,    36,   410,     7,    77,   494,
+    77,    78,   416,    81,   418,    59,    60,    76,   675,     4,
+     5,     6,     7,   522,   403,   429,   683,    12,    13,    14,
+    30,   618,    36,    78,   533,    76,    76,   522,    76,   494,
+    38,    83,   494,    28,   494,    30,   511,    76,    76,   534,
+    50,   612,    76,    83,    76,    36,   460,   461,    83,    59,
+    78,     3,     4,   467,    78,   564,    78,    32,   567,   568,
+    38,   658,   659,   541,   540,   541,   575,    83,   584,   558,
+    76,   631,   582,   633,   541,     3,   551,    77,    30,    81,
+   494,   590,    77,    38,    78,    78,   551,    38,   597,   551,
+    78,   551,    78,    78,    81,   584,    38,    78,    50,   608,
+   149,    83,    59,    59,    38,   154,   155,    59,    77,   618,
    159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,   617,    78,    38,    59,    60,   541,     1,    50,
-   639,     4,     5,     6,     7,    38,    78,   551,    59,    12,
-    13,    14,    81,    77,   558,    54,    55,    81,    57,    58,
-    59,    60,   661,    78,    27,    28,    83,    30,   667,    78,
-    38,    59,    59,    36,    59,    77,    38,    76,   582,    77,
-   584,     7,    38,     1,    16,     3,     4,     5,     6,     7,
-     8,     9,    78,    11,    12,    13,    14,    15,    77,    17,
+   169,   170,    59,   618,    77,     7,    38,   541,    77,    77,
+    16,   640,    78,    59,    77,   383,   384,   551,    77,   387,
+     4,     5,     6,     7,   558,    59,    76,    17,    12,    13,
+    14,     9,    77,   662,    76,    76,   404,   405,   406,   668,
+   408,   409,    77,    76,    28,    59,    30,    77,   582,    77,
+   584,     3,     4,     5,     6,     7,     1,    77,     3,     4,
+     5,     6,     7,     8,     9,   433,    11,    12,    13,    14,
+    15,    81,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    76,    33,    34,
+   259,   260,    77,    77,    76,    40,    77,    77,    43,     0,
+     3,     4,     0,    48,    49,    50,   290,   567,    27,    54,
+    55,    30,   212,   481,    59,   438,   551,    36,     1,    53,
+     3,     4,   289,     6,     7,     8,     9,    30,    11,    12,
+    13,    14,    77,    78,    79,    80,   419,    82,   426,   188,
+    59,    60,   500,   333,   456,    28,    29,    50,    31,   517,
+    33,    34,   236,   428,   244,   331,    59,    40,    77,   325,
+    43,   330,    81,   440,   391,    48,    49,    50,   438,   618,
+   618,    54,    55,   342,   663,   665,    59,     1,   364,    -1,
+     4,     5,     6,     7,    -1,   284,    10,    -1,    12,    13,
+    14,    -1,    -1,    -1,    -1,   563,    79,    80,    -1,    82,
+    -1,    -1,    -1,    -1,    28,   374,    -1,     5,     6,     7,
+    -1,   579,    -1,    -1,    12,    13,    14,    48,    49,    50,
+    51,    52,    -1,     1,   393,     3,     4,     5,     6,     7,
+     8,     9,    30,    11,    12,    13,    14,    15,    -1,    17,
     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-    28,    29,    30,    31,    77,    33,    34,    77,    81,    82,
-   259,   260,    40,     3,     4,    43,    59,     7,    77,    77,
-    48,    49,    50,    76,    59,    17,    54,    55,    77,    54,
-    55,    59,    57,    58,    59,    60,     5,     6,     7,    76,
-    30,     9,    76,    12,    13,    14,    77,    76,    59,    77,
-    78,    79,    80,     1,    82,     3,     4,     5,     6,     7,
-    50,    30,    10,    77,    12,    13,    14,    77,    77,    59,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    28,   330,    30,    81,     1,    76,     3,     4,     5,     6,
-     7,     8,     9,   342,    11,    12,    13,    14,    15,    77,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,    76,    33,    34,     3,     4,
-     5,     6,     7,    40,    77,   374,    43,    77,    76,     0,
-     0,    48,    49,    50,   290,   567,   212,    54,    55,   438,
-   551,    53,    59,   419,   393,   289,     1,   188,   426,     4,
-     5,     6,     7,   333,   500,    10,   456,    12,    13,    14,
-    77,   236,    79,    80,     1,    82,     3,     4,   325,   428,
-   244,     8,     9,    28,    11,    30,   391,   426,    15,   440,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,   331,    29,   438,    31,   617,    33,    34,   617,   448,
-   662,   664,   284,    40,   364,    -1,    43,    -1,   457,   458,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    76,    59,    -1,    -1,     5,     6,     7,   477,     6,
-     7,   480,    12,    13,    14,    12,    13,    14,    -1,    -1,
-    77,    78,    79,    80,    -1,    82,    -1,    -1,   497,    -1,
-    -1,   500,    -1,   502,     4,     5,     6,     7,    -1,    -1,
-    -1,    -1,    12,    13,    14,     1,    -1,     3,     4,   518,
-    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    28,    15,
-   529,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,   552,    40,    -1,   555,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,    -1,    -1,    59,    -1,    -1,    -1,    77,    40,    41,
-    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    77,    -1,    79,    80,     1,    82,     3,     4,    -1,
-    -1,    -1,     8,     9,   603,    11,    -1,    -1,    -1,    15,
+    28,    29,    30,    31,    -1,    33,    34,   426,    82,     5,
+     6,     7,    40,    -1,    -1,    43,    12,    13,    14,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,   448,
+     1,    59,    -1,     4,    -1,     6,     7,    -1,   457,   458,
+    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    77,
+    -1,    79,    80,    -1,    82,    -1,    -1,    28,   477,    -1,
+    31,   480,    54,    55,    -1,    57,    58,    59,    60,    -1,
+    -1,    -1,     1,    -1,     3,     4,    -1,    -1,   497,     8,
+     9,   500,    11,   502,    76,    -1,    15,    -1,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,   518,
+    29,    -1,    31,    -1,    33,    34,    77,    78,    -1,    -1,
+   529,    40,     3,     4,    43,    -1,     7,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
+    59,    -1,    -1,   552,    -1,    -1,   555,    -1,    -1,    30,
+    45,    46,    47,    48,    49,    50,    51,    52,    77,    78,
+    79,    80,    -1,    82,    -1,     1,    -1,     3,     4,    50,
+    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    59,    15,
     -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    48,
-    49,    50,    51,    52,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,    -1,     1,    59,     3,     4,    -1,     6,     7,     8,
-     9,    -1,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
-    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,    28,
+    26,    27,    -1,    29,   603,    31,    -1,    33,    34,    -1,
+     4,     5,     6,     7,    40,    -1,    -1,    43,    12,    13,
+    14,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,    -1,     1,    59,    28,     4,     5,     6,     7,    -1,
+    -1,    10,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
+    -1,    77,    -1,    79,    80,     1,    82,     3,     4,    28,
+    -1,    30,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
+    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,
+    59,    60,    48,    49,    50,    -1,    -1,    76,    54,    55,
+    -1,    -1,     1,    59,     3,     4,    -1,    -1,    -1,     8,
+     9,    -1,    11,    46,    47,    48,    49,    50,    51,    52,
+    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,
     29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
     -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,     1,
-    59,     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,
-    -1,    -1,    -1,    -1,    -1,    -1,     4,     5,     6,     7,
-    79,    80,    10,    82,    12,    13,    14,    29,    -1,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    28,    43,    30,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,     1,
-    -1,     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,
-    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
-    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,     1,
-    -1,     3,    -1,    -1,    -1,    -1,     8,     9,    -1,    11,
-    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
-    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,
-    -1,    33,    34,    -1,    36,    -1,    -1,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,     1,
-    -1,     3,    -1,    -1,    -1,    -1,     8,     9,    -1,    11,
-    -1,    -1,    -1,     4,     5,     6,     7,    79,    80,    -1,
-    82,    12,    13,    14,    -1,    -1,    -1,    29,    -1,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    28,    40,    30,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,     1,    -1,     3,    59,    -1,    -1,
-    -1,     8,     9,     1,    11,    -1,     4,     5,     6,     7,
-    -1,    -1,    -1,    -1,    12,    13,    14,    79,    80,    -1,
-    82,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    27,
-    28,    -1,    30,    40,    -1,    -1,    43,    -1,    36,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    45,    46,    47,    48,    49,    50,    51,
-    52,    59,    60,    -1,    -1,     1,    -1,    -1,     4,     5,
-     6,     7,    79,    80,    -1,    82,    12,    13,    14,    77,
-     3,    -1,    -1,    81,    82,     8,     9,    -1,    11,    -1,
-    -1,    27,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,
-    36,    -1,    -1,    -1,    -1,    -1,    29,     3,    31,    -1,
-    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,    -1,
-    43,    -1,    -1,    59,    60,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    29,    -1,    31,    59,    33,    34,    -1,
-    -1,    77,    -1,    -1,    40,    81,    82,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,    55,
-    83,    -1,     3,    59,    -1,    -1,    -1,     8,     9,    -1,
-    11,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    79,    80,    -1,    -1,    83,    29,     3,
-    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,
+    59,    60,     1,    -1,     3,     4,    -1,    -1,    -1,     8,
+     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
+    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,
+    59,    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,
+     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
+    29,    -1,    31,    -1,    33,    34,    -1,    36,    -1,    -1,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,
+    59,    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,
+     9,    -1,    11,     1,    -1,    -1,     4,    -1,     6,     7,
+    79,    80,    -1,    82,    12,    13,    14,    -1,    -1,    -1,
+    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    28,    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,     1,    -1,     3,
+    59,    -1,    -1,    -1,     8,     9,     1,    11,    -1,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    79,    80,    -1,    82,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    27,    28,    -1,    30,    40,    -1,    -1,    43,
+    -1,    36,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    -1,
+    -1,     4,     5,     6,     7,    79,    80,    -1,    82,    12,
+    13,    14,    77,     3,    -1,    -1,    81,    82,     8,     9,
+    -1,    11,    -1,    -1,    27,    28,    -1,    30,     4,     5,
+     6,     7,    -1,    36,    10,    -1,    12,    13,    14,    29,
+     3,    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,
+    40,    -1,    28,    43,    30,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,
+    33,    34,    -1,    -1,    77,    -1,    -1,    40,    81,    82,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,
+    80,    54,    55,    83,    -1,     3,    59,    -1,    -1,    -1,
+     8,     9,    -1,    11,    -1,     4,     5,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    79,    80,    -1,    -1,
+    83,    29,     3,    31,    -1,    33,    34,     8,     9,    28,
+    11,    30,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    29,    -1,
+    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
     -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,
-    54,    55,    83,    -1,     3,    59,    -1,    -1,    -1,     8,
-     9,    -1,    11,    42,    43,    44,    45,    46,    47,    48,
+    -1,    79,    80,    54,    55,    83,    -1,     3,    59,    -1,
+    -1,    -1,     8,     9,    -1,    11,    41,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    79,    80,
+    -1,    -1,    83,    29,     3,    31,    -1,    33,    34,     8,
+     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    29,    -1,    31,    59,    33,    34,    -1,     4,    -1,     6,
+     7,    40,    -1,    -1,    43,    12,    13,    14,    -1,    48,
+    49,    50,    -1,    79,    80,    54,    55,    83,    -1,     3,
+    59,    28,    -1,    -1,     8,     9,    -1,    11,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
+    79,    80,    -1,    50,    83,    29,    -1,    31,    -1,    33,
+    34,    10,    59,    60,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    35,    36,    37,    38,
+    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
     49,    50,    51,    52,    -1,    79,    80,    -1,    -1,    83,
-    29,     3,    31,    -1,    33,    34,     8,     9,    -1,    11,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    29,    -1,    31,
-    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    79,    80,    54,    55,    83,    -1,     3,    59,    -1,    -1,
-    -1,     8,     9,    -1,    11,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    -1,    -1,    79,    80,    -1,
-    -1,    83,    29,    -1,    31,    -1,    33,    34,    10,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    35,    36,    37,    38,    39,    40,    41,
+     3,     4,     5,     6,     7,     8,     9,    -1,    11,    12,
+    13,    14,    15,    -1,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    30,    -1,
+    -1,    54,    55,    35,    36,    37,    59,    39,    40,    41,
     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    -1,    79,    80,    -1,    -1,    83,     3,     4,     5,
-     6,     7,     8,     9,    -1,    11,    12,    13,    14,    15,
-    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    30,    -1,    -1,    54,    55,
-    35,    36,    37,    59,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
-    -1,    77,    -1,    79,    80,    -1,    82,     3,     4,    -1,
-    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
-    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,     3,    -1,    59,    -1,    -1,     8,     9,    -1,    11,
-    46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
-    -1,    77,    -1,    79,    80,    -1,    82,    29,    -1,    31,
+    52,    -1,    -1,    -1,    77,    -1,    79,    80,    -1,    82,
+     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,
+    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,     3,    -1,    59,    -1,    -1,     8,
+     9,    -1,    11,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    -1,    77,    -1,    79,    80,    -1,    82,
+    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
+    59,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
+    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    79,    80,    -1,    82,    -1,    -1,    28,    29,    30,    31,
     -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
     -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,    -1,    -1,    59,     3,     4,
-     5,     6,     7,     8,     9,    -1,    11,    12,    13,    14,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    -1,
-    82,    -1,    -1,    28,    29,    30,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,     3,     4,    59,     6,     7,     8,     9,    -1,
-    11,    12,    13,    14,    -1,     3,    -1,    -1,    -1,    -1,
-     8,     9,    -1,    11,    79,    80,    -1,    28,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    29,    43,    31,    -1,    33,    34,    48,    49,    50,
-    -1,    -1,    40,    54,    55,    43,    -1,    -1,    59,    -1,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,     3,    -1,
-    -1,    59,    -1,     8,     9,    -1,    11,    -1,    79,    80,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,
-    -1,    79,    80,    -1,    29,     3,    31,    -1,    33,    34,
+    -1,    -1,    54,    55,    -1,     3,     4,    59,     6,     7,
+     8,     9,    -1,    11,    12,    13,    14,    -1,     3,    -1,
+    -1,    -1,    -1,     8,     9,    -1,    11,    79,    80,    -1,
+    28,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    29,    43,    31,    -1,    33,    34,
+    48,    49,    50,    -1,    -1,    40,    54,    55,    43,    -1,
+    -1,    59,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,     3,    -1,    -1,    59,    -1,     8,     9,    -1,    11,
+    -1,    79,    80,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    77,    -1,    79,    80,    -1,    29,     3,    31,
+    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    54,    55,    29,     3,    31,    59,    33,    34,
      8,     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,
     55,    29,     3,    31,    59,    33,    34,     8,     9,    -1,
     11,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
-    48,    49,    50,    -1,    79,    80,    54,    55,    29,     3,
-    31,    59,    33,    34,     8,     9,    -1,    11,    -1,    40,
+    48,    49,    50,    -1,    79,    80,    54,    55,    29,    -1,
+    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
     -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    79,    80,    54,    55,    29,    -1,    31,    59,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,
-    54,    55,    -1,    -1,     1,    59,     3,     4,     5,     6,
-     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    79,    80,    -1,    -1,    -1,
-    27,    28,    -1,    30,    31,     4,     5,     6,     7,     4,
-     5,     6,     7,    12,    13,    14,    -1,    12,    13,    14,
-    -1,    -1,    10,    50,    -1,    -1,    -1,    -1,    -1,    28,
-    -1,    30,    59,    28,    -1,    30,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    37,
-    77,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,
-    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    35,    36,    37,    83,    39,    40,    41,    42,
+    -1,    79,    80,    54,    55,    -1,    -1,     1,    59,     3,
+     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
+    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
+    -1,    -1,    -1,    27,    28,    -1,    30,    31,    37,    -1,
+    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    -1,    10,    50,    -1,    -1,    -1,
+    -1,    -1,    35,    36,    37,    59,    39,    40,    41,    42,
     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+    35,    36,    37,    77,    39,    40,    41,    42,    43,    44,
     45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    37,
     83,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    37,    -1,    39,    40,    41,
-    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52
+    48,    49,    50,    51,    52,    -1,    -1,    -1,    83,    35,
+    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    40,    41,    42,
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/lib/bison.simple"
+#line 3 "/usr/local/gnu/share/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1399,7 +1390,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/lib/bison.simple"
+#line 196 "/usr/local/gnu/share/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -3529,60 +3520,63 @@ case 365:
     break;}
 case 366:
 #line 2023 "c-parse.y"
-{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
+{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
                  if (label)
-                   expand_label (label);
+                   {
+                     expand_label (label);
+                     decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
+                   }
                  position_after_white_space (); ;
     break;}
 case 367:
-#line 2035 "c-parse.y"
+#line 2038 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
 case 368:
-#line 2038 "c-parse.y"
+#line 2041 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
 case 369:
-#line 2043 "c-parse.y"
+#line 2046 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 371:
-#line 2050 "c-parse.y"
+#line 2053 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 374:
-#line 2057 "c-parse.y"
+#line 2060 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 375:
-#line 2062 "c-parse.y"
+#line 2065 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 376:
-#line 2067 "c-parse.y"
+#line 2070 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 377:
-#line 2069 "c-parse.y"
+#line 2072 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
 case 378:
-#line 2075 "c-parse.y"
+#line 2078 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
 case 379:
-#line 2079 "c-parse.y"
+#line 2082 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
 case 381:
-#line 2087 "c-parse.y"
+#line 2090 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3592,19 +3586,19 @@ case 381:
                  clear_parm_order (); ;
     break;}
 case 382:
-#line 2095 "c-parse.y"
+#line 2098 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 383:
-#line 2097 "c-parse.y"
+#line 2100 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 384:
-#line 2103 "c-parse.y"
+#line 2106 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 385:
-#line 2105 "c-parse.y"
+#line 2108 "c-parse.y"
 { yyval.ttype = get_parm_info (0);
                  /* Gcc used to allow this as an extension.  However, it does
                     not work for all targets, and thus has been disabled.
@@ -3616,23 +3610,23 @@ case 385:
                ;
     break;}
 case 386:
-#line 2115 "c-parse.y"
+#line 2118 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
 case 387:
-#line 2117 "c-parse.y"
+#line 2120 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 388:
-#line 2122 "c-parse.y"
+#line 2125 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 389:
-#line 2124 "c-parse.y"
+#line 2127 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 390:
-#line 2131 "c-parse.y"
+#line 2134 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3643,7 +3637,7 @@ case 390:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 391:
-#line 2140 "c-parse.y"
+#line 2143 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3654,7 +3648,7 @@ case 391:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 392:
-#line 2149 "c-parse.y"
+#line 2152 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3665,7 +3659,7 @@ case 392:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 393:
-#line 2158 "c-parse.y"
+#line 2161 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3676,7 +3670,7 @@ case 393:
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 394:
-#line 2168 "c-parse.y"
+#line 2171 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3687,19 +3681,19 @@ case 394:
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 395:
-#line 2182 "c-parse.y"
+#line 2185 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
 case 396:
-#line 2186 "c-parse.y"
+#line 2189 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
 case 398:
-#line 2194 "c-parse.y"
+#line 2197 "c-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
@@ -3707,29 +3701,29 @@ case 398:
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 399:
-#line 2204 "c-parse.y"
+#line 2207 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 400:
-#line 2206 "c-parse.y"
+#line 2209 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 401:
-#line 2212 "c-parse.y"
+#line 2215 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 402:
-#line 2214 "c-parse.y"
+#line 2217 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 403:
-#line 2219 "c-parse.y"
+#line 2222 "c-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/lib/bison.simple"
+#line 498 "/usr/local/gnu/share/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3925,5 +3919,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 2223 "c-parse.y"
+#line 2226 "c-parse.y"
 
index c0bf107..5536e64 100644 (file)
@@ -2214,12 +2214,15 @@ label:    CASE expr_no_commas ':'
                      error_with_decl (duplicate, "this is the first default label");
                    }
                  position_after_white_space (); }
-       | identifier ':'
+       | identifier ':' maybe_attribute
                { tree label = define_label (input_filename, lineno, $1);
                  stmt_count++;
                  emit_nop ();
                  if (label)
-                   expand_label (label);
+                   {
+                     expand_label (label);
+                     decl_attributes (label, $3, NULL_TREE);
+                   }
                  position_after_white_space (); }
        ;
 
index aa5a5b4..1d6064c 100644 (file)
@@ -2019,12 +2019,15 @@ label:    CASE expr_no_commas ':'
                      error_with_decl (duplicate, "this is the first default label");
                    }
                  position_after_white_space (); }
-       | identifier ':'
+       | identifier ':' maybe_attribute
                { tree label = define_label (input_filename, lineno, $1);
                  stmt_count++;
                  emit_nop ();
                  if (label)
-                   expand_label (label);
+                   {
+                     expand_label (label);
+                     decl_attributes (label, $3, NULL_TREE);
+                   }
                  position_after_white_space (); }
        ;
 
index 3ba99f5..ce9cda3 100644 (file)
@@ -38,6 +38,14 @@ Boston, MA 02111-1307, USA.  */
 # define __attribute__(x)
 #endif
 
+#ifndef ATTRIBUTE_UNUSED_LABEL
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 92)
+#  define ATTRIBUTE_UNUSED_LABEL
+# else
+#  define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
+# endif /* GNUC < 2.92 */
+#endif /* ATTRIBUTE_UNUSED_LABEL */
+
 #ifndef ATTRIBUTE_UNUSED
 #define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
 #endif /* ATTRIBUTE_UNUSED */
index 9fca92f..285542d 100644 (file)
@@ -51,6 +51,9 @@ Boston, MA 02111-1307, USA.  */
 #include "rtl.h"
 #include "obstack.h"
 
+#define OUTPUT_LABEL(INDENT_STRING, LABEL_NUMBER) \
+  printf("%sL%d: ATTRIBUTE_UNUSED_LABEL\n", (INDENT_STRING), (LABEL_NUMBER))
+
 static struct obstack obstack;
 struct obstack *rtl_obstack = &obstack;
 
@@ -1103,7 +1106,7 @@ write_tree_1 (tree, prevpos, afterward, type)
   printf ("\n");
   if (tree && tree->subroutine_number == 0)
     {
-      printf ("  L%d:\n", tree->number);
+      OUTPUT_LABEL ("  ", tree->number);
       tree->label_needed = 0;
     }
 
@@ -1239,7 +1242,7 @@ write_tree_1 (tree, prevpos, afterward, type)
 
       if (p->label_needed && (p->retest_mode || p->retest_code))
        {
-         printf ("%sL%d:\n", indents[indent - 2], p->number);
+         OUTPUT_LABEL (indents[indent - 2], p->number);
          p->label_needed = 0;
        }
 
@@ -1330,7 +1333,7 @@ write_tree_1 (tree, prevpos, afterward, type)
       /* Now that most mode and code tests have been done, we can write out
         a label for an inner node, if we haven't already.  */
       if (p->label_needed)
-       printf ("%sL%d:\n", indents[indent - 2], p->number);
+       OUTPUT_LABEL (indents[indent - 2], p->number);
 
       inner_indent = indent;
 
@@ -1563,7 +1566,7 @@ write_tree (tree, prevpos, afterward, initial, type)
 
   if (! initial && tree->subroutine_number > 0)
     {
-      printf (" L%d:\n", tree->number);
+      OUTPUT_LABEL (" ", tree->number);
 
       if (afterward)
        {
index 2cf6252..cdf1a3b 100644 (file)
@@ -1340,7 +1340,7 @@ In order to get a warning about an unused function parameter, you must
 specify both @samp{-W} and @samp{-Wunused}.
 
 To suppress this warning for an expression, simply cast it to void.  For
-unused variables and parameters, use the @samp{unused} attribute
+unused variables, parameters and labels, use the @samp{unused} attribute
 (@pxref{Variable Attributes}).
 
 @item -Wuninitialized
index 9215f18..e0c0d62 100644 (file)
@@ -146,7 +146,7 @@ extern void yyprint                 PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         951
+#define        YYFINAL         952
 #define        YYFLAG          -32768
 #define        YYNTBASE        84
 
@@ -226,26 +226,26 @@ static const short yyprhs[] = {     0,
   1048,  1050,  1052,  1054,  1057,  1058,  1063,  1065,  1069,  1070,
   1071,  1079,  1085,  1088,  1089,  1090,  1091,  1104,  1105,  1112,
   1115,  1118,  1121,  1125,  1132,  1141,  1152,  1165,  1169,  1174,
-  1176,  1178,  1179,  1186,  1190,  1196,  1199,  1202,  1203,  1205,
-  1206,  1208,  1209,  1211,  1213,  1217,  1222,  1224,  1228,  1229,
-  1232,  1235,  1236,  1241,  1244,  1245,  1247,  1249,  1253,  1255,
-  1259,  1264,  1269,  1274,  1279,  1284,  1285,  1288,  1290,  1293,
-  1295,  1299,  1301,  1305,  1307,  1309,  1311,  1313,  1315,  1317,
-  1319,  1321,  1325,  1329,  1334,  1335,  1336,  1347,  1348,  1355,
-  1356,  1357,  1370,  1371,  1380,  1381,  1388,  1391,  1392,  1401,
-  1406,  1407,  1417,  1423,  1424,  1431,  1432,  1434,  1438,  1442,
-  1444,  1446,  1448,  1450,  1451,  1455,  1458,  1462,  1466,  1468,
-  1469,  1471,  1475,  1477,  1481,  1484,  1485,  1486,  1487,  1495,
-  1496,  1497,  1498,  1506,  1507,  1508,  1511,  1513,  1515,  1518,
-  1519,  1523,  1525,  1527,  1528,  1529,  1535,  1536,  1537,  1543,
-  1548,  1550,  1556,  1559,  1560,  1563,  1564,  1566,  1568,  1570,
-  1573,  1576,  1581,  1584,  1587,  1589,  1593,  1596,  1599,  1602,
-  1603,  1606,  1607,  1611,  1613,  1615,  1618,  1620,  1622,  1624,
-  1626,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
-  1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
-  1666,  1668,  1675,  1679,  1685,  1688,  1690,  1692,  1694,  1697,
-  1699,  1703,  1706,  1708,  1710,  1711,  1712,  1719,  1721,  1723,
-  1725,  1728,  1731,  1733,  1738,  1743
+  1176,  1178,  1179,  1186,  1190,  1196,  1199,  1203,  1204,  1206,
+  1207,  1209,  1210,  1212,  1214,  1218,  1223,  1225,  1229,  1230,
+  1233,  1236,  1237,  1242,  1245,  1246,  1248,  1250,  1254,  1256,
+  1260,  1265,  1270,  1275,  1280,  1285,  1286,  1289,  1291,  1294,
+  1296,  1300,  1302,  1306,  1308,  1310,  1312,  1314,  1316,  1318,
+  1320,  1322,  1326,  1330,  1335,  1336,  1337,  1348,  1349,  1356,
+  1357,  1358,  1371,  1372,  1381,  1382,  1389,  1392,  1393,  1402,
+  1407,  1408,  1418,  1424,  1425,  1432,  1433,  1435,  1439,  1443,
+  1445,  1447,  1449,  1451,  1452,  1456,  1459,  1463,  1467,  1469,
+  1470,  1472,  1476,  1478,  1482,  1485,  1486,  1487,  1488,  1496,
+  1497,  1498,  1499,  1507,  1508,  1509,  1512,  1514,  1516,  1519,
+  1520,  1524,  1526,  1528,  1529,  1530,  1536,  1537,  1538,  1544,
+  1549,  1551,  1557,  1560,  1561,  1564,  1565,  1567,  1569,  1571,
+  1574,  1577,  1582,  1585,  1588,  1590,  1594,  1597,  1600,  1603,
+  1604,  1607,  1608,  1612,  1614,  1616,  1619,  1621,  1623,  1625,
+  1627,  1629,  1631,  1633,  1635,  1637,  1639,  1641,  1643,  1645,
+  1647,  1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,
+  1667,  1669,  1676,  1680,  1686,  1689,  1691,  1693,  1695,  1698,
+  1700,  1704,  1707,  1709,  1711,  1712,  1713,  1720,  1722,  1724,
+  1726,  1729,  1732,  1734,  1739,  1744
 };
 
 static const short yyrhs[] = {    -1,
@@ -369,61 +369,61 @@ static const short yyrhs[] = {    -1,
     99,    77,     0,    77,     0,   220,     0,     0,    19,    59,
    113,    76,   221,   208,     0,    21,   107,    38,     0,    21,
    107,    10,   107,    38,     0,    22,    38,     0,    97,    38,
-     0,     0,     7,     0,     0,    99,     0,     0,   226,     0,
-   227,     0,   226,    81,   227,     0,     9,    59,    99,    76,
-     0,   115,     0,   228,    81,   115,     0,     0,   230,   231,
-     0,   233,    76,     0,     0,   234,    77,   232,   231,     0,
-     1,    76,     0,     0,    10,     0,   234,     0,   234,    81,
-    10,     0,   235,     0,   234,    81,   235,     0,   126,   123,
-   167,   143,     0,   126,   123,   168,   143,     0,   126,   123,
-   187,   143,     0,   130,   123,   168,   143,     0,   130,   123,
-   187,   143,     0,     0,   237,   238,     0,   231,     0,   239,
-    76,     0,     3,     0,   239,    81,     3,     0,    97,     0,
-   240,    81,    97,     0,    31,     0,   246,     0,   244,     0,
-   245,     0,   256,     0,   266,     0,    63,     0,    97,     0,
-   243,    81,    97,     0,    73,   243,    77,     0,    74,    97,
-    97,    77,     0,     0,     0,    61,    97,   258,    82,   247,
-   260,    78,   248,   273,    63,     0,     0,    61,    97,   258,
-   249,   273,    63,     0,     0,     0,    61,    97,    38,    97,
-   258,    82,   250,   260,    78,   251,   273,    63,     0,     0,
-    61,    97,    38,    97,   258,   252,   273,    63,     0,     0,
-    62,    97,    82,   253,   260,    78,     0,    62,    97,     0,
-     0,    62,    97,    38,    97,    82,   254,   260,    78,     0,
-    62,    97,    38,    97,     0,     0,    61,    97,    59,    97,
-    76,   258,   255,   273,    63,     0,    62,    97,    59,    97,
-    76,     0,     0,    71,    97,   258,   257,   273,    63,     0,
-     0,   259,     0,    45,   243,    45,     0,   260,   261,   262,
-     0,   262,     0,    69,     0,    70,     0,    68,     0,     0,
-   262,   263,    77,     0,   262,    77,     0,   132,   123,   264,
-     0,   188,   123,   264,     0,     1,     0,     0,   265,     0,
-   264,    81,   265,     0,   165,     0,   165,    38,   107,     0,
-    38,   107,     0,     0,     0,     0,    48,   267,   283,   268,
-   284,   269,   199,     0,     0,     0,     0,    49,   270,   283,
-   271,   284,   272,   199,     0,     0,     0,   274,   275,     0,
-   278,     0,    89,     0,   275,   278,     0,     0,   275,   276,
-    89,     0,    77,     0,     1,     0,     0,     0,    48,   279,
-   283,   280,   277,     0,     0,     0,    49,   281,   283,   282,
-   277,     0,    59,   186,    76,   292,     0,   292,     0,    59,
-   186,    76,   293,   290,     0,   293,   290,     0,     0,    77,
-   285,     0,     0,   286,     0,   287,     0,   194,     0,   286,
-   287,     0,   287,   194,     0,   126,   123,   288,    77,     0,
-   126,    77,     0,   130,    77,     0,   289,     0,   288,    81,
-   289,     0,   167,   143,     0,   168,   143,     0,   187,   143,
-     0,     0,    81,    10,     0,     0,    81,   291,   233,     0,
-   294,     0,   296,     0,   293,   296,     0,     3,     0,     4,
-     0,    72,     0,   295,     0,    12,     0,    13,     0,    14,
-     0,    15,     0,    16,     0,    17,     0,    18,     0,    19,
-     0,    20,     0,    21,     0,    22,     0,    23,     0,    24,
-     0,    25,     0,    26,     0,    27,     0,    11,     0,    28,
-     0,    29,     0,     6,     0,     7,     0,   294,    38,    59,
-   186,    76,    97,     0,   294,    38,    97,     0,    38,    59,
-   186,    76,    97,     0,    38,    97,     0,   294,     0,   298,
-     0,   300,     0,   298,   300,     0,   101,     0,   294,    38,
-   299,     0,    38,   299,     0,    99,     0,    67,     0,     0,
-     0,    60,   303,   301,   304,   297,    83,     0,   294,     0,
-   306,     0,   307,     0,   306,   307,     0,   294,    38,     0,
-    38,     0,    64,    59,   305,    76,     0,    71,    59,    97,
-    76,     0,    66,    59,   186,    76,     0
+   143,     0,     0,     7,     0,     0,    99,     0,     0,   226,
+     0,   227,     0,   226,    81,   227,     0,     9,    59,    99,
+    76,     0,   115,     0,   228,    81,   115,     0,     0,   230,
+   231,     0,   233,    76,     0,     0,   234,    77,   232,   231,
+     0,     1,    76,     0,     0,    10,     0,   234,     0,   234,
+    81,    10,     0,   235,     0,   234,    81,   235,     0,   126,
+   123,   167,   143,     0,   126,   123,   168,   143,     0,   126,
+   123,   187,   143,     0,   130,   123,   168,   143,     0,   130,
+   123,   187,   143,     0,     0,   237,   238,     0,   231,     0,
+   239,    76,     0,     3,     0,   239,    81,     3,     0,    97,
+     0,   240,    81,    97,     0,    31,     0,   246,     0,   244,
+     0,   245,     0,   256,     0,   266,     0,    63,     0,    97,
+     0,   243,    81,    97,     0,    73,   243,    77,     0,    74,
+    97,    97,    77,     0,     0,     0,    61,    97,   258,    82,
+   247,   260,    78,   248,   273,    63,     0,     0,    61,    97,
+   258,   249,   273,    63,     0,     0,     0,    61,    97,    38,
+    97,   258,    82,   250,   260,    78,   251,   273,    63,     0,
+     0,    61,    97,    38,    97,   258,   252,   273,    63,     0,
+     0,    62,    97,    82,   253,   260,    78,     0,    62,    97,
+     0,     0,    62,    97,    38,    97,    82,   254,   260,    78,
+     0,    62,    97,    38,    97,     0,     0,    61,    97,    59,
+    97,    76,   258,   255,   273,    63,     0,    62,    97,    59,
+    97,    76,     0,     0,    71,    97,   258,   257,   273,    63,
+     0,     0,   259,     0,    45,   243,    45,     0,   260,   261,
+   262,     0,   262,     0,    69,     0,    70,     0,    68,     0,
+     0,   262,   263,    77,     0,   262,    77,     0,   132,   123,
+   264,     0,   188,   123,   264,     0,     1,     0,     0,   265,
+     0,   264,    81,   265,     0,   165,     0,   165,    38,   107,
+     0,    38,   107,     0,     0,     0,     0,    48,   267,   283,
+   268,   284,   269,   199,     0,     0,     0,     0,    49,   270,
+   283,   271,   284,   272,   199,     0,     0,     0,   274,   275,
+     0,   278,     0,    89,     0,   275,   278,     0,     0,   275,
+   276,    89,     0,    77,     0,     1,     0,     0,     0,    48,
+   279,   283,   280,   277,     0,     0,     0,    49,   281,   283,
+   282,   277,     0,    59,   186,    76,   292,     0,   292,     0,
+    59,   186,    76,   293,   290,     0,   293,   290,     0,     0,
+    77,   285,     0,     0,   286,     0,   287,     0,   194,     0,
+   286,   287,     0,   287,   194,     0,   126,   123,   288,    77,
+     0,   126,    77,     0,   130,    77,     0,   289,     0,   288,
+    81,   289,     0,   167,   143,     0,   168,   143,     0,   187,
+   143,     0,     0,    81,    10,     0,     0,    81,   291,   233,
+     0,   294,     0,   296,     0,   293,   296,     0,     3,     0,
+     4,     0,    72,     0,   295,     0,    12,     0,    13,     0,
+    14,     0,    15,     0,    16,     0,    17,     0,    18,     0,
+    19,     0,    20,     0,    21,     0,    22,     0,    23,     0,
+    24,     0,    25,     0,    26,     0,    27,     0,    11,     0,
+    28,     0,    29,     0,     6,     0,     7,     0,   294,    38,
+    59,   186,    76,    97,     0,   294,    38,    97,     0,    38,
+    59,   186,    76,    97,     0,    38,    97,     0,   294,     0,
+   298,     0,   300,     0,   298,   300,     0,   101,     0,   294,
+    38,   299,     0,    38,   299,     0,    99,     0,    67,     0,
+     0,     0,    60,   303,   301,   304,   297,    83,     0,   294,
+     0,   306,     0,   307,     0,   306,   307,     0,   294,    38,
+     0,    38,     0,    64,    59,   305,    76,     0,    71,    59,
+    97,    76,     0,    66,    59,   186,    76,     0
 };
 
 #endif
@@ -467,26 +467,26 @@ static const short yyrline[] = { 0,
   1785,  1790,  1793,  1794,  1811,  1816,  1819,  1831,  1833,  1843,
   1853,  1854,  1862,  1865,  1877,  1881,  1898,  1908,  1917,  1922,
   1927,  1932,  1936,  1940,  1951,  1958,  1965,  1972,  1983,  1989,
-  1992,  1997,  2020,  2054,  2085,  2116,  2131,  2142,  2146,  2150,
-  2153,  2158,  2160,  2163,  2165,  2169,  2174,  2177,  2183,  2188,
-  2193,  2195,  2204,  2205,  2211,  2213,  2223,  2225,  2229,  2232,
-  2238,  2248,  2257,  2266,  2276,  2290,  2295,  2300,  2302,  2311,
-  2314,  2319,  2322,  2326,  2334,  2336,  2337,  2338,  2339,  2340,
-  2354,  2357,  2361,  2367,  2373,  2380,  2385,  2391,  2398,  2404,
-  2410,  2415,  2421,  2428,  2434,  2440,  2446,  2454,  2460,  2466,
-  2474,  2481,  2487,  2496,  2503,  2511,  2516,  2519,  2529,  2531,
-  2534,  2536,  2537,  2540,  2545,  2546,  2563,  2570,  2576,  2580,
-  2583,  2584,  2587,  2595,  2601,  2610,  2620,  2627,  2631,  2636,
-  2645,  2652,  2656,  2666,  2668,  2669,  2671,  2673,  2674,  2675,
-  2676,  2678,  2680,  2683,  2691,  2698,  2698,  2705,  2711,  2713,
-  2719,  2724,  2729,  2738,  2740,  2746,  2748,  2751,  2753,  2754,
-  2755,  2758,  2764,  2766,  2770,  2773,  2780,  2786,  2791,  2798,
-  2803,  2808,  2813,  2820,  2824,  2827,  2833,  2835,  2836,  2837,
-  2840,  2842,  2843,  2844,  2845,  2846,  2847,  2848,  2849,  2850,
-  2851,  2852,  2853,  2854,  2855,  2856,  2857,  2858,  2859,  2860,
-  2860,  2863,  2869,  2874,  2879,  2885,  2887,  2890,  2892,  2899,
-  2911,  2916,  2922,  2924,  2930,  2934,  2935,  2941,  2943,  2946,
-  2948,  2954,  2959,  2965,  2972,  2981
+  1992,  1997,  2020,  2054,  2085,  2116,  2131,  2145,  2149,  2153,
+  2156,  2161,  2163,  2166,  2168,  2172,  2177,  2180,  2186,  2191,
+  2196,  2198,  2207,  2208,  2214,  2216,  2226,  2228,  2232,  2235,
+  2241,  2251,  2260,  2269,  2279,  2293,  2298,  2303,  2305,  2314,
+  2317,  2322,  2325,  2329,  2337,  2339,  2340,  2341,  2342,  2343,
+  2357,  2360,  2364,  2370,  2376,  2383,  2388,  2394,  2401,  2407,
+  2413,  2418,  2424,  2431,  2437,  2443,  2449,  2457,  2463,  2469,
+  2477,  2484,  2490,  2499,  2506,  2514,  2519,  2522,  2532,  2534,
+  2537,  2539,  2540,  2543,  2548,  2549,  2566,  2573,  2579,  2583,
+  2586,  2587,  2590,  2598,  2604,  2613,  2623,  2630,  2634,  2639,
+  2648,  2655,  2659,  2669,  2671,  2672,  2674,  2676,  2677,  2678,
+  2679,  2681,  2683,  2686,  2694,  2701,  2701,  2708,  2714,  2716,
+  2722,  2727,  2732,  2741,  2743,  2749,  2751,  2754,  2756,  2757,
+  2758,  2761,  2767,  2769,  2773,  2776,  2783,  2789,  2794,  2801,
+  2806,  2811,  2816,  2823,  2827,  2830,  2836,  2838,  2839,  2840,
+  2843,  2845,  2846,  2847,  2848,  2849,  2850,  2851,  2852,  2853,
+  2854,  2855,  2856,  2857,  2858,  2859,  2860,  2861,  2862,  2863,
+  2863,  2866,  2872,  2877,  2882,  2888,  2890,  2893,  2895,  2902,
+  2914,  2919,  2925,  2927,  2933,  2937,  2938,  2944,  2946,  2949,
+  2951,  2957,  2962,  2968,  2975,  2984
 };
 #endif
 
@@ -637,7 +637,7 @@ static const short yyr2[] = {     0,
      1,     1,     1,     2,     0,     4,     1,     3,     0,     0,
      7,     5,     2,     0,     0,     0,    12,     0,     6,     2,
      2,     2,     3,     6,     8,    10,    12,     3,     4,     1,
-     1,     0,     6,     3,     5,     2,     2,     0,     1,     0,
+     1,     0,     6,     3,     5,     2,     3,     0,     1,     0,
      1,     0,     1,     1,     3,     4,     1,     3,     0,     2,
      2,     0,     4,     2,     0,     1,     1,     3,     1,     3,
      4,     4,     4,     4,     4,     0,     2,     1,     2,     1,
@@ -744,21 +744,21 @@ static const short yydefact[] = {     3,
    206,   207,   506,   475,   427,   483,   482,   486,   489,   464,
    462,     0,   236,   201,   287,   183,     0,     0,   335,   380,
      0,     0,   376,   360,   361,   362,     0,     0,     0,   379,
-     0,   377,   344,   134,     0,   135,     0,     0,   331,   336,
+     0,   183,   344,   134,     0,   135,     0,     0,   331,   336,
    330,   353,     0,   136,   213,   210,     0,   286,     0,     0,
      0,   381,    48,     0,     0,     0,   374,   363,     0,   368,
-     0,     0,   132,   219,     0,   133,   222,   348,   335,     0,
-     0,   432,   332,     0,   334,   372,   354,   358,     0,   369,
-     0,   130,     0,   131,     0,   346,   337,   335,     0,   350,
-   335,   380,   335,   375,   382,     0,   220,   223,   338,   352,
-   335,   373,     0,   359,     0,     0,   383,   384,   364,     0,
-     0,   351,   355,     0,   382,     0,     0,   221,   224,   380,
-     0,     0,   365,   385,     0,   386,     0,     0,   356,   387,
-     0,   366,   335,     0,     0,   357,   367,   388,     0,     0,
-     0
+     0,   377,     0,   132,   219,     0,   133,   222,   348,   335,
+     0,     0,   432,   332,     0,   334,   372,   354,   358,     0,
+   369,     0,   130,     0,   131,     0,   346,   337,   335,     0,
+   350,   335,   380,   335,   375,   382,     0,   220,   223,   338,
+   352,   335,   373,     0,   359,     0,     0,   383,   384,   364,
+     0,     0,   351,   355,     0,   382,     0,     0,   221,   224,
+   380,     0,     0,   365,   385,     0,   386,     0,     0,   356,
+   387,     0,   366,   335,     0,     0,   357,   367,   388,     0,
+     0,     0
 };
 
-static const short yydefgoto[] = {   949,
+static const short yydefgoto[] = {   950,
      1,     2,     3,    28,    29,    30,   335,   563,   341,   566,
    198,   447,   669,   122,   232,   398,   124,   125,   126,   127,
    128,   582,   129,   383,   382,   380,   683,   381,   130,   233,
@@ -766,14 +766,14 @@ static const short yydefgoto[] = {   949,
    796,   437,    91,   559,   640,   438,    34,   140,   278,    35,
    216,   204,    78,   199,   205,   646,    79,   562,   327,   328,
     37,   287,   288,   289,   644,   720,   671,   672,   673,   810,
-   674,   739,   675,   676,   873,   893,   920,   876,   895,   921,
+   674,   739,   675,   676,   874,   894,   921,   877,   896,   922,
    314,   208,   685,   209,    38,    39,    40,    41,   350,   352,
    357,   225,   743,   474,   220,   221,   347,   568,   569,   355,
    356,   142,   687,   143,   189,   277,   659,   660,   732,   325,
    477,   579,   580,   581,   556,   361,   557,   800,   801,   802,
-   829,   850,   451,   851,   663,   803,   804,   879,   828,   911,
-   902,   930,   943,   903,   805,   806,   901,   807,   841,   864,
-   916,   917,   918,   941,   403,   404,   439,   630,   440,   441,
+   829,   850,   451,   851,   663,   803,   804,   880,   828,   912,
+   903,   931,   944,   904,   805,   806,   902,   807,   841,   864,
+   917,   918,   919,   942,   403,   404,   439,   630,   440,   441,
    442,   317,   318,   443,   444,   655,   133,    43,    64,    44,
     45,    46,   425,   694,   304,   604,   814,   522,   307,   534,
    606,    47,   308,    69,    48,   430,   539,   431,   544,   701,
@@ -784,731 +784,712 @@ static const short yydefgoto[] = {   949,
    369,   370,   371,   135,   136,   137
 };
 
-static const short yypact[] = {   118,
-   131,  3118,  3118,   336,-32768,-32768,-32768,-32768,   112,   112,
-   112,   133,   165,   173,-32768,    85,-32768,-32768,    85,    85,
--32768,   106,    85,   106,    85,    85,-32768,-32768,-32768,-32768,
-   186,   167,   845,   316,-32768,   112,-32768,   141,   158,   181,
--32768,  3118,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   112,   112,   112,  2827,  2665,   191,-32768,-32768,
--32768,-32768,-32768,    55,  3392,  3392,   190,    68,-32768,-32768,
-   106,-32768,   296,    85,-32768,-32768,   186,   353,-32768,   112,
-  1821,-32768,   275,-32768,   186,   316,-32768,   112,-32768,-32768,
-   831,-32768,   200,   189,   200,   195,-32768,   211,-32768,-32768,
--32768,-32768,-32768,-32768,  2827,  2827,    85,-32768,-32768,-32768,
-  2827,-32768,-32768,  1351,-32768,   253,   270,   276,-32768,-32768,
--32768,  2827,   267,   277,-32768,  2881,  2935,-32768,  3725,  1040,
-   347,   332,  2827,-32768,-32768,-32768,-32768,-32768,   295,   349,
--32768,   339,  3546,   116,-32768,    85,-32768,-32768,-32768,-32768,
+static const short yypact[] = {   171,
+   186,  3077,  3077,   193,-32768,-32768,-32768,-32768,   172,   172,
+   172,   145,   174,   199,-32768,    85,-32768,-32768,    85,    85,
+-32768,   249,    85,   249,    85,    85,-32768,-32768,-32768,-32768,
+   363,   242,  2557,   237,-32768,   172,-32768,    94,   117,   256,
+-32768,  3077,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   172,   172,   172,  2786,  2624,   266,-32768,-32768,
+-32768,-32768,-32768,   143,  3367,  3367,    72,    54,-32768,-32768,
+   249,-32768,    42,    85,-32768,-32768,   363,    48,-32768,   172,
+  1802,-32768,   283,-32768,   363,   237,-32768,   172,-32768,-32768,
+   859,-32768,   243,   265,   243,   279,-32768,   289,-32768,-32768,
+-32768,-32768,-32768,-32768,  2786,  2786,    85,-32768,-32768,-32768,
+  2786,-32768,-32768,  1407,-32768,   268,   315,   337,-32768,-32768,
+-32768,  2786,   326,   323,-32768,  2840,  2894,-32768,  3634,  1152,
+   412,   364,  2786,-32768,-32768,-32768,-32768,-32768,   365,   445,
+-32768,   368,   635,   139,-32768,    85,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   230,
-  3651,-32768,-32768,-32768,  2559,   394,-32768,-32768,-32768,    85,
-    85,   318,    85,    85,-32768,-32768,-32768,   367,   632,   199,
--32768,   275,   186,-32768,   419,-32768,  2028,  1966,   112,-32768,
--32768,   275,-32768,   360,-32768,   112,  1919,   362,   379,   386,
-  1840,   831,-32768,-32768,-32768,-32768,   112,-32768,   430,   414,
-  1752,-32768,   443,-32768,   109,-32768,-32768,-32768,-32768,-32768,
-   421,   429,   445,   454,  2719,  3454,  3651,    85,-32768,   459,
-  2827,  1351,-32768,  1351,-32768,  2827,  2827,   504,-32768,-32768,
-  2827,  2827,  2827,  2827,  2827,  2827,  2827,  2827,  2827,  2827,
-  2827,  2827,-32768,-32768,    85,    85,  2827,  2827,-32768,-32768,
--32768,-32768,-32768,   349,  2087,-32768,   410,   658,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   215,-32768,   494,-32768,
-  3651,-32768,   468,   484,   540,-32768,   394,-32768,   476,   484,
-   106,   498,-32768,   514,   497,   508,-32768,   514,-32768,-32768,
-   379,-32768,-32768,   562,   379,   583,-32768,  3271,-32768,   512,
-   527,-32768,   294,    82,-32768,-32768,   570,   112,   324,   260,
--32768,   275,   275,-32768,  1966,   112,-32768,  2146,-32768,-32768,
-  1966,   549,   112,-32768,-32768,   435,   541,   378,  3357,   200,
-   112,   200,-32768,   586,   564,-32768,   109,-32768,-32768,-32768,
-   565,   571,  2479,-32768,-32768,-32768,-32768,   610,   573,  3454,
--32768,   574,   576,-32768,  3725,   577,   579,  3725,  3725,  2827,
-   620,  2827,  2827,  1481,  1560,  1092,  1633,  1567,   771,   771,
-   337,   337,-32768,-32768,-32768,-32768,-32768,   585,   277,   584,
-   210,   273,-32768,  3290,-32768,   592,-32768,  2205,-32768,   658,
-   590,   116,  2989,   600,  3482,  1938,-32768,-32768,  3557,  3651,
--32768,-32768,   595,   106,-32768,   615,  3193,-32768,-32768,    47,
-  3066,   617,    92,   609,-32768,-32768,-32768,  3632,-32768,   618,
-   407,-32768,-32768,   269,-32768,-32768,    89,-32768,-32768,-32768,
-   596,-32768,   362,-32768,-32768,   362,-32768,   650,-32768,-32768,
-   612,-32768,   634,-32768,-32768,-32768,-32768,-32768,   633,-32768,
-   637,  2827,    85,   644,   564,-32768,   702,-32768,-32768,-32768,
-  3518,-32768,-32768,   610,-32768,-32768,-32768,-32768,-32768,   697,
-  2827,  1326,  1402,-32768,-32768,   410,-32768,-32768,-32768,-32768,
--32768,   653,-32768,-32768,   284,   661,    85,-32768,  2559,   663,
-  2598,-32768,-32768,  3632,  2002,    89,-32768,   667,   668,    89,
--32768,   514,-32768,   216,-32768,-32768,-32768,-32768,   186,   167,
-   845,    80,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,  3669,   672,-32768,-32768,-32768,   739,   457,-32768,
--32768,  3621,-32768,   750,   445,-32768,-32768,-32768,   683,  3320,
--32768,  1666,    89,-32768,-32768,    89,-32768,   680,-32768,-32768,
-   680,   112,   112,  3725,-32768,   112,   685,    85,   971,   702,
--32768,  1431,  2827,   727,   684,  3518,-32768,-32768,  1131,-32768,
--32768,  2827,-32768,-32768,-32768,-32768,   739,-32768,-32768,-32768,
--32768,    85,-32768,-32768,   709,   514,-32768,  3392,  3392,    87,
-   275,   186,  3221,-32768,   325,  3084,   473,   473,-32768,-32768,
--32768,   457,   112,   213,   257,   112,-32768,   257,   112,  3290,
--32768,-32768,-32768,-32768,-32768,   275,-32768,   186,-32768,   745,
--32768,-32768,  3725,-32768,-32768,  1666,-32768,-32768,   490,-32768,
--32768,-32768,   112,-32768,   409,   477,   880,   695,   699,  1053,
--32768,-32768,-32768,-32768,-32768,   752,    85,-32768,   753,  3725,
-   710,   714,-32768,-32768,    66,  1591,   277,-32768,  2827,-32768,
-   727,-32768,  2827,   299,   213,   257,   112,   418,-32768,-32768,
-   432,-32768,   737,   514,-32768,-32768,-32768,-32768,  2827,   764,
-   722,-32768,   722,   726,   629,-32768,  2264,-32768,-32768,-32768,
-   422,-32768,-32768,-32768,   427,   489,   745,-32768,-32768,  1431,
--32768,-32768,  2827,   188,-32768,-32768,    85,-32768,-32768,-32768,
--32768,   732,-32768,-32768,-32768,-32768,  2345,-32768,  1431,-32768,
--32768,  1511,-32768,  1741,-32768,-32768,-32768,  1131,-32768,-32768,
--32768,-32768,-32768,   739,-32768,-32768,   742,    77,    77,  3725,
-  2827,   473,   539,-32768,   539,-32768,-32768,   728,-32768,-32768,
-   747,  3396,  2827,-32768,-32768,-32768,  2425,   779,   768,-32768,
--32768,   772,   774,  2827,   796,   758,   762,  2773,   521,   840,
-   157,   223,-32768,   810,   777,-32768,   783,  3301,-32768,   846,
-  1191,    94,-32768,-32768,-32768,-32768,-32768,  2587,   778,  1741,
--32768,-32768,-32768,   514,-32768,-32768,-32768,-32768,-32768,  3725,
--32768,   624,-32768,-32768,-32768,  3396,  2827,   804,-32768,  2827,
-  2827,  1111,-32768,-32768,-32768,-32768,   787,  2827,   788,-32768,
-   807,-32768,-32768,-32768,   275,-32768,   186,  1271,-32768,-32768,
--32768,-32768,  2827,-32768,-32768,-32768,   808,-32768,   791,  2827,
-   853,-32768,   911,   795,   800,  2827,-32768,-32768,   801,-32768,
-  2827,   491,-32768,   321,   492,-32768,   687,-32768,-32768,  2425,
-   806,-32768,-32768,   820,-32768,-32768,-32768,-32768,  3707,-32768,
-   110,-32768,  1966,-32768,  1966,-32768,-32768,-32768,   803,-32768,
--32768,  2827,-32768,-32768,   868,   838,-32768,-32768,-32768,-32768,
--32768,-32768,   839,-32768,   860,   166,   843,-32768,-32768,   445,
-   445,-32768,-32768,  2827,   868,   844,   868,-32768,-32768,  2827,
-   850,   171,-32768,-32768,   855,-32768,   583,   856,-32768,   347,
-   329,-32768,-32768,   859,   583,-32768,-32768,   347,   932,   938,
--32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   434,
+   716,-32768,-32768,-32768,  2518,   409,-32768,-32768,-32768,    85,
+    85,   386,    85,    85,-32768,-32768,-32768,   375,   286,   149,
+-32768,   283,   363,-32768,   414,-32768,  1987,  1947,   172,-32768,
+-32768,   283,-32768,   115,-32768,   172,  1900,   224,   370,   159,
+  1821,   859,-32768,-32768,-32768,-32768,   172,-32768,   425,   408,
+  1733,-32768,   411,-32768,   123,-32768,-32768,-32768,-32768,-32768,
+   418,   421,   417,   469,  2678,  3395,   716,    85,-32768,   433,
+  2786,  1407,-32768,  1407,-32768,  2786,  2786,   482,-32768,-32768,
+  2786,  2786,  2786,  2786,  2786,  2786,  2786,  2786,  2786,  2786,
+  2786,  2786,-32768,-32768,    85,    85,  2786,  2786,-32768,-32768,
+-32768,-32768,-32768,   445,  2046,-32768,   419,   898,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   147,-32768,   489,-32768,
+   716,-32768,   479,   484,   556,-32768,   409,-32768,   477,   484,
+   249,   492,-32768,   514,   497,   508,-32768,   514,-32768,-32768,
+   370,-32768,-32768,   561,   370,   581,-32768,   878,-32768,   509,
+   523,-32768,   378,   101,-32768,-32768,   568,   172,   262,   239,
+-32768,   283,   283,-32768,  1947,   172,-32768,  2105,-32768,-32768,
+  1947,   541,   172,-32768,-32768,   535,   529,   463,  3305,   243,
+   172,   243,-32768,   579,   537,-32768,   123,-32768,-32768,-32768,
+   544,   558,  2438,-32768,-32768,-32768,-32768,   594,   564,  3395,
+-32768,   569,   574,-32768,  3634,   588,   592,  3634,  3634,  2786,
+   617,  2786,  2786,  1617,  1959,  2595,  1794,  1891,   522,   522,
+   602,   602,-32768,-32768,-32768,-32768,-32768,   593,   323,   554,
+   272,   299,-32768,  3208,-32768,   589,-32768,  2164,-32768,   898,
+   603,   139,  2948,   610,  3431,   670,-32768,-32768,  3488,   716,
+-32768,-32768,   596,   249,-32768,   624,  3152,-32768,-32768,   525,
+  3025,   634,    74,   627,-32768,-32768,-32768,  3534,-32768,   628,
+   258,-32768,-32768,   197,-32768,-32768,    86,-32768,-32768,-32768,
+  3530,-32768,   224,-32768,-32768,   224,-32768,   663,-32768,-32768,
+   622,-32768,   638,-32768,-32768,-32768,-32768,-32768,   632,-32768,
+   633,  2786,    85,   646,   537,-32768,   693,-32768,-32768,-32768,
+  3459,-32768,-32768,   594,-32768,-32768,-32768,-32768,-32768,   689,
+  2786,  1382,  1538,-32768,-32768,   419,-32768,-32768,-32768,-32768,
+-32768,   648,-32768,-32768,   225,   657,    85,-32768,  2518,   666,
+  3228,-32768,-32768,  3534,  1919,    86,-32768,   654,   664,    86,
+-32768,   514,-32768,   623,-32768,-32768,-32768,-32768,   363,   242,
+  2557,   362,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,  3564,   672,-32768,-32768,-32768,   539,   551,-32768,
+-32768,  3500,-32768,   747,   417,-32768,-32768,-32768,   676,  3285,
+-32768,  1647,    86,-32768,-32768,    86,-32768,   675,-32768,-32768,
+   675,   172,   172,  3634,-32768,   172,   687,    85,  1083,   693,
+-32768,  1487,  2786,   731,   694,  3459,-32768,-32768,  1460,-32768,
+-32768,  2786,-32768,-32768,-32768,-32768,   539,-32768,-32768,-32768,
+-32768,    85,-32768,-32768,   709,   514,-32768,  3367,  3367,   327,
+   283,   363,  3180,-32768,   690,  3043,   213,   213,-32768,-32768,
+-32768,   551,   172,   290,   340,   172,-32768,   340,   172,  3208,
+-32768,-32768,-32768,-32768,-32768,   283,-32768,   363,-32768,   402,
+-32768,-32768,  3634,-32768,-32768,  1647,-32768,-32768,   452,-32768,
+-32768,-32768,   172,-32768,   296,   550,  1003,   695,   698,   913,
+-32768,-32768,-32768,-32768,-32768,   741,    85,-32768,   746,  3634,
+   707,   705,-32768,-32768,    70,  1240,   323,-32768,  2786,-32768,
+   731,-32768,  2786,   275,   290,   340,   172,   406,-32768,-32768,
+   825,-32768,   726,   514,-32768,-32768,-32768,-32768,  2786,   753,
+   714,-32768,   714,   658,   245,-32768,  2223,-32768,-32768,-32768,
+   231,-32768,-32768,-32768,   435,   444,   402,-32768,-32768,  1487,
+-32768,-32768,  2786,    78,-32768,-32768,    85,-32768,-32768,-32768,
+-32768,   722,-32768,-32768,-32768,-32768,  2304,-32768,  1487,-32768,
+-32768,  1567,-32768,  1722,-32768,-32768,-32768,  1460,-32768,-32768,
+-32768,-32768,-32768,   539,-32768,-32768,   736,   100,   100,  3634,
+  2786,   213,   599,-32768,   599,-32768,-32768,   720,-32768,-32768,
+   727,  3598,  2786,-32768,-32768,-32768,  2384,   770,   752,-32768,
+-32768,   758,   761,  2786,   783,   745,   750,  2732,   293,   817,
+    69,   113,-32768,   793,   771,-32768,   773,  3257,-32768,   835,
+  1165,    89,-32768,-32768,-32768,-32768,-32768,  2546,   774,  1722,
+-32768,-32768,-32768,   514,-32768,-32768,-32768,-32768,-32768,  3634,
+-32768,   760,-32768,-32768,-32768,  3598,  2786,   795,-32768,  2786,
+  2786,  3575,-32768,-32768,-32768,-32768,   781,  2786,   786,-32768,
+   808,   172,-32768,-32768,   283,-32768,   363,  1327,-32768,-32768,
+-32768,-32768,  2786,-32768,-32768,-32768,   805,-32768,   798,  2786,
+   860,-32768,   802,   799,   804,  2786,-32768,-32768,   809,-32768,
+  2786,-32768,   446,-32768,   436,   451,-32768,   721,-32768,-32768,
+  2384,   811,-32768,-32768,   820,-32768,-32768,-32768,-32768,  3616,
+-32768,    77,-32768,  1947,-32768,  1947,-32768,-32768,-32768,   823,
+-32768,-32768,  2786,-32768,-32768,   900,   830,-32768,-32768,-32768,
+-32768,-32768,-32768,   836,-32768,   856,    84,   837,-32768,-32768,
+   417,   417,-32768,-32768,  2786,   900,   842,   900,-32768,-32768,
+  2786,   844,   109,-32768,-32768,   849,-32768,   581,   850,-32768,
+   412,   313,-32768,-32768,   852,   581,-32768,-32768,   412,   941,
+   943,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    95,  -362,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -11,-32768,   -56,   528,  -220,   485,-32768,-32768,
-   -54,-32768,   446,-32768,-32768,-32768,-32768,-32768,   113,-32768,
-  -303,-32768,  -280,   621,-32768,-32768,   290,-32768,    16,  -166,
-   134,     1,   862,-32768,   311,     4,    -2,  -155,   673,    20,
-  -243,  -562,   -60,  -205,  -125,-32768,-32768,-32768,   155,     8,
-    50,-32768,   544,-32768,   307,-32768,  -613,-32768,   219,-32768,
-  -604,-32768,-32768,   288,-32768,-32768,-32768,-32768,-32768,-32768,
-   -53,  -118,  -467,   -15,-32768,-32768,-32768,   -57,-32768,-32768,
--32768,-32768,-32768,   531,   -37,-32768,   654,   500,   359,   607,
-   536,   -39,   -84,  -150,  -179,  -236,   315,-32768,-32768,  -241,
--32768,-32768,-32768,   433,    74,-32768,  -196,-32768,-32768,-32768,
--32768,  -175,  -506,  -721,   350,-32768,   132,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,   135,-32768,  -791,
-    93,-32768,    90,-32768,   616,-32768,  -350,-32768,   603,   605,
-   475,  -295,-32768,-32768,-32768,-32768,    18,-32768,  1004,-32768,
+-32768,-32768,-32768,    97,  -345,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -11,-32768,   -56,   536,  -220,   540,-32768,-32768,
+   -54,-32768,   582,-32768,-32768,-32768,-32768,-32768,   118,-32768,
+  -303,-32768,  -263,   631,-32768,-32768,   294,-32768,    16,  -166,
+   158,     1,   864,-32768,   318,     4,    -2,  -184,   688,    20,
+  -243,  -571,   -60,  -205,  -125,-32768,-32768,-32768,   273,     8,
+    50,-32768,   559,-32768,   324,-32768,  -602,-32768,   232,-32768,
+  -595,-32768,-32768,   300,-32768,-32768,-32768,-32768,-32768,-32768,
+   -53,  -107,  -474,   -15,-32768,-32768,-32768,   -57,-32768,-32768,
+-32768,-32768,-32768,   501,   -50,-32768,   629,   515,   333,   626,
+   513,   -39,   -84,  -155,  -179,  -219,   329,-32768,-32768,  -262,
+-32768,-32768,-32768,   416,   -13,-32768,  -175,-32768,-32768,-32768,
+-32768,  -160,  -506,  -667,   334,-32768,   108,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   119,-32768,  -791,
+    73,-32768,    75,-32768,   591,-32768,  -350,-32768,   583,   586,
+   449,  -301,-32768,-32768,-32768,-32768,    18,-32768,   988,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,     9,     2,  -338,-32768,   493,-32768,   415,
-   272,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -276,-32768,
--32768,-32768,   280,   509,-32768,-32768,-32768,-32768,   -22,   736,
--32768,-32768,   526,-32768,   291,   535,-32768,   640,   643,  -139,
--32768,  -130,-32768,-32768,   368,   463,-32768,-32768,-32768,-32768,
--32768,-32768,   682,-32768,-32768,-32768
+-32768,-32768,-32768,     9,     2,  -354,-32768,   480,-32768,   420,
+   277,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -276,-32768,
+-32768,-32768,   276,   510,-32768,-32768,-32768,-32768,   -22,   740,
+-32768,-32768,   527,-32768,   295,   538,-32768,   640,   641,  -152,
+-32768,  -133,-32768,-32768,   371,   458,-32768,-32768,-32768,-32768,
+-32768,-32768,   691,-32768,-32768,-32768
 };
 
 
-#define        YYLAST          3777
+#define        YYLAST          3686
 
 
 static const short yytable[] = {   123,
    139,   336,    32,    32,    63,    33,    33,    67,    68,    36,
     36,    71,   433,    63,    74,    81,    53,    54,    55,    42,
-    42,   329,   326,    70,   210,    70,    94,    96,    98,   207,
-    86,   432,    72,   218,   409,   297,   362,   402,    80,   333,
-    88,   459,    32,   179,   298,    33,   399,    83,    85,    36,
-   227,   228,    87,   498,   457,   276,   230,   223,   282,    42,
-   462,   190,   188,   649,   528,   346,   313,   239,    70,   211,
-   348,   746,    70,   715,   234,   182,   141,   816,   271,   186,
-   624,   448,  -112,   330,    80,    92,   524,    59,    60,   555,
-   206,   449,    80,   401,   852,   229,   368,    50,   217,   145,
-   269,   744,    92,    92,    92,   183,   771,   861,   336,   353,
-   913,    59,    60,   195,   535,   536,   537,    -1,    59,    60,
-   283,   284,   285,   667,   538,   809,   184,   526,   527,    92,
-    -2,   293,   286,   141,   290,   146,    99,    92,   935,   812,
-   320,    14,  -476,    59,    60,   196,   197,   905,   326,   185,
-    16,    61,   853,   817,   218,   737,    62,   896,   292,   326,
-    59,    60,   281,  -112,   496,   326,   409,   546,   301,   302,
-   360,   305,   306,   311,   512,    61,   909,   315,   365,   912,
-    62,   914,    61,    59,    60,   906,   190,    62,    75,   922,
-   141,    56,   399,   346,   -35,   615,    80,   372,   348,   206,
-    80,    16,   376,   925,   377,   856,   455,    61,   937,   206,
-   453,   400,    62,   354,   456,    14,   310,    14,   406,   217,
-   218,   946,    93,    57,    61,   773,   373,   180,   777,    62,
-   484,    58,    59,    60,    16,    76,   763,   765,   349,    95,
-   141,   926,    14,    82,    77,   605,   938,    61,   181,   144,
-   697,   414,    62,   396,   397,    92,   141,   196,   197,   273,
-   -34,   141,    97,   141,   219,   691,    92,    16,   274,   275,
-   222,   706,   707,   600,   312,   542,   224,    75,   200,   714,
-   543,   461,   872,   535,   536,   537,    14,   421,   291,   570,
-   411,   570,   226,   607,   321,   412,    61,  -115,  -115,  -115,
-  -115,    62,    70,  -115,    14,  -115,  -115,  -115,   480,   423,
-   141,   236,   469,   311,   471,   196,   197,   315,   337,   338,
-    89,  -115,    90,   490,   201,    36,    75,   200,   237,   693,
-   310,   407,   408,   202,   238,   454,   206,   661,  -115,   206,
-   206,   584,   240,   880,   553,   354,   203,   195,   497,   554,
-  -175,   502,   218,    14,   763,   269,  -175,   241,   634,   591,
-  -115,   465,   677,   467,   592,  -115,   349,   281,   141,   297,
-   272,   684,   187,   201,   749,  -115,   146,    92,   298,   241,
-   519,     5,   202,     7,   280,   402,   260,   261,   262,     9,
-    10,    11,   535,   536,   537,   203,   719,  -175,   273,   303,
-   286,  -175,   698,   662,   944,    13,   270,   274,   275,   945,
-   766,    36,    51,    52,   279,   729,   510,   757,   734,   511,
-   337,   338,    16,    36,    75,    70,    36,   530,   310,   191,
-   531,   299,   523,   192,    36,    86,   331,   196,   197,   141,
-   332,   704,   529,   309,    22,    88,   681,   711,   560,    24,
-   141,    14,   548,   549,  -280,  -280,   705,    87,   677,    75,
-   542,   354,   339,   626,   629,   543,   192,   496,   407,   408,
-   561,   627,   570,   719,   496,    75,   200,   316,    59,    60,
-   622,   275,   662,   551,   735,   726,    14,   552,   342,   727,
-   458,   343,    75,   200,   753,   594,   358,   464,   754,   535,
-   536,   537,    14,   769,   359,   470,   627,   332,    86,   755,
-   699,  -278,  -278,   610,   510,   622,   275,   511,    88,    14,
-   351,    36,   201,    59,    60,   597,   360,   723,    86,   363,
-    87,   202,   625,   628,   420,   374,    80,   857,    88,   201,
-   799,   -85,    61,   415,   203,   611,   612,    62,   202,   418,
-    87,   210,   413,   446,   728,   623,    80,   617,   618,    36,
-   416,   203,   281,   700,   700,   770,   654,   892,   894,   192,
-   838,   332,   192,   424,   636,   638,  -474,   716,   428,   639,
-   799,   686,   218,   429,   822,   695,   696,    61,   195,   601,
-   690,   102,    62,   603,   445,   724,   610,   706,   707,     5,
-     6,     7,     8,   446,   623,   452,   190,     9,    10,    11,
-   243,   245,   907,   530,   908,   463,   531,   466,   206,    80,
-    36,   472,   610,    13,   206,   206,    75,   620,   529,    80,
-   310,    75,   620,   940,    75,   141,   645,    36,   310,   647,
-    16,   948,   476,   206,   473,    80,   478,   482,   483,   486,
-   768,   487,   488,    14,   489,   738,   206,   491,    14,   218,
-   494,    14,    22,   214,   215,   503,   495,    24,   336,     9,
-    10,    11,    92,   764,   499,   507,   521,   525,   764,   545,
-   795,    76,    77,   799,   547,   564,   375,    77,   311,   315,
-    77,   378,   379,   550,   565,   311,   384,   385,   386,   387,
-   388,   389,   390,   391,   392,   393,   394,   395,   700,   567,
-   572,   623,   623,   195,   573,   775,  -175,   326,    80,   326,
-   795,   576,  -175,   928,   929,   794,   650,   651,    75,   620,
-   652,   837,   310,   578,   588,   590,   593,   797,   686,   596,
-   798,    75,   620,   602,    36,   196,   197,   552,   619,   718,
-   214,   215,   633,   271,   808,    14,     9,    10,    11,   635,
-   648,   623,   653,  -175,   679,   794,   680,  -175,    14,   206,
-   859,   692,  -314,   862,   865,   621,   733,   839,   708,   709,
-   710,   869,   712,   713,   622,   275,   875,   741,   621,   -32,
-   740,   874,    70,    70,   742,    86,   881,   622,   275,   756,
-    72,   761,   762,   884,   815,    88,   311,   725,   797,   776,
-   823,   798,   845,   847,   891,    36,   -33,    87,   258,   259,
-   260,   261,   262,   795,   824,   808,   827,   492,   493,   623,
-   830,   877,   831,   833,   834,   213,   214,   215,   835,   750,
-   751,   752,     9,    10,    11,   862,   840,   842,     5,     6,
-     7,     8,   206,   843,    80,   855,     9,    10,    11,   844,
-    14,   848,   860,   868,   870,   871,   883,   931,   794,   885,
-   882,   887,    13,   862,    14,   888,   915,   890,   774,   910,
-   321,   899,  -124,  -124,  -124,  -124,  -124,  -124,  -124,    16,
-  -124,  -124,  -124,  -124,  -124,   900,  -124,  -124,  -124,  -124,
-  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
-  -124,    22,  -124,  -124,   919,   923,    24,   574,   924,  -124,
-   933,    84,  -124,   927,  -124,   936,   825,  -124,  -124,  -124,
-   939,   950,   942,  -124,  -124,   947,   589,   951,  -124,  -124,
-   506,   854,   863,  -124,   450,  -124,  -124,   730,   212,   717,
-  -124,  -124,   721,   410,  -124,   504,  -124,  -124,  -124,  -124,
-   811,  -124,   745,   475,   263,   264,   571,   265,   266,   267,
-   268,   656,   731,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
-   858,  -335,  -335,  -335,  -335,  -335,   886,  -335,  -335,  -335,
+    42,   329,   297,    70,   210,    70,    94,    96,    98,   207,
+    86,   432,    72,   218,   409,   459,   346,   326,    80,   333,
+    88,   298,    32,   179,   223,    33,   399,    83,    85,    36,
+   227,   228,    87,   498,   402,   276,   230,   362,   282,    42,
+   448,   190,   188,   649,   715,   348,   313,   239,    70,   211,
+   524,   457,    70,   624,   234,   182,   141,   462,   271,   186,
+   746,   528,   269,   368,    80,    92,   555,    59,    60,   852,
+   206,   183,    80,   401,   330,   229,    59,    60,   217,    50,
+   816,  -112,    92,    92,    92,   744,   -35,    14,   336,   180,
+   449,   914,   184,    16,   906,   773,    16,   771,   187,    59,
+    60,   926,   146,   353,   191,    59,    60,   667,   192,    92,
+   181,   293,   286,   141,   290,   185,   809,    92,    99,   936,
+   320,    59,    60,   283,   284,   285,   938,   853,   812,   546,
+   -34,    61,   907,   512,   218,   737,    62,    16,   292,   927,
+    61,   861,   281,   326,   346,    62,   409,   360,   301,   302,
+    -1,   305,   306,   311,   326,    93,   817,   315,   365,   615,
+   326,   496,  -112,    61,   939,    -2,   190,   145,    62,    61,
+   141,   331,   399,   348,    62,   332,    80,   372,    95,   206,
+    80,    14,   376,    56,   377,    61,   455,   196,   197,   206,
+    62,   400,   897,   354,   856,    75,   200,   484,   406,   217,
+   218,   453,   411,   146,   312,   456,   373,   412,   777,   763,
+   765,   910,    57,    75,   913,   339,   915,   310,   349,   192,
+   141,    89,    14,    90,   923,   605,   542,    75,   620,   691,
+   699,   414,   600,   396,   397,    92,   141,    58,    59,    60,
+    14,   141,   201,   141,    75,   200,    92,   697,   310,    51,
+    52,   202,   553,   873,    14,   543,   947,   554,   310,   714,
+   627,   461,   337,   338,   203,    75,   200,   421,    75,   622,
+   275,    14,   310,    16,   764,    59,    60,   337,   338,   469,
+   591,   471,    70,    77,   570,   592,   570,   219,   480,   423,
+   141,   201,    14,   311,   454,    14,   661,   315,    82,    14,
+   202,   273,    61,   490,   144,    36,   236,    62,   584,   693,
+   274,   275,   201,   203,   551,    76,   206,    97,   552,   206,
+   206,   202,   838,   881,    77,   354,   222,   763,   706,   707,
+   749,   502,   218,   195,   203,   241,   297,   407,   408,    61,
+   224,   465,   677,   467,    62,    75,   349,   281,   141,    14,
+   226,   684,   726,   237,   497,   298,   727,    92,   321,   634,
+   519,  -115,  -115,  -115,  -115,   196,   197,  -115,   945,  -115,
+  -115,  -115,    14,   946,   729,   238,   719,   734,   196,   197,
+   286,   240,   402,   241,   766,  -115,   718,   214,   215,   526,
+   527,    36,    76,     9,    10,    11,   510,   757,   662,   511,
+   269,    77,  -115,    36,  -476,    70,    36,   530,   196,   197,
+   531,   542,   523,   681,    36,    86,    59,    60,   270,   141,
+   272,   704,   529,   279,  -115,    88,   299,   711,   560,  -115,
+   141,   309,   548,   549,    75,   200,   705,    87,   677,  -115,
+   543,   354,   195,   626,   629,  -175,     5,   303,     7,   280,
+   561,  -175,   316,   719,     9,    10,    11,   407,   408,    59,
+    60,    14,   753,   342,   496,   343,   754,   570,   351,   723,
+    13,   496,   291,   358,   273,   594,   359,   662,   360,   735,
+    61,   201,   601,   274,   275,    62,   603,    16,    86,   374,
+   202,   769,  -175,   610,   510,   332,  -175,   511,    88,   -85,
+   770,    36,   893,   203,   192,   597,   332,   895,    86,    22,
+    87,   192,   625,   628,    24,   420,    80,   857,    88,  -280,
+  -280,    75,   620,    61,   363,   611,   612,   413,    62,   645,
+    87,   210,   647,    75,   415,   623,    80,   617,   618,    36,
+   416,   799,   281,   700,   700,   418,   654,   424,    14,   258,
+   259,   260,   261,   262,   636,   638,  -474,   716,   428,   639,
+    14,   686,   218,   429,   822,   695,   696,   195,   621,   102,
+   690,   445,   535,   536,   537,   724,   610,   622,   275,   446,
+   627,   799,   538,   452,   623,   466,   190,   463,   458,   622,
+   275,  -278,  -278,   530,   472,   464,   531,   473,   206,    80,
+    36,   476,   610,   470,   206,   206,   446,   728,   529,    80,
+   908,   482,   909,   478,   941,   141,   495,    36,     5,   483,
+     7,   280,   949,   206,   486,    80,     9,    10,    11,   487,
+   768,   260,   261,   262,   491,   738,   206,   706,   707,   218,
+    75,   620,    13,   488,   310,   243,   245,   489,   494,   336,
+   321,   499,    92,     5,     6,     7,     8,   521,   503,    16,
+   795,     9,    10,    11,   273,   507,   525,    14,   311,   315,
+   535,   536,   537,   274,   275,   311,   545,    13,   564,    14,
+   607,    22,   547,   550,   565,   799,    24,   621,   700,   572,
+   573,   623,   623,   567,    16,   775,   622,   275,    80,     5,
+   795,     7,   138,   576,   578,   794,   588,     9,    10,    11,
+   590,   837,   593,   326,   552,   326,    22,   797,   686,   602,
+   798,    24,   596,    13,    36,   929,   930,   195,   619,   633,
+  -175,  -496,   635,   271,   808,   648,  -175,   535,   536,   537,
+    16,   623,    75,   620,   653,   794,   310,   698,   679,   206,
+   859,   692,  -314,   862,   865,   733,   680,   839,   -32,   196,
+   197,   869,    22,   740,   741,   742,   876,    24,   756,    14,
+   761,   875,    70,    70,   762,    86,   882,  -175,   815,   776,
+    72,  -175,   823,   885,   824,    88,   311,   -33,   797,   764,
+   827,   798,   845,   847,   892,    36,   830,    87,    77,   831,
+   833,   834,   375,   840,   795,   808,   835,   378,   379,   623,
+   842,   878,   384,   385,   386,   387,   388,   389,   390,   391,
+   392,   393,   394,   395,   650,   651,   862,   843,   652,   844,
+   848,   855,   206,   860,    80,   263,   264,   868,   265,   266,
+   267,   268,   870,   213,   214,   215,   871,   883,   932,   794,
+     9,    10,    11,   884,   862,   888,   886,   887,   434,   889,
+   435,     5,     6,     7,     8,   891,   900,   436,    14,     9,
+    10,    11,   535,   536,   537,   901,   708,   709,   710,   911,
+   712,   713,   755,   214,   215,    13,   920,    14,   916,     9,
+    10,    11,   924,   321,   925,  -335,  -335,   928,   934,   937,
+  -335,  -335,    16,  -335,   940,   725,   943,  -335,   948,  -335,
   -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
-  -335,  -335,   468,  -335,  -335,   577,   722,   643,   575,   736,
-  -335,   897,   664,  -335,   898,  -335,   934,   932,  -335,  -335,
-  -335,   517,   500,   518,  -335,  -335,   632,   670,    73,  -335,
-  -335,   616,   703,   821,  -335,   422,  -335,  -335,   819,   599,
-   614,  -335,  -335,   595,   813,  -335,   747,  -335,   682,  -335,
-  -335,   485,  -335,   321,   508,  -335,  -335,   509,     0,     0,
-  -335,  -335,     0,  -335,     0,     0,     0,  -335,     0,  -335,
+   951,  -335,   952,  -335,    22,  -335,  -335,   863,   506,    24,
+   212,   730,  -335,  -395,   450,  -335,   717,   750,   751,   752,
+  -335,  -335,  -335,   492,   493,   854,  -335,  -335,   410,   721,
+   504,  -335,  -335,   811,   745,   577,  -335,   468,  -335,  -335,
+   722,   571,   475,  -335,  -335,   575,   731,  -335,   898,  -335,
+  -310,  -335,  -335,   736,  -335,   664,   774,   500,   933,   899,
+   632,   517,   935,   321,   518,  -124,  -124,  -124,  -124,  -124,
+  -124,  -124,    73,  -124,  -124,  -124,  -124,  -124,   616,  -124,
+  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
+  -124,  -124,  -124,  -124,   819,  -124,  -124,   703,   821,   422,
+   599,   614,  -124,   682,   825,  -124,   595,  -124,   813,   747,
+  -124,  -124,  -124,   574,   508,   509,  -124,  -124,     0,     0,
+   485,  -124,  -124,     0,     0,     0,  -124,     0,  -124,  -124,
+     0,     0,   589,  -124,  -124,     0,     0,  -124,     0,  -124,
+  -124,  -124,  -124,   656,  -124,  -335,  -335,  -335,  -335,  -335,
+  -335,  -335,     0,  -335,  -335,  -335,  -335,  -335,   858,  -335,
   -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
-     0,  -335,     0,  -335,     0,  -335,  -335,     0,     0,     0,
-     0,   643,  -335,   263,   264,  -335,   265,   266,   267,   268,
+  -335,  -335,  -335,  -335,   872,  -335,  -335,     0,     0,     0,
+     0,     0,  -335,     0,     0,  -335,     0,  -335,     0,     0,
   -335,  -335,  -335,     0,     0,     0,  -335,  -335,     0,     0,
-     0,  -335,  -335,     0,     0,     0,  -335,     0,  -335,  -335,
-   866,   670,     0,  -335,  -335,     0,     0,  -335,   748,  -335,
-  -310,  -335,  -335,     0,  -335,   254,   255,   256,   257,   258,
-   259,   260,   261,   262,   760,   246,   247,   248,   867,   249,
-   250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-   260,   261,   262,     0,     0,   670,     0,   248,   772,   249,
-   250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-   260,   261,   262,     0,   670,     0,     0,   670,     0,   670,
-     0,   849,     0,  -335,  -335,     0,     0,     0,  -335,  -335,
-     0,  -335,     0,     0,     0,  -335,   820,  -335,  -335,  -335,
-  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,   826,  -335,
-     0,  -335,     0,  -335,  -335,     0,     0,     0,     0,   832,
-  -335,     0,     0,  -335,     0,     0,     0,     0,  -335,  -335,
-  -335,     0,     0,     0,  -335,  -335,     0,     0,     0,  -335,
-  -335,     0,     0,     0,  -335,   670,  -335,  -335,     0,     0,
-     0,  -335,  -335,     0,     0,  -335,     0,  -335,     0,  -335,
-  -335,   878,  -335,  -345,  -345,     0,     0,     0,  -345,  -345,
-     0,  -345,     0,     0,     0,  -345,     0,  -345,  -345,  -345,
-  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,     0,  -345,
-     0,  -345,     0,  -345,  -345,     0,     0,     0,     0,     0,
-  -345,   889,     0,  -345,     0,     0,     0,     0,  -345,  -345,
-  -345,     0,     0,     0,  -345,  -345,     0,     0,     0,  -345,
-  -345,     0,     0,     0,  -345,     0,  -345,  -345,     0,     0,
-     0,  -345,  -345,     0,     0,  -345,     0,  -345,     0,  -345,
-  -345,   231,  -345,   100,     5,     0,     7,   138,   101,   102,
-     0,   103,     9,    10,    11,   250,   251,   252,   253,   254,
-   255,   256,   257,   258,   259,   260,   261,   262,    13,   104,
-     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
-   107,     0,     0,   108,     0,    16,     0,     0,   109,   110,
-   111,     0,     0,     0,   112,   113,     0,     0,     0,   114,
-   115,     0,     0,     0,   116,     0,   117,    22,     0,     0,
-     0,   118,    24,     0,     0,   119,     0,     0,     0,   120,
-   121,   665,   -94,   666,    60,     0,     0,     0,   101,   102,
-     0,   103,   251,   252,   253,   254,   255,   256,   257,   258,
-   259,   260,   261,   262,     0,     0,     0,     0,     0,   104,
-     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
-   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
-   111,     0,     0,     0,   112,   113,     0,     0,   667,   114,
-   115,     0,     0,     0,   116,     0,   117,    61,     0,     0,
-     0,   118,    62,     0,     0,   119,     0,     0,  -203,   120,
-   121,   665,   668,   666,    60,     0,     0,     0,   101,   102,
-     0,   103,   252,   253,   254,   255,   256,   257,   258,   259,
-   260,   261,   262,     0,     0,     0,     0,     0,     0,   104,
-     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
-   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
-   111,     0,     0,     0,   112,   113,     0,     0,   667,   114,
-   115,     0,     0,     0,   116,     0,   117,    61,     0,     0,
-     0,   118,    62,     0,     0,   119,     0,     0,  -268,   120,
-   121,   665,   668,   100,     0,     0,     0,     0,   101,   102,
-     0,   103,   253,   254,   255,   256,   257,   258,   259,   260,
-   261,   262,   256,   257,   258,   259,   260,   261,   262,   104,
-     0,    15,     0,   105,   106,     0,  -216,     0,     0,     0,
-   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
-   111,     0,     0,     0,   112,   113,     0,     0,  -216,   114,
-   115,     0,     0,     0,   116,     0,   117,     0,     0,     0,
-     0,   118,     0,     0,     0,   119,   641,     0,   100,   120,
-   121,     0,   668,   101,   102,     0,   103,   255,   256,   257,
-   258,   259,   260,   261,   262,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   104,     0,    15,     0,   105,   106,
-     0,     0,     0,     0,     0,   107,     0,     0,   108,     0,
-     0,     0,     0,   109,   110,   111,     0,     0,     0,   112,
-   113,     0,     0,     0,   114,   115,     0,     0,     0,   116,
-     0,   117,     0,     0,     0,     0,   118,     0,     0,     0,
-   119,   665,     0,   100,   120,   121,     0,   642,   101,   102,
-     0,   103,   344,     0,     0,     5,     0,     7,   138,     0,
-     0,     0,     0,     9,    10,    11,     0,     0,     0,   104,
-     0,    15,     0,   105,   106,     0,     0,     0,     0,    13,
-   107,     0,    15,   108,     0,     0,     0,     0,   109,   110,
-   111,     0,     0,     0,   112,   113,    16,     0,     0,   114,
-   115,     0,     0,     0,   116,     0,   117,     0,     0,     0,
-     0,   118,     0,     0,     0,   119,     0,     0,    22,   120,
-   121,   194,   668,    24,   -28,   -28,   -28,   -28,   345,  -271,
-     0,     0,   -28,   -28,   -28,     0,     0,     0,     0,     0,
-   340,     0,     0,   -24,   -24,   -24,   -24,   195,   -28,     0,
-  -175,   -24,   -24,   -24,     0,     0,  -175,     0,     0,     0,
-     0,     0,     0,     0,     0,   -28,   195,   -24,     0,  -175,
-     0,     0,     0,     0,     0,  -175,     0,     0,     0,   196,
-   197,     0,     0,     0,   -24,     0,     0,   -28,     0,     0,
-     0,     0,   -28,     0,     0,     0,     0,  -175,   196,   197,
-     0,  -175,   -28,     0,     0,     0,   -24,     0,     0,     0,
-     0,   -24,     0,     0,     0,     0,  -175,     0,     0,   334,
-  -175,   -24,   -20,   -20,   -20,   -20,     0,     0,     0,     0,
-   -20,   -20,   -20,     0,     0,     0,     0,     0,   321,     0,
-     0,     5,     6,     7,     8,   195,   -20,     0,  -175,     9,
-    10,    11,     0,     0,  -175,     0,     0,     0,     0,     0,
-     0,     0,     0,   -20,     0,    13,   321,    14,     0,  -335,
-  -335,  -335,  -335,     0,     0,     0,     0,  -335,  -335,  -335,
-     0,     0,    16,     0,     0,   -20,     0,     0,     0,     0,
-   -20,     0,     0,  -335,     0,  -175,     0,     0,     0,  -175,
-   -20,     0,   321,     0,    22,  -498,  -498,  -498,  -498,    24,
-  -335,     0,     0,  -498,  -498,  -498,     0,     0,     0,  -496,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  -498,
-   100,  -498,  -335,     0,     0,   101,   102,  -335,   103,     0,
-     0,     0,     0,     0,     0,     0,  -498,  -111,     0,     0,
-     0,     0,     0,     0,     0,     0,   104,     0,    15,     0,
-   105,   106,     0,     0,     0,     0,     0,   107,  -498,     0,
-   108,     0,     0,  -498,     0,   109,   110,   111,     0,     0,
-     0,   112,   113,  -498,     0,     0,   114,   115,     0,   100,
-     0,   116,     0,   117,   101,   102,     0,   103,   118,     0,
-     0,     0,   119,     0,     0,     0,   120,   121,     0,     0,
-   319,     0,     0,     0,     0,   104,     0,    15,     0,   105,
+     0,  -335,  -335,   643,     0,     0,  -335,     0,  -335,  -335,
+     0,     0,     0,  -335,  -335,     0,     0,  -335,     0,  -335,
+     0,  -335,  -335,   670,  -335,   849,     0,  -335,  -335,     0,
+     0,     0,  -335,  -335,     0,  -335,     0,     0,     0,  -335,
+     0,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+  -335,  -335,     0,  -335,     0,  -335,     0,  -335,  -335,     0,
+     0,     0,     0,     0,  -335,   263,   264,  -335,   265,   266,
+   267,   268,  -335,  -335,  -335,     0,     0,     0,  -335,  -335,
+     0,     0,     0,  -335,  -335,     0,     0,   643,  -335,     0,
+  -335,  -335,     0,     0,     0,  -335,  -335,     0,     0,  -335,
+   665,  -335,   100,  -335,  -335,     0,  -335,   101,   102,     0,
+   103,     0,     0,     0,     0,     0,     0,   670,     0,     0,
+     0,     0,     0,     0,   748,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,  -216,     0,     0,     0,   107,
+   760,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,  -216,   114,   115,
+     0,   670,     0,   116,   772,   117,     0,     0,     0,     0,
+   118,     0,     0,     0,   119,     0,     0,     0,   120,   121,
+   670,   668,     0,   670,     0,   670,     0,   879,     0,  -345,
+  -345,     0,     0,     0,  -345,  -345,     0,  -345,     0,     0,
+     0,  -345,   820,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
+  -345,  -345,  -345,  -345,   826,  -345,     0,  -345,     0,  -345,
+  -345,     0,     0,     0,     0,   832,  -345,     0,     0,  -345,
+     0,     0,     0,     0,  -345,  -345,  -345,     0,     0,     0,
+  -345,  -345,     0,     0,     0,  -345,  -345,     0,     0,     0,
+  -345,   670,  -345,  -345,     0,     0,     0,  -345,  -345,     0,
+     0,  -345,     0,  -345,     0,  -345,  -345,   231,  -345,   100,
+     5,     0,     7,   138,   101,   102,     0,   103,     9,    10,
+    11,   250,   251,   252,   253,   254,   255,   256,   257,   258,
+   259,   260,   261,   262,    13,   104,     0,    15,     0,   105,
+   106,     0,     0,     0,     0,     0,   107,   890,     0,   108,
+     0,    16,     0,     0,   109,   110,   111,     0,     0,     0,
+   112,   113,     0,     0,     0,   114,   115,     0,     0,     0,
+   116,     0,   117,    22,     0,     0,     0,   118,    24,     0,
+     0,   119,     0,     0,     0,   120,   121,   665,   -94,   666,
+    60,     0,     0,     0,   101,   102,   248,   103,   249,   250,
+   251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
+   261,   262,     0,     0,     0,   104,     0,    15,     0,   105,
+   106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
+     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
+   112,   113,     0,     0,   667,   114,   115,     0,     0,     0,
+   116,     0,   117,    61,     0,     0,     0,   118,    62,     0,
+     0,   119,     0,     0,  -203,   120,   121,   665,   668,   666,
+    60,     0,     0,     0,   101,   102,     0,   103,   251,   252,
+   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     0,     0,     0,     0,     0,   104,     0,    15,     0,   105,
    106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
      0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
+   112,   113,     0,     0,   667,   114,   115,     0,     0,     0,
+   116,     0,   117,    61,     0,     0,     0,   118,    62,     0,
+     0,   119,     0,     0,  -268,   120,   121,   641,   668,   100,
+     0,     0,     0,     0,   101,   102,     0,   103,   252,   253,
+   254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
+     0,     0,     0,     0,     0,   104,     0,    15,     0,   105,
+   106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
+     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
+   112,   113,     0,     0,     0,   114,   115,     0,     0,     0,
+   116,     0,   117,     0,     0,     0,     0,   118,     0,     0,
+     0,   119,   665,     0,   100,   120,   121,     0,   642,   101,
+   102,     0,   103,   344,     0,     0,     5,     0,     7,   138,
+     0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
+   104,     0,    15,     0,   105,   106,     0,     0,     0,     0,
+    13,   107,     0,    15,   108,     0,     0,     0,     0,   109,
+   110,   111,     0,     0,     0,   112,   113,    16,     0,     0,
+   114,   115,     0,     0,     0,   116,     0,   117,     0,     0,
+     0,     0,   118,     0,     0,     0,   119,     0,     0,    22,
+   120,   121,   194,   668,    24,   -28,   -28,   -28,   -28,   345,
+  -271,     0,     0,   -28,   -28,   -28,     0,     0,     0,     0,
+     0,   340,     0,     0,   -24,   -24,   -24,   -24,   195,   -28,
+     0,  -175,   -24,   -24,   -24,     0,     0,  -175,   255,   256,
+   257,   258,   259,   260,   261,   262,   -28,   195,   -24,     0,
+  -175,     0,     0,     0,     0,     0,  -175,     0,     0,     0,
+   196,   197,     0,     0,     0,   -24,     0,     0,   -28,     0,
+     0,     0,     0,   -28,     0,     0,     0,     0,  -175,   196,
+   197,     0,  -175,   -28,     0,     0,     0,   -24,     0,     0,
+     0,     0,   -24,     0,     0,     0,     0,  -175,     0,     0,
+   334,  -175,   -24,   -20,   -20,   -20,   -20,     0,     0,     0,
+     0,   -20,   -20,   -20,     0,     0,     0,     0,     0,   321,
+     0,     0,  -498,  -498,  -498,  -498,   195,   -20,     0,  -175,
+  -498,  -498,  -498,     0,     0,  -175,   256,   257,   258,   259,
+   260,   261,   262,     0,   -20,     0,  -498,   321,  -498,     0,
+  -335,  -335,  -335,  -335,     0,     0,     0,     0,  -335,  -335,
+  -335,     0,     0,  -498,     0,     0,   -20,     0,     0,     0,
+     0,   -20,     0,     0,  -335,     0,  -175,     0,     0,     0,
+  -175,   -20,     0,     0,     0,  -498,     0,     0,     0,   100,
+  -498,  -335,     0,     0,   101,   102,     0,   103,     0,     0,
+  -498,   253,   254,   255,   256,   257,   258,   259,   260,   261,
+   262,     0,     0,  -335,     0,   104,     0,    15,  -335,   105,
+   106,     0,     0,     0,     0,     0,   107,     0,  -111,   108,
+     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
    112,   113,     0,     0,     0,   114,   115,     0,   100,     0,
    116,     0,   117,   101,   102,     0,   103,   118,     0,     0,
-     0,   119,     0,     0,     0,   120,   121,     0,     0,   405,
+     0,   119,     0,     0,     0,   120,   121,     0,     0,   319,
      0,     0,     0,     0,   104,     0,    15,     0,   105,   106,
      0,     0,     0,     0,     0,   107,     0,     0,   108,     0,
      0,     0,     0,   109,   110,   111,     0,     0,     0,   112,
    113,     0,     0,     0,   114,   115,     0,   100,     0,   116,
      0,   117,   101,   102,     0,   103,   118,     0,     0,     0,
-   119,     0,     0,     0,   120,   121,     0,     0,   460,     0,
+   119,     0,     0,     0,   120,   121,     0,     0,   405,     0,
      0,     0,     0,   104,     0,    15,     0,   105,   106,     0,
      0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
      0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
      0,     0,     0,   114,   115,     0,   100,     0,   116,     0,
    117,   101,   102,     0,   103,   118,     0,     0,     0,   119,
-     0,     0,     0,   120,   121,     0,     0,   501,     0,     0,
+     0,     0,     0,   120,   121,     0,     0,   460,     0,     0,
      0,     0,   104,     0,    15,     0,   105,   106,     0,     0,
      0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
      0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
-     0,     0,   114,   115,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,     0,   118,     0,     0,     0,   119,     0,
-     0,     0,   120,   121,     0,     0,   767,   666,   778,     6,
-     7,     8,   101,   102,     0,   103,     9,    10,    11,   779,
-     0,   780,   781,   782,   783,   784,   785,   786,   787,   788,
-   789,   790,    13,   104,    14,    15,     0,   105,   106,     0,
-     0,     0,     0,     0,   107,     0,     0,   108,     0,    16,
-     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
-     0,     0,     0,   114,   115,     0,     0,     0,   116,     0,
-   117,   791,     0,     0,     0,   118,   792,     0,     0,   119,
-     0,   793,     0,   120,   121,     0,   360,   666,    60,     0,
-     0,     0,   101,   102,     0,   103,     0,     0,     0,   779,
-     0,   780,   781,   782,   783,   784,   785,   786,   787,   788,
-   789,   790,     0,   104,     0,    15,     0,   105,   106,     0,
-     0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
-     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
-     0,   100,     0,   114,   115,     0,   101,   102,   116,   103,
-   117,    61,     0,     0,     0,   118,    62,     0,     0,   119,
-     0,   793,     0,   120,   121,     0,   360,   104,     0,    15,
-     0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
-     0,   108,     0,     0,     0,     0,   109,   110,   111,     0,
-     0,     0,   112,   113,     0,     0,     0,   114,   115,     0,
-     0,     0,   116,     0,   117,     0,     0,     0,     0,   118,
-     0,     0,     0,   119,     0,     0,     0,   120,   121,     0,
-   479,   147,   148,     0,   149,   150,     0,     0,     0,   151,
-   152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,   167,   168,   169,     0,   100,
-     5,     6,     7,     8,   101,   102,   170,   103,     9,    10,
-    11,     5,     6,     7,     8,     0,     0,     0,     0,     9,
-    10,    11,     0,     0,    13,   104,    14,    15,     0,   105,
-   106,     0,     0,     0,     0,    13,   107,    14,     0,   108,
-   172,    16,     0,     0,   109,   110,   111,     0,     0,   295,
-   112,   113,    16,     0,     0,   114,   115,     0,     0,     0,
-   116,     0,   117,    22,     0,     0,     0,   118,    24,     0,
-     0,   119,     0,     0,    22,   120,   121,   100,     5,    24,
-     7,   138,   101,   102,   598,   103,     9,    10,    11,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    13,   104,     0,    15,     0,   105,   106,     0,
-     0,     0,     0,     0,   107,     0,     0,   108,     0,    16,
-     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
-     0,   100,     0,   114,   115,     0,   101,   102,   116,   103,
-   117,    22,     0,     0,     0,   118,    24,     0,     0,   119,
-     0,     0,     0,   120,   121,     0,     0,   104,     0,    15,
-     0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
-     0,   108,     0,     0,     0,     0,   109,   110,   111,     0,
-     0,     0,   112,   113,     0,   100,     0,   114,   115,     0,
-   101,   102,   116,   103,   117,   364,     0,     0,     0,   118,
-     0,     0,     0,   119,     0,     0,     0,   120,   121,     0,
+     0,     0,   114,   115,     0,   100,     0,   116,     0,   117,
+   101,   102,     0,   103,   118,     0,     0,     0,   119,     0,
+     0,     0,   120,   121,     0,     0,   501,     0,     0,     0,
      0,   104,     0,    15,     0,   105,   106,     0,     0,     0,
      0,     0,   107,     0,     0,   108,     0,     0,     0,     0,
-   109,   110,   111,     0,     0,     0,   112,   113,     0,   100,
-     0,   114,   115,     0,   101,   102,   116,   103,   117,     0,
-     0,     0,     0,   118,     0,     0,     0,   119,     0,   836,
-     0,   120,   121,     0,     0,   104,     0,    15,     0,   105,
-   106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
-     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
-   112,   113,     0,   100,     0,   114,   115,     0,   101,   102,
-   116,   103,   117,     0,     0,     0,     0,   118,     0,     0,
-     0,   119,     0,     0,     0,   120,   121,     0,     0,   104,
-     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
-   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
-   111,     0,     0,     0,   112,   113,     0,   100,     0,   242,
-   115,     0,   101,   102,   116,   103,   117,     0,     0,     0,
-     0,   118,     0,     0,     0,   119,     0,     0,     0,   120,
-   121,     0,     0,   104,     0,    15,     0,   105,   106,     0,
-     0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
-     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
-     0,   505,     0,   244,   115,     0,   101,   102,   116,   103,
-   117,     0,     0,     0,     0,   118,     0,     0,     0,   119,
-     0,     0,     0,   120,   121,     0,     0,   104,     0,    15,
-     0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
-     0,   108,     0,     0,     0,     0,   109,   110,   111,     0,
-     0,     0,   112,   113,     0,     0,     0,   114,   115,     0,
-     0,     0,   116,     0,   117,     0,     0,     0,     0,   118,
-     0,     0,     0,   119,     0,     0,   540,   120,   121,     5,
-     0,     7,   138,     0,     0,     0,     0,     9,    10,    11,
-     0,     0,     0,     0,   540,     0,     0,     5,     0,     7,
-   138,     0,     0,    13,     0,     9,    10,    11,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    16,    13,     0,     0,     0,     0,     0,     0,     4,     0,
-  -128,     5,     6,     7,     8,     0,     0,     0,    16,     9,
-    10,    11,    22,  -450,  -450,  -450,     0,    24,     0,     0,
-     0,     0,   541,  -450,    12,    13,     0,    14,    15,     0,
-    22,  -449,  -449,  -449,     0,    24,     0,     0,     0,     0,
-   541,  -449,    16,     0,     0,    17,    18,  -128,     0,     0,
-     0,     0,     0,     0,     0,     0,  -128,     0,    19,    20,
-    21,     0,     0,     0,    22,     0,     0,     0,    23,    24,
-    25,    26,     0,     4,    27,  -128,     5,     6,     7,     8,
-     0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    13,     4,    14,  -128,     5,     6,     7,     8,     0,     0,
-     0,     0,     9,    10,    11,     0,     0,    16,     0,     0,
-   526,   527,  -128,     0,     0,     0,     0,     0,    13,     0,
-    14,  -128,     0,     0,     0,     0,     0,     0,     0,    22,
-     0,     0,     0,     0,    24,    16,     0,     0,     0,    27,
-  -128,   434,     0,   435,     5,     6,     7,     8,     0,  -128,
-   436,     0,     9,    10,    11,     0,     0,    22,     0,     0,
-   434,     0,    24,     5,     6,     7,     8,    27,    13,   436,
-    14,     9,    10,    11,     5,     6,     7,     8,     0,     0,
-     0,     0,     9,    10,    11,    16,     0,    13,     0,    14,
-     0,     0,     0,     5,    89,     7,    90,     0,    13,     0,
-    14,     9,    10,    11,    16,     0,     0,    22,     0,     0,
-     0,     0,    24,     0,     0,    16,  -395,    13,     0,     0,
-     0,     0,     0,     0,     0,     0,    22,   344,     0,     0,
-     5,    24,     7,   138,    16,  -395,     0,    22,     9,    10,
-    11,     0,    24,     0,     0,     0,     0,   846,     0,     0,
-     0,     0,     0,     0,    13,     0,    22,    15,     0,     0,
-     0,    24,     0,     0,   147,   148,   637,   149,   150,     0,
-     0,    16,   151,   152,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,     0,     0,    22,     0,    14,     0,     0,    24,   170,
-   246,   247,   248,     0,   249,   250,   251,   252,   253,   254,
-   255,   256,   257,   258,   259,   260,   261,   262,     0,     0,
-   171,     0,     0,     0,     0,     0,   147,   148,     0,   149,
-   150,     0,     0,   172,   151,   152,   153,   154,   155,   156,
-   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,     0,   147,   148,     0,   149,   150,     0,
-     0,   367,   151,   152,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,     0,     0,     0,     0,     0,     0,     0,     0,   170,
-   147,   148,     0,   149,   150,   172,     0,     0,   151,   152,
+   109,   110,   111,     0,     0,     0,   112,   113,     0,     0,
+     0,   114,   115,     0,     0,     0,   116,     0,   117,     0,
+     0,     0,     0,   118,     0,     0,     0,   119,     0,     0,
+     0,   120,   121,     0,     0,   767,   666,   778,     6,     7,
+     8,   101,   102,     0,   103,     9,    10,    11,   779,     0,
+   780,   781,   782,   783,   784,   785,   786,   787,   788,   789,
+   790,    13,   104,    14,    15,     0,   105,   106,     0,     0,
+     0,     0,     0,   107,     0,     0,   108,     0,    16,     0,
+     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
+     0,     0,   114,   115,     0,     0,     0,   116,     0,   117,
+   791,     0,     0,     0,   118,   792,     0,     0,   119,     0,
+   793,     0,   120,   121,     0,   360,   666,    60,     0,     0,
+     0,   101,   102,     0,   103,     0,     0,     0,   779,     0,
+   780,   781,   782,   783,   784,   785,   786,   787,   788,   789,
+   790,     0,   104,     0,    15,     0,   105,   106,     0,     0,
+     0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
+     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
+   100,     0,   114,   115,     0,   101,   102,   116,   103,   117,
+    61,     0,     0,     0,   118,    62,     0,     0,   119,     0,
+   793,     0,   120,   121,     0,   360,   104,     0,    15,     0,
+   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
+   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
+     0,   112,   113,     0,     0,     0,   114,   115,     0,     0,
+     0,   116,     0,   117,     0,     0,     0,     0,   118,     0,
+     0,     0,   119,     0,     0,     0,   120,   121,     0,   479,
+   147,   148,     0,   149,   150,     0,     0,     0,   151,   152,
    153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,     0,     0,     5,
-     0,     7,   280,   172,     0,   583,     0,     9,    10,    11,
-     5,     6,     7,     8,     0,     0,   436,     0,     9,    10,
-    11,     0,     0,    13,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    13,     0,    14,     0,     0,   172,
-    16,     0,     0,     0,     0,   273,     0,     0,     0,     0,
-     0,    16,     0,     0,   274,   275,     0,     0,     0,     0,
-     0,     0,    22,     0,     0,     0,     0,    24,     0,     0,
-     0,     0,     0,    22,     5,     6,     7,     8,    24,     0,
-   631,     0,     9,    10,    11,     5,     6,     7,     8,     0,
-     0,     0,     0,     9,    10,    11,     0,     0,    13,     0,
-    14,     0,     0,     0,     5,     0,     7,   138,     0,    13,
-     0,    14,     9,    10,    11,    16,     0,     0,     0,     0,
-     0,     0,     5,     0,     7,   280,    16,     0,    13,     0,
-     9,    10,    11,     0,     0,     0,     0,    22,     0,     0,
-     0,     0,    24,     0,     0,    16,    13,     0,    22,     0,
-     0,     0,     0,    24,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    16,     0,     0,     0,    22,     0,     0,
-     0,     0,    24,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,    22,     0,     0,     0,     0,
-    24,   246,   247,   248,   904,   249,   250,   251,   252,   253,
-   254,   255,   256,   257,   258,   259,   260,   261,   262,   246,
-   247,   248,     0,   249,   250,   251,   252,   253,   254,   255,
-   256,   257,   258,   259,   260,   261,   262
+   163,   164,   165,   166,   167,   168,   169,     0,   100,     5,
+     6,     7,     8,   101,   102,   170,   103,     9,    10,    11,
+     5,     6,     7,     8,     0,     0,     0,     0,     9,    10,
+    11,     0,     0,    13,   104,    14,    15,     0,   105,   106,
+     0,     0,     0,     0,    13,   107,    14,     0,   108,   172,
+    16,     0,     0,   109,   110,   111,     0,     0,   295,   112,
+   113,    16,     0,     0,   114,   115,     0,     0,     0,   116,
+     0,   117,    22,     0,     0,     0,   118,    24,     0,     0,
+   119,     0,     0,    22,   120,   121,   100,     5,    24,     7,
+   138,   101,   102,    84,   103,     9,    10,    11,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,     0,     0,     0,
+     0,    13,   104,     0,    15,     0,   105,   106,     0,     0,
+     0,     0,     0,   107,     0,     0,   108,     0,    16,     0,
+     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
+   100,     0,   114,   115,     0,   101,   102,   116,   103,   117,
+    22,     0,     0,     0,   118,    24,     0,     0,   119,     0,
+     0,     0,   120,   121,     0,     0,   104,     0,    15,     0,
+   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
+   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
+     0,   112,   113,     0,   100,     0,   114,   115,     0,   101,
+   102,   116,   103,   117,   364,     0,     0,     0,   118,     0,
+     0,     0,   119,     0,     0,     0,   120,   121,     0,     0,
+   104,     0,    15,     0,   105,   106,     0,     0,     0,     0,
+     0,   107,     0,     0,   108,     0,     0,     0,     0,   109,
+   110,   111,     0,     0,     0,   112,   113,     0,   100,     0,
+   114,   115,     0,   101,   102,   116,   103,   117,     0,     0,
+     0,     0,   118,     0,     0,     0,   119,     0,   836,     0,
+   120,   121,     0,     0,   104,     0,    15,     0,   105,   106,
+     0,     0,     0,     0,     0,   107,     0,     0,   108,     0,
+     0,     0,     0,   109,   110,   111,     0,     0,     0,   112,
+   113,     0,   100,     0,   114,   115,     0,   101,   102,   116,
+   103,   117,     0,     0,     0,     0,   118,     0,     0,     0,
+   119,     0,     0,     0,   120,   121,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,   100,     0,   242,   115,
+     0,   101,   102,   116,   103,   117,     0,     0,     0,     0,
+   118,     0,     0,     0,   119,     0,     0,     0,   120,   121,
+     0,     0,   104,     0,    15,     0,   105,   106,     0,     0,
+     0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
+     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
+   505,     0,   244,   115,     0,   101,   102,   116,   103,   117,
+     0,     0,     0,     0,   118,     0,     0,     0,   119,     0,
+     0,     0,   120,   121,     0,     0,   104,     0,    15,     0,
+   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
+   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
+     0,   112,   113,     0,     0,     0,   114,   115,     0,     0,
+     0,   116,     0,   117,     0,     0,     0,     0,   118,     0,
+     0,     0,   119,     0,     0,   540,   120,   121,     5,     0,
+     7,   138,     0,     0,     0,     0,     9,    10,    11,     0,
+     0,     0,     0,   540,     0,     0,     5,     0,     7,   138,
+     0,     0,    13,     0,     9,    10,    11,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
+    13,     0,     0,     0,     0,     0,     0,     4,     0,  -128,
+     5,     6,     7,     8,     0,     0,     0,    16,     9,    10,
+    11,    22,  -450,  -450,  -450,     0,    24,     0,     0,     0,
+     0,   541,  -450,    12,    13,     0,    14,    15,     0,    22,
+  -449,  -449,  -449,     0,    24,     0,     0,     0,     0,   541,
+  -449,    16,     0,     0,    17,    18,  -128,     0,     0,     0,
+     0,     0,     0,     0,     0,  -128,     0,    19,    20,    21,
+     0,     0,     0,    22,     0,     0,     0,    23,    24,    25,
+    26,     0,     4,    27,  -128,     5,     6,     7,     8,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
+     4,    14,  -128,     5,     6,     7,     8,     0,     0,     0,
+     0,     9,    10,    11,     0,     0,    16,     0,     0,   526,
+   527,  -128,     0,     0,     0,     0,     0,    13,   434,    14,
+  -128,     5,     6,     7,     8,     0,     0,   436,    22,     9,
+    10,    11,     0,    24,    16,     0,     0,     0,    27,  -128,
+     0,     5,     6,     7,     8,    13,     0,    14,  -128,     9,
+    10,    11,     0,     0,     0,     0,    22,     0,     0,     0,
+     0,    24,    16,     0,     0,    13,    27,    14,     0,     0,
+     5,     6,     7,     8,     0,     0,     0,     0,     9,    10,
+    11,     0,    16,     0,    22,     0,     0,     0,     0,    24,
+     0,     0,     0,  -395,    13,     0,    14,     0,     5,    89,
+     7,    90,     0,     0,    22,     0,     9,    10,    11,    24,
+     0,    16,     0,     0,   598,   344,     0,     0,     5,     0,
+     7,   138,    13,     0,     0,     0,     9,    10,    11,     0,
+     0,     0,     0,    22,     0,     0,     0,     0,    24,    16,
+     0,     0,    13,   846,     0,    15,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
+     0,    22,     0,     0,     0,     0,    24,     0,     0,     0,
+     0,   637,     0,     0,     0,     0,     0,     0,     0,   147,
+   148,    22,   149,   150,     0,     0,    24,   151,   152,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,     0,   147,   148,     0,
+   149,   150,     0,     0,   170,   151,   152,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,     0,   171,     0,     0,     0,     0,
+     0,     0,   367,   147,   148,     0,   149,   150,   172,     0,
+     0,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     0,   147,   148,     0,   149,   150,   172,     0,   170,   151,
+   152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,     0,     0,
+     0,     5,     6,     7,     8,     0,   583,   436,     0,     9,
+    10,    11,   172,     5,     6,     7,     8,     0,     0,   631,
+     0,     9,    10,    11,     0,    13,     0,    14,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    13,     0,    14,
+   172,     0,    16,     5,     6,     7,     8,     5,     6,     7,
+     8,     9,    10,    11,    16,     9,    10,    11,     0,     0,
+     0,     0,     0,     0,    22,     0,     0,    13,     0,    24,
+     0,    13,     0,    14,     0,     0,    22,     5,     0,     7,
+   280,    24,     0,     0,    16,     9,    10,    11,    16,     0,
+     0,     0,     0,     0,   866,     0,     0,     0,     0,     0,
+     0,    13,     0,     0,     0,     0,    22,     0,     0,     0,
+    22,    24,     0,     0,     0,    24,     0,     0,    16,   246,
+   247,   248,   867,   249,   250,   251,   252,   253,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,    14,     0,     0,
+    22,     0,   246,   247,   248,    24,   249,   250,   251,   252,
+   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+   246,   247,   248,   905,   249,   250,   251,   252,   253,   254,
+   255,   256,   257,   258,   259,   260,   261,   262,   246,   247,
+   248,     0,   249,   250,   251,   252,   253,   254,   255,   256,
+   257,   258,   259,   260,   261,   262
 };
 
 static const short yycheck[] = {    56,
     57,   207,     2,     3,    16,     2,     3,    19,    20,     2,
      3,    23,   316,    25,    26,    31,     9,    10,    11,     2,
-     3,   201,   198,    22,    85,    24,    38,    39,    40,    83,
-    33,   308,    24,    91,   278,   175,   233,   274,    31,   206,
-    33,   337,    42,    66,   175,    42,   267,    32,    33,    42,
-   105,   106,    33,   404,   335,   140,   111,    95,   143,    42,
-   341,    77,    74,   570,   427,   221,   192,   122,    67,    85,
-   221,   676,    71,   636,   114,    67,    57,     1,   133,    71,
-   548,   323,     1,   202,    77,    36,   425,     3,     4,     1,
-    83,    10,    85,   273,     1,   107,   236,     3,    91,    45,
-     9,    36,    53,    54,    55,    38,   720,   829,   314,     1,
-   902,     3,     4,    27,    68,    69,    70,     0,     3,     4,
-     5,     6,     7,    58,    78,   739,    59,    48,    49,    80,
-     0,   171,   144,   114,   146,    81,    42,    88,   930,   744,
-   197,    30,    63,     3,     4,    59,    60,    38,   324,    82,
-    45,    67,    59,    77,   212,   662,    72,   879,   170,   335,
-     3,     4,   143,    82,   401,   341,   410,    76,   180,   181,
-    82,   183,   184,   189,   416,    67,   898,   193,   235,   901,
-    72,   903,    67,     3,     4,    76,   202,    72,     3,   911,
-   171,    59,   413,   349,    38,   534,   189,   237,   349,   192,
-   193,    45,   242,    38,   244,   810,   332,    67,    38,   202,
-   329,   268,    72,   225,   333,    30,     7,    30,   275,   212,
-   278,   943,    82,    59,    67,    38,   238,    38,   735,    72,
-   370,    59,     3,     4,    45,    50,   704,   705,   221,    82,
-   221,    76,    30,    77,    59,   522,    76,    67,    59,    59,
-   613,   291,    72,   265,   266,   206,   237,    59,    60,    50,
-    38,   242,    82,   244,    65,   604,   217,    45,    59,    60,
-    82,    59,    60,   515,    76,   431,    82,     3,     4,   630,
-   431,   338,   845,    68,    69,    70,    30,   299,    59,   465,
-    76,   467,    82,    78,     1,    81,    67,     4,     5,     6,
-     7,    72,   301,    10,    30,    12,    13,    14,   363,   301,
-   291,    59,   350,   329,   352,    59,    60,   333,    59,    60,
-     5,    28,     7,   380,    50,   318,     3,     4,    59,   606,
-     7,    59,    60,    59,    59,    76,   329,   579,    45,   332,
-   333,   481,    76,   850,    76,   357,    72,    27,    76,    81,
-    30,   408,   410,    30,   822,     9,    36,    81,   555,    76,
-    67,   346,   583,   348,    81,    72,   349,   348,   349,   509,
-    76,   592,    77,    50,    76,    82,    81,   328,   509,    81,
-   420,     4,    59,     6,     7,   622,    50,    51,    52,    12,
-    13,    14,    68,    69,    70,    72,   640,    77,    50,    82,
-   412,    81,    78,   579,    76,    28,    75,    59,    60,    81,
-   706,   404,    77,    78,    76,   657,   416,   694,   660,   416,
-    59,    60,    45,   416,     3,   424,   419,   427,     7,    77,
-   427,    38,   424,    81,   427,   438,    77,    59,    60,   420,
-    81,   621,   427,    77,    67,   438,   586,   627,   451,    72,
-   431,    30,   437,   438,    77,    78,   623,   438,   679,     3,
-   616,   473,    77,   548,   549,   616,    81,   704,    59,    60,
-   451,    50,   648,   717,   711,     3,     4,    59,     3,     4,
-    59,    60,   658,    77,   660,    77,    30,    81,    59,    81,
-   336,    78,     3,     4,    77,   507,    76,   343,    81,    68,
-    69,    70,    30,    77,    76,   351,    50,    81,   511,    78,
-    38,    77,    78,   529,   514,    59,    60,   514,   511,    30,
-    78,   514,    50,     3,     4,   510,    82,    38,   531,    76,
-   511,    59,   548,   549,    59,    77,   529,   814,   531,    50,
-   737,    38,    67,    76,    72,   530,   531,    72,    59,    10,
-   531,   612,    59,    77,    78,   548,   549,   542,   543,   552,
-    77,    72,   543,   617,   618,    77,   578,    77,    77,    81,
-    50,    81,    81,    76,   559,   560,    63,   638,    82,   560,
-   777,   597,   640,    76,   764,   608,   609,    67,    27,   516,
-   602,     9,    72,   520,    83,   649,   612,    59,    60,     4,
-     5,     6,     7,    77,   597,    36,   622,    12,    13,    14,
-   126,   127,   893,   613,   895,    67,   613,    77,   611,   612,
-   613,    36,   638,    28,   617,   618,     3,     4,   613,   622,
-     7,     3,     4,   937,     3,   616,   563,   630,     7,   566,
-    45,   945,    78,   636,    81,   638,    76,    38,    76,    76,
-   707,    76,    76,    30,    76,   667,   649,    38,    30,   717,
-    76,    30,    67,     6,     7,    76,    83,    72,   874,    12,
-    13,    14,   623,    50,    83,    76,    82,    63,    50,    63,
-   737,    50,    59,   880,    76,    36,   241,    59,   704,   705,
-    59,   246,   247,    76,    83,   711,   251,   252,   253,   254,
-   255,   256,   257,   258,   259,   260,   261,   262,   762,    76,
-    78,   704,   705,    27,    78,   727,    30,   893,   711,   895,
-   777,    78,    36,   920,   921,   737,   572,   573,     3,     4,
-   576,   788,     7,    32,    38,    83,    76,   737,   754,    77,
-   737,     3,     4,    76,   737,    59,    60,    81,    77,     5,
-     6,     7,     3,   808,   737,    30,    12,    13,    14,    77,
-    81,   754,    78,    77,    38,   777,    83,    81,    30,   762,
-   827,    63,    78,   830,   831,    50,    78,   789,   624,   625,
-   626,   838,   628,   629,    59,    60,   847,    78,    50,    38,
-    38,   845,   791,   792,    81,   798,   853,    59,    60,    63,
-   792,    38,    81,   860,    63,   798,   822,   653,   808,    78,
-    83,   808,   797,   798,   871,   808,    38,   798,    48,    49,
-    50,    51,    52,   880,    78,   808,    59,   382,   383,   822,
-    59,   847,    59,    38,    77,     5,     6,     7,    77,   685,
-   686,   687,    12,    13,    14,   902,     7,    38,     4,     5,
-     6,     7,   845,    77,   847,    78,    12,    13,    14,    77,
-    30,    16,    59,    77,    77,    59,    76,   924,   880,    17,
-    63,    77,    28,   930,    30,    76,     9,    77,   724,    77,
-     1,    76,     3,     4,     5,     6,     7,     8,     9,    45,
-    11,    12,    13,    14,    15,    76,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-    31,    67,    33,    34,    77,    77,    72,   472,    59,    40,
-    77,    77,    43,    81,    45,    76,   772,    48,    49,    50,
-    76,     0,    77,    54,    55,    77,   491,     0,    59,    60,
-   413,   808,   830,    64,   324,    66,    67,   658,    87,   639,
-    71,    72,   646,   281,    75,   412,    77,    78,    79,    80,
-   742,    82,   675,   357,    54,    55,   467,    57,    58,    59,
-    60,     1,   658,     3,     4,     5,     6,     7,     8,     9,
-   826,    11,    12,    13,    14,    15,    76,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-    30,    31,   349,    33,    34,   475,   648,   562,   473,   660,
-    40,   880,   580,    43,   880,    45,   927,   925,    48,    49,
-    50,   419,   407,   419,    54,    55,   552,   582,    25,    59,
-    60,   539,   618,   762,    64,   300,    66,    67,   759,   514,
-   532,    71,    72,   509,   754,    75,   679,    77,   586,    79,
-    80,   370,    82,     1,   415,     3,     4,   415,    -1,    -1,
-     8,     9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,
+     3,   201,   175,    22,    85,    24,    38,    39,    40,    83,
+    33,   308,    24,    91,   278,   337,   221,   198,    31,   206,
+    33,   175,    42,    66,    95,    42,   267,    32,    33,    42,
+   105,   106,    33,   404,   274,   140,   111,   233,   143,    42,
+   323,    77,    74,   570,   636,   221,   192,   122,    67,    85,
+   425,   335,    71,   548,   114,    67,    57,   341,   133,    71,
+   676,   427,     9,   236,    77,    36,     1,     3,     4,     1,
+    83,    38,    85,   273,   202,   107,     3,     4,    91,     3,
+     1,     1,    53,    54,    55,    36,    38,    30,   314,    38,
+    10,   903,    59,    45,    38,    38,    45,   720,    77,     3,
+     4,    38,    81,     1,    77,     3,     4,    58,    81,    80,
+    59,   171,   144,   114,   146,    82,   739,    88,    42,   931,
+   197,     3,     4,     5,     6,     7,    38,    59,   744,    76,
+    38,    67,    76,   416,   212,   662,    72,    45,   170,    76,
+    67,   829,   143,   324,   349,    72,   410,    82,   180,   181,
+     0,   183,   184,   189,   335,    82,    77,   193,   235,   534,
+   341,   401,    82,    67,    76,     0,   202,    45,    72,    67,
+   171,    77,   413,   349,    72,    81,   189,   237,    82,   192,
+   193,    30,   242,    59,   244,    67,   332,    59,    60,   202,
+    72,   268,   880,   225,   810,     3,     4,   370,   275,   212,
+   278,   329,    76,    81,    76,   333,   238,    81,   735,   704,
+   705,   899,    59,     3,   902,    77,   904,     7,   221,    81,
+   221,     5,    30,     7,   912,   522,   431,     3,     4,   604,
+    38,   291,   515,   265,   266,   206,   237,    59,     3,     4,
+    30,   242,    50,   244,     3,     4,   217,   613,     7,    77,
+    78,    59,    76,   845,    30,   431,   944,    81,     7,   630,
+    50,   338,    59,    60,    72,     3,     4,   299,     3,    59,
+    60,    30,     7,    45,    50,     3,     4,    59,    60,   350,
+    76,   352,   301,    59,   465,    81,   467,    65,   363,   301,
+   291,    50,    30,   329,    76,    30,   579,   333,    77,    30,
+    59,    50,    67,   380,    59,   318,    59,    72,   481,   606,
+    59,    60,    50,    72,    77,    50,   329,    82,    81,   332,
+   333,    59,    50,   850,    59,   357,    82,   822,    59,    60,
+    76,   408,   410,    27,    72,    81,   509,    59,    60,    67,
+    82,   346,   583,   348,    72,     3,   349,   348,   349,    30,
+    82,   592,    77,    59,    76,   509,    81,   328,     1,   555,
+   420,     4,     5,     6,     7,    59,    60,    10,    76,    12,
+    13,    14,    30,    81,   657,    59,   640,   660,    59,    60,
+   412,    76,   622,    81,   706,    28,     5,     6,     7,    48,
+    49,   404,    50,    12,    13,    14,   416,   694,   579,   416,
+     9,    59,    45,   416,    63,   424,   419,   427,    59,    60,
+   427,   616,   424,   586,   427,   438,     3,     4,    75,   420,
+    76,   621,   427,    76,    67,   438,    38,   627,   451,    72,
+   431,    77,   437,   438,     3,     4,   623,   438,   679,    82,
+   616,   473,    27,   548,   549,    30,     4,    82,     6,     7,
+   451,    36,    59,   717,    12,    13,    14,    59,    60,     3,
+     4,    30,    77,    59,   704,    78,    81,   648,    78,    38,
+    28,   711,    59,    76,    50,   507,    76,   658,    82,   660,
+    67,    50,   516,    59,    60,    72,   520,    45,   511,    77,
+    59,    77,    77,   529,   514,    81,    81,   514,   511,    38,
+    77,   514,    77,    72,    81,   510,    81,    77,   531,    67,
+   511,    81,   548,   549,    72,    59,   529,   814,   531,    77,
+    78,     3,     4,    67,    76,   530,   531,    59,    72,   563,
+   531,   612,   566,     3,    76,   548,   549,   542,   543,   552,
+    77,   737,   543,   617,   618,    10,   578,    76,    30,    48,
+    49,    50,    51,    52,   559,   560,    63,   638,    82,   560,
+    30,   597,   640,    76,   764,   608,   609,    27,    50,     9,
+   602,    83,    68,    69,    70,   649,   612,    59,    60,    77,
+    50,   777,    78,    36,   597,    77,   622,    67,   336,    59,
+    60,    77,    78,   613,    36,   343,   613,    81,   611,   612,
+   613,    78,   638,   351,   617,   618,    77,    78,   613,   622,
+   894,    38,   896,    76,   938,   616,    83,   630,     4,    76,
+     6,     7,   946,   636,    76,   638,    12,    13,    14,    76,
+   707,    50,    51,    52,    38,   667,   649,    59,    60,   717,
+     3,     4,    28,    76,     7,   126,   127,    76,    76,   875,
+     1,    83,   623,     4,     5,     6,     7,    82,    76,    45,
+   737,    12,    13,    14,    50,    76,    63,    30,   704,   705,
+    68,    69,    70,    59,    60,   711,    63,    28,    36,    30,
+    78,    67,    76,    76,    83,   881,    72,    50,   762,    78,
+    78,   704,   705,    76,    45,   727,    59,    60,   711,     4,
+   777,     6,     7,    78,    32,   737,    38,    12,    13,    14,
+    83,   788,    76,   894,    81,   896,    67,   737,   754,    76,
+   737,    72,    77,    28,   737,   921,   922,    27,    77,     3,
+    30,    82,    77,   808,   737,    81,    36,    68,    69,    70,
+    45,   754,     3,     4,    78,   777,     7,    78,    38,   762,
+   827,    63,    78,   830,   831,    78,    83,   789,    38,    59,
+    60,   838,    67,    38,    78,    81,   847,    72,    63,    30,
+    38,   845,   791,   792,    81,   798,   853,    77,    63,    78,
+   792,    81,    83,   860,    78,   798,   822,    38,   808,    50,
+    59,   808,   797,   798,   871,   808,    59,   798,    59,    59,
+    38,    77,   241,     7,   881,   808,    77,   246,   247,   822,
+    38,   847,   251,   252,   253,   254,   255,   256,   257,   258,
+   259,   260,   261,   262,   572,   573,   903,    77,   576,    77,
+    16,    78,   845,    59,   847,    54,    55,    77,    57,    58,
+    59,    60,    77,     5,     6,     7,    59,    63,   925,   881,
+    12,    13,    14,    76,   931,    77,    17,    76,     1,    76,
+     3,     4,     5,     6,     7,    77,    76,    10,    30,    12,
+    13,    14,    68,    69,    70,    76,   624,   625,   626,    77,
+   628,   629,    78,     6,     7,    28,    77,    30,     9,    12,
+    13,    14,    77,     1,    59,     3,     4,    81,    77,    76,
+     8,     9,    45,    11,    76,   653,    77,    15,    77,    17,
     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,   646,    40,    54,    55,    43,    57,    58,    59,    60,
+     0,    29,     0,    31,    67,    33,    34,   830,   413,    72,
+    87,   658,    40,    76,   324,    43,   639,   685,   686,   687,
+    48,    49,    50,   382,   383,   808,    54,    55,   281,   646,
+   412,    59,    60,   742,   675,   475,    64,   349,    66,    67,
+   648,   467,   357,    71,    72,   473,   658,    75,   881,    77,
+    78,    79,    80,   660,    82,   580,   724,   407,   926,   881,
+   552,   419,   928,     1,   419,     3,     4,     5,     6,     7,
+     8,     9,    25,    11,    12,    13,    14,    15,   539,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,    30,    31,   759,    33,    34,   618,   762,   300,
+   514,   532,    40,   586,   772,    43,   509,    45,   754,   679,
+    48,    49,    50,   472,   415,   415,    54,    55,    -1,    -1,
+   370,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,
+    -1,    -1,   491,    71,    72,    -1,    -1,    75,    -1,    77,
+    78,    79,    80,     1,    82,     3,     4,     5,     6,     7,
+     8,     9,    -1,    11,    12,    13,    14,    15,   826,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,    30,    31,   842,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,
     48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
-    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,
-    10,   676,    -1,    71,    72,    -1,    -1,    75,   683,    77,
-    78,    79,    80,    -1,    82,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,   699,    35,    36,    37,    38,    39,
-    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    -1,    -1,   720,    -1,    37,   723,    39,
-    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    -1,   739,    -1,    -1,   742,    -1,   744,
-    -1,     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,
-    -1,    11,    -1,    -1,    -1,    15,   761,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    27,   773,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,   784,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
-    60,    -1,    -1,    -1,    64,   810,    66,    67,    -1,    -1,
-    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
-    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
-    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,   866,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
-    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
-    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
-    80,     1,    82,     3,     4,    -1,     6,     7,     8,     9,
-    -1,    11,    12,    13,    14,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    28,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
-    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
-    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    -1,    79,
-    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
-    -1,    11,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    -1,    -1,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
-    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
-    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,
-    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
-    -1,    11,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    -1,    -1,    -1,    -1,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
-    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
-    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,
-    80,     1,    82,     3,    -1,    -1,    -1,    -1,     8,     9,
-    -1,    11,    43,    44,    45,    46,    47,    48,    49,    50,
-    51,    52,    46,    47,    48,    49,    50,    51,    52,    29,
-    -1,    31,    -1,    33,    34,    -1,    36,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
-    60,    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,
-    -1,    71,    -1,    -1,    -1,    75,     1,    -1,     3,    79,
-    80,    -1,    82,     8,     9,    -1,    11,    45,    46,    47,
-    48,    49,    50,    51,    52,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
-    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
-    75,     1,    -1,     3,    79,    80,    -1,    82,     8,     9,
-    -1,    11,     1,    -1,    -1,     4,    -1,     6,     7,    -1,
-    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    28,
-    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    45,    -1,    -1,    59,
-    60,    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,
-    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    67,    79,
-    80,     1,    82,    72,     4,     5,     6,     7,    77,    78,
-    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
-     1,    -1,    -1,     4,     5,     6,     7,    27,    28,    -1,
-    30,    12,    13,    14,    -1,    -1,    36,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    45,    27,    28,    -1,    30,
-    -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    59,
-    60,    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,
-    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    59,    60,
-    -1,    81,    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,     1,
-    81,    82,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
-    12,    13,    14,    -1,    -1,    -1,    -1,    -1,     1,    -1,
-    -1,     4,     5,     6,     7,    27,    28,    -1,    30,    12,
-    13,    14,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    45,    -1,    28,     1,    30,    -1,     4,
-     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-    72,    -1,    -1,    28,    -1,    77,    -1,    -1,    -1,    81,
-    82,    -1,     1,    -1,    67,     4,     5,     6,     7,    72,
-    45,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    82,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
-     3,    30,    67,    -1,    -1,     8,     9,    72,    11,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    45,    82,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    67,    -1,
-    43,    -1,    -1,    72,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    82,    -1,    -1,    59,    60,    -1,     3,
-    -1,    64,    -1,    66,     8,     9,    -1,    11,    71,    -1,
-    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,
-    83,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
+    -1,    59,    60,   562,    -1,    -1,    64,    -1,    66,    67,
+    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,
+    -1,    79,    80,   582,    82,     1,    -1,     3,     4,    -1,
+    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
+    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,
+    59,    60,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,    -1,    -1,    59,    60,    -1,    -1,   646,    64,    -1,
+    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
+     1,    77,     3,    79,    80,    -1,    82,     8,     9,    -1,
+    11,    -1,    -1,    -1,    -1,    -1,    -1,   676,    -1,    -1,
+    -1,    -1,    -1,    -1,   683,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    36,    -1,    -1,    -1,    40,
+   699,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
+    -1,   720,    -1,    64,   723,    66,    -1,    -1,    -1,    -1,
+    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
+   739,    82,    -1,   742,    -1,   744,    -1,     1,    -1,     3,
+     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
+    -1,    15,   761,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,   773,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,   784,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
+    64,   810,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
+    -1,    75,    -1,    77,    -1,    79,    80,     1,    82,     3,
+     4,    -1,     6,     7,     8,     9,    -1,    11,    12,    13,
+    14,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    28,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,   866,    -1,    43,
+    -1,    45,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
+    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
+    -1,    75,    -1,    -1,    -1,    79,    80,     1,    82,     3,
+     4,    -1,    -1,    -1,     8,     9,    37,    11,    39,    40,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
     34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
     -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,
+    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
+    -1,    75,    -1,    -1,    78,    79,    80,     1,    82,     3,
+     4,    -1,    -1,    -1,     8,     9,    -1,    11,    41,    42,
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,
+    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
+    -1,    75,    -1,    -1,    78,    79,    80,     1,    82,     3,
+    -1,    -1,    -1,    -1,     8,     9,    -1,    11,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
+    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
+    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
+    -1,    75,     1,    -1,     3,    79,    80,    -1,    82,     8,
+     9,    -1,    11,     1,    -1,    -1,     4,    -1,     6,     7,
+    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
+    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    28,    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    45,    -1,    -1,
+    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,
+    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    67,
+    79,    80,     1,    82,    72,     4,     5,     6,     7,    77,
+    78,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
+    -1,     1,    -1,    -1,     4,     5,     6,     7,    27,    28,
+    -1,    30,    12,    13,    14,    -1,    -1,    36,    45,    46,
+    47,    48,    49,    50,    51,    52,    45,    27,    28,    -1,
+    30,    -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
+    59,    60,    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,
+    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    59,
+    60,    -1,    81,    82,    -1,    -1,    -1,    67,    -1,    -1,
+    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,
+     1,    81,    82,     4,     5,     6,     7,    -1,    -1,    -1,
+    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,     1,
+    -1,    -1,     4,     5,     6,     7,    27,    28,    -1,    30,
+    12,    13,    14,    -1,    -1,    36,    46,    47,    48,    49,
+    50,    51,    52,    -1,    45,    -1,    28,     1,    30,    -1,
+     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
+    14,    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,
+    -1,    72,    -1,    -1,    28,    -1,    77,    -1,    -1,    -1,
+    81,    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,     3,
+    72,    45,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
+    82,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    -1,    -1,    67,    -1,    29,    -1,    31,    72,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    82,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
     54,    55,    -1,    -1,    -1,    59,    60,    -1,     3,    -1,
     64,    -1,    66,     8,     9,    -1,    11,    71,    -1,    -1,
     -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,
@@ -1527,155 +1508,156 @@ static const short yycheck[] = {    56,
     -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
     -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
     -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,
-    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
-    -1,    -1,    79,    80,    -1,    -1,    83,     3,     4,     5,
-     6,     7,     8,     9,    -1,    11,    12,    13,    14,    15,
-    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    45,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
-    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
-    -1,    77,    -1,    79,    80,    -1,    82,     3,     4,    -1,
-    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
-    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,    11,
-    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
-    -1,    77,    -1,    79,    80,    -1,    82,    29,    -1,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
-    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,
-    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
-    82,     3,     4,    -1,     6,     7,    -1,    -1,    -1,    11,
-    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-    22,    23,    24,    25,    26,    27,    28,    29,    -1,     3,
-     4,     5,     6,     7,     8,     9,    38,    11,    12,    13,
-    14,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    -1,    -1,    28,    29,    30,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    28,    40,    30,    -1,    43,
-    72,    45,    -1,    -1,    48,    49,    50,    -1,    -1,    81,
-    54,    55,    45,    -1,    -1,    59,    60,    -1,    -1,    -1,
-    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
-    -1,    75,    -1,    -1,    67,    79,    80,     3,     4,    72,
-     6,     7,     8,     9,    77,    11,    12,    13,    14,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    28,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    45,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,    11,
-    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
-    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,
-     8,     9,    64,    11,    66,    67,    -1,    -1,    -1,    71,
-    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
+    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,
+     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,
+    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,
     -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
     -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
-    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    -1,
-    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    77,
-    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,     9,
-    64,    11,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
-    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
-    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,    -1,
-    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,
-    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,    11,
-    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
-    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
-    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,
-    -1,    -1,    -1,    75,    -1,    -1,     1,    79,    80,     4,
-    -1,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    -1,    -1,    -1,    -1,     1,    -1,    -1,     4,    -1,     6,
-     7,    -1,    -1,    28,    -1,    12,    13,    14,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    45,    28,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
-     3,     4,     5,     6,     7,    -1,    -1,    -1,    45,    12,
-    13,    14,    67,    68,    69,    70,    -1,    72,    -1,    -1,
-    -1,    -1,    77,    78,    27,    28,    -1,    30,    31,    -1,
-    67,    68,    69,    70,    -1,    72,    -1,    -1,    -1,    -1,
-    77,    78,    45,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,    61,    62,
-    63,    -1,    -1,    -1,    67,    -1,    -1,    -1,    71,    72,
-    73,    74,    -1,     1,    77,     3,     4,     5,     6,     7,
-    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    28,     1,    30,     3,     4,     5,     6,     7,    -1,    -1,
-    -1,    -1,    12,    13,    14,    -1,    -1,    45,    -1,    -1,
-    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    28,    -1,
-    30,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
-    -1,    -1,    -1,    -1,    72,    45,    -1,    -1,    -1,    77,
-    50,     1,    -1,     3,     4,     5,     6,     7,    -1,    59,
-    10,    -1,    12,    13,    14,    -1,    -1,    67,    -1,    -1,
-     1,    -1,    72,     4,     5,     6,     7,    77,    28,    10,
-    30,    12,    13,    14,     4,     5,     6,     7,    -1,    -1,
-    -1,    -1,    12,    13,    14,    45,    -1,    28,    -1,    30,
-    -1,    -1,    -1,     4,     5,     6,     7,    -1,    28,    -1,
-    30,    12,    13,    14,    45,    -1,    -1,    67,    -1,    -1,
-    -1,    -1,    72,    -1,    -1,    45,    76,    28,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    67,     1,    -1,    -1,
-     4,    72,     6,     7,    45,    76,    -1,    67,    12,    13,
-    14,    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,
-    -1,    -1,    -1,    -1,    28,    -1,    67,    31,    -1,    -1,
-    -1,    72,    -1,    -1,     3,     4,    77,     6,     7,    -1,
-    -1,    45,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    -1,    -1,    67,    -1,    30,    -1,    -1,    72,    38,
-    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
-    59,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,     6,
-     7,    -1,    -1,    72,    11,    12,    13,    14,    15,    16,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,
+    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    -1,    83,     3,     4,     5,     6,
+     7,     8,     9,    -1,    11,    12,    13,    14,    15,    -1,
     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    -1,     3,     4,    -1,     6,     7,    -1,
-    -1,    38,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,
-     3,     4,    -1,     6,     7,    72,    -1,    -1,    11,    12,
+    27,    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,
+    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,
+    77,    -1,    79,    80,    -1,    82,     3,     4,    -1,    -1,
+    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,    -1,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+     3,    -1,    59,    60,    -1,     8,     9,    64,    11,    66,
+    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,
+    77,    -1,    79,    80,    -1,    82,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,
+    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,
+    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    82,
+     3,     4,    -1,     6,     7,    -1,    -1,    -1,    11,    12,
     13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    28,    29,    -1,    -1,     4,
-    -1,     6,     7,    72,    -1,    38,    -1,    12,    13,    14,
-     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,
-    14,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    28,    -1,    30,    -1,    -1,    72,
-    45,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
-    -1,    45,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
-    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
-    -1,    -1,    -1,    67,     4,     5,     6,     7,    72,    -1,
-    10,    -1,    12,    13,    14,     4,     5,     6,     7,    -1,
-    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    28,    -1,
-    30,    -1,    -1,    -1,     4,    -1,     6,     7,    -1,    28,
-    -1,    30,    12,    13,    14,    45,    -1,    -1,    -1,    -1,
-    -1,    -1,     4,    -1,     6,     7,    45,    -1,    28,    -1,
-    12,    13,    14,    -1,    -1,    -1,    -1,    67,    -1,    -1,
-    -1,    -1,    72,    -1,    -1,    45,    28,    -1,    67,    -1,
-    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    45,    -1,    -1,    -1,    67,    -1,    -1,
-    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-    72,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-    44,    45,    46,    47,    48,    49,    50,    51,    52,    35,
-    36,    37,    -1,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52
+    23,    24,    25,    26,    27,    28,    29,    -1,     3,     4,
+     5,     6,     7,     8,     9,    38,    11,    12,    13,    14,
+     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
+    14,    -1,    -1,    28,    29,    30,    31,    -1,    33,    34,
+    -1,    -1,    -1,    -1,    28,    40,    30,    -1,    43,    72,
+    45,    -1,    -1,    48,    49,    50,    -1,    -1,    81,    54,
+    55,    45,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
+    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,
+    75,    -1,    -1,    67,    79,    80,     3,     4,    72,     6,
+     7,     8,     9,    77,    11,    12,    13,    14,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
+    -1,    28,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+     3,    -1,    59,    60,    -1,     8,     9,    64,    11,    66,
+    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,
+    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,
+     9,    64,    11,    66,    67,    -1,    -1,    -1,    71,    -1,
+    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,
+    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,
+    59,    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,
+    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    77,    -1,
+    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
+    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
+    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,
+    11,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
+    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,
+    -1,     8,     9,    64,    11,    66,    -1,    -1,    -1,    -1,
+    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
+    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+     3,    -1,    59,    60,    -1,     8,     9,    64,    11,    66,
+    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
+    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,
+    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,
+    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,
+    -1,    -1,    75,    -1,    -1,     1,    79,    80,     4,    -1,
+     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,
+    -1,    -1,    -1,     1,    -1,    -1,     4,    -1,     6,     7,
+    -1,    -1,    28,    -1,    12,    13,    14,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,
+    28,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,
+     4,     5,     6,     7,    -1,    -1,    -1,    45,    12,    13,
+    14,    67,    68,    69,    70,    -1,    72,    -1,    -1,    -1,
+    -1,    77,    78,    27,    28,    -1,    30,    31,    -1,    67,
+    68,    69,    70,    -1,    72,    -1,    -1,    -1,    -1,    77,
+    78,    45,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    59,    -1,    61,    62,    63,
+    -1,    -1,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
+    74,    -1,     1,    77,     3,     4,     5,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
+     1,    30,     3,     4,     5,     6,     7,    -1,    -1,    -1,
+    -1,    12,    13,    14,    -1,    -1,    45,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    -1,    -1,    28,     1,    30,
+    59,     4,     5,     6,     7,    -1,    -1,    10,    67,    12,
+    13,    14,    -1,    72,    45,    -1,    -1,    -1,    77,    50,
+    -1,     4,     5,     6,     7,    28,    -1,    30,    59,    12,
+    13,    14,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
+    -1,    72,    45,    -1,    -1,    28,    77,    30,    -1,    -1,
+     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
+    14,    -1,    45,    -1,    67,    -1,    -1,    -1,    -1,    72,
+    -1,    -1,    -1,    76,    28,    -1,    30,    -1,     4,     5,
+     6,     7,    -1,    -1,    67,    -1,    12,    13,    14,    72,
+    -1,    45,    -1,    -1,    77,     1,    -1,    -1,     4,    -1,
+     6,     7,    28,    -1,    -1,    -1,    12,    13,    14,    -1,
+    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    45,
+    -1,    -1,    28,    77,    -1,    31,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,
+    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
+    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
+     4,    67,     6,     7,    -1,    -1,    72,    11,    12,    13,
+    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    -1,     3,     4,    -1,
+     6,     7,    -1,    -1,    38,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    -1,    59,    -1,    -1,    -1,    -1,
+    -1,    -1,    38,     3,     4,    -1,     6,     7,    72,    -1,
+    -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    -1,     3,     4,    -1,     6,     7,    72,    -1,    38,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
+    -1,     4,     5,     6,     7,    -1,    38,    10,    -1,    12,
+    13,    14,    72,     4,     5,     6,     7,    -1,    -1,    10,
+    -1,    12,    13,    14,    -1,    28,    -1,    30,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
+    72,    -1,    45,     4,     5,     6,     7,     4,     5,     6,
+     7,    12,    13,    14,    45,    12,    13,    14,    -1,    -1,
+    -1,    -1,    -1,    -1,    67,    -1,    -1,    28,    -1,    72,
+    -1,    28,    -1,    30,    -1,    -1,    67,     4,    -1,     6,
+     7,    72,    -1,    -1,    45,    12,    13,    14,    45,    -1,
+    -1,    -1,    -1,    -1,    10,    -1,    -1,    -1,    -1,    -1,
+    -1,    28,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
+    67,    72,    -1,    -1,    -1,    72,    -1,    -1,    45,    35,
+    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    30,    -1,    -1,
+    67,    -1,    35,    36,    37,    72,    39,    40,    41,    42,
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    35,    36,
+    37,    -1,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/lib/bison.simple"
+#line 3 "/usr/local/gnu/share/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1868,7 +1850,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/lib/bison.simple"
+#line 196 "/usr/local/gnu/share/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -4106,60 +4088,63 @@ case 376:
     break;}
 case 377:
 #line 2132 "objc-parse.y"
-{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
+{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
                  if (label)
-                   expand_label (label);
+                   {
+                     expand_label (label);
+                     decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
+                   }
                  position_after_white_space (); ;
     break;}
 case 378:
-#line 2144 "objc-parse.y"
+#line 2147 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
 case 379:
-#line 2147 "objc-parse.y"
+#line 2150 "objc-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
 case 380:
-#line 2152 "objc-parse.y"
+#line 2155 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 382:
-#line 2159 "objc-parse.y"
+#line 2162 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 385:
-#line 2166 "objc-parse.y"
+#line 2169 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 386:
-#line 2171 "objc-parse.y"
+#line 2174 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 387:
-#line 2176 "objc-parse.y"
+#line 2179 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 388:
-#line 2178 "objc-parse.y"
+#line 2181 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
 case 389:
-#line 2184 "objc-parse.y"
+#line 2187 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
 case 390:
-#line 2188 "objc-parse.y"
+#line 2191 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
 case 392:
-#line 2196 "objc-parse.y"
+#line 2199 "objc-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -4169,19 +4154,19 @@ case 392:
                  clear_parm_order (); ;
     break;}
 case 393:
-#line 2204 "objc-parse.y"
+#line 2207 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 394:
-#line 2206 "objc-parse.y"
+#line 2209 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 395:
-#line 2212 "objc-parse.y"
+#line 2215 "objc-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 396:
-#line 2214 "objc-parse.y"
+#line 2217 "objc-parse.y"
 { yyval.ttype = get_parm_info (0);
                  /* Gcc used to allow this as an extension.  However, it does
                     not work for all targets, and thus has been disabled.
@@ -4193,23 +4178,23 @@ case 396:
                ;
     break;}
 case 397:
-#line 2224 "objc-parse.y"
+#line 2227 "objc-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
 case 398:
-#line 2226 "objc-parse.y"
+#line 2229 "objc-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 399:
-#line 2231 "objc-parse.y"
+#line 2234 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 400:
-#line 2233 "objc-parse.y"
+#line 2236 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 401:
-#line 2240 "objc-parse.y"
+#line 2243 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4220,7 +4205,7 @@ case 401:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 402:
-#line 2249 "objc-parse.y"
+#line 2252 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4231,7 +4216,7 @@ case 402:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 403:
-#line 2258 "objc-parse.y"
+#line 2261 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4242,7 +4227,7 @@ case 403:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 404:
-#line 2267 "objc-parse.y"
+#line 2270 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4253,7 +4238,7 @@ case 404:
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 405:
-#line 2277 "objc-parse.y"
+#line 2280 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4264,19 +4249,19 @@ case 405:
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 406:
-#line 2291 "objc-parse.y"
+#line 2294 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
 case 407:
-#line 2295 "objc-parse.y"
+#line 2298 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
 case 409:
-#line 2303 "objc-parse.y"
+#line 2306 "objc-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
@@ -4284,28 +4269,28 @@ case 409:
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 410:
-#line 2313 "objc-parse.y"
+#line 2316 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 411:
-#line 2315 "objc-parse.y"
+#line 2318 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 412:
-#line 2321 "objc-parse.y"
+#line 2324 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 413:
-#line 2323 "objc-parse.y"
+#line 2326 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 414:
-#line 2328 "objc-parse.y"
+#line 2331 "objc-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
 case 420:
-#line 2341 "objc-parse.y"
+#line 2344 "objc-parse.y"
 {
                  if (objc_implementation_context)
                     {
@@ -4318,27 +4303,27 @@ case 420:
                ;
     break;}
 case 421:
-#line 2356 "objc-parse.y"
+#line 2359 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 422:
-#line 2358 "objc-parse.y"
+#line 2361 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 423:
-#line 2363 "objc-parse.y"
+#line 2366 "objc-parse.y"
 {
                  objc_declare_class (yyvsp[-1].ttype);
                ;
     break;}
 case 424:
-#line 2369 "objc-parse.y"
+#line 2372 "objc-parse.y"
 {
                  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
                ;
     break;}
 case 425:
-#line 2375 "objc-parse.y"
+#line 2378 "objc-parse.y"
 {
                  objc_interface_context = objc_ivar_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
@@ -4346,20 +4331,20 @@ case 425:
                ;
     break;}
 case 426:
-#line 2381 "objc-parse.y"
+#line 2384 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
 case 427:
-#line 2386 "objc-parse.y"
+#line 2389 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
 case 428:
-#line 2392 "objc-parse.y"
+#line 2395 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
@@ -4367,14 +4352,14 @@ case 428:
                ;
     break;}
 case 429:
-#line 2399 "objc-parse.y"
+#line 2402 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
 case 430:
-#line 2405 "objc-parse.y"
+#line 2408 "objc-parse.y"
 {
                  objc_interface_context = objc_ivar_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
@@ -4382,20 +4367,20 @@ case 430:
                ;
     break;}
 case 431:
-#line 2411 "objc-parse.y"
+#line 2414 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
 case 432:
-#line 2416 "objc-parse.y"
+#line 2419 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
 case 433:
-#line 2422 "objc-parse.y"
+#line 2425 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
@@ -4403,14 +4388,14 @@ case 433:
                ;
     break;}
 case 434:
-#line 2429 "objc-parse.y"
+#line 2432 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
 case 435:
-#line 2435 "objc-parse.y"
+#line 2438 "objc-parse.y"
 {
                  objc_implementation_context = objc_ivar_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
@@ -4418,14 +4403,14 @@ case 435:
                ;
     break;}
 case 436:
-#line 2441 "objc-parse.y"
+#line 2444 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
 case 437:
-#line 2447 "objc-parse.y"
+#line 2450 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
@@ -4434,7 +4419,7 @@ case 437:
                ;
     break;}
 case 438:
-#line 2455 "objc-parse.y"
+#line 2458 "objc-parse.y"
 {
                  objc_implementation_context = objc_ivar_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
@@ -4442,14 +4427,14 @@ case 438:
                ;
     break;}
 case 439:
-#line 2461 "objc-parse.y"
+#line 2464 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
 case 440:
-#line 2467 "objc-parse.y"
+#line 2470 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
@@ -4458,7 +4443,7 @@ case 440:
                ;
     break;}
 case 441:
-#line 2475 "objc-parse.y"
+#line 2478 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
@@ -4466,14 +4451,14 @@ case 441:
                ;
     break;}
 case 442:
-#line 2482 "objc-parse.y"
+#line 2485 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
 case 443:
-#line 2488 "objc-parse.y"
+#line 2491 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
@@ -4482,7 +4467,7 @@ case 443:
                ;
     break;}
 case 444:
-#line 2498 "objc-parse.y"
+#line 2501 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  objc_interface_context
@@ -4490,7 +4475,7 @@ case 444:
                ;
     break;}
 case 445:
-#line 2504 "objc-parse.y"
+#line 2507 "objc-parse.y"
 {
                  forget_protocol_qualifiers();
                  finish_protocol(objc_interface_context);
@@ -4498,13 +4483,13 @@ case 445:
                ;
     break;}
 case 446:
-#line 2513 "objc-parse.y"
+#line 2516 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
 case 448:
-#line 2521 "objc-parse.y"
+#line 2524 "objc-parse.y"
 {
                  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
                    yyval.ttype = yyvsp[-1].ttype;
@@ -4513,32 +4498,32 @@ case 448:
                ;
     break;}
 case 451:
-#line 2535 "objc-parse.y"
+#line 2538 "objc-parse.y"
 { objc_public_flag = 2; ;
     break;}
 case 452:
-#line 2536 "objc-parse.y"
+#line 2539 "objc-parse.y"
 { objc_public_flag = 0; ;
     break;}
 case 453:
-#line 2537 "objc-parse.y"
+#line 2540 "objc-parse.y"
 { objc_public_flag = 1; ;
     break;}
 case 454:
-#line 2542 "objc-parse.y"
+#line 2545 "objc-parse.y"
 {
                   yyval.ttype = NULL_TREE;
                 ;
     break;}
 case 456:
-#line 2547 "objc-parse.y"
+#line 2550 "objc-parse.y"
 {
                   if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified");
                 ;
     break;}
 case 457:
-#line 2565 "objc-parse.y"
+#line 2568 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -4546,7 +4531,7 @@ case 457:
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 458:
-#line 2571 "objc-parse.y"
+#line 2574 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -4554,15 +4539,15 @@ case 458:
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 459:
-#line 2577 "objc-parse.y"
+#line 2580 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 460:
-#line 2582 "objc-parse.y"
+#line 2585 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 463:
-#line 2589 "objc-parse.y"
+#line 2592 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4571,7 +4556,7 @@ case 463:
                 ;
     break;}
 case 464:
-#line 2596 "objc-parse.y"
+#line 2599 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4579,7 +4564,7 @@ case 464:
                 ;
     break;}
 case 465:
-#line 2602 "objc-parse.y"
+#line 2605 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4588,7 +4573,7 @@ case 465:
                 ;
     break;}
 case 466:
-#line 2612 "objc-parse.y"
+#line 2615 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4598,7 +4583,7 @@ case 466:
                ;
     break;}
 case 467:
-#line 2620 "objc-parse.y"
+#line 2623 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_class_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4607,20 +4592,20 @@ case 467:
                ;
     break;}
 case 468:
-#line 2627 "objc-parse.y"
+#line 2630 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
 case 469:
-#line 2631 "objc-parse.y"
+#line 2634 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
 case 470:
-#line 2637 "objc-parse.y"
+#line 2640 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4630,7 +4615,7 @@ case 470:
                ;
     break;}
 case 471:
-#line 2645 "objc-parse.y"
+#line 2648 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4639,28 +4624,28 @@ case 471:
                ;
     break;}
 case 472:
-#line 2652 "objc-parse.y"
+#line 2655 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
 case 473:
-#line 2656 "objc-parse.y"
+#line 2659 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
 case 475:
-#line 2668 "objc-parse.y"
+#line 2671 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 480:
-#line 2675 "objc-parse.y"
+#line 2678 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 484:
-#line 2685 "objc-parse.y"
+#line 2688 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
@@ -4668,7 +4653,7 @@ case 484:
                ;
     break;}
 case 485:
-#line 2691 "objc-parse.y"
+#line 2694 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
@@ -4676,7 +4661,7 @@ case 485:
                ;
     break;}
 case 487:
-#line 2699 "objc-parse.y"
+#line 2702 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
@@ -4684,7 +4669,7 @@ case 487:
                ;
     break;}
 case 488:
-#line 2705 "objc-parse.y"
+#line 2708 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
@@ -4692,94 +4677,94 @@ case 488:
                ;
     break;}
 case 490:
-#line 2715 "objc-parse.y"
+#line 2718 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
 case 491:
-#line 2720 "objc-parse.y"
+#line 2723 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
 case 492:
-#line 2725 "objc-parse.y"
+#line 2728 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 493:
-#line 2730 "objc-parse.y"
+#line 2733 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 502:
-#line 2760 "objc-parse.y"
+#line 2763 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 503:
-#line 2765 "objc-parse.y"
+#line 2768 "objc-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 504:
-#line 2767 "objc-parse.y"
+#line 2770 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 505:
-#line 2772 "objc-parse.y"
+#line 2775 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 506:
-#line 2774 "objc-parse.y"
+#line 2777 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 507:
-#line 2782 "objc-parse.y"
+#line 2785 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
 case 508:
-#line 2787 "objc-parse.y"
+#line 2790 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
 case 509:
-#line 2792 "objc-parse.y"
+#line 2795 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
 case 510:
-#line 2800 "objc-parse.y"
+#line 2803 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
 case 511:
-#line 2804 "objc-parse.y"
+#line 2807 "objc-parse.y"
 {
                  /* oh what a kludge! */
                  yyval.ttype = (tree)1;
                ;
     break;}
 case 512:
-#line 2809 "objc-parse.y"
+#line 2812 "objc-parse.y"
 {
                  pushlevel (0);
                ;
     break;}
 case 513:
-#line 2813 "objc-parse.y"
+#line 2816 "objc-parse.y"
 {
                  /* returns a tree list node generated by get_parm_info */
                  yyval.ttype = yyvsp[0].ttype;
@@ -4787,119 +4772,119 @@ case 513:
                ;
     break;}
 case 516:
-#line 2828 "objc-parse.y"
+#line 2831 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 521:
-#line 2841 "objc-parse.y"
+#line 2844 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 522:
-#line 2842 "objc-parse.y"
+#line 2845 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 523:
-#line 2843 "objc-parse.y"
+#line 2846 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 524:
-#line 2844 "objc-parse.y"
+#line 2847 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 525:
-#line 2845 "objc-parse.y"
+#line 2848 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 526:
-#line 2846 "objc-parse.y"
+#line 2849 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 527:
-#line 2847 "objc-parse.y"
+#line 2850 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 528:
-#line 2848 "objc-parse.y"
+#line 2851 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 529:
-#line 2849 "objc-parse.y"
+#line 2852 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 530:
-#line 2850 "objc-parse.y"
+#line 2853 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 531:
-#line 2851 "objc-parse.y"
+#line 2854 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 532:
-#line 2852 "objc-parse.y"
+#line 2855 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 533:
-#line 2853 "objc-parse.y"
+#line 2856 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 534:
-#line 2854 "objc-parse.y"
+#line 2857 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 535:
-#line 2855 "objc-parse.y"
+#line 2858 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 536:
-#line 2856 "objc-parse.y"
+#line 2859 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 537:
-#line 2857 "objc-parse.y"
+#line 2860 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 538:
-#line 2858 "objc-parse.y"
+#line 2861 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 539:
-#line 2859 "objc-parse.y"
+#line 2862 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 542:
-#line 2865 "objc-parse.y"
+#line 2868 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 543:
-#line 2870 "objc-parse.y"
+#line 2873 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
 case 544:
-#line 2875 "objc-parse.y"
+#line 2878 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 545:
-#line 2880 "objc-parse.y"
+#line 2883 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
 case 549:
-#line 2893 "objc-parse.y"
+#line 2896 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 550:
-#line 2901 "objc-parse.y"
+#line 2904 "objc-parse.y"
 {
                  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
                    /* just return the expr., remove a level of indirection */
@@ -4910,76 +4895,76 @@ case 550:
                ;
     break;}
 case 551:
-#line 2913 "objc-parse.y"
+#line 2916 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 552:
-#line 2917 "objc-parse.y"
+#line 2920 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
 case 554:
-#line 2925 "objc-parse.y"
+#line 2928 "objc-parse.y"
 {
                  yyval.ttype = get_class_reference (yyvsp[0].ttype);
                ;
     break;}
 case 555:
-#line 2932 "objc-parse.y"
+#line 2935 "objc-parse.y"
 { objc_receiver_context = 1; ;
     break;}
 case 556:
-#line 2934 "objc-parse.y"
+#line 2937 "objc-parse.y"
 { objc_receiver_context = 0; ;
     break;}
 case 557:
-#line 2936 "objc-parse.y"
+#line 2939 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
                ;
     break;}
 case 561:
-#line 2949 "objc-parse.y"
+#line 2952 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 562:
-#line 2956 "objc-parse.y"
+#line 2959 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
                ;
     break;}
 case 563:
-#line 2960 "objc-parse.y"
+#line 2963 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
                ;
     break;}
 case 564:
-#line 2967 "objc-parse.y"
+#line 2970 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
 case 565:
-#line 2974 "objc-parse.y"
+#line 2977 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
 case 566:
-#line 2983 "objc-parse.y"
+#line 2986 "objc-parse.y"
 {
                  yyval.ttype = groktypename (yyvsp[-1].ttype);
                ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/lib/bison.simple"
+#line 498 "/usr/local/gnu/share/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5175,5 +5160,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 2988 "objc-parse.y"
+#line 2991 "objc-parse.y"
 
index 06465f7..c5cc9ce 100644 (file)
@@ -2128,12 +2128,15 @@ label:    CASE expr_no_commas ':'
                      error_with_decl (duplicate, "this is the first default label");
                    }
                  position_after_white_space (); }
-       | identifier ':'
+       | identifier ':' maybe_attribute
                { tree label = define_label (input_filename, lineno, $1);
                  stmt_count++;
                  emit_nop ();
                  if (label)
-                   expand_label (label);
+                   {
+                     expand_label (label);
+                     decl_attributes (label, $3, NULL_TREE);
+                   }
                  position_after_white_space (); }
        ;