Rebuild.
authorRichard Henderson <rth@gcc.gnu.org>
Mon, 26 Jul 1999 01:21:24 +0000 (18:21 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 26 Jul 1999 01:21:24 +0000 (18:21 -0700)
From-SVN: r28244

gcc/objc/objc-parse.c
gcc/objc/objc-parse.y

index b95312d8708c64d4c220655f3f8e7c5735675cdc..16b06ed772cfd45d0e9e569b514514003d3cc9d1 100644 (file)
@@ -1,42 +1,43 @@
 
 /*  A Bison parser, made from objc-parse.y
- by  GNU Bison version 1.25
+ by  GNU Bison version 1.27
   */
 
 #define YYBISON 1  /* Identify Bison output.  */
 
-#define        IDENTIFIER      258
-#define        TYPENAME        259
-#define        SCSPEC  260
-#define        TYPESPEC        261
-#define        TYPE_QUAL       262
-#define        CONSTANT        263
-#define        STRING  264
-#define        ELLIPSIS        265
-#define        SIZEOF  266
-#define        ENUM    267
-#define        STRUCT  268
-#define        UNION   269
-#define        IF      270
-#define        ELSE    271
-#define        WHILE   272
-#define        DO      273
-#define        FOR     274
-#define        SWITCH  275
-#define        CASE    276
-#define        DEFAULT 277
-#define        BREAK   278
-#define        CONTINUE        279
-#define        RETURN  280
-#define        GOTO    281
-#define        ASM_KEYWORD     282
-#define        TYPEOF  283
-#define        ALIGNOF 284
-#define        ATTRIBUTE       285
-#define        EXTENSION       286
-#define        LABEL   287
-#define        REALPART        288
-#define        IMAGPART        289
+#define        IDENTIFIER      257
+#define        TYPENAME        258
+#define        SCSPEC  259
+#define        TYPESPEC        260
+#define        TYPE_QUAL       261
+#define        CONSTANT        262
+#define        STRING  263
+#define        ELLIPSIS        264
+#define        SIZEOF  265
+#define        ENUM    266
+#define        STRUCT  267
+#define        UNION   268
+#define        IF      269
+#define        ELSE    270
+#define        WHILE   271
+#define        DO      272
+#define        FOR     273
+#define        SWITCH  274
+#define        CASE    275
+#define        DEFAULT 276
+#define        BREAK   277
+#define        CONTINUE        278
+#define        RETURN  279
+#define        GOTO    280
+#define        ASM_KEYWORD     281
+#define        TYPEOF  282
+#define        ALIGNOF 283
+#define        ATTRIBUTE       284
+#define        EXTENSION       285
+#define        LABEL   286
+#define        REALPART        287
+#define        IMAGPART        288
+#define        VA_ARG  289
 #define        ASSIGN  290
 #define        OROR    291
 #define        ANDAND  292
@@ -146,26 +147,26 @@ extern void yyprint                       PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         955
+#define        YYFINAL         961
 #define        YYFLAG          -32768
-#define        YYNTBASE        84
+#define        YYNTBASE        85
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 311)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 312)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,    80,     2,     2,     2,    52,    43,     2,    59,
-    76,    50,    48,    81,    49,    58,    51,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,    38,    77,     2,
-    36,     2,    37,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    81,     2,     2,     2,    53,    44,     2,    60,
+    77,    51,    49,    82,    50,    59,    52,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    39,    78,     2,
+    37,     2,    38,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-    60,     2,    83,    42,     2,     2,     2,     2,     2,     2,
+    61,     2,    84,    43,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,    82,    41,    78,    79,     2,     2,     2,     2,
+     2,     2,    83,    42,    79,    80,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -178,13 +179,13 @@ static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
-     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-    39,    40,    44,    45,    46,    47,    53,    54,    55,    56,
-    57,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-    70,    71,    72,    73,    74,    75
+     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+    40,    41,    45,    46,    47,    48,    54,    55,    56,    57,
+    58,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+    71,    72,    73,    74,    75,    76
 };
 
 #if YYDEBUG != 0
@@ -194,237 +195,237 @@ static const short yyprhs[] = {     0,
     56,    57,    65,    70,    71,    72,    80,    85,    86,    87,
     94,    98,   100,   102,   104,   106,   108,   110,   112,   114,
    116,   118,   120,   122,   123,   125,   127,   131,   133,   136,
-   139,   142,   145,   148,   153,   156,   161,   164,   167,   169,
-   171,   173,   178,   179,   187,   189,   193,   197,   201,   205,
-   209,   213,   217,   221,   225,   229,   233,   237,   238,   243,
-   244,   249,   250,   251,   259,   260,   266,   270,   274,   276,
-   278,   280,   284,   288,   289,   294,   299,   304,   308,   312,
-   315,   318,   320,   322,   324,   326,   328,   330,   333,   335,
-   338,   339,   341,   344,   348,   350,   352,   355,   358,   363,
-   368,   371,   374,   378,   380,   382,   385,   388,   389,   390,
-   395,   400,   404,   408,   411,   414,   417,   420,   424,   425,
-   428,   431,   434,   437,   441,   442,   445,   448,   450,   452,
-   455,   458,   460,   462,   465,   468,   471,   475,   476,   479,
-   481,   483,   485,   488,   491,   493,   498,   503,   505,   507,
-   509,   511,   515,   517,   521,   522,   527,   528,   535,   539,
-   540,   547,   551,   552,   554,   556,   559,   566,   568,   572,
-   573,   575,   580,   587,   592,   594,   596,   598,   600,   602,
-   603,   608,   610,   611,   614,   616,   620,   624,   627,   628,
-   633,   635,   636,   641,   643,   645,   647,   650,   653,   654,
-   655,   661,   662,   663,   669,   671,   673,   677,   681,   686,
-   690,   694,   698,   700,   702,   706,   711,   715,   719,   723,
-   725,   729,   733,   737,   742,   746,   750,   752,   754,   757,
-   759,   762,   764,   767,   768,   776,   782,   785,   786,   794,
-   800,   803,   804,   813,   814,   822,   825,   826,   828,   829,
-   831,   833,   836,   837,   841,   844,   849,   853,   855,   859,
-   861,   863,   866,   868,   872,   877,   884,   890,   892,   896,
-   898,   900,   904,   907,   910,   911,   913,   915,   918,   919,
-   922,   926,   930,   933,   937,   942,   946,   949,   953,   956,
-   960,   962,   964,   967,   970,   971,   973,   976,   977,   978,
-   980,   982,   985,   989,   991,   994,   996,   999,  1006,  1012,
-  1018,  1021,  1024,  1029,  1030,  1035,  1036,  1037,  1041,  1046,
-  1050,  1052,  1054,  1056,  1058,  1061,  1062,  1067,  1069,  1073,
-  1074,  1075,  1083,  1089,  1092,  1093,  1094,  1095,  1108,  1109,
-  1116,  1119,  1122,  1125,  1129,  1136,  1145,  1156,  1169,  1173,
-  1178,  1180,  1182,  1183,  1190,  1194,  1200,  1203,  1207,  1208,
-  1210,  1211,  1213,  1214,  1216,  1218,  1222,  1227,  1229,  1233,
-  1234,  1237,  1240,  1241,  1246,  1249,  1250,  1252,  1254,  1258,
-  1260,  1264,  1269,  1274,  1279,  1284,  1289,  1290,  1293,  1295,
-  1298,  1300,  1304,  1306,  1310,  1312,  1314,  1316,  1318,  1320,
-  1322,  1324,  1326,  1330,  1334,  1339,  1340,  1341,  1352,  1353,
-  1360,  1361,  1362,  1375,  1376,  1385,  1386,  1393,  1396,  1397,
-  1406,  1411,  1412,  1422,  1428,  1429,  1436,  1437,  1439,  1443,
-  1447,  1449,  1451,  1453,  1455,  1456,  1460,  1463,  1467,  1471,
-  1473,  1474,  1476,  1480,  1482,  1486,  1489,  1490,  1491,  1492,
-  1500,  1501,  1502,  1503,  1511,  1512,  1513,  1516,  1518,  1520,
-  1523,  1524,  1528,  1530,  1532,  1533,  1534,  1540,  1541,  1542,
-  1548,  1553,  1555,  1561,  1564,  1565,  1568,  1569,  1571,  1573,
-  1575,  1578,  1581,  1586,  1589,  1592,  1594,  1598,  1601,  1604,
-  1607,  1608,  1611,  1612,  1616,  1618,  1620,  1623,  1625,  1627,
-  1629,  1631,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
-  1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
-  1669,  1671,  1673,  1680,  1684,  1690,  1693,  1695,  1697,  1699,
-  1702,  1704,  1708,  1711,  1713,  1715,  1716,  1717,  1724,  1726,
-  1728,  1730,  1733,  1736,  1738,  1743,  1748
+   139,   142,   145,   148,   153,   156,   161,   164,   167,   174,
+   176,   178,   180,   185,   186,   194,   196,   200,   204,   208,
+   212,   216,   220,   224,   228,   232,   236,   240,   244,   245,
+   250,   251,   256,   257,   258,   266,   267,   273,   277,   281,
+   283,   285,   287,   291,   295,   296,   301,   306,   311,   315,
+   319,   322,   325,   327,   329,   331,   333,   335,   337,   340,
+   342,   345,   346,   348,   351,   355,   357,   359,   362,   365,
+   370,   375,   378,   381,   385,   387,   389,   392,   395,   396,
+   397,   402,   407,   411,   415,   418,   421,   424,   427,   431,
+   432,   435,   438,   441,   444,   448,   449,   452,   455,   457,
+   459,   462,   465,   467,   469,   472,   475,   478,   482,   483,
+   486,   488,   490,   492,   495,   498,   500,   505,   510,   512,
+   514,   516,   518,   522,   524,   528,   529,   534,   535,   542,
+   546,   547,   554,   558,   559,   561,   563,   566,   573,   575,
+   579,   580,   582,   587,   594,   599,   601,   603,   605,   607,
+   609,   610,   615,   617,   618,   621,   623,   627,   631,   634,
+   635,   640,   642,   643,   648,   650,   652,   654,   657,   660,
+   661,   662,   668,   669,   670,   676,   678,   680,   684,   688,
+   693,   697,   701,   705,   707,   709,   713,   718,   722,   726,
+   730,   732,   736,   740,   744,   749,   753,   757,   759,   761,
+   764,   766,   769,   771,   774,   775,   783,   789,   792,   793,
+   801,   807,   810,   811,   820,   821,   829,   832,   833,   835,
+   836,   838,   840,   843,   844,   848,   851,   856,   860,   862,
+   866,   868,   870,   873,   875,   879,   884,   891,   897,   899,
+   903,   905,   907,   911,   914,   917,   918,   920,   922,   925,
+   926,   929,   933,   937,   940,   944,   949,   953,   956,   960,
+   963,   967,   969,   971,   974,   977,   978,   980,   983,   984,
+   985,   987,   989,   992,   996,   998,  1001,  1003,  1006,  1013,
+  1019,  1025,  1028,  1031,  1036,  1037,  1042,  1043,  1044,  1048,
+  1053,  1057,  1059,  1061,  1063,  1065,  1068,  1069,  1074,  1076,
+  1080,  1081,  1082,  1090,  1096,  1099,  1100,  1101,  1102,  1115,
+  1116,  1123,  1126,  1129,  1132,  1136,  1143,  1152,  1163,  1176,
+  1180,  1185,  1187,  1189,  1190,  1197,  1201,  1207,  1210,  1214,
+  1215,  1217,  1218,  1220,  1221,  1223,  1225,  1229,  1234,  1236,
+  1240,  1241,  1244,  1247,  1248,  1253,  1256,  1257,  1259,  1261,
+  1265,  1267,  1271,  1276,  1281,  1286,  1291,  1296,  1297,  1300,
+  1302,  1305,  1307,  1311,  1313,  1317,  1319,  1321,  1323,  1325,
+  1327,  1329,  1331,  1333,  1337,  1341,  1346,  1347,  1348,  1359,
+  1360,  1367,  1368,  1369,  1382,  1383,  1392,  1393,  1400,  1403,
+  1404,  1413,  1418,  1419,  1429,  1435,  1436,  1443,  1444,  1446,
+  1450,  1454,  1456,  1458,  1460,  1462,  1463,  1467,  1470,  1474,
+  1478,  1480,  1481,  1483,  1487,  1489,  1493,  1496,  1497,  1498,
+  1499,  1507,  1508,  1509,  1510,  1518,  1519,  1520,  1523,  1525,
+  1527,  1530,  1531,  1535,  1537,  1539,  1540,  1541,  1547,  1548,
+  1549,  1555,  1560,  1562,  1568,  1571,  1572,  1575,  1576,  1578,
+  1580,  1582,  1585,  1588,  1593,  1596,  1599,  1601,  1605,  1608,
+  1611,  1614,  1615,  1618,  1619,  1623,  1625,  1627,  1630,  1632,
+  1634,  1636,  1638,  1640,  1642,  1644,  1646,  1648,  1650,  1652,
+  1654,  1656,  1658,  1660,  1662,  1664,  1666,  1668,  1670,  1672,
+  1674,  1676,  1678,  1680,  1687,  1691,  1697,  1700,  1702,  1704,
+  1706,  1709,  1711,  1715,  1718,  1720,  1722,  1723,  1724,  1731,
+  1733,  1735,  1737,  1740,  1743,  1745,  1750,  1755
 };
 
 static const short yyrhs[] = {    -1,
-    85,     0,     0,    86,    88,     0,     0,    85,    87,    88,
-     0,    90,     0,    89,     0,   242,     0,    27,    59,    99,
-    76,    77,     0,   241,    88,     0,   123,   137,    77,     0,
-   130,   123,   137,    77,     0,   126,   123,   136,    77,     0,
-   130,    77,     0,   126,    77,     0,     1,    77,     0,     1,
-    78,     0,    77,     0,     0,     0,   126,   123,   165,    91,
-   117,    92,   199,     0,   126,   123,   165,     1,     0,     0,
-     0,   130,   123,   168,    93,   117,    94,   199,     0,   130,
-   123,   168,     1,     0,     0,     0,   123,   168,    95,   117,
-    96,   199,     0,   123,   168,     1,     0,     3,     0,     4,
-     0,    72,     0,    67,     0,    43,     0,    49,     0,    48,
-     0,    54,     0,    55,     0,    79,     0,    80,     0,   101,
-     0,     0,   101,     0,   107,     0,   101,    81,   107,     0,
-   113,     0,    50,   105,     0,   241,   105,     0,    98,   105,
-     0,    40,    97,     0,   103,   102,     0,   103,    59,   186,
-    76,     0,   104,   102,     0,   104,    59,   186,    76,     0,
-    33,   105,     0,    34,   105,     0,    11,     0,    29,     0,
-   102,     0,    59,   186,    76,   105,     0,     0,    59,   186,
-    76,    82,   106,   151,    78,     0,   105,     0,   107,    48,
-   107,     0,   107,    49,   107,     0,   107,    50,   107,     0,
-   107,    51,   107,     0,   107,    52,   107,     0,   107,    46,
-   107,     0,   107,    47,   107,     0,   107,    45,   107,     0,
-   107,    44,   107,     0,   107,    43,   107,     0,   107,    41,
-   107,     0,   107,    42,   107,     0,     0,   107,    40,   108,
-   107,     0,     0,   107,    39,   109,   107,     0,     0,     0,
-   107,    37,   110,    99,    38,   111,   107,     0,     0,   107,
-    37,   112,    38,   107,     0,   107,    36,   107,     0,   107,
-    35,   107,     0,     3,     0,     8,     0,   115,     0,    59,
-    99,    76,     0,    59,     1,    76,     0,     0,    59,   114,
-   201,    76,     0,   113,    59,   100,    76,     0,   113,    60,
-    99,    83,     0,   113,    58,    97,     0,   113,    57,    97,
-     0,   113,    54,     0,   113,    55,     0,   302,     0,   308,
-     0,   309,     0,   310,     0,   116,     0,     9,     0,   115,
-     9,     0,    75,     0,   116,    75,     0,     0,   119,     0,
-   119,    10,     0,   206,   207,   120,     0,   118,     0,   194,
-     0,   119,   118,     0,   118,   194,     0,   128,   123,   136,
-    77,     0,   131,   123,   137,    77,     0,   128,    77,     0,
-   131,    77,     0,   206,   207,   125,     0,   121,     0,   194,
-     0,   122,   121,     0,   121,   194,     0,     0,     0,   126,
-   123,   136,    77,     0,   130,   123,   137,    77,     0,   126,
-   123,   159,     0,   130,   123,   162,     0,   126,    77,     0,
-   130,    77,     0,   241,   125,     0,   134,   127,     0,   130,
-   134,   127,     0,     0,   127,   135,     0,   127,     5,     0,
-   127,   144,     0,   134,   129,     0,   131,   134,   129,     0,
-     0,   129,   135,     0,   129,     5,     0,   131,     0,   144,
-     0,   130,   131,     0,   130,   144,     0,     7,     0,     5,
-     0,   131,     7,     0,   131,     5,     0,   134,   133,     0,
-   188,   134,   133,     0,     0,   133,   135,     0,     6,     0,
-   172,     0,     4,     0,    67,   258,     0,    72,   258,     0,
-   259,     0,    28,    59,    99,    76,     0,    28,    59,   186,
-    76,     0,     6,     0,     7,     0,   172,     0,   139,     0,
-   136,    81,   139,     0,   141,     0,   137,    81,   139,     0,
-     0,    27,    59,   115,    76,     0,     0,   165,   138,   143,
-    36,   140,   149,     0,   165,   138,   143,     0,     0,   168,
-   138,   143,    36,   142,   149,     0,   168,   138,   143,     0,
-     0,   144,     0,   145,     0,   144,   145,     0,    30,    59,
-    59,   146,    76,    76,     0,   147,     0,   146,    81,   147,
-     0,     0,   148,     0,   148,    59,     3,    76,     0,   148,
-    59,     3,    81,   101,    76,     0,   148,    59,   100,    76,
-     0,    97,     0,     5,     0,     6,     0,     7,     0,   107,
-     0,     0,    82,   150,   151,    78,     0,     1,     0,     0,
-   152,   177,     0,   153,     0,   152,    81,   153,     0,   157,
-    36,   155,     0,   158,   155,     0,     0,    97,    38,   154,
-   155,     0,   155,     0,     0,    82,   156,   151,    78,     0,
-   107,     0,     1,     0,   158,     0,   157,   158,     0,    58,
-    97,     0,     0,     0,   165,   160,   117,   161,   201,     0,
-     0,     0,   168,   163,   117,   164,   201,     0,   166,     0,
-   168,     0,    59,   166,    76,     0,   166,    59,   236,     0,
-   166,    60,    99,    83,     0,   166,    60,    83,     0,    50,
-   189,   166,     0,   144,   124,   166,     0,     4,     0,    72,
-     0,   167,    59,   236,     0,   167,    60,    99,    83,     0,
-   167,    60,    83,     0,    50,   189,   167,     0,   144,   124,
-   167,     0,     4,     0,   168,    59,   236,     0,    59,   168,
-    76,     0,    50,   189,   168,     0,   168,    60,    99,    83,
-     0,   168,    60,    83,     0,   144,   124,   168,     0,     3,
-     0,    13,     0,    13,   144,     0,    14,     0,    14,   144,
-     0,    12,     0,    12,   144,     0,     0,   169,    97,    82,
-   173,   179,    78,   143,     0,   169,    82,   179,    78,   143,
-     0,   169,    97,     0,     0,   170,    97,    82,   174,   179,
-    78,   143,     0,   170,    82,   179,    78,   143,     0,   170,
-    97,     0,     0,   171,    97,    82,   175,   184,   178,    78,
-   143,     0,     0,   171,    82,   176,   184,   178,    78,   143,
-     0,   171,    97,     0,     0,    81,     0,     0,    81,     0,
-   180,     0,   180,   181,     0,     0,   180,   181,    77,     0,
-   180,    77,     0,    65,    59,    67,    76,     0,   132,   123,
-   182,     0,   132,     0,   188,   123,   182,     0,   188,     0,
-     1,     0,   241,   181,     0,   183,     0,   182,    81,   183,
-     0,   206,   207,   165,   143,     0,   206,   207,   165,    38,
-   107,   143,     0,   206,   207,    38,   107,   143,     0,   185,
-     0,   184,    81,   185,     0,     1,     0,    97,     0,    97,
-    36,   107,     0,   132,   187,     0,   188,   187,     0,     0,
-   190,     0,     7,     0,   188,     7,     0,     0,   189,     7,
-     0,    59,   190,    76,     0,    50,   189,   190,     0,    50,
-   189,     0,   190,    59,   229,     0,   190,    60,    99,    83,
-     0,   190,    60,    83,     0,    59,   229,     0,    60,    99,
-    83,     0,    60,    83,     0,   144,   124,   190,     0,   192,
-     0,   209,     0,   192,   209,     0,   192,   194,     0,     0,
-   191,     0,     1,    77,     0,     0,     0,   197,     0,   198,
-     0,   197,   198,     0,    32,   240,    77,     0,   201,     0,
-     1,   201,     0,    82,     0,   200,    78,     0,   200,   195,
-   196,   122,   193,    78,     0,   200,   195,   196,     1,    78,
-     0,   200,   195,   196,   191,    78,     0,   203,   208,     0,
-   203,     1,     0,    15,    59,    99,    76,     0,     0,    18,
-   205,   208,    17,     0,     0,     0,   206,   207,   211,     0,
-   206,   207,   222,   208,     0,   206,   207,   210,     0,   211,
-     0,   222,     0,   201,     0,   219,     0,    99,    77,     0,
-     0,   202,    16,   212,   208,     0,   202,     0,   202,    16,
-     1,     0,     0,     0,    17,   213,    59,    99,    76,   214,
-   208,     0,   204,    59,    99,    76,    77,     0,   204,     1,
-     0,     0,     0,     0,    19,    59,   224,    77,   215,   224,
-    77,   216,   224,    76,   217,   208,     0,     0,    20,    59,
-    99,    76,   218,   208,     0,    23,    77,     0,    24,    77,
-     0,    25,    77,     0,    25,    99,    77,     0,    27,   223,
-    59,    99,    76,    77,     0,    27,   223,    59,    99,    38,
-   225,    76,    77,     0,    27,   223,    59,    99,    38,   225,
-    38,   225,    76,    77,     0,    27,   223,    59,    99,    38,
-   225,    38,   225,    38,   228,    76,    77,     0,    26,    97,
-    77,     0,    26,    50,    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,   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
+    86,     0,     0,    87,    89,     0,     0,    86,    88,    89,
+     0,    91,     0,    90,     0,   243,     0,    27,    60,   100,
+    77,    78,     0,   242,    89,     0,   124,   138,    78,     0,
+   131,   124,   138,    78,     0,   127,   124,   137,    78,     0,
+   131,    78,     0,   127,    78,     0,     1,    78,     0,     1,
+    79,     0,    78,     0,     0,     0,   127,   124,   166,    92,
+   118,    93,   200,     0,   127,   124,   166,     1,     0,     0,
+     0,   131,   124,   169,    94,   118,    95,   200,     0,   131,
+   124,   169,     1,     0,     0,     0,   124,   169,    96,   118,
+    97,   200,     0,   124,   169,     1,     0,     3,     0,     4,
+     0,    73,     0,    68,     0,    44,     0,    50,     0,    49,
+     0,    55,     0,    56,     0,    80,     0,    81,     0,   102,
+     0,     0,   102,     0,   108,     0,   102,    82,   108,     0,
+   114,     0,    51,   106,     0,   242,   106,     0,    99,   106,
+     0,    41,    98,     0,   104,   103,     0,   104,    60,   187,
+    77,     0,   105,   103,     0,   105,    60,   187,    77,     0,
+    33,   106,     0,    34,   106,     0,    35,    60,   108,    82,
+   187,    77,     0,    11,     0,    29,     0,   103,     0,    60,
+   187,    77,   106,     0,     0,    60,   187,    77,    83,   107,
+   152,    79,     0,   106,     0,   108,    49,   108,     0,   108,
+    50,   108,     0,   108,    51,   108,     0,   108,    52,   108,
+     0,   108,    53,   108,     0,   108,    47,   108,     0,   108,
+    48,   108,     0,   108,    46,   108,     0,   108,    45,   108,
+     0,   108,    44,   108,     0,   108,    42,   108,     0,   108,
+    43,   108,     0,     0,   108,    41,   109,   108,     0,     0,
+   108,    40,   110,   108,     0,     0,     0,   108,    38,   111,
+   100,    39,   112,   108,     0,     0,   108,    38,   113,    39,
+   108,     0,   108,    37,   108,     0,   108,    36,   108,     0,
+     3,     0,     8,     0,   116,     0,    60,   100,    77,     0,
+    60,     1,    77,     0,     0,    60,   115,   202,    77,     0,
+   114,    60,   101,    77,     0,   114,    61,   100,    84,     0,
+   114,    59,    98,     0,   114,    58,    98,     0,   114,    55,
+     0,   114,    56,     0,   303,     0,   309,     0,   310,     0,
+   311,     0,   117,     0,     9,     0,   116,     9,     0,    76,
+     0,   117,    76,     0,     0,   120,     0,   120,    10,     0,
+   207,   208,   121,     0,   119,     0,   195,     0,   120,   119,
+     0,   119,   195,     0,   129,   124,   137,    78,     0,   132,
+   124,   138,    78,     0,   129,    78,     0,   132,    78,     0,
+   207,   208,   126,     0,   122,     0,   195,     0,   123,   122,
+     0,   122,   195,     0,     0,     0,   127,   124,   137,    78,
+     0,   131,   124,   138,    78,     0,   127,   124,   160,     0,
+   131,   124,   163,     0,   127,    78,     0,   131,    78,     0,
+   242,   126,     0,   135,   128,     0,   131,   135,   128,     0,
+     0,   128,   136,     0,   128,     5,     0,   128,   145,     0,
+   135,   130,     0,   132,   135,   130,     0,     0,   130,   136,
+     0,   130,     5,     0,   132,     0,   145,     0,   131,   132,
+     0,   131,   145,     0,     7,     0,     5,     0,   132,     7,
+     0,   132,     5,     0,   135,   134,     0,   189,   135,   134,
+     0,     0,   134,   136,     0,     6,     0,   173,     0,     4,
+     0,    68,   259,     0,    73,   259,     0,   260,     0,    28,
+    60,   100,    77,     0,    28,    60,   187,    77,     0,     6,
+     0,     7,     0,   173,     0,   140,     0,   137,    82,   140,
+     0,   142,     0,   138,    82,   140,     0,     0,    27,    60,
+   116,    77,     0,     0,   166,   139,   144,    37,   141,   150,
+     0,   166,   139,   144,     0,     0,   169,   139,   144,    37,
+   143,   150,     0,   169,   139,   144,     0,     0,   145,     0,
+   146,     0,   145,   146,     0,    30,    60,    60,   147,    77,
+    77,     0,   148,     0,   147,    82,   148,     0,     0,   149,
+     0,   149,    60,     3,    77,     0,   149,    60,     3,    82,
+   102,    77,     0,   149,    60,   101,    77,     0,    98,     0,
+     5,     0,     6,     0,     7,     0,   108,     0,     0,    83,
+   151,   152,    79,     0,     1,     0,     0,   153,   178,     0,
+   154,     0,   153,    82,   154,     0,   158,    37,   156,     0,
+   159,   156,     0,     0,    98,    39,   155,   156,     0,   156,
+     0,     0,    83,   157,   152,    79,     0,   108,     0,     1,
+     0,   159,     0,   158,   159,     0,    59,    98,     0,     0,
+     0,   166,   161,   118,   162,   202,     0,     0,     0,   169,
+   164,   118,   165,   202,     0,   167,     0,   169,     0,    60,
+   167,    77,     0,   167,    60,   237,     0,   167,    61,   100,
+    84,     0,   167,    61,    84,     0,    51,   190,   167,     0,
+   145,   125,   167,     0,     4,     0,    73,     0,   168,    60,
+   237,     0,   168,    61,   100,    84,     0,   168,    61,    84,
+     0,    51,   190,   168,     0,   145,   125,   168,     0,     4,
+     0,   169,    60,   237,     0,    60,   169,    77,     0,    51,
+   190,   169,     0,   169,    61,   100,    84,     0,   169,    61,
+    84,     0,   145,   125,   169,     0,     3,     0,    13,     0,
+    13,   145,     0,    14,     0,    14,   145,     0,    12,     0,
+    12,   145,     0,     0,   170,    98,    83,   174,   180,    79,
+   144,     0,   170,    83,   180,    79,   144,     0,   170,    98,
+     0,     0,   171,    98,    83,   175,   180,    79,   144,     0,
+   171,    83,   180,    79,   144,     0,   171,    98,     0,     0,
+   172,    98,    83,   176,   185,   179,    79,   144,     0,     0,
+   172,    83,   177,   185,   179,    79,   144,     0,   172,    98,
+     0,     0,    82,     0,     0,    82,     0,   181,     0,   181,
+   182,     0,     0,   181,   182,    78,     0,   181,    78,     0,
+    66,    60,    68,    77,     0,   133,   124,   183,     0,   133,
+     0,   189,   124,   183,     0,   189,     0,     1,     0,   242,
+   182,     0,   184,     0,   183,    82,   184,     0,   207,   208,
+   166,   144,     0,   207,   208,   166,    39,   108,   144,     0,
+   207,   208,    39,   108,   144,     0,   186,     0,   185,    82,
+   186,     0,     1,     0,    98,     0,    98,    37,   108,     0,
+   133,   188,     0,   189,   188,     0,     0,   191,     0,     7,
+     0,   189,     7,     0,     0,   190,     7,     0,    60,   191,
+    77,     0,    51,   190,   191,     0,    51,   190,     0,   191,
+    60,   230,     0,   191,    61,   100,    84,     0,   191,    61,
+    84,     0,    60,   230,     0,    61,   100,    84,     0,    61,
+    84,     0,   145,   125,   191,     0,   193,     0,   210,     0,
+   193,   210,     0,   193,   195,     0,     0,   192,     0,     1,
+    78,     0,     0,     0,   198,     0,   199,     0,   198,   199,
+     0,    32,   241,    78,     0,   202,     0,     1,   202,     0,
+    83,     0,   201,    79,     0,   201,   196,   197,   123,   194,
+    79,     0,   201,   196,   197,     1,    79,     0,   201,   196,
+   197,   192,    79,     0,   204,   209,     0,   204,     1,     0,
+    15,    60,   100,    77,     0,     0,    18,   206,   209,    17,
+     0,     0,     0,   207,   208,   212,     0,   207,   208,   223,
+   209,     0,   207,   208,   211,     0,   212,     0,   223,     0,
+   202,     0,   220,     0,   100,    78,     0,     0,   203,    16,
+   213,   209,     0,   203,     0,   203,    16,     1,     0,     0,
+     0,    17,   214,    60,   100,    77,   215,   209,     0,   205,
+    60,   100,    77,    78,     0,   205,     1,     0,     0,     0,
+     0,    19,    60,   225,    78,   216,   225,    78,   217,   225,
+    77,   218,   209,     0,     0,    20,    60,   100,    77,   219,
+   209,     0,    23,    78,     0,    24,    78,     0,    25,    78,
+     0,    25,   100,    78,     0,    27,   224,    60,   100,    77,
+    78,     0,    27,   224,    60,   100,    39,   226,    77,    78,
+     0,    27,   224,    60,   100,    39,   226,    39,   226,    77,
+    78,     0,    27,   224,    60,   100,    39,   226,    39,   226,
+    39,   229,    77,    78,     0,    26,    98,    78,     0,    26,
+    51,   100,    78,     0,    78,     0,   221,     0,     0,    19,
+    60,   114,    77,   222,   209,     0,    21,   108,    39,     0,
+    21,   108,    10,   108,    39,     0,    22,    39,     0,    98,
+    39,   144,     0,     0,     7,     0,     0,   100,     0,     0,
+   227,     0,   228,     0,   227,    82,   228,     0,     9,    60,
+   100,    77,     0,   116,     0,   229,    82,   116,     0,     0,
+   231,   232,     0,   234,    77,     0,     0,   235,    78,   233,
+   232,     0,     1,    77,     0,     0,    10,     0,   235,     0,
+   235,    82,    10,     0,   236,     0,   235,    82,   236,     0,
+   127,   124,   168,   144,     0,   127,   124,   169,   144,     0,
+   127,   124,   188,   144,     0,   131,   124,   169,   144,     0,
+   131,   124,   188,   144,     0,     0,   238,   239,     0,   232,
+     0,   240,    77,     0,     3,     0,   240,    82,     3,     0,
+    98,     0,   241,    82,    98,     0,    31,     0,   247,     0,
+   245,     0,   246,     0,   257,     0,   267,     0,    64,     0,
+    98,     0,   244,    82,    98,     0,    74,   244,    78,     0,
+    75,    98,    98,    78,     0,     0,     0,    62,    98,   259,
+    83,   248,   261,    79,   249,   274,    64,     0,     0,    62,
+    98,   259,   250,   274,    64,     0,     0,     0,    62,    98,
+    39,    98,   259,    83,   251,   261,    79,   252,   274,    64,
+     0,     0,    62,    98,    39,    98,   259,   253,   274,    64,
+     0,     0,    63,    98,    83,   254,   261,    79,     0,    63,
+    98,     0,     0,    63,    98,    39,    98,    83,   255,   261,
+    79,     0,    63,    98,    39,    98,     0,     0,    62,    98,
+    60,    98,    77,   259,   256,   274,    64,     0,    63,    98,
+    60,    98,    77,     0,     0,    72,    98,   259,   258,   274,
+    64,     0,     0,   260,     0,    46,   244,    46,     0,   261,
+   262,   263,     0,   263,     0,    70,     0,    71,     0,    69,
+     0,     0,   263,   264,    78,     0,   263,    78,     0,   133,
+   124,   265,     0,   189,   124,   265,     0,     1,     0,     0,
+   266,     0,   265,    82,   266,     0,   166,     0,   166,    39,
+   108,     0,    39,   108,     0,     0,     0,     0,    49,   268,
+   284,   269,   285,   270,   200,     0,     0,     0,     0,    50,
+   271,   284,   272,   285,   273,   200,     0,     0,     0,   275,
+   276,     0,   279,     0,    90,     0,   276,   279,     0,     0,
+   276,   277,    90,     0,    78,     0,     1,     0,     0,     0,
+    49,   280,   284,   281,   278,     0,     0,     0,    50,   282,
+   284,   283,   278,     0,    60,   187,    77,   293,     0,   293,
+     0,    60,   187,    77,   294,   291,     0,   294,   291,     0,
+     0,    78,   286,     0,     0,   287,     0,   288,     0,   195,
+     0,   287,   288,     0,   288,   195,     0,   127,   124,   289,
+    78,     0,   127,    78,     0,   131,    78,     0,   290,     0,
+   289,    82,   290,     0,   168,   144,     0,   169,   144,     0,
+   188,   144,     0,     0,    82,    10,     0,     0,    82,   292,
+   234,     0,   295,     0,   297,     0,   294,   297,     0,     3,
+     0,     4,     0,    73,     0,   296,     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,   295,
+    39,    60,   187,    77,    98,     0,   295,    39,    98,     0,
+    39,    60,   187,    77,    98,     0,    39,    98,     0,   295,
+     0,   299,     0,   301,     0,   299,   301,     0,   102,     0,
+   295,    39,   300,     0,    39,   300,     0,   100,     0,    68,
+     0,     0,     0,    61,   304,   302,   305,   298,    84,     0,
+   295,     0,   307,     0,   308,     0,   307,   308,     0,   295,
+    39,     0,    39,     0,    65,    60,   306,    77,     0,    72,
+    60,    98,    77,     0,    67,    60,   187,    77,     0
 };
 
 #endif
@@ -436,58 +437,58 @@ static const short yyrline[] = { 0,
    312,   314,   319,   324,   330,   332,   337,   342,   348,   350,
    355,   362,   364,   365,   366,   369,   371,   373,   375,   377,
    379,   381,   385,   389,   392,   395,   398,   402,   404,   407,
-   410,   414,   442,   448,   451,   454,   457,   459,   463,   467,
-   471,   473,   476,   480,   507,   509,   511,   513,   515,   517,
-   519,   521,   523,   525,   527,   529,   531,   533,   537,   539,
-   543,   545,   548,   552,   554,   561,   564,   572,   583,   743,
-   744,   746,   752,   754,   768,   791,   793,   795,   807,   821,
-   823,   825,   827,   829,   831,   833,   838,   840,   846,   848,
-   852,   854,   855,   865,   870,   872,   873,   874,   881,   887,
-   892,   895,   903,   908,   910,   911,   912,   919,   930,   934,
-   940,   945,   950,   955,   957,   959,   968,   971,   975,   977,
-   979,   984,   988,   991,   995,   998,  1000,  1012,  1015,  1017,
-  1019,  1023,  1027,  1029,  1032,  1045,  1048,  1052,  1054,  1062,
-  1063,  1064,  1068,  1070,  1075,  1077,  1079,  1085,  1086,  1087,
-  1090,  1092,  1095,  1097,  1100,  1103,  1109,  1116,  1118,  1125,
-  1132,  1135,  1142,  1145,  1149,  1152,  1156,  1161,  1164,  1168,
-  1171,  1173,  1175,  1177,  1184,  1186,  1187,  1188,  1193,  1195,
-  1200,  1208,  1213,  1217,  1220,  1222,  1227,  1229,  1230,  1233,
-  1233,  1236,  1239,  1241,  1243,  1246,  1248,  1251,  1259,  1270,
-  1278,  1282,  1293,  1301,  1308,  1310,  1315,  1318,  1323,  1325,
-  1327,  1334,  1336,  1337,  1345,  1351,  1353,  1355,  1362,  1364,
-  1370,  1376,  1378,  1380,  1382,  1389,  1391,  1394,  1397,  1401,
-  1404,  1408,  1411,  1415,  1420,  1422,  1426,  1428,  1430,  1432,
-  1436,  1438,  1441,  1444,  1447,  1450,  1454,  1456,  1459,  1461,
-  1466,  1469,  1474,  1476,  1478,  1482,  1506,  1513,  1518,  1524,
-  1529,  1531,  1536,  1538,  1542,  1546,  1550,  1560,  1562,  1567,
-  1572,  1575,  1579,  1582,  1586,  1589,  1592,  1595,  1599,  1602,
-  1606,  1610,  1612,  1614,  1616,  1618,  1620,  1622,  1624,  1628,
-  1636,  1644,  1646,  1648,  1652,  1654,  1657,  1660,  1673,  1675,
-  1680,  1682,  1685,  1699,  1702,  1705,  1707,  1709,  1717,  1725,
-  1736,  1741,  1744,  1758,  1767,  1771,  1775,  1779,  1785,  1789,
-  1794,  1797,  1802,  1805,  1806,  1823,  1828,  1831,  1843,  1845,
-  1855,  1865,  1866,  1874,  1877,  1889,  1893,  1910,  1920,  1929,
-  1934,  1939,  1944,  1948,  1952,  1963,  1970,  1977,  1984,  1995,
-  2001,  2004,  2009,  2032,  2066,  2097,  2128,  2143,  2157,  2161,
-  2165,  2168,  2173,  2175,  2178,  2180,  2184,  2189,  2192,  2198,
-  2203,  2208,  2210,  2219,  2220,  2226,  2228,  2238,  2240,  2244,
-  2247,  2253,  2263,  2272,  2281,  2291,  2305,  2310,  2315,  2317,
-  2326,  2329,  2334,  2337,  2341,  2349,  2351,  2352,  2353,  2354,
-  2355,  2369,  2372,  2376,  2382,  2388,  2395,  2400,  2406,  2413,
-  2419,  2425,  2430,  2436,  2443,  2449,  2455,  2461,  2469,  2475,
-  2481,  2489,  2496,  2502,  2511,  2518,  2526,  2531,  2534,  2544,
-  2546,  2549,  2551,  2552,  2555,  2560,  2561,  2578,  2585,  2591,
-  2595,  2598,  2599,  2602,  2610,  2616,  2625,  2635,  2642,  2646,
-  2651,  2660,  2667,  2671,  2681,  2683,  2684,  2686,  2688,  2689,
-  2690,  2691,  2693,  2695,  2698,  2706,  2713,  2713,  2720,  2726,
-  2728,  2734,  2739,  2744,  2753,  2755,  2761,  2763,  2766,  2768,
-  2769,  2770,  2773,  2779,  2781,  2785,  2788,  2795,  2801,  2806,
-  2813,  2818,  2823,  2828,  2835,  2839,  2842,  2848,  2850,  2851,
-  2852,  2855,  2857,  2858,  2859,  2860,  2861,  2862,  2863,  2864,
-  2865,  2866,  2867,  2868,  2869,  2870,  2871,  2872,  2873,  2874,
-  2875,  2875,  2878,  2884,  2889,  2894,  2900,  2902,  2905,  2907,
-  2914,  2926,  2931,  2937,  2939,  2945,  2949,  2950,  2956,  2958,
-  2961,  2963,  2969,  2974,  2980,  2987,  2996
+   410,   414,   442,   448,   451,   454,   457,   459,   461,   465,
+   469,   473,   475,   478,   482,   509,   511,   513,   515,   517,
+   519,   521,   523,   525,   527,   529,   531,   533,   535,   539,
+   541,   545,   547,   550,   554,   556,   563,   566,   574,   585,
+   745,   746,   748,   754,   756,   770,   793,   795,   797,   809,
+   823,   825,   827,   829,   831,   833,   835,   840,   842,   848,
+   850,   854,   856,   857,   867,   872,   874,   875,   876,   883,
+   889,   894,   897,   905,   910,   912,   913,   914,   921,   932,
+   936,   942,   947,   952,   957,   959,   961,   970,   973,   977,
+   979,   981,   986,   990,   993,   997,  1000,  1002,  1014,  1017,
+  1019,  1021,  1025,  1029,  1031,  1034,  1047,  1050,  1054,  1056,
+  1064,  1065,  1066,  1070,  1072,  1077,  1079,  1081,  1087,  1088,
+  1089,  1092,  1094,  1097,  1099,  1102,  1105,  1111,  1118,  1120,
+  1127,  1134,  1137,  1144,  1147,  1151,  1154,  1158,  1163,  1166,
+  1170,  1173,  1175,  1177,  1179,  1186,  1188,  1189,  1190,  1195,
+  1197,  1202,  1210,  1215,  1219,  1222,  1224,  1229,  1231,  1232,
+  1235,  1235,  1238,  1241,  1243,  1245,  1248,  1250,  1253,  1261,
+  1272,  1280,  1284,  1295,  1303,  1310,  1312,  1317,  1320,  1325,
+  1327,  1329,  1336,  1338,  1339,  1347,  1353,  1355,  1357,  1364,
+  1366,  1372,  1378,  1380,  1382,  1384,  1391,  1393,  1396,  1399,
+  1403,  1406,  1410,  1413,  1417,  1422,  1424,  1428,  1430,  1432,
+  1434,  1438,  1440,  1443,  1446,  1449,  1452,  1456,  1458,  1461,
+  1463,  1468,  1471,  1476,  1478,  1480,  1484,  1508,  1515,  1520,
+  1526,  1531,  1533,  1538,  1540,  1544,  1548,  1552,  1562,  1564,
+  1569,  1574,  1577,  1581,  1584,  1588,  1591,  1594,  1597,  1601,
+  1604,  1608,  1612,  1614,  1616,  1618,  1620,  1622,  1624,  1626,
+  1630,  1638,  1646,  1648,  1650,  1654,  1656,  1659,  1662,  1675,
+  1677,  1682,  1684,  1687,  1701,  1704,  1707,  1709,  1711,  1719,
+  1727,  1738,  1743,  1746,  1760,  1769,  1773,  1777,  1781,  1787,
+  1791,  1796,  1799,  1804,  1807,  1808,  1825,  1830,  1833,  1845,
+  1847,  1857,  1867,  1868,  1876,  1879,  1891,  1895,  1912,  1922,
+  1931,  1936,  1941,  1946,  1950,  1954,  1965,  1972,  1979,  1986,
+  1997,  2003,  2006,  2011,  2034,  2068,  2099,  2130,  2145,  2159,
+  2163,  2167,  2170,  2175,  2177,  2180,  2182,  2186,  2191,  2194,
+  2200,  2205,  2210,  2212,  2221,  2222,  2228,  2230,  2240,  2242,
+  2246,  2249,  2255,  2265,  2274,  2283,  2293,  2307,  2312,  2317,
+  2319,  2328,  2331,  2336,  2339,  2343,  2351,  2353,  2354,  2355,
+  2356,  2357,  2371,  2374,  2378,  2384,  2390,  2397,  2402,  2408,
+  2415,  2421,  2427,  2432,  2438,  2445,  2451,  2457,  2463,  2471,
+  2477,  2483,  2491,  2498,  2504,  2513,  2520,  2528,  2533,  2536,
+  2546,  2548,  2551,  2553,  2554,  2557,  2562,  2563,  2580,  2587,
+  2593,  2597,  2600,  2601,  2604,  2612,  2618,  2627,  2637,  2644,
+  2648,  2653,  2662,  2669,  2673,  2683,  2685,  2686,  2688,  2690,
+  2691,  2692,  2693,  2695,  2697,  2700,  2708,  2715,  2715,  2722,
+  2728,  2730,  2736,  2741,  2746,  2755,  2757,  2763,  2765,  2768,
+  2770,  2771,  2772,  2775,  2781,  2783,  2787,  2790,  2797,  2803,
+  2808,  2815,  2820,  2825,  2830,  2837,  2841,  2844,  2850,  2852,
+  2853,  2854,  2857,  2859,  2860,  2861,  2862,  2863,  2864,  2865,
+  2866,  2867,  2868,  2869,  2870,  2871,  2872,  2873,  2874,  2875,
+  2876,  2877,  2877,  2880,  2886,  2891,  2896,  2902,  2904,  2907,
+  2909,  2916,  2928,  2933,  2939,  2941,  2947,  2951,  2952,  2958,
+  2960,  2963,  2965,  2971,  2976,  2982,  2989,  2998
 };
 #endif
 
@@ -498,9 +499,9 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
-"EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
-"ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
-"'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
+"EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","ASSIGN","'='","'?'","':'",
+"OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT",
+"'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
@@ -541,63 +542,63 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 #endif
 
 static const short yyr1[] = {     0,
-    84,    84,    86,    85,    87,    85,    88,    88,    88,    88,
-    88,    89,    89,    89,    89,    89,    89,    89,    89,    91,
-    92,    90,    90,    93,    94,    90,    90,    95,    96,    90,
-    90,    97,    97,    97,    97,    98,    98,    98,    98,    98,
-    98,    98,    99,   100,   100,   101,   101,   102,   102,   102,
-   102,   102,   102,   102,   102,   102,   102,   102,   103,   104,
-   105,   105,   106,   105,   107,   107,   107,   107,   107,   107,
-   107,   107,   107,   107,   107,   107,   107,   108,   107,   109,
-   107,   110,   111,   107,   112,   107,   107,   107,   113,   113,
-   113,   113,   113,   114,   113,   113,   113,   113,   113,   113,
-   113,   113,   113,   113,   113,   113,   115,   115,   116,   116,
-   117,   117,   117,   118,   119,   119,   119,   119,   120,   120,
-   120,   120,   121,   122,   122,   122,   122,   123,   124,   125,
-   125,   125,   125,   125,   125,   125,   126,   126,   127,   127,
-   127,   127,   128,   128,   129,   129,   129,   130,   130,   130,
-   130,   131,   131,   131,   131,   132,   132,   133,   133,   134,
-   134,   134,   134,   134,   134,   134,   134,   135,   135,   135,
-   136,   136,   137,   137,   138,   138,   140,   139,   139,   142,
-   141,   141,   143,   143,   144,   144,   145,   146,   146,   147,
-   147,   147,   147,   147,   148,   148,   148,   148,   149,   150,
-   149,   149,   151,   151,   152,   152,   153,   153,   154,   153,
-   153,   156,   155,   155,   155,   157,   157,   158,   160,   161,
-   159,   163,   164,   162,   165,   165,   166,   166,   166,   166,
-   166,   166,   166,   166,   167,   167,   167,   167,   167,   167,
-   168,   168,   168,   168,   168,   168,   168,   169,   169,   170,
-   170,   171,   171,   173,   172,   172,   172,   174,   172,   172,
-   172,   175,   172,   176,   172,   172,   177,   177,   178,   178,
-   179,   179,   180,   180,   180,   180,   181,   181,   181,   181,
-   181,   181,   182,   182,   183,   183,   183,   184,   184,   184,
-   185,   185,   186,   186,   187,   187,   188,   188,   189,   189,
-   190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
-   191,   192,   192,   192,   193,   193,   194,   195,   196,   196,
-   197,   197,   198,   199,   199,   200,   201,   201,   201,   201,
-   202,   202,   203,   205,   204,   206,   207,   208,   208,   209,
-   210,   210,   211,   211,   211,   212,   211,   211,   211,   213,
-   214,   211,   211,   211,   215,   216,   217,   211,   218,   211,
-   211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
-   211,   219,   221,   220,   222,   222,   222,   222,   223,   223,
-   224,   224,   225,   225,   226,   226,   227,   228,   228,   230,
-   229,   231,   232,   231,   231,   233,   233,   233,   233,   234,
-   234,   235,   235,   235,   235,   235,   237,   236,   238,   238,
-   239,   239,   240,   240,   241,   242,   242,   242,   242,   242,
-   242,   243,   243,   244,   245,   247,   248,   246,   249,   246,
-   250,   251,   246,   252,   246,   253,   246,   246,   254,   246,
-   246,   255,   246,   246,   257,   256,   258,   258,   259,   260,
-   260,   261,   261,   261,   262,   262,   262,   263,   263,   263,
-   264,   264,   264,   265,   265,   265,   267,   268,   269,   266,
-   270,   271,   272,   266,   273,   274,   273,   275,   275,   275,
-   276,   275,   277,   277,   279,   280,   278,   281,   282,   278,
-   283,   283,   283,   283,   284,   284,   285,   285,   286,   286,
-   286,   286,   287,   287,   287,   288,   288,   289,   289,   289,
-   290,   290,   291,   290,   292,   293,   293,   294,   294,   294,
-   294,   295,   295,   295,   295,   295,   295,   295,   295,   295,
-   295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
-   295,   295,   296,   296,   296,   296,   297,   297,   298,   298,
-   299,   300,   300,   301,   301,   303,   304,   302,   305,   305,
-   306,   306,   307,   307,   308,   309,   310
+    85,    85,    87,    86,    88,    86,    89,    89,    89,    89,
+    89,    90,    90,    90,    90,    90,    90,    90,    90,    92,
+    93,    91,    91,    94,    95,    91,    91,    96,    97,    91,
+    91,    98,    98,    98,    98,    99,    99,    99,    99,    99,
+    99,    99,   100,   101,   101,   102,   102,   103,   103,   103,
+   103,   103,   103,   103,   103,   103,   103,   103,   103,   104,
+   105,   106,   106,   107,   106,   108,   108,   108,   108,   108,
+   108,   108,   108,   108,   108,   108,   108,   108,   109,   108,
+   110,   108,   111,   112,   108,   113,   108,   108,   108,   114,
+   114,   114,   114,   114,   115,   114,   114,   114,   114,   114,
+   114,   114,   114,   114,   114,   114,   114,   116,   116,   117,
+   117,   118,   118,   118,   119,   120,   120,   120,   120,   121,
+   121,   121,   121,   122,   123,   123,   123,   123,   124,   125,
+   126,   126,   126,   126,   126,   126,   126,   127,   127,   128,
+   128,   128,   128,   129,   129,   130,   130,   130,   131,   131,
+   131,   131,   132,   132,   132,   132,   133,   133,   134,   134,
+   135,   135,   135,   135,   135,   135,   135,   135,   136,   136,
+   136,   137,   137,   138,   138,   139,   139,   141,   140,   140,
+   143,   142,   142,   144,   144,   145,   145,   146,   147,   147,
+   148,   148,   148,   148,   148,   149,   149,   149,   149,   150,
+   151,   150,   150,   152,   152,   153,   153,   154,   154,   155,
+   154,   154,   157,   156,   156,   156,   158,   158,   159,   161,
+   162,   160,   164,   165,   163,   166,   166,   167,   167,   167,
+   167,   167,   167,   167,   167,   168,   168,   168,   168,   168,
+   168,   169,   169,   169,   169,   169,   169,   169,   170,   170,
+   171,   171,   172,   172,   174,   173,   173,   173,   175,   173,
+   173,   173,   176,   173,   177,   173,   173,   178,   178,   179,
+   179,   180,   180,   181,   181,   181,   181,   182,   182,   182,
+   182,   182,   182,   183,   183,   184,   184,   184,   185,   185,
+   185,   186,   186,   187,   187,   188,   188,   189,   189,   190,
+   190,   191,   191,   191,   191,   191,   191,   191,   191,   191,
+   191,   192,   193,   193,   193,   194,   194,   195,   196,   197,
+   197,   198,   198,   199,   200,   200,   201,   202,   202,   202,
+   202,   203,   203,   204,   206,   205,   207,   208,   209,   209,
+   210,   211,   211,   212,   212,   212,   213,   212,   212,   212,
+   214,   215,   212,   212,   212,   216,   217,   218,   212,   219,
+   212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
+   212,   212,   220,   222,   221,   223,   223,   223,   223,   224,
+   224,   225,   225,   226,   226,   227,   227,   228,   229,   229,
+   231,   230,   232,   233,   232,   232,   234,   234,   234,   234,
+   235,   235,   236,   236,   236,   236,   236,   238,   237,   239,
+   239,   240,   240,   241,   241,   242,   243,   243,   243,   243,
+   243,   243,   244,   244,   245,   246,   248,   249,   247,   250,
+   247,   251,   252,   247,   253,   247,   254,   247,   247,   255,
+   247,   247,   256,   247,   247,   258,   257,   259,   259,   260,
+   261,   261,   262,   262,   262,   263,   263,   263,   264,   264,
+   264,   265,   265,   265,   266,   266,   266,   268,   269,   270,
+   267,   271,   272,   273,   267,   274,   275,   274,   276,   276,
+   276,   277,   276,   278,   278,   280,   281,   279,   282,   283,
+   279,   284,   284,   284,   284,   285,   285,   286,   286,   287,
+   287,   287,   287,   288,   288,   288,   289,   289,   290,   290,
+   290,   291,   291,   292,   291,   293,   294,   294,   295,   295,
+   295,   295,   296,   296,   296,   296,   296,   296,   296,   296,
+   296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
+   296,   296,   296,   297,   297,   297,   297,   298,   298,   299,
+   299,   300,   301,   301,   302,   302,   304,   305,   303,   306,
+   306,   307,   307,   308,   308,   309,   310,   311
 };
 
 static const short yyr2[] = {     0,
@@ -606,1075 +607,1092 @@ static const short yyr2[] = {     0,
      0,     7,     4,     0,     0,     7,     4,     0,     0,     6,
      3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     0,     1,     1,     3,     1,     2,     2,
-     2,     2,     2,     4,     2,     4,     2,     2,     1,     1,
-     1,     4,     0,     7,     1,     3,     3,     3,     3,     3,
-     3,     3,     3,     3,     3,     3,     3,     0,     4,     0,
-     4,     0,     0,     7,     0,     5,     3,     3,     1,     1,
-     1,     3,     3,     0,     4,     4,     4,     3,     3,     2,
-     2,     1,     1,     1,     1,     1,     1,     2,     1,     2,
-     0,     1,     2,     3,     1,     1,     2,     2,     4,     4,
-     2,     2,     3,     1,     1,     2,     2,     0,     0,     4,
-     4,     3,     3,     2,     2,     2,     2,     3,     0,     2,
-     2,     2,     2,     3,     0,     2,     2,     1,     1,     2,
-     2,     1,     1,     2,     2,     2,     3,     0,     2,     1,
-     1,     1,     2,     2,     1,     4,     4,     1,     1,     1,
-     1,     3,     1,     3,     0,     4,     0,     6,     3,     0,
-     6,     3,     0,     1,     1,     2,     6,     1,     3,     0,
-     1,     4,     6,     4,     1,     1,     1,     1,     1,     0,
-     4,     1,     0,     2,     1,     3,     3,     2,     0,     4,
-     1,     0,     4,     1,     1,     1,     2,     2,     0,     0,
-     5,     0,     0,     5,     1,     1,     3,     3,     4,     3,
-     3,     3,     1,     1,     3,     4,     3,     3,     3,     1,
-     3,     3,     3,     4,     3,     3,     1,     1,     2,     1,
-     2,     1,     2,     0,     7,     5,     2,     0,     7,     5,
-     2,     0,     8,     0,     7,     2,     0,     1,     0,     1,
-     1,     2,     0,     3,     2,     4,     3,     1,     3,     1,
-     1,     2,     1,     3,     4,     6,     5,     1,     3,     1,
-     1,     3,     2,     2,     0,     1,     1,     2,     0,     2,
-     3,     3,     2,     3,     4,     3,     2,     3,     2,     3,
-     1,     1,     2,     2,     0,     1,     2,     0,     0,     1,
-     1,     2,     3,     1,     2,     1,     2,     6,     5,     5,
-     2,     2,     4,     0,     4,     0,     0,     3,     4,     3,
-     1,     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,     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,     1,     3,     1,     1,     1,     1,     1,     1,
-     1,     1,     3,     3,     4,     0,     0,    10,     0,     6,
-     0,     0,    12,     0,     8,     0,     6,     2,     0,     8,
-     4,     0,     9,     5,     0,     6,     0,     1,     3,     3,
-     1,     1,     1,     1,     0,     3,     2,     3,     3,     1,
-     0,     1,     3,     1,     3,     2,     0,     0,     0,     7,
-     0,     0,     0,     7,     0,     0,     2,     1,     1,     2,
-     0,     3,     1,     1,     0,     0,     5,     0,     0,     5,
-     4,     1,     5,     2,     0,     2,     0,     1,     1,     1,
-     2,     2,     4,     2,     2,     1,     3,     2,     2,     2,
-     0,     2,     0,     3,     1,     1,     2,     1,     1,     1,
+     2,     2,     2,     4,     2,     4,     2,     2,     6,     1,
+     1,     1,     4,     0,     7,     1,     3,     3,     3,     3,
+     3,     3,     3,     3,     3,     3,     3,     3,     0,     4,
+     0,     4,     0,     0,     7,     0,     5,     3,     3,     1,
+     1,     1,     3,     3,     0,     4,     4,     4,     3,     3,
+     2,     2,     1,     1,     1,     1,     1,     1,     2,     1,
+     2,     0,     1,     2,     3,     1,     1,     2,     2,     4,
+     4,     2,     2,     3,     1,     1,     2,     2,     0,     0,
+     4,     4,     3,     3,     2,     2,     2,     2,     3,     0,
+     2,     2,     2,     2,     3,     0,     2,     2,     1,     1,
+     2,     2,     1,     1,     2,     2,     2,     3,     0,     2,
+     1,     1,     1,     2,     2,     1,     4,     4,     1,     1,
+     1,     1,     3,     1,     3,     0,     4,     0,     6,     3,
+     0,     6,     3,     0,     1,     1,     2,     6,     1,     3,
+     0,     1,     4,     6,     4,     1,     1,     1,     1,     1,
+     0,     4,     1,     0,     2,     1,     3,     3,     2,     0,
+     4,     1,     0,     4,     1,     1,     1,     2,     2,     0,
+     0,     5,     0,     0,     5,     1,     1,     3,     3,     4,
+     3,     3,     3,     1,     1,     3,     4,     3,     3,     3,
+     1,     3,     3,     3,     4,     3,     3,     1,     1,     2,
+     1,     2,     1,     2,     0,     7,     5,     2,     0,     7,
+     5,     2,     0,     8,     0,     7,     2,     0,     1,     0,
+     1,     1,     2,     0,     3,     2,     4,     3,     1,     3,
+     1,     1,     2,     1,     3,     4,     6,     5,     1,     3,
+     1,     1,     3,     2,     2,     0,     1,     1,     2,     0,
+     2,     3,     3,     2,     3,     4,     3,     2,     3,     2,
+     3,     1,     1,     2,     2,     0,     1,     2,     0,     0,
+     1,     1,     2,     3,     1,     2,     1,     2,     6,     5,
+     5,     2,     2,     4,     0,     4,     0,     0,     3,     4,
+     3,     1,     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,     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,     1,     3,     1,     1,     1,     1,     1,
+     1,     1,     1,     3,     3,     4,     0,     0,    10,     0,
+     6,     0,     0,    12,     0,     8,     0,     6,     2,     0,
+     8,     4,     0,     9,     5,     0,     6,     0,     1,     3,
+     3,     1,     1,     1,     1,     0,     3,     2,     3,     3,
+     1,     0,     1,     3,     1,     3,     2,     0,     0,     0,
+     7,     0,     0,     0,     7,     0,     0,     2,     1,     1,
+     2,     0,     3,     1,     1,     0,     0,     5,     0,     0,
+     5,     4,     1,     5,     2,     0,     2,     0,     1,     1,
+     1,     2,     2,     4,     2,     2,     1,     3,     2,     2,
+     2,     0,     2,     0,     3,     1,     1,     2,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     6,     3,     5,     2,     1,     1,     1,     2,
-     1,     3,     2,     1,     1,     0,     0,     6,     1,     1,
-     1,     2,     2,     1,     4,     4,     4
+     1,     1,     1,     6,     3,     5,     2,     1,     1,     1,
+     2,     1,     3,     2,     1,     1,     0,     0,     6,     1,
+     1,     1,     2,     2,     1,     4,     4,     4
 };
 
 static const short yydefact[] = {     3,
-     5,     0,     0,     0,   162,   153,   160,   152,   252,   248,
-   250,     0,     0,     0,   415,     0,   467,   471,     0,     0,
-   421,   447,     0,   447,     0,     0,    19,     4,     8,     7,
-     0,   128,   128,   148,   139,   149,   185,     0,     0,     0,
-   161,     0,     9,   417,   418,   416,   419,   165,   420,     6,
-    17,    18,   253,   249,   251,     0,     0,     0,    32,    33,
-    35,    34,   422,     0,     0,     0,   447,   438,   163,   448,
-   447,   164,     0,     0,   247,   299,     0,     0,   173,   129,
-     0,    16,     0,    15,     0,   150,   139,   151,   155,   154,
-   137,   186,   273,   257,   273,   261,   264,   266,    11,    89,
-    90,   107,    59,    60,     0,     0,     0,    36,    38,    37,
-     0,    39,    40,     0,   556,     0,     0,     0,   109,    41,
-    42,     0,     0,    43,    61,     0,     0,    65,    46,    48,
-    91,   106,     0,   102,   103,   104,   105,   297,     0,   295,
-   158,     0,   295,   190,   449,     0,   518,   519,   541,   542,
-   538,   522,   523,   524,   525,   526,   527,   528,   529,   530,
-   531,   532,   533,   534,   535,   536,   537,   539,   540,     0,
-     0,   520,   468,   492,   511,   515,   521,   516,   472,     0,
-     0,   429,     0,     0,   436,   445,   424,     0,     0,     0,
-    12,     0,     0,    31,     0,   407,     0,     0,   183,   233,
-   299,     0,   234,     0,   171,   129,     0,   225,   226,     0,
-     0,   138,   141,   168,   169,   140,   142,   170,     0,     0,
-     0,   254,     0,   258,     0,   262,    57,    58,    52,    49,
-     0,     0,     0,     0,     0,     0,     0,     0,    51,     0,
-     0,     0,    53,     0,    55,     0,     0,    82,    80,    78,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   100,   101,     0,     0,    44,     0,   108,   110,
-    50,   166,   299,   390,     0,   129,   293,   296,   156,   167,
-   298,   158,   294,   196,   197,   198,   195,     0,   188,   191,
-   423,     0,   546,     0,   495,   513,   494,     0,   517,     0,
-   495,   447,     0,   426,   476,   441,     0,   455,   476,   425,
-   300,   243,   242,   174,   175,   246,     0,   241,     0,   245,
-     0,     0,    29,     0,   336,   116,   337,   182,   184,     0,
-     0,    14,     0,     0,    23,     0,   183,   407,     0,    13,
-    27,     0,     0,   183,   281,   275,   128,   272,   128,     0,
-   273,   183,   273,   290,   291,   269,   288,     0,    93,    92,
-   326,   318,     0,     0,   555,   554,   557,   564,   559,     0,
-   560,   561,     0,     0,    10,    47,     0,     0,    88,    87,
-     0,     0,     0,     0,    76,    77,    75,    74,    73,    71,
-    72,    66,    67,    68,    69,    70,    99,    98,     0,    45,
-     0,   303,     0,   307,     0,   309,     0,     0,   390,     0,
-   159,   157,     0,   190,    44,     0,     0,     0,   469,   512,
-   396,     0,   544,   473,   434,   447,   455,     0,     0,   439,
-   444,     0,     0,     0,     0,     0,   411,   397,   128,   128,
-   409,     0,   398,   400,   408,     0,   244,   317,     0,   118,
-   113,   117,     0,   180,   231,   227,   172,   232,    21,   179,
-   228,   230,     0,    25,     0,   256,   336,   274,   336,   282,
-     0,   260,     0,     0,   270,     0,   269,   327,   319,    95,
-    63,    62,     0,   563,   565,     0,   562,   567,   566,    54,
-    56,     0,     0,    81,    79,    96,    97,   302,   301,   391,
-   308,   310,   304,   306,     0,   187,   189,    89,     0,     0,
-   491,   511,   128,     0,   500,   496,   498,     0,     0,   514,
-   398,     0,     0,   431,   476,   442,     0,   430,   485,   488,
-   479,     0,   128,   128,   481,   478,   455,   454,   452,   453,
-   437,   455,   460,   457,   128,   128,     0,   446,   176,   395,
-   295,   295,   392,   393,     0,   410,     0,     0,    30,   324,
-   114,   128,   128,   145,     0,     0,   177,   229,     0,   276,
-   277,   283,   337,   279,   183,   183,   292,   289,   183,     0,
-     0,     0,   320,   321,     0,     0,   547,     0,   548,   549,
-    83,    86,   305,   192,     0,   194,   545,   493,   504,   295,
-   505,   501,   502,   470,     0,   474,   455,     0,   476,   427,
-     0,     0,   175,     0,     0,     0,   480,     0,     0,   461,
-   461,   456,   240,   299,   390,   129,   183,   183,   183,   299,
-   129,   183,   183,     0,   399,   401,   412,   325,   121,     0,
-   122,     0,   145,   143,   202,   200,   199,   181,    22,     0,
-    26,   336,     0,   255,   259,   265,   183,   413,     0,     0,
-     0,   336,     0,     0,   125,   337,   312,   322,   215,    89,
-     0,   212,     0,   214,     0,   267,   205,   211,     0,     0,
-   551,   553,     0,   558,     0,   550,     0,     0,   183,   183,
-   183,     0,   506,   543,     0,   435,     0,   476,   486,   489,
-   482,   440,     0,   464,   458,   462,   459,   303,     0,   407,
-     0,   402,   403,   404,   303,     0,   405,   406,   394,     0,
-     0,   144,   147,   146,     0,   178,   284,     0,   183,   263,
-   323,     0,   329,   127,   126,   316,     0,   330,   314,   337,
-   313,     0,   218,     0,   209,    64,     0,   204,     0,   217,
-   208,   552,    84,   193,   508,   509,   510,   503,   295,   432,
-   443,     0,     0,     0,   466,     0,     0,   238,   239,   235,
-   237,     0,   119,   120,     0,   183,     0,   285,   414,   328,
-     0,   162,     0,   350,   334,     0,     0,     0,     0,     0,
-     0,     0,     0,   379,   447,   447,   371,     0,     0,   123,
-   128,   128,   343,   348,     0,     0,   340,   341,   344,   372,
-   342,     0,     0,     0,   206,   207,   507,   476,   428,   484,
-   483,   487,   490,   465,   463,   236,   201,   287,   183,     0,
-     0,   336,   381,     0,     0,   377,   361,   362,   363,     0,
-     0,     0,   380,     0,   183,   345,   134,     0,   135,     0,
-     0,   332,   337,   331,   354,     0,   136,   213,   210,     0,
-   286,     0,     0,     0,   382,    48,     0,     0,     0,   375,
-   364,     0,   369,     0,   378,     0,   132,   219,     0,   133,
-   222,   349,   336,     0,     0,   433,   333,     0,   335,   373,
-   355,   359,     0,   370,     0,   130,     0,   131,     0,   347,
-   338,   336,     0,   351,   336,   381,   336,   376,   383,     0,
-   220,   223,   339,   353,   336,   374,     0,   360,     0,     0,
-   384,   385,   365,     0,     0,   352,   356,     0,   383,     0,
-     0,   221,   224,   381,     0,     0,   366,   386,     0,   387,
-     0,     0,   357,   388,     0,   367,   336,     0,     0,   358,
-   368,   389,     0,     0,     0
+     5,     0,     0,     0,   163,   154,   161,   153,   253,   249,
+   251,     0,     0,     0,   416,     0,   468,   472,     0,     0,
+   422,   448,     0,   448,     0,     0,    19,     4,     8,     7,
+     0,   129,   129,   149,   140,   150,   186,     0,     0,     0,
+   162,     0,     9,   418,   419,   417,   420,   166,   421,     6,
+    17,    18,   254,   250,   252,     0,     0,     0,    32,    33,
+    35,    34,   423,     0,     0,     0,   448,   439,   164,   449,
+   448,   165,     0,     0,   248,   300,     0,     0,   174,   130,
+     0,    16,     0,    15,     0,   151,   140,   152,   156,   155,
+   138,   187,   274,   258,   274,   262,   265,   267,    11,    90,
+    91,   108,    60,    61,     0,     0,     0,     0,    36,    38,
+    37,     0,    39,    40,     0,   557,     0,     0,     0,   110,
+    41,    42,     0,     0,    43,    62,     0,     0,    66,    46,
+    48,    92,   107,     0,   103,   104,   105,   106,   298,     0,
+   296,   159,     0,   296,   191,   450,     0,   519,   520,   542,
+   543,   539,   523,   524,   525,   526,   527,   528,   529,   530,
+   531,   532,   533,   534,   535,   536,   537,   538,   540,   541,
+     0,     0,   521,   469,   493,   512,   516,   522,   517,   473,
+     0,     0,   430,     0,     0,   437,   446,   425,     0,     0,
+     0,    12,     0,     0,    31,     0,   408,     0,     0,   184,
+   234,   300,     0,   235,     0,   172,   130,     0,   226,   227,
+     0,     0,   139,   142,   169,   170,   141,   143,   171,     0,
+     0,     0,   255,     0,   259,     0,   263,    57,    58,     0,
+    52,    49,     0,     0,     0,     0,     0,     0,     0,     0,
+    51,     0,     0,     0,    53,     0,    55,     0,     0,    83,
+    81,    79,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   101,   102,     0,     0,    44,     0,
+   109,   111,    50,   167,   300,   391,     0,   130,   294,   297,
+   157,   168,   299,   159,   295,   197,   198,   199,   196,     0,
+   189,   192,   424,     0,   547,     0,   496,   514,   495,     0,
+   518,     0,   496,   448,     0,   427,   477,   442,     0,   456,
+   477,   426,   301,   244,   243,   175,   176,   247,     0,   242,
+     0,   246,     0,     0,    29,     0,   337,   117,   338,   183,
+   185,     0,     0,    14,     0,     0,    23,     0,   184,   408,
+     0,    13,    27,     0,     0,   184,   282,   276,   129,   273,
+   129,     0,   274,   184,   274,   291,   292,   270,   289,     0,
+     0,    94,    93,   327,   319,     0,     0,   556,   555,   558,
+   565,   560,     0,   561,   562,     0,     0,    10,    47,     0,
+     0,    89,    88,     0,     0,     0,     0,    77,    78,    76,
+    75,    74,    72,    73,    67,    68,    69,    70,    71,   100,
+    99,     0,    45,     0,   304,     0,   308,     0,   310,     0,
+     0,   391,     0,   160,   158,     0,   191,    44,     0,     0,
+     0,   470,   513,   397,     0,   545,   474,   435,   448,   456,
+     0,     0,   440,   445,     0,     0,     0,     0,     0,   412,
+   398,   129,   129,   410,     0,   399,   401,   409,     0,   245,
+   318,     0,   119,   114,   118,     0,   181,   232,   228,   173,
+   233,    21,   180,   229,   231,     0,    25,     0,   257,   337,
+   275,   337,   283,     0,   261,     0,     0,   271,     0,   270,
+     0,   328,   320,    96,    64,    63,     0,   564,   566,     0,
+   563,   568,   567,    54,    56,     0,     0,    82,    80,    97,
+    98,   303,   302,   392,   309,   311,   305,   307,     0,   188,
+   190,    90,     0,     0,   492,   512,   129,     0,   501,   497,
+   499,     0,     0,   515,   399,     0,     0,   432,   477,   443,
+     0,   431,   486,   489,   480,     0,   129,   129,   482,   479,
+   456,   455,   453,   454,   438,   456,   461,   458,   129,   129,
+     0,   447,   177,   396,   296,   296,   393,   394,     0,   411,
+     0,     0,    30,   325,   115,   129,   129,   146,     0,     0,
+   178,   230,     0,   277,   278,   284,   338,   280,   184,   184,
+   293,   290,   184,     0,     0,     0,     0,   321,   322,     0,
+     0,   548,     0,   549,   550,    84,    87,   306,   193,     0,
+   195,   546,   494,   505,   296,   506,   502,   503,   471,     0,
+   475,   456,     0,   477,   428,     0,     0,   176,     0,     0,
+     0,   481,     0,     0,   462,   462,   457,   241,   300,   391,
+   130,   184,   184,   184,   300,   130,   184,   184,     0,   400,
+   402,   413,   326,   122,     0,   123,     0,   146,   144,   203,
+   201,   200,   182,    22,     0,    26,   337,     0,   256,   260,
+   266,   184,    59,   414,     0,     0,     0,   337,     0,     0,
+   126,   338,   313,   323,   216,    90,     0,   213,     0,   215,
+     0,   268,   206,   212,     0,     0,   552,   554,     0,   559,
+     0,   551,     0,     0,   184,   184,   184,     0,   507,   544,
+     0,   436,     0,   477,   487,   490,   483,   441,     0,   465,
+   459,   463,   460,   304,     0,   408,     0,   403,   404,   405,
+   304,     0,   406,   407,   395,     0,     0,   145,   148,   147,
+     0,   179,   285,     0,   184,   264,   324,     0,   330,   128,
+   127,   317,     0,   331,   315,   338,   314,     0,   219,     0,
+   210,    65,     0,   205,     0,   218,   209,   553,    85,   194,
+   509,   510,   511,   504,   296,   433,   444,     0,     0,     0,
+   467,     0,     0,   239,   240,   236,   238,     0,   120,   121,
+     0,   184,     0,   286,   415,   329,     0,   163,     0,   351,
+   335,     0,     0,     0,     0,     0,     0,     0,     0,   380,
+   448,   448,   372,     0,     0,   124,   129,   129,   344,   349,
+     0,     0,   341,   342,   345,   373,   343,     0,     0,     0,
+   207,   208,   508,   477,   429,   485,   484,   488,   491,   466,
+   464,   237,   202,   288,   184,     0,     0,   337,   382,     0,
+     0,   378,   362,   363,   364,     0,     0,     0,   381,     0,
+   184,   346,   135,     0,   136,     0,     0,   333,   338,   332,
+   355,     0,   137,   214,   211,     0,   287,     0,     0,     0,
+   383,    48,     0,     0,     0,   376,   365,     0,   370,     0,
+   379,     0,   133,   220,     0,   134,   223,   350,   337,     0,
+     0,   434,   334,     0,   336,   374,   356,   360,     0,   371,
+     0,   131,     0,   132,     0,   348,   339,   337,     0,   352,
+   337,   382,   337,   377,   384,     0,   221,   224,   340,   354,
+   337,   375,     0,   361,     0,     0,   385,   386,   366,     0,
+     0,   353,   357,     0,   384,     0,     0,   222,   225,   382,
+     0,     0,   367,   387,     0,   388,     0,     0,   358,   389,
+     0,   368,   337,     0,     0,   359,   369,   390,     0,     0,
+     0
 };
 
-static const short yydefgoto[] = {   953,
-     1,     2,     3,    28,    29,    30,   336,   566,   342,   569,
-   198,   449,   673,   122,   232,   399,   124,   125,   126,   127,
-   128,   585,   129,   384,   383,   381,   687,   382,   130,   233,
-   131,   132,   323,   324,   325,   561,   661,   662,    31,   193,
-   800,   439,    91,   562,   644,   440,    34,   140,   279,    35,
-   216,   204,    78,   199,   205,   650,    79,   565,   328,   329,
-    37,   288,   289,   290,   648,   725,   675,   676,   677,   814,
-   678,   744,   679,   680,   877,   897,   924,   880,   899,   925,
-   315,   208,   689,   209,    38,    39,    40,    41,   351,   353,
-   358,   225,   748,   476,   220,   221,   348,   571,   572,   356,
-   357,   142,   691,   143,   189,   278,   663,   664,   737,   326,
-   479,   582,   583,   584,   559,   362,   560,   804,   805,   806,
-   832,   853,   453,   854,   667,   807,   808,   883,   831,   915,
-   906,   934,   947,   907,   809,   810,   905,   811,   844,   867,
-   920,   921,   922,   945,   404,   405,   441,   634,   442,   443,
-   444,   318,   319,   445,   446,   659,   133,    43,    64,    44,
-    45,    46,   427,   698,   305,   607,   818,   525,   308,   537,
-   609,    47,   309,    69,    48,   432,   542,   433,   547,   705,
-   706,    49,    65,   295,   519,    66,   301,   523,   428,   429,
-   535,   616,   822,   536,   611,   763,   612,   764,   173,   419,
-   516,   517,   518,   692,   693,   297,   421,   174,   175,   176,
-   177,   178,   588,   589,   682,   590,   367,   134,   235,   483,
-   370,   371,   372,   135,   136,   137
+static const short yydefgoto[] = {   959,
+     1,     2,     3,    28,    29,    30,   338,   570,   344,   573,
+   199,   452,   679,   123,   234,   402,   125,   126,   127,   128,
+   129,   590,   130,   387,   386,   384,   693,   385,   131,   235,
+   132,   133,   325,   326,   327,   565,   667,   668,    31,   194,
+   806,   442,    91,   566,   649,   443,    34,   141,   281,    35,
+   217,   205,    78,   200,   206,   655,    79,   569,   330,   331,
+    37,   290,   291,   292,   653,   731,   681,   682,   683,   820,
+   684,   750,   685,   686,   883,   903,   930,   886,   905,   931,
+   317,   209,   695,   210,    38,    39,    40,    41,   353,   355,
+   360,   226,   754,   479,   221,   222,   350,   575,   576,   358,
+   359,   143,   697,   144,   190,   280,   669,   670,   743,   328,
+   483,   587,   588,   589,   563,   365,   564,   810,   811,   812,
+   838,   859,   456,   860,   673,   813,   814,   889,   837,   921,
+   912,   940,   953,   913,   815,   816,   911,   817,   850,   873,
+   926,   927,   928,   951,   407,   408,   444,   639,   445,   446,
+   447,   320,   321,   448,   449,   665,   134,    43,    64,    44,
+    45,    46,   430,   704,   307,   612,   824,   529,   310,   541,
+   614,    47,   311,    69,    48,   435,   546,   436,   551,   711,
+   712,    49,    65,   297,   523,    66,   303,   527,   431,   432,
+   539,   621,   828,   540,   616,   769,   617,   770,   174,   422,
+   520,   521,   522,   698,   699,   299,   424,   175,   176,   177,
+   178,   179,   593,   594,   688,   595,   370,   135,   237,   487,
+   373,   374,   375,   136,   137,   138
 };
 
-static const short yypact[] = {   109,
-   118,  3183,  3183,   412,-32768,-32768,-32768,-32768,    91,    91,
-    91,    65,   100,   136,-32768,   270,-32768,-32768,   270,   270,
--32768,   132,   270,   132,   270,   270,-32768,-32768,-32768,-32768,
-   103,   128,   699,   378,-32768,    91,-32768,   119,   131,   203,
--32768,  3183,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    91,    91,    91,  2892,  2730,   155,-32768,-32768,
--32768,-32768,-32768,    68,  3447,  3447,    70,    61,-32768,-32768,
-   132,-32768,   112,   270,-32768,-32768,   103,   167,-32768,    91,
-  1306,-32768,   434,-32768,   103,   378,-32768,    91,-32768,-32768,
-   900,-32768,   160,   153,   160,   159,-32768,   175,-32768,-32768,
--32768,-32768,-32768,-32768,  2892,  2892,   270,-32768,-32768,-32768,
-  2892,-32768,-32768,  1480,-32768,   195,   231,   239,-32768,-32768,
--32768,  2892,   216,   225,-32768,  2946,  3000,-32768,  3714,  1127,
-   315,   255,  2892,-32768,-32768,-32768,-32768,-32768,   251,   418,
--32768,   279,  2078,   314,-32768,   270,-32768,-32768,-32768,-32768,
+static const short yypact[] = {   121,
+   141,  3145,  3145,   196,-32768,-32768,-32768,-32768,    68,    68,
+    68,   101,   103,   115,-32768,   234,-32768,-32768,   234,   234,
+-32768,   107,   234,   107,   234,   234,-32768,-32768,-32768,-32768,
+   183,   128,   326,   191,-32768,    68,-32768,   109,   116,   122,
+-32768,  3145,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,    68,    68,    68,  2849,  2684,   160,-32768,-32768,
+-32768,-32768,-32768,    69,  3444,  3444,   230,   283,-32768,-32768,
+   107,-32768,   195,   234,-32768,-32768,   183,   263,-32768,    68,
+  1860,-32768,   232,-32768,   183,   191,-32768,    68,-32768,-32768,
+   596,-32768,   174,   165,   174,   204,-32768,   212,-32768,-32768,
+-32768,-32768,-32768,-32768,  2849,  2849,   237,   234,-32768,-32768,
+-32768,  2849,-32768,-32768,  1262,-32768,   248,   250,   261,-32768,
+-32768,-32768,  2849,   246,   247,-32768,  2904,  2959,-32768,  3785,
+   827,   333,   271,  2849,-32768,-32768,-32768,-32768,-32768,   284,
+   360,-32768,   291,  3570,   346,-32768,   234,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   292,
-  3610,-32768,-32768,-32768,  2624,   327,-32768,-32768,-32768,   270,
-   270,   286,   270,   270,-32768,-32768,-32768,   321,   252,   301,
--32768,   434,   103,-32768,   319,-32768,  2093,   744,    91,-32768,
--32768,   434,-32768,   188,-32768,    91,  1969,   422,   471,   259,
-  1950,   900,-32768,-32768,-32768,-32768,    91,-32768,   332,   340,
-  1881,-32768,   347,-32768,   227,-32768,-32768,-32768,-32768,-32768,
-   357,   359,   338,   368,  2784,  3475,  3610,   270,-32768,   377,
-  2892,  1480,-32768,  1480,-32768,  2892,  2892,   408,-32768,-32768,
-  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,
-  2892,  2892,-32768,-32768,   270,   270,  2892,  2892,-32768,-32768,
--32768,-32768,-32768,   418,  2152,    91,-32768,   481,   708,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,    22,-32768,   411,
--32768,  3610,-32768,   391,   402,   491,-32768,   327,-32768,   404,
-   402,   132,   433,-32768,   449,   441,   439,-32768,   449,-32768,
--32768,   471,-32768,-32768,   518,   471,   538,-32768,  3336,-32768,
-   467,   483,-32768,  1021,    82,-32768,-32768,   536,    91,   386,
-   350,-32768,   434,   434,-32768,   744,    91,-32768,  2211,-32768,
--32768,   744,   520,    91,-32768,-32768,   475,   502,  1385,  3385,
-   160,    91,   160,-32768,   560,   523,-32768,   227,-32768,-32768,
--32768,   540,   525,  2544,-32768,-32768,-32768,-32768,   578,   544,
-  3475,-32768,   562,   565,-32768,  3714,   569,   570,  3714,  3714,
-  2892,   604,  2892,  2892,  1690,  1278,   969,   958,  1297,   563,
-   563,   533,   533,-32768,-32768,-32768,-32768,-32768,   571,   225,
-   577,   369,   355,-32768,  3355,-32768,   579,   418,-32768,  2270,
--32768,   708,   580,   314,  3054,   588,  3511,  2048,-32768,-32768,
-  3568,  3610,-32768,-32768,   583,   132,-32768,   590,  3258,-32768,
--32768,   457,  3131,   608,    75,   591,-32768,-32768,-32768,  3614,
--32768,   596,   276,-32768,-32768,   232,-32768,-32768,    90,-32768,
--32768,-32768,   848,-32768,   422,-32768,-32768,   422,-32768,   637,
--32768,-32768,   593,-32768,   601,-32768,-32768,-32768,-32768,-32768,
-   600,-32768,   602,  2892,   270,   603,   523,-32768,   650,-32768,
--32768,-32768,  3539,-32768,-32768,   578,-32768,-32768,-32768,-32768,
--32768,   646,  2892,  1612,   996,-32768,-32768,   481,-32768,-32768,
--32768,   481,-32768,-32768,   612,-32768,-32768,   234,   609,   270,
--32768,  2624,   610,  2663,-32768,-32768,  3614,  2067,    90,-32768,
-   618,   624,    90,-32768,   449,-32768,   530,-32768,-32768,-32768,
--32768,   103,   128,   699,   450,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,  3644,   631,-32768,-32768,-32768,
-   573,   344,-32768,-32768,  3580,-32768,   706,   338,-32768,-32768,
--32768,   640,   550,-32768,  1795,    90,-32768,-32768,    90,-32768,
-   629,-32768,-32768,   629,    91,    91,  3714,-32768,    91,   641,
-   270,  1056,   650,-32768,  1560,  2892,   685,   643,  3539,-32768,
--32768,  1533,-32768,-32768,  2892,-32768,-32768,-32768,-32768,   573,
--32768,-32768,-32768,-32768,   270,-32768,-32768,   661,   449,-32768,
-  3447,  3447,   245,   434,   103,  3286,-32768,   561,  3149,   284,
-   284,-32768,-32768,-32768,   344,    91,   202,   220,    91,-32768,
-    91,   220,    91,  3355,-32768,-32768,-32768,-32768,-32768,   434,
--32768,   103,-32768,   796,-32768,-32768,  3714,-32768,-32768,  1795,
--32768,-32768,   436,-32768,-32768,-32768,    91,-32768,   285,   512,
-   920,   652,   653,  1140,-32768,-32768,-32768,-32768,-32768,   694,
-   270,-32768,   695,  3714,   656,   654,-32768,-32768,    80,  1720,
-   225,-32768,  2892,-32768,   685,-32768,  2892,   250,   202,   220,
-    91,   294,-32768,-32768,   581,-32768,   675,   449,-32768,-32768,
--32768,-32768,  2892,   702,   662,-32768,   662,   633,   573,-32768,
-  2329,-32768,-32768,-32768,   342,   344,-32768,-32768,-32768,   336,
-   426,   796,-32768,-32768,  1560,-32768,-32768,  2892,    89,-32768,
--32768,   270,-32768,-32768,-32768,-32768,   664,-32768,-32768,-32768,
--32768,  2410,-32768,  1560,-32768,-32768,  1640,-32768,  1870,-32768,
--32768,-32768,  1533,-32768,-32768,-32768,-32768,-32768,   573,-32768,
--32768,   683,    81,    81,  3714,  2892,   284,   566,   566,-32768,
--32768,   669,-32768,-32768,   677,  3678,  2892,-32768,-32768,-32768,
-  2490,   715,   700,-32768,-32768,   701,   705,  2892,   727,   691,
-   707,  2838,   170,   780,   222,   233,-32768,   750,   716,-32768,
-   717,  3366,-32768,   776,  1220,    87,-32768,-32768,-32768,-32768,
--32768,  2652,   720,  1870,-32768,-32768,-32768,   449,-32768,-32768,
--32768,-32768,-32768,  3714,-32768,-32768,-32768,-32768,  3678,  2892,
-   736,-32768,  2892,  2892,  3655,-32768,-32768,-32768,-32768,   722,
-  2892,   729,-32768,   753,    91,-32768,-32768,   434,-32768,   103,
-  1400,-32768,-32768,-32768,-32768,  2892,-32768,-32768,-32768,   751,
--32768,   739,  2892,   802,-32768,   787,   743,   746,  2892,-32768,
--32768,   748,-32768,  2892,-32768,   447,-32768,   172,   462,-32768,
-   461,-32768,-32768,  2490,   747,-32768,-32768,   754,-32768,-32768,
--32768,-32768,  3696,-32768,    64,-32768,   744,-32768,   744,-32768,
--32768,-32768,   752,-32768,-32768,  2892,-32768,-32768,   818,   756,
--32768,-32768,-32768,-32768,-32768,-32768,   760,-32768,   779,    79,
-   762,-32768,-32768,   338,   338,-32768,-32768,  2892,   818,   771,
-   818,-32768,-32768,  2892,   775,   162,-32768,-32768,   781,-32768,
-   538,   782,-32768,   315,   257,-32768,-32768,   788,   538,-32768,
--32768,   315,   858,   867,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+   197,  3660,-32768,-32768,-32768,  2568,   331,-32768,-32768,-32768,
+   234,   234,   296,   234,   234,-32768,-32768,-32768,   308,    98,
+   357,-32768,   232,   183,-32768,   329,-32768,  2029,  1370,    68,
+-32768,-32768,   232,-32768,   277,-32768,    68,  1946,   274,   388,
+   295,  1888,   596,-32768,-32768,-32768,-32768,    68,-32768,   355,
+   312,  1790,-32768,   343,-32768,    87,-32768,-32768,-32768,  2849,
+-32768,-32768,   348,   353,   345,   362,  2739,  3474,  3660,   234,
+-32768,   364,  2849,  1262,-32768,  1262,-32768,  2849,  2849,   412,
+-32768,-32768,  2849,  2849,  2849,  2849,  2849,  2849,  2849,  2849,
+  2849,  2849,  2849,  2849,-32768,-32768,   234,   234,  2849,  2849,
+-32768,-32768,-32768,-32768,-32768,   360,  2089,    68,-32768,   612,
+   515,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    29,
+-32768,   425,-32768,  3660,-32768,   395,   413,   484,-32768,   331,
+-32768,   241,   413,   107,   410,-32768,   440,   424,   446,-32768,
+   440,-32768,-32768,   388,-32768,-32768,   490,   388,   517,-32768,
+  3300,-32768,   449,   463,-32768,   642,    79,-32768,-32768,   510,
+    68,   494,   377,-32768,   232,   232,-32768,  1370,    68,-32768,
+  2149,-32768,-32768,  1370,   481,    68,-32768,-32768,   328,   480,
+  1273,  3406,   174,    68,   174,-32768,   524,   487,-32768,    87,
+  3706,-32768,-32768,-32768,   492,   499,  2487,-32768,-32768,-32768,
+-32768,   539,   504,  3474,-32768,   507,   514,-32768,  3785,   522,
+   546,  3785,  3785,  2849,   548,  2849,  2849,  1596,  1671,  1207,
+  1316,  1678,   792,   792,   587,   587,-32768,-32768,-32768,-32768,
+-32768,   553,   247,   532,   454,   406,-32768,  3319,-32768,   541,
+   360,-32768,  2209,-32768,   515,   556,   346,  3014,   559,  3512,
+  1974,-32768,-32768,  3582,  3660,-32768,-32768,   562,   107,-32768,
+   578,  3221,-32768,-32768,   495,  3092,   589,    73,   580,-32768,
+-32768,-32768,  3647,-32768,   585,   318,-32768,-32768,   111,-32768,
+-32768,    83,-32768,-32768,-32768,  1871,-32768,   274,-32768,-32768,
+   274,-32768,   629,-32768,-32768,   584,-32768,   600,-32768,-32768,
+-32768,-32768,-32768,   604,-32768,   608,  2849,   234,   610,   487,
+  3660,-32768,   647,-32768,-32768,-32768,  3542,-32768,-32768,   539,
+-32768,-32768,-32768,-32768,-32768,   651,  2849,  1517,  1440,-32768,
+-32768,   612,-32768,-32768,-32768,   612,-32768,-32768,   607,-32768,
+-32768,   146,   618,   234,-32768,  2568,   623,  3330,-32768,-32768,
+  3647,  1993,    83,-32768,   620,   627,    83,-32768,   440,-32768,
+   536,-32768,-32768,-32768,-32768,   183,   128,   326,   409,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  3672,
+   630,-32768,-32768,-32768,   380,   252,-32768,-32768,  3635,-32768,
+   704,   345,-32768,-32768,-32768,   631,  2616,-32768,  1703,    83,
+-32768,-32768,    83,-32768,   632,-32768,-32768,   632,    68,    68,
+  3785,-32768,    68,   633,   643,   234,   997,   647,-32768,  1465,
+  2849,   682,   639,  3542,-32768,-32768,   937,-32768,-32768,  2849,
+-32768,-32768,-32768,-32768,   380,-32768,-32768,-32768,-32768,   234,
+-32768,-32768,   664,   440,-32768,  3444,  3444,   112,   232,   183,
+  3249,-32768,   542,  3109,   486,   486,-32768,-32768,-32768,   252,
+    68,   276,   363,    68,-32768,    68,   363,    68,  3319,-32768,
+-32768,-32768,-32768,-32768,   232,-32768,   183,-32768,   867,-32768,
+-32768,  3785,-32768,-32768,  1703,-32768,-32768,   766,-32768,-32768,
+-32768,    68,-32768,-32768,   414,   477,   893,   650,   653,  1087,
+-32768,-32768,-32768,-32768,-32768,   691,   234,-32768,   694,  3785,
+   658,   656,-32768,-32768,    59,  1627,   247,-32768,  2849,-32768,
+   682,-32768,  2849,   181,   276,   363,    68,   421,-32768,-32768,
+   558,-32768,   676,   440,-32768,-32768,-32768,-32768,  2849,   702,
+   661,-32768,   661,   715,   380,-32768,  2269,-32768,-32768,-32768,
+   590,   252,-32768,-32768,-32768,   431,   460,   867,-32768,-32768,
+  1465,-32768,-32768,  2849,    93,-32768,-32768,   234,-32768,-32768,
+-32768,-32768,   667,-32768,-32768,-32768,-32768,  2351,-32768,  1465,
+-32768,-32768,  1546,-32768,  1779,-32768,-32768,-32768,   937,-32768,
+-32768,-32768,-32768,-32768,   380,-32768,-32768,   683,    91,    91,
+  3785,  2849,   486,   621,   621,-32768,-32768,   668,-32768,-32768,
+   672,  3749,  2849,-32768,-32768,-32768,  2432,   716,   696,-32768,
+-32768,   697,   698,  2849,   724,   686,   689,  2794,   314,   761,
+   222,   240,-32768,   732,   699,-32768,   708,  3376,-32768,   756,
+  1168,    76,-32768,-32768,-32768,-32768,-32768,  2605,   695,  1779,
+-32768,-32768,-32768,   440,-32768,-32768,-32768,-32768,-32768,  3785,
+-32768,-32768,-32768,-32768,  3749,  2849,   735,-32768,  2849,  2849,
+  3724,-32768,-32768,-32768,-32768,   714,  2849,   721,-32768,   747,
+    68,-32768,-32768,   232,-32768,   183,  1384,-32768,-32768,-32768,
+-32768,  2849,-32768,-32768,-32768,   746,-32768,   734,  2849,   797,
+-32768,   742,   737,   739,  2849,-32768,-32768,   744,-32768,  2849,
+-32768,   466,-32768,   351,   508,-32768,   666,-32768,-32768,  2432,
+   748,-32768,-32768,   750,-32768,-32768,-32768,-32768,  3767,-32768,
+    61,-32768,  1370,-32768,  1370,-32768,-32768,-32768,   745,-32768,
+-32768,  2849,-32768,-32768,   819,   752,-32768,-32768,-32768,-32768,
+-32768,-32768,   753,-32768,   773,    70,   755,-32768,-32768,   345,
+   345,-32768,-32768,  2849,   819,   760,   819,-32768,-32768,  2849,
+   769,    71,-32768,-32768,   771,-32768,   517,   772,-32768,   333,
+   242,-32768,-32768,   793,   517,-32768,-32768,   333,   875,   877,
+-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    83,  -371,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -14,-32768,   -56,   453,  -228,   508,-32768,-32768,
-   -32,-32768,   628,-32768,-32768,-32768,-32768,-32768,    38,-32768,
-  -297,-32768,  -305,   548,-32768,-32768,   215,-32768,     3,  -166,
-    88,     5,   804,-32768,   249,    12,   -29,  -170,   613,    47,
-  -249,  -572,   -69,  -189,  -111,-32768,-32768,-32768,   207,    54,
-    17,-32768,   480,-32768,   253,-32768,  -630,-32768,   152,-32768,
-  -605,-32768,-32768,   229,-32768,-32768,-32768,-32768,-32768,-32768,
-   -51,  -113,  -482,   -18,-32768,-32768,-32768,   -64,-32768,-32768,
--32768,-32768,-32768,   424,   -50,-32768,   559,   442,   258,   558,
-   443,   -59,   -99,  -169,  -173,  -198,   260,-32768,-32768,  -282,
--32768,-32768,-32768,   334,  -412,-32768,  -223,-32768,-32768,-32768,
--32768,  -160,  -524,  -755,   288,-32768,    35,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,    71,-32768,  -738,
-    27,-32768,    26,-32768,   549,-32768,  -357,-32768,   541,   543,
-   406,  -304,-32768,-32768,-32768,-32768,    19,-32768,   934,-32768,
+-32768,-32768,-32768,    92,  -374,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -14,-32768,   -56,   471,  -215,   491,-32768,-32768,
+   -68,-32768,   606,-32768,-32768,-32768,-32768,-32768,    51,-32768,
+  -280,-32768,  -281,   565,-32768,-32768,   235,-32768,    13,  -179,
+   113,    11,   822,-32768,   281,    14,   -30,  -155,   641,    50,
+  -251,  -583,   -77,  -190,  -118,-32768,-32768,-32768,   156,    39,
+    49,-32768,   513,-32768,   278,-32768,  -546,-32768,   179,-32768,
+  -610,-32768,-32768,   251,-32768,-32768,-32768,-32768,-32768,-32768,
+   -73,  -117,  -484,   -16,-32768,-32768,-32768,   -57,-32768,-32768,
+-32768,-32768,-32768,   455,   -55,-32768,   588,   469,   288,   586,
+   472,   -28,   -76,  -143,  -167,  -203,   279,-32768,-32768,  -262,
+-32768,-32768,-32768,   367,  -430,-32768,  -214,-32768,-32768,-32768,
+-32768,  -192,  -555,  -662,   282,-32768,    66,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,    67,-32768,  -733,
+    16,-32768,    22,-32768,   550,-32768,  -375,-32768,   540,   543,
+   404,  -304,-32768,-32768,-32768,-32768,    17,-32768,   943,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   -21,    -5,  -349,-32768,   425,-32768,   345,
-   204,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -286,-32768,
--32768,-32768,   208,   438,-32768,-32768,-32768,-32768,   -37,   676,
--32768,-32768,   459,-32768,   219,   469,-32768,   568,   572,  -142,
--32768,  -132,-32768,-32768,   299,   399,-32768,-32768,-32768,-32768,
--32768,-32768,   619,-32768,-32768,-32768
+-32768,-32768,-32768,   -20,     7,  -387,-32768,   448,-32768,   344,
+   223,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -288,-32768,
+-32768,-32768,   225,   458,-32768,-32768,-32768,-32768,   -34,   710,
+-32768,-32768,   478,-32768,   264,   518,-32768,   613,   615,  -124,
+-32768,  -149,-32768,-32768,   347,   443,-32768,-32768,-32768,-32768,
+-32768,-32768,   665,-32768,-32768,-32768
 };
 
 
-#define        YYLAST          3766
-
-
-static const short yytable[] = {   123,
-   139,    63,    72,    86,    67,    68,    32,    32,    71,   363,
-    63,    74,    81,    33,    33,   210,    70,   337,    70,   435,
-    42,    42,   434,    94,    96,    98,   218,   330,   179,   411,
-   459,   207,   298,   461,    83,    85,   464,   327,   400,   334,
-   277,   450,   299,   283,   223,   182,    32,   500,   653,   186,
-   347,   349,    92,    33,   234,    36,    36,   531,   190,   188,
-    42,    70,    53,    54,    55,    70,   211,   720,   627,    92,
-    92,    92,   227,   228,   751,   403,   864,   527,   230,    87,
-   314,   820,  -112,   269,    80,    50,    88,   855,   331,   239,
-   558,   451,   229,   369,   775,    36,    92,   413,   183,   402,
-   271,   909,   414,   141,    92,    75,   604,   180,    -1,   408,
-   606,   294,   145,   813,    16,   749,   929,    -2,    14,   184,
-    14,    59,    60,    56,    99,   337,   777,   900,   181,   287,
-    80,   291,    14,    59,    60,   515,   206,   671,    80,   910,
-   321,   742,   185,   816,   217,   856,   913,   218,   146,   916,
-   549,   918,    76,   649,   930,   293,   651,   821,    57,   926,
-   141,    77,   411,  -112,   327,   302,   303,   917,   306,   307,
-   312,   361,    59,    60,   316,   327,    16,   373,   366,   347,
-   349,   327,   377,   190,   378,    61,   400,   618,   187,   282,
-    62,   950,   146,   276,    58,   939,   276,    61,   195,   941,
-    93,  -175,    62,   498,    82,    59,    60,  -175,   859,   502,
-   355,   401,    95,   144,   218,   781,   455,   141,   407,   841,
-   458,   457,    92,   374,   219,   768,   769,   354,   486,    59,
-    60,    14,   416,    92,   222,   603,    61,   942,   608,   350,
-   224,    62,    80,   191,   701,   206,    80,   192,  -175,    14,
-   397,   398,  -175,   236,    75,   206,   226,   695,   311,   -35,
-   710,   711,   545,   546,   332,   217,    16,   141,   333,    61,
-   -34,   195,    59,    60,    62,   876,   719,    16,   196,   197,
-   425,    14,   463,   141,    97,   423,    75,   200,   141,   237,
-   141,   240,    92,    61,    59,    60,    70,   238,    62,   665,
-   471,    76,   473,   196,   197,   241,   573,   556,   573,   594,
-    77,   312,   557,    14,   595,   316,    59,    60,   284,   285,
-   286,   703,   697,   269,   492,   754,   272,   276,   884,   270,
-   241,   482,   948,   201,   638,   340,    61,   949,   141,   192,
-   587,    62,   202,   355,    75,    92,    75,   218,   311,   467,
-   292,   469,   554,   505,   280,   203,   555,   681,    61,   196,
-   197,   731,   522,    62,   300,   732,   688,   304,   350,   298,
-   758,    14,    36,    14,   759,   311,   313,   317,   734,   299,
-    61,   739,    89,   206,    90,    62,   206,   206,    75,   200,
-   343,   630,   311,   630,   724,   282,   141,   310,    14,   287,
-   625,   275,   625,   275,   526,   770,    59,    60,   338,   339,
-    86,   762,   773,   409,   410,    14,   333,   344,   273,   361,
-    70,   666,   513,   563,   352,   456,   403,   274,   275,   514,
-   499,   532,   359,   533,   360,   201,    75,   200,    75,   200,
-   534,   551,   552,   364,   202,   -85,   685,    14,   545,   546,
-   708,   629,   633,   375,   681,   276,   715,   203,    36,   709,
-   355,   276,   422,    14,   716,    14,   417,   273,   141,   415,
-    61,    36,   724,   728,    36,    62,   274,   275,   418,   141,
-   338,   339,    36,   201,    86,   201,    87,   195,    51,    52,
-  -175,   573,   202,    88,   202,   597,  -175,   529,   530,   564,
-   420,   666,   774,   740,    86,   203,   192,   203,   426,   498,
-   502,  -475,  -477,   613,   431,   600,   498,   502,   803,   196,
-   197,   513,   430,   896,   538,   539,   540,   333,   514,   196,
-   197,   860,   628,   632,   541,   614,   615,  -175,   898,   409,
-   410,  -175,   192,   460,   195,   210,   102,   620,   621,   447,
-   466,  -278,  -278,     5,    89,     7,    90,   803,   472,   448,
-    87,     9,    10,    11,   640,   642,   658,    88,   704,   704,
-    36,   454,   721,   699,   700,    75,   623,    13,   468,   218,
-    87,   690,   260,   261,   262,    80,   465,    88,   448,   733,
-   694,   911,   282,   912,    16,   474,   613,   538,   539,   540,
-   480,   729,    14,   475,   626,   631,   190,   610,    36,   643,
-   258,   259,   260,   261,   262,   484,    22,   478,   532,   485,
-   533,    24,   624,   613,   710,   711,   641,   534,   538,   539,
-   540,   625,   275,   243,   245,    75,   623,   488,   702,   311,
-   489,   493,    92,   944,   490,   491,   496,    92,   538,   539,
-   540,   952,   528,   626,   772,   506,   743,   218,   760,   497,
-   803,   501,    14,   510,   524,   141,   550,   206,    80,    36,
-   548,   553,   567,   206,   206,   568,   570,   575,   631,   576,
-   579,   581,   624,   591,   596,   799,   599,    36,   337,   312,
-   316,   625,   275,   206,   593,    80,   312,   316,   555,   605,
-   932,   933,     5,     6,     7,     8,   206,   622,   637,   652,
-     9,    10,    11,   214,   215,   704,   639,   779,   657,     9,
-    10,    11,   683,   696,   799,   684,    13,   798,    14,  -315,
-   738,   -32,   745,   746,   747,   840,   327,   761,   327,   766,
-   690,   780,   767,    16,   322,   819,   801,  -336,  -336,  -336,
-  -336,   826,   -33,   802,   827,  -336,  -336,  -336,   830,   833,
-   812,   626,   626,   834,   836,    22,   798,   837,   631,   631,
-    24,  -336,    86,   862,    72,    84,   865,   868,   842,   271,
-   879,   654,   655,   838,   872,   656,   843,   845,  -336,    70,
-    70,   851,   846,   847,   863,    36,   878,   858,   871,   885,
-   723,   214,   215,   848,   850,   873,   888,     9,    10,    11,
-  -336,   874,   626,   886,   887,  -336,   801,   895,   889,   891,
-   206,   892,   903,   802,   894,  -111,   919,   799,   914,   904,
-   812,   881,   923,   712,   713,   714,   927,   928,   717,   718,
-   263,   264,   931,   265,   266,   267,   268,   937,    87,   865,
-   940,     5,     6,     7,     8,    88,   943,   954,   946,     9,
-    10,    11,   890,   730,   951,    36,   955,   509,   376,   798,
-   866,   935,   452,   379,   380,    13,   735,   865,   385,   386,
-   387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
-   212,   722,    16,   507,   412,   755,   756,   757,   815,   857,
-   580,   206,   726,    80,   213,   214,   215,   750,   470,   727,
-   574,     9,    10,    11,    22,   477,   668,   578,   901,    24,
-   322,   736,  -124,  -124,  -124,  -124,  -124,  -124,  -124,    14,
-  -124,  -124,  -124,  -124,  -124,   778,  -124,  -124,  -124,  -124,
-  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
-  -124,   741,  -124,  -124,   902,   936,   938,   503,    73,  -124,
-   636,   520,  -124,   521,  -124,   707,   619,  -124,  -124,  -124,
-   825,   823,   617,  -124,  -124,   602,   424,   817,  -124,  -124,
-   598,   752,   828,  -124,   511,  -124,  -124,   686,   512,   487,
-  -124,  -124,     0,     0,  -124,     0,  -124,  -124,  -124,  -124,
-     0,  -124,   255,   256,   257,   258,   259,   260,   261,   262,
-   494,   495,   254,   255,   256,   257,   258,   259,   260,   261,
-   262,   322,     0,     0,  -115,  -115,  -115,  -115,     0,     0,
-  -115,     0,  -115,  -115,  -115,   861,   251,   252,   253,   254,
-   255,   256,   257,   258,   259,   260,   261,   262,  -115,     0,
-     0,   875,     0,     0,     0,     0,   660,     0,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -115,  -336,  -336,  -336,  -336,
-  -336,     0,  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -115,  -336,  -336,
-     0,     0,  -115,     0,     0,  -336,     0,     0,  -336,     0,
-  -336,   577,  -115,  -336,  -336,  -336,     0,     0,     0,  -336,
-  -336,     0,     0,     0,  -336,  -336,     0,     0,     0,  -336,
-   592,  -336,  -336,     0,     0,     0,  -336,  -336,     0,     0,
-  -336,     0,  -336,     0,  -336,  -336,     0,  -336,     0,     0,
-   322,     0,  -336,  -336,     0,     0,     0,  -336,  -336,     0,
-  -336,     0,     0,     0,  -336,     0,  -336,  -336,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -336,  -336,     0,  -336,     0,
-  -336,     0,  -336,  -336,     0,     0,     0,     0,     0,  -336,
-   263,   264,  -336,   265,   266,   267,   268,  -336,  -336,  -336,
-     0,     0,   647,  -336,  -336,     0,     0,     0,  -336,  -336,
-     0,     0,     0,  -336,     0,  -336,  -336,     0,     0,     0,
-  -336,  -336,   674,     0,  -336,     0,  -336,  -311,  -336,  -336,
-   852,  -336,  -336,  -336,     0,     0,     0,  -336,  -336,     0,
-  -336,     0,     0,     0,  -336,     0,  -336,  -336,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -336,  -336,     0,  -336,     0,
-  -336,     0,  -336,  -336,     0,     0,     0,     0,     0,  -336,
-     0,     0,  -336,     0,     0,     0,     0,  -336,  -336,  -336,
-     0,     0,     0,  -336,  -336,     0,     0,   647,  -336,  -336,
-     0,     0,     0,  -336,     0,  -336,  -336,     0,     0,     0,
-  -336,  -336,     0,     0,  -336,     0,  -336,     0,  -336,  -336,
-     0,  -336,     0,     0,     0,     0,   194,   674,     0,   -28,
-   -28,   -28,   -28,     0,   753,     0,     0,   -28,   -28,   -28,
-   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-   765,     0,   195,   -28,     0,  -175,     0,     0,     0,     0,
-     0,  -175,   256,   257,   258,   259,   260,   261,   262,     0,
-   -28,     0,   674,     0,     0,   776,     0,     0,     0,     0,
-     0,     0,     0,     0,   196,   197,     0,     0,     0,     0,
-     0,   674,   -28,     0,   674,     0,   674,   -28,     0,     0,
-     0,     0,  -175,     0,     0,     0,  -175,   -28,     5,     0,
-     7,   281,     0,   824,     0,     0,     9,    10,    11,     0,
-   882,     0,  -346,  -346,   829,     0,     0,  -346,  -346,     0,
-  -346,     0,    13,     0,  -346,   835,  -346,  -346,  -346,  -346,
-  -346,  -346,  -346,  -346,  -346,  -346,  -346,     0,  -346,    16,
-  -346,     0,  -346,  -346,     0,     0,     0,     0,     0,  -346,
-     0,   674,  -346,     0,     0,     0,     0,  -346,  -346,  -346,
-     0,    22,     0,  -346,  -346,     0,    24,     0,  -346,  -346,
-     0,  -280,  -280,  -346,     0,  -346,  -346,     0,     0,     0,
-  -346,  -346,     0,     0,  -346,     0,  -346,     0,  -346,  -346,
-   231,  -346,   100,     5,     0,     7,   138,   101,   102,     0,
-   103,     9,    10,    11,     0,     0,   893,     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,     0,     0,   114,   115,
-     0,     0,     0,   116,     0,   117,    22,     0,     0,     0,
-   118,    24,     0,     0,   119,     0,     0,     0,   120,   121,
-   669,   -94,   670,    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,   671,   114,   115,
-     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
-   118,    62,     0,     0,   119,     0,     0,  -203,   120,   121,
-   669,   672,   670,    60,     0,     0,     0,   101,   102,     0,
-   103,   250,   251,   252,   253,   254,   255,   256,   257,   258,
-   259,   260,   261,   262,     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,   671,   114,   115,
-     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
-   118,    62,     0,     0,   119,     0,     0,  -268,   120,   121,
-   669,   672,   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,  -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,   645,     0,   100,   120,   121,
-     0,   672,   101,   102,     0,   103,     0,     0,     0,     0,
-     0,     0,     0,     0,     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,
-   669,     0,   100,   120,   121,     0,   646,   101,   102,     0,
-   103,   345,     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,
-   341,   672,    24,   -24,   -24,   -24,   -24,   346,  -271,     0,
-     0,   -24,   -24,   -24,     0,     0,     0,     0,     0,   335,
-     0,     0,   -20,   -20,   -20,   -20,   195,   -24,     0,  -175,
-   -20,   -20,   -20,     0,     0,  -175,     0,     0,     0,     0,
-     0,     0,     0,     0,   -24,   195,   -20,     0,  -175,     0,
-     0,     0,     0,     0,  -175,     0,     0,     0,   196,   197,
-     0,     0,     0,   -20,     0,     0,   -24,     0,     0,     0,
-     0,   -24,     0,     0,     0,     0,  -175,     0,     0,     0,
-  -175,   -24,     0,     0,     0,   -20,     0,     0,     0,     0,
-   -20,     0,     0,     0,     0,  -175,     0,     0,   322,  -175,
-   -20,     5,     6,     7,     8,     0,     0,     0,     0,     9,
-    10,    11,     0,     0,     0,     0,     0,   322,     0,     0,
-  -499,  -499,  -499,  -499,     0,    13,     0,    14,  -499,  -499,
-  -499,     5,     0,     7,   281,     0,     0,     0,     0,     9,
-    10,    11,    16,     0,  -499,   100,  -499,     0,     0,     0,
-   101,   102,     0,   103,     0,    13,     0,    14,     0,     0,
-     0,  -499,     0,     0,    22,     0,     0,     0,     0,    24,
-     0,   104,    16,    15,     0,   105,   106,   273,     0,  -497,
-     0,     0,   107,  -499,     0,   108,   274,   275,  -499,     0,
-   109,   110,   111,     0,    22,     0,   112,   113,  -499,    24,
-     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,   320,     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,   406,     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,   462,     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,   504,     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,   771,   670,   782,     6,     7,     8,   101,   102,     0,
-   103,     9,    10,    11,   783,     0,   784,   785,   786,   787,
-   788,   789,   790,   791,   792,   793,   794,    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,   795,     0,     0,     0,
-   118,   796,     0,     0,   119,     0,   797,     0,   120,   121,
-     0,   361,   670,    60,     0,     0,     0,   101,   102,     0,
-   103,     0,     0,     0,   783,     0,   784,   785,   786,   787,
-   788,   789,   790,   791,   792,   793,   794,     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,   797,     0,   120,   121,
-     0,   361,   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,   481,   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,
+#define        YYLAST          3838
+
+
+static const short yytable[] = {   124,
+   140,    63,    86,    72,    67,    68,   329,   211,    71,   208,
+    63,    74,    32,    32,    81,    33,    33,   339,    42,    42,
+   366,   658,   437,    94,    96,    98,   301,   336,    70,   414,
+    70,   180,   504,   219,   332,   464,   228,   229,   438,   224,
+    36,    36,   531,   232,    83,    85,   183,    53,    54,    55,
+   187,   300,    32,   403,   241,    33,   462,   535,    42,   189,
+   191,   726,   467,   453,   279,   273,   349,   285,   212,    80,
+   632,    88,   406,    70,   316,   757,   861,    70,   351,  -113,
+    36,   271,    87,   562,    92,   333,   236,   356,   454,    59,
+    60,   826,   609,   231,    50,   755,   611,    14,   411,   915,
+    75,    92,    92,    92,   313,   416,   142,   405,   935,   947,
+   417,    59,    60,   372,   146,    80,   748,   677,    59,    60,
+    -1,   207,    14,    80,    59,    60,   339,    14,    92,   218,
+   289,   783,   293,    99,   329,   862,    92,   916,   196,   654,
+    -2,   323,   656,   296,   822,   329,   936,   948,    76,   553,
+   147,   329,    16,   623,    61,   219,   295,    77,   519,    62,
+    56,  -113,    57,   414,   142,   364,   304,   305,   827,   308,
+   309,   197,   198,   314,    58,   870,    61,   318,   923,   278,
+   369,    62,   278,    61,   781,    75,   191,   560,    62,    61,
+   787,    93,   561,   284,    62,    89,   349,    90,    95,    59,
+    60,   502,   403,   819,    97,    82,   945,   506,   351,   865,
+   376,   357,    14,   404,   458,   380,   460,   381,   461,   145,
+   410,   142,   599,   219,   701,   377,   906,   600,    80,   774,
+   775,   207,    80,    76,    75,   201,    59,    60,   352,   220,
+   613,   207,    77,    59,    60,   919,   707,   223,   922,   490,
+   924,   218,   400,   401,    75,    92,   294,   760,   932,   608,
+   -35,    14,   243,   725,    61,   419,    92,    16,   181,    62,
+   882,   142,   188,    51,    52,    16,   147,   577,   -34,   577,
+   549,    14,   202,   428,   466,    16,   225,   426,   142,   182,
+   956,   203,   550,   142,   227,   142,   230,   474,   486,   476,
+   425,    61,   635,   890,   204,    14,    62,   238,    61,   239,
+    70,   630,   277,    62,   278,   314,    59,    60,   954,   318,
+   240,   184,   242,   955,   671,   703,    92,   496,   243,     5,
+     6,     7,     8,   340,   341,   716,   717,     9,    10,    11,
+   192,   271,   185,   142,   193,   357,   272,   643,    59,    60,
+   286,   287,   288,    13,   334,    14,   509,   219,   335,    36,
+   274,   470,   592,   472,   847,   186,   301,   282,   352,   302,
+   207,    16,   342,   207,   207,   687,   193,   196,   306,    92,
+  -176,    61,    75,   628,   694,   312,    62,  -176,   319,    14,
+   346,   300,    14,    22,   672,   558,   526,   730,    24,   559,
+   284,   142,   289,    84,   740,  -279,  -279,   745,   530,    14,
+   275,   776,    86,    61,   345,   768,   197,   198,    62,   276,
+   277,   354,   197,   198,   362,   567,   406,   364,  -176,   363,
+   629,   517,  -176,   315,   518,    70,   340,   341,   367,   630,
+   277,   378,   537,   278,   536,   538,    36,   197,   198,   278,
+   -86,   715,   585,   459,   555,   556,   722,   533,   534,    36,
+   313,   714,    36,   357,   577,   412,   413,   721,   549,   691,
+    36,   420,  -478,   687,   142,   672,   730,   746,   634,   638,
+   550,    88,   503,    14,   418,   142,   429,    86,    75,   201,
+   421,   737,    87,   423,   463,   738,    75,   201,   764,   602,
+   313,   469,   765,  -476,   275,   568,   433,    86,   779,   475,
+   502,   506,   335,   276,   277,    14,   196,   502,   506,   618,
+   215,   216,   434,    14,   709,   102,     9,    10,    11,   605,
+   142,   517,   450,   809,   518,   866,   202,   780,   633,   637,
+   451,   193,   211,   902,   202,   203,   457,   335,   468,   619,
+   620,   710,   710,   203,   451,   739,    88,   471,   204,    36,
+   477,   625,   626,   542,   543,   544,   204,    87,   478,   727,
+   482,   664,   809,   545,    80,   484,    88,   488,   645,   647,
+   489,   705,   706,   492,   735,   904,   497,    87,   696,   193,
+   493,   219,    75,   631,   636,   700,   313,    36,   494,   284,
+   214,   215,   216,   618,   542,   543,   544,     9,    10,    11,
+   542,   543,   544,   191,   615,   501,   648,   245,   247,    14,
+   708,   917,   495,   918,   505,    14,   542,   543,   544,   500,
+   618,   537,   510,   536,   538,   514,   766,   262,   263,   264,
+   635,   532,   324,   631,   528,  -116,  -116,  -116,  -116,   630,
+   277,  -116,   552,  -116,  -116,  -116,   554,   207,    80,    36,
+   778,   557,   749,   207,   207,   571,   950,   572,   636,  -116,
+   219,   412,   413,   142,   958,   809,   574,    36,   586,    92,
+   716,   717,   579,   207,    92,    80,   580,  -116,   583,   596,
+   598,   805,   196,   339,   601,  -176,   207,   314,   318,   710,
+   604,   559,  -176,   610,   314,   318,   642,   627,   644,  -116,
+   329,   662,   329,   657,  -116,   938,   939,    75,   628,   663,
+   689,   313,   690,   785,  -116,   197,   198,   702,  -316,   -32,
+   805,   744,   751,   804,   659,   660,   752,   753,   661,   767,
+   772,   846,   773,  -176,    14,   786,   825,  -176,   696,   273,
+   833,   832,   631,   631,   -33,   836,   839,   840,   807,   636,
+   636,   808,   842,   843,   818,   629,   844,   849,    75,   201,
+   851,   857,   804,   864,   630,   277,   852,    86,   885,   868,
+   884,    72,   871,   874,   848,   853,    36,   718,   719,   720,
+   878,   877,   723,   724,   869,    14,   265,   266,   879,   267,
+   268,   269,   270,   631,   734,   891,   880,    70,    70,   892,
+   893,   207,   894,   895,   897,   898,   202,   736,   896,   854,
+   856,   900,   920,   901,   909,   203,   910,   925,   807,   929,
+   933,   808,   934,   805,   818,   361,   937,   943,   204,   887,
+   260,   261,   262,   263,   264,   946,    88,   949,   379,   952,
+   761,   762,   763,   382,   383,   871,    36,    87,   388,   389,
+   390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
+   957,   729,   215,   216,   960,   804,   961,   941,     9,    10,
+    11,   265,   266,   871,   267,   268,   269,   270,   513,   872,
+   784,   455,   207,   324,    80,  -125,  -125,  -125,  -125,  -125,
+  -125,  -125,   741,  -125,  -125,  -125,  -125,  -125,   213,  -125,
+  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
+  -125,  -125,  -125,  -125,   415,  -125,  -125,  -125,   728,   511,
+   863,   821,   732,  -125,   584,   756,  -125,   834,  -125,   473,
+   578,  -125,  -125,  -125,   733,   480,   742,  -125,  -125,   582,
+   942,   747,  -125,  -125,   674,   907,   908,  -125,   944,  -125,
+  -125,   507,   641,   524,  -125,  -125,   525,    73,  -125,   713,
+  -125,  -125,  -125,  -125,   250,  -125,   251,   252,   253,   254,
+   255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+   867,   498,   499,   624,   829,   831,   622,   666,   607,  -337,
+  -337,  -337,  -337,  -337,  -337,  -337,   881,  -337,  -337,  -337,
+  -337,  -337,   427,  -337,  -337,  -337,  -337,  -337,  -337,  -337,
+  -337,  -337,  -337,  -337,  -337,  -337,  -337,  -337,   823,  -337,
+  -337,  -337,   515,   603,   516,   758,   692,  -337,   491,     0,
+  -337,     0,  -337,     0,     0,  -337,  -337,  -337,     0,     0,
+     0,  -337,  -337,     0,     0,     0,  -337,  -337,     0,     0,
+     0,  -337,     0,  -337,  -337,     0,     0,     0,  -337,  -337,
+     0,     0,  -337,     0,  -337,     0,  -337,  -337,     0,  -337,
+     0,     0,   581,     0,     0,     0,     0,   324,     0,  -337,
+  -337,     0,     0,     0,  -337,  -337,     0,  -337,     0,     0,
+     0,  -337,   597,  -337,  -337,  -337,  -337,  -337,  -337,  -337,
+  -337,  -337,  -337,  -337,     0,  -337,     0,  -337,     0,  -337,
+  -337,  -337,     0,     0,     0,     0,     0,  -337,     0,     0,
+  -337,     0,     0,     0,     0,  -337,  -337,  -337,     0,     0,
+     0,  -337,  -337,     0,     0,     0,  -337,  -337,     0,     0,
+     0,  -337,     0,  -337,  -337,     0,     0,     0,  -337,  -337,
+     0,     0,  -337,     0,  -337,  -312,  -337,  -337,   858,  -337,
+  -337,  -337,     0,     0,   652,  -337,  -337,     0,  -337,     0,
+     0,     0,  -337,     0,  -337,  -337,  -337,  -337,  -337,  -337,
+  -337,  -337,  -337,  -337,  -337,   680,  -337,     0,  -337,     0,
+  -337,  -337,  -337,     0,     0,     0,     0,     0,  -337,     0,
+     0,  -337,     0,     0,     0,     0,  -337,  -337,  -337,     0,
+     0,     0,  -337,  -337,     0,     0,     0,  -337,  -337,     0,
+     0,     0,  -337,     0,  -337,  -337,     0,     0,     0,  -337,
+  -337,     0,     0,  -337,     0,  -337,     0,  -337,  -337,     0,
+  -337,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+   652,     0,   233,     0,   100,     5,     0,     7,   139,   101,
+   102,     0,   103,     9,    10,    11,     5,     0,     7,   283,
      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,   296,   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,   601,
-   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,
-   365,     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,   839,     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,   508,     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,   543,   120,   121,     5,     0,     7,   138,     0,     0,
-     0,     0,     9,    10,    11,     0,     0,     0,     0,   543,
-     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,  -451,  -451,
-  -451,     0,    24,     0,     0,     0,     0,   544,  -451,    12,
-    13,     0,    14,    15,     0,    22,  -450,  -450,  -450,     0,
-    24,     0,     0,     0,     0,   544,  -450,    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,   529,   530,  -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,   436,     0,   437,     5,
-     6,     7,     8,     0,  -128,   438,     0,     9,    10,    11,
-     0,     0,    22,     0,     0,   436,     0,    24,     5,     6,
-     7,     8,    27,    13,   438,    14,     9,    10,    11,     5,
-     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
-    16,     0,    13,     0,    14,   345,     0,     0,     5,     0,
-     7,   138,     0,    13,     0,    14,     9,    10,    11,    16,
-     0,     0,    22,     0,     0,     0,     0,    24,     0,     0,
-    16,  -396,    13,     0,     0,    15,     0,     0,     0,     0,
-     0,    22,     0,     0,     0,     0,    24,     0,     0,    16,
-  -396,     0,    22,     0,     0,     0,     0,    24,     0,     0,
-     0,     0,   849,     0,     0,     0,     0,     0,     0,   147,
-   148,    22,   149,   150,     0,     0,    24,   151,   152,   153,
+   104,   680,    15,     0,   105,   106,   107,     0,   759,     0,
+    13,     0,   108,     0,     0,   109,     0,    16,     0,     0,
+   110,   111,   112,     0,   771,     0,   113,   114,    16,     0,
+     0,   115,   116,     0,     0,     0,   117,     0,   118,    22,
+     0,     0,     0,   119,    24,     0,   680,   120,     0,   782,
+    22,   121,   122,     0,   -95,    24,     0,     0,     0,     0,
+  -281,  -281,     0,     0,     0,   680,     0,     0,   680,     0,
+   680,   257,   258,   259,   260,   261,   262,   263,   264,     0,
+   324,     0,     0,  -337,  -337,  -337,  -337,   830,     0,     0,
+     0,  -337,  -337,  -337,   888,     0,  -347,  -347,   835,     0,
+     0,  -347,  -347,     0,  -347,     0,     0,  -337,  -347,   841,
+  -347,  -347,  -347,  -347,  -347,  -347,  -347,  -347,  -347,  -347,
+  -347,     0,  -347,     0,  -347,  -337,  -347,  -347,  -347,     0,
+     0,     0,     0,     0,  -347,   680,     0,  -347,     0,     0,
+     0,     0,  -347,  -347,  -347,     0,     0,  -337,  -347,  -347,
+     0,     0,  -337,  -347,  -347,     0,     0,     0,  -347,     0,
+  -347,  -347,  -112,     0,     0,  -347,  -347,     0,     0,  -347,
+     0,  -347,     0,  -347,  -347,   675,  -347,   676,    60,     0,
+     0,     0,   101,   102,     0,   103,     0,     0,     0,     0,
+   899,   253,   254,   255,   256,   257,   258,   259,   260,   261,
+   262,   263,   264,   104,     0,    15,     0,   105,   106,   107,
+     0,     0,     0,     0,     0,   108,     0,     0,   109,     0,
+     0,     0,     0,   110,   111,   112,     0,     0,     0,   113,
+   114,     0,     0,   677,   115,   116,     0,     0,     0,   117,
+     0,   118,    61,     0,     0,     0,   119,    62,     0,     0,
+   120,     0,     0,  -204,   121,   122,   675,   678,   676,    60,
+     0,     0,     0,   101,   102,     0,   103,   252,   253,   254,
+   255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     0,     0,     0,     0,   104,     0,    15,     0,   105,   106,
+   107,     0,     0,     0,     0,     0,   108,     0,     0,   109,
+     0,     0,     0,     0,   110,   111,   112,     0,     0,     0,
+   113,   114,     0,     0,   677,   115,   116,     0,     0,     0,
+   117,     0,   118,    61,     0,     0,     0,   119,    62,     0,
+     0,   120,     0,     0,  -269,   121,   122,   675,   678,   100,
+     0,     0,     0,     0,   101,   102,     0,   103,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,   263,   264,     0,
+     0,     0,     0,     0,     0,   104,     0,    15,     0,   105,
+   106,   107,     0,  -217,     0,     0,     0,   108,     0,     0,
+   109,     0,     0,     0,     0,   110,   111,   112,     0,     0,
+     0,   113,   114,     0,     0,  -217,   115,   116,     0,     0,
+     0,   117,     0,   118,     0,     0,     0,     0,   119,     0,
+     0,     0,   120,   650,     0,   100,   121,   122,     0,   678,
+   101,   102,     0,   103,   255,   256,   257,   258,   259,   260,
+   261,   262,   263,   264,   258,   259,   260,   261,   262,   263,
+   264,   104,     0,    15,     0,   105,   106,   107,     0,     0,
+     0,     0,     0,   108,     0,     0,   109,     0,     0,     0,
+     0,   110,   111,   112,     0,     0,     0,   113,   114,     0,
+     0,     0,   115,   116,     0,     0,     0,   117,     0,   118,
+     0,     0,     0,     0,   119,     0,     0,     0,   120,   675,
+     0,   100,   121,   122,     0,   651,   101,   102,     0,   103,
+   347,     0,     0,     5,     0,     7,   139,     0,     0,     0,
+     0,     9,    10,    11,     0,     0,     0,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,    13,     0,   108,
+    15,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,    16,     0,     0,   115,   116,
+     0,     0,     0,   117,     0,   118,     0,     0,     0,     0,
+   119,     0,     0,     0,   120,     0,     0,    22,   121,   122,
+   195,   678,    24,   -28,   -28,   -28,   -28,   348,  -272,     0,
+     0,   -28,   -28,   -28,     5,     6,     7,     8,     0,     0,
+     0,     0,     9,    10,    11,     0,   196,   -28,   343,  -176,
+     0,   -24,   -24,   -24,   -24,     0,  -176,     0,    13,   -24,
+   -24,   -24,     0,     0,     0,   -28,     0,     0,     0,     0,
+     0,     0,     0,     0,   196,   -24,    16,  -176,     0,   197,
+   198,     0,     0,     0,  -176,     0,     0,   -28,     0,     0,
+     0,     0,   -28,   -24,     0,     0,     0,  -176,    22,     0,
+     0,  -176,   -28,    24,     0,     0,   337,   197,   198,   -20,
+   -20,   -20,   -20,     0,     0,   -24,     0,   -20,   -20,   -20,
+   -24,     0,     0,     0,     0,  -176,     0,     0,     0,  -176,
+   -24,     0,   196,   -20,   324,  -176,     0,     5,     6,     7,
+     8,     0,  -176,     0,     0,     9,    10,    11,     0,     0,
+     0,   -20,     0,   324,     0,     0,  -500,  -500,  -500,  -500,
+     0,    13,     0,    14,  -500,  -500,  -500,     0,     0,     0,
+     0,     0,     0,   -20,     0,     0,     0,     0,   -20,    16,
+  -500,     0,  -500,  -176,     0,     0,     0,  -176,   -20,     0,
+     0,   100,     0,     0,     0,     0,   101,   102,  -500,   103,
+     0,    22,     0,     0,     0,     0,    24,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,  -498,   104,     0,    15,
+  -500,   105,   106,   107,     0,  -500,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,  -500,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,     0,     0,   115,   116,
+     0,   100,     0,   117,     0,   118,   101,   102,     0,   103,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   322,     0,     0,     0,     0,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,     0,     0,   115,   116,
+     0,   100,     0,   117,     0,   118,   101,   102,     0,   103,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   409,     0,     0,     0,     0,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,     0,     0,   115,   116,
+     0,   100,     0,   117,     0,   118,   101,   102,     0,   103,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   465,     0,     0,     0,     0,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,     0,     0,   115,   116,
+     0,   100,     0,   117,     0,   118,   101,   102,     0,   103,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   508,     0,     0,     0,     0,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,     0,     0,   115,   116,
+     0,     0,     0,   117,     0,   118,     0,     0,     0,     0,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   777,   676,   788,     6,     7,     8,   101,   102,
+     0,   103,     9,    10,    11,   789,     0,   790,   791,   792,
+   793,   794,   795,   796,   797,   798,   799,   800,    13,   104,
+    14,    15,     0,   105,   106,   107,     0,     0,     0,     0,
+     0,   108,     0,     0,   109,     0,    16,     0,     0,   110,
+   111,   112,     0,     0,     0,   113,   114,     0,     0,     0,
+   115,   116,     0,     0,     0,   117,     0,   118,   801,     0,
+     0,     0,   119,   802,     0,     0,   120,     0,   803,     0,
+   121,   122,     0,   364,   676,    60,     0,     0,     0,   101,
+   102,     0,   103,     0,     0,     0,   789,     0,   790,   791,
+   792,   793,   794,   795,   796,   797,   798,   799,   800,     0,
+   104,     0,    15,     0,   105,   106,   107,     0,     0,     0,
+     0,     0,   108,     0,     0,   109,     0,     0,     0,     0,
+   110,   111,   112,     0,     0,     0,   113,   114,     0,   100,
+     0,   115,   116,     0,   101,   102,   117,   103,   118,    61,
+     0,     0,     0,   119,    62,     0,     0,   120,     0,   803,
+     0,   121,   122,     0,   364,   104,     0,    15,     0,   105,
+   106,   107,     0,     0,     0,     0,     0,   108,     0,     0,
+   109,     0,     0,     0,     0,   110,   111,   112,     0,     0,
+     0,   113,   114,     0,     0,     0,   115,   116,     0,     0,
+     0,   117,     0,   118,     0,     0,     0,     0,   119,     0,
+     0,     0,   120,     0,     0,     0,   121,   122,     0,   485,
+   148,   149,     0,   150,   151,     0,     0,     0,   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,   368,   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,   586,   438,     0,     9,
-    10,    11,   172,     5,     6,     7,     8,     0,     0,   635,
-     0,     9,    10,    11,     0,    13,     0,    14,     0,     0,
+   164,   165,   166,   167,   168,   169,   170,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   171,   100,     5,     6,
+     7,     8,   101,   102,     0,   103,     9,    10,    11,     5,
+    89,     7,    90,     0,     0,     0,     0,     9,    10,    11,
+     0,     0,    13,   104,    14,    15,     0,   105,   106,   107,
+   173,     0,     0,    13,     0,   108,     0,     0,   109,   298,
+    16,     0,     0,   110,   111,   112,     0,     0,     0,   113,
+   114,    16,     0,     0,   115,   116,     0,     0,     0,   117,
+     0,   118,    22,     0,     0,     0,   119,    24,     0,     0,
+   120,     0,     0,    22,   121,   122,   100,     5,    24,     7,
+   139,   101,   102,   646,   103,     9,    10,    11,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    13,   104,     0,    15,     0,   105,   106,   107,     0,
+     0,     0,     0,     0,   108,     0,     0,   109,     0,    16,
+     0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
+     0,   100,     0,   115,   116,     0,   101,   102,   117,   103,
+   118,    22,     0,     0,     0,   119,    24,     0,     0,   120,
+     0,     0,     0,   121,   122,     0,     0,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,   100,     0,   115,   116,
+     0,   101,   102,   117,   103,   118,   368,     0,     0,     0,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   104,     0,    15,     0,   105,   106,   107,     0,
+     0,     0,     0,     0,   108,     0,     0,   109,     0,     0,
+     0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
+     0,   100,     0,   115,   116,     0,   101,   102,   117,   103,
+   118,     0,     0,     0,     0,   119,     0,     0,     0,   120,
+     0,   845,     0,   121,   122,     0,     0,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,   100,     0,   115,   116,
+     0,   101,   102,   117,   103,   118,     0,     0,     0,     0,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   104,     0,    15,     0,   105,   106,   107,     0,
+     0,     0,     0,     0,   108,     0,     0,   109,     0,     0,
+     0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
+     0,   100,     0,   244,   116,     0,   101,   102,   117,   103,
+   118,     0,     0,     0,     0,   119,     0,     0,     0,   120,
+     0,     0,     0,   121,   122,     0,     0,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,   512,     0,   246,   116,
+     0,   101,   102,   117,   103,   118,     0,     0,     0,     0,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   104,     0,    15,     0,   105,   106,   107,     0,
+     0,     0,     0,     0,   108,     0,     0,   109,     0,     0,
+     0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
+     0,     0,     0,   115,   116,     0,     0,     0,   117,     0,
+   118,     0,     0,     0,     0,   119,     0,     0,     0,   120,
+     0,     0,   547,   121,   122,     5,     0,     7,   139,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,     0,   547,
+     0,     0,     5,     0,     7,   139,     0,     0,     0,    13,
+     9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    13,    16,     0,     0,
+     0,     0,     0,     0,     0,     4,     0,  -129,     5,     6,
+     7,     8,     0,     0,    16,     0,     9,    10,    11,    22,
+  -452,  -452,  -452,     0,    24,     0,     0,     0,     0,   548,
+  -452,    12,    13,     0,    14,    15,    22,  -451,  -451,  -451,
+     0,    24,     0,     0,     0,     0,   548,  -451,     0,     0,
+    16,     0,     0,    17,    18,  -129,     0,     0,     0,     0,
+     0,     0,     0,     0,  -129,     0,    19,    20,    21,     0,
+     0,     0,    22,     0,     0,     0,    23,    24,    25,    26,
+     0,     4,    27,  -129,     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,  -129,     5,     6,     7,     8,     0,     0,     0,     0,
+     9,    10,    11,     0,     0,     0,    16,     0,     0,   533,
+   534,  -129,     0,     0,     0,     0,    13,     0,    14,     0,
+  -129,     0,     0,     0,     0,     0,     0,     0,    22,     0,
+     0,     0,     0,    24,    16,     0,     0,     0,    27,  -129,
+   439,     0,   440,     5,     6,     7,     8,     0,  -129,   441,
+     0,     9,    10,    11,     0,     0,    22,     0,     0,   439,
+     0,    24,     5,     6,     7,     8,    27,    13,   441,    14,
+     9,    10,    11,     5,     6,     7,     8,     0,     0,     0,
+     0,     9,    10,    11,     0,    16,    13,     0,    14,     0,
      0,     0,     0,     0,     0,     0,     0,    13,     0,    14,
-   172,     0,    16,     5,     0,     7,   138,     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,
-   281,    24,     0,     0,    16,     9,    10,    11,    16,     0,
-     0,     0,     0,     0,   869,     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,   870,   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,
+     0,     0,     0,     0,    16,     0,     0,    22,     0,     0,
+     0,     0,    24,     0,     0,    16,  -397,     0,     0,     5,
+     6,     7,     8,     0,     0,     0,    22,     9,    10,    11,
+     0,    24,     0,     0,     0,  -397,     0,    22,     0,     0,
+     0,     0,    24,    13,     0,    14,   347,   606,     0,     5,
+     0,     7,   139,     0,     0,     0,     0,     9,    10,    11,
+     0,    16,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    13,     0,     0,    15,     0,     0,     0,
+     0,     0,     0,    22,     0,     0,   148,   149,    24,   150,
+   151,    16,     0,   855,   152,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,    22,     0,     0,   148,   149,    24,   150,
+   151,     0,   171,     0,   152,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,   172,     0,     0,     0,     0,     0,     0,
+     0,     0,   371,     0,   148,   149,   173,   150,   151,     0,
+     0,     0,   152,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,     0,     0,     0,   148,   149,   173,   150,   151,     0,
+   171,     0,   152,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,     0,     0,     5,     0,     7,   283,     0,     0,     0,
+   591,     9,    10,    11,   173,     5,     6,     7,     8,     0,
+     0,   441,     0,     9,    10,    11,     0,    13,     0,    14,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
+     0,    14,     0,     0,   173,    16,     0,     0,     0,     0,
+   275,     0,     0,     0,     0,     0,     0,    16,     0,   276,
+   277,     0,     0,     0,     0,     0,     0,    22,     5,     6,
+     7,     8,    24,     0,   640,     0,     9,    10,    11,    22,
+     5,     6,     7,     8,    24,     0,     0,     0,     9,    10,
+    11,     0,    13,     5,    14,     7,   139,     0,     0,     0,
+     0,     9,    10,    11,    13,     5,    14,     7,   283,     0,
+    16,     0,     0,     9,    10,    11,     0,    13,     0,     0,
+     0,     0,    16,     0,     0,     0,     0,     0,     0,    13,
+     0,     0,    22,     0,     0,    16,     0,    24,     0,     0,
+     0,     0,     0,     0,    22,     0,     0,    16,     0,    24,
+     0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
+     0,     0,    24,   875,     0,     0,     0,     0,     0,    22,
+     0,   248,   249,   250,    24,   251,   252,   253,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,   263,   264,   248,
+   249,   250,   876,   251,   252,   253,   254,   255,   256,   257,
+   258,   259,   260,   261,   262,   263,   264,     0,    14,     0,
+     0,     0,     0,     0,   248,   249,   250,   481,   251,   252,
    253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-   246,   247,   248,   908,   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
+   263,   264,   248,   249,   250,   914,   251,   252,   253,   254,
+   255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+   248,   249,   250,     0,   251,   252,   253,   254,   255,   256,
+   257,   258,   259,   260,   261,   262,   263,   264
 };
 
 static const short yycheck[] = {    56,
-    57,    16,    24,    33,    19,    20,     2,     3,    23,   233,
-    25,    26,    31,     2,     3,    85,    22,   207,    24,   317,
-     2,     3,   309,    38,    39,    40,    91,   201,    66,   279,
-   336,    83,   175,   338,    32,    33,   342,   198,   267,   206,
-   140,   324,   175,   143,    95,    67,    42,   405,   573,    71,
-   221,   221,    36,    42,   114,     2,     3,   429,    77,    74,
-    42,    67,     9,    10,    11,    71,    85,   640,   551,    53,
-    54,    55,   105,   106,   680,   274,   832,   427,   111,    33,
-   192,     1,     1,     9,    31,     3,    33,     1,   202,   122,
-     1,    10,   107,   236,   725,    42,    80,    76,    38,   273,
-   133,    38,    81,    57,    88,     3,   519,    38,     0,   276,
-   523,   171,    45,   744,    45,    36,    38,     0,    30,    59,
-    30,     3,     4,    59,    42,   315,    38,   883,    59,   144,
-    77,   146,    30,     3,     4,   418,    83,    58,    85,    76,
-   197,   666,    82,   749,    91,    59,   902,   212,    81,   905,
-    76,   907,    50,   566,    76,   170,   569,    77,    59,   915,
-   114,    59,   412,    82,   325,   180,   181,   906,   183,   184,
-   189,    82,     3,     4,   193,   336,    45,   237,   235,   350,
-   350,   342,   242,   202,   244,    67,   415,   537,    77,   143,
-    72,   947,    81,   140,    59,   934,   143,    67,    27,    38,
-    82,    30,    72,   402,    77,     3,     4,    36,   814,   408,
-   225,   268,    82,    59,   279,   740,   330,   171,   275,    50,
-   334,   333,   206,   238,    65,   708,   709,     1,   371,     3,
-     4,    30,   292,   217,    82,   518,    67,    76,   525,   221,
-    82,    72,   189,    77,   616,   192,   193,    81,    77,    30,
-   265,   266,    81,    59,     3,   202,    82,   607,     7,    38,
-    59,    60,   433,   433,    77,   212,    45,   221,    81,    67,
-    38,    27,     3,     4,    72,   848,   634,    45,    59,    60,
-   302,    30,   339,   237,    82,   300,     3,     4,   242,    59,
-   244,    76,   276,    67,     3,     4,   302,    59,    72,   582,
-   351,    50,   353,    59,    60,    81,   467,    76,   469,    76,
-    59,   330,    81,    30,    81,   334,     3,     4,     5,     6,
-     7,    38,   609,     9,   381,    76,    76,   274,   853,    75,
-    81,   364,    76,    50,   558,    77,    67,    81,   292,    81,
-   483,    72,    59,   358,     3,   329,     3,   412,     7,   347,
-    59,   349,    77,   410,    76,    72,    81,   586,    67,    59,
-    60,    77,   422,    72,    38,    81,   595,    82,   350,   512,
-    77,    30,   319,    30,    81,     7,    76,    59,   661,   512,
-    67,   664,     5,   330,     7,    72,   333,   334,     3,     4,
-    59,    50,     7,    50,   644,   349,   350,    77,    30,   414,
-    59,    60,    59,    60,   426,   710,     3,     4,    59,    60,
-   440,   698,    77,    59,    60,    30,    81,    78,    50,    82,
-   426,   582,   418,   453,    78,    76,   625,    59,    60,   418,
-    76,   429,    76,   429,    76,    50,     3,     4,     3,     4,
-   429,   439,   440,    76,    59,    38,   589,    30,   619,   619,
-   624,   551,   552,    77,   683,   402,   630,    72,   405,   626,
-   475,   408,    59,    30,   631,    30,    76,    50,   422,    59,
-    67,   418,   722,    38,   421,    72,    59,    60,    77,   433,
-    59,    60,   429,    50,   514,    50,   440,    27,    77,    78,
-    30,   652,    59,   440,    59,   510,    36,    48,    49,   453,
-    10,   662,    77,   664,   534,    72,    81,    72,    76,   708,
-   709,    63,    63,   532,    76,   513,   715,   716,   742,    59,
-    60,   517,    82,    77,    68,    69,    70,    81,   517,    59,
-    60,   818,   551,   552,    78,   533,   534,    77,    77,    59,
-    60,    81,    81,   337,    27,   615,     9,   545,   546,    83,
-   344,    77,    78,     4,     5,     6,     7,   781,   352,    77,
-   514,    12,    13,    14,   562,   563,   581,   514,   620,   621,
-   517,    36,   642,   611,   612,     3,     4,    28,    77,   644,
-   534,   600,    50,    51,    52,   532,    67,   534,    77,    78,
-   605,   897,   546,   899,    45,    36,   615,    68,    69,    70,
-    76,   653,    30,    81,   551,   552,   625,    78,   555,   563,
-    48,    49,    50,    51,    52,    38,    67,    78,   616,    76,
-   616,    72,    50,   642,    59,    60,    77,   616,    68,    69,
-    70,    59,    60,   126,   127,     3,     4,    76,    78,     7,
-    76,    38,   626,   941,    76,    76,    76,   631,    68,    69,
-    70,   949,    63,   600,   711,    76,   671,   722,    78,    83,
-   884,    83,    30,    76,    82,   619,    76,   614,   615,   616,
-    63,    76,    36,   620,   621,    83,    76,    78,   625,    78,
-    78,    32,    50,    38,    76,   742,    77,   634,   878,   708,
-   709,    59,    60,   640,    83,   642,   715,   716,    81,    76,
-   924,   925,     4,     5,     6,     7,   653,    77,     3,    81,
-    12,    13,    14,     6,     7,   767,    77,   732,    78,    12,
-    13,    14,    38,    63,   781,    83,    28,   742,    30,    78,
-    78,    38,    38,    78,    81,   792,   897,    63,   899,    38,
-   759,    78,    81,    45,     1,    63,   742,     4,     5,     6,
-     7,    83,    38,   742,    78,    12,    13,    14,    59,    59,
-   742,   708,   709,    59,    38,    67,   781,    77,   715,   716,
-    72,    28,   802,   830,   796,    77,   833,   834,   793,   812,
-   850,   575,   576,    77,   841,   579,     7,    38,    45,   795,
-   796,    16,    77,    77,    59,   742,   848,    78,    77,   856,
-     5,     6,     7,   801,   802,    77,   863,    12,    13,    14,
-    67,    59,   759,    63,    76,    72,   812,   874,    17,    77,
-   767,    76,    76,   812,    77,    82,     9,   884,    77,    76,
-   812,   850,    77,   627,   628,   629,    77,    59,   632,   633,
-    54,    55,    81,    57,    58,    59,    60,    77,   802,   906,
-    76,     4,     5,     6,     7,   802,    76,     0,    77,    12,
-    13,    14,    76,   657,    77,   812,     0,   415,   241,   884,
-   833,   928,   325,   246,   247,    28,   662,   934,   251,   252,
-   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-    87,   643,    45,   414,   282,   689,   690,   691,   747,   812,
-   477,   848,   650,   850,     5,     6,     7,   679,   350,   652,
-   469,    12,    13,    14,    67,   358,   583,   475,   884,    72,
-     1,   662,     3,     4,     5,     6,     7,     8,     9,    30,
-    11,    12,    13,    14,    15,   729,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-    31,   664,    33,    34,   884,   929,   931,   409,    25,    40,
-   555,   421,    43,   421,    45,   621,   542,    48,    49,    50,
-   767,   764,   535,    54,    55,   517,   301,   759,    59,    60,
-   512,   683,   776,    64,   417,    66,    67,   589,   417,   371,
-    71,    72,    -1,    -1,    75,    -1,    77,    78,    79,    80,
-    -1,    82,    45,    46,    47,    48,    49,    50,    51,    52,
-   383,   384,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,     1,    -1,    -1,     4,     5,     6,     7,    -1,    -1,
-    10,    -1,    12,    13,    14,   829,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    28,    -1,
-    -1,   845,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
-     5,     6,     7,     8,     9,    45,    11,    12,    13,    14,
-    15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,    30,    31,    67,    33,    34,
-    -1,    -1,    72,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    45,   474,    82,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
-   493,    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,
-    75,    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
-     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,   565,    54,    55,    -1,    -1,    -1,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,   585,    -1,    75,    -1,    77,    78,    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,    -1,   650,    59,    60,
-    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
-    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
-    -1,    82,    -1,    -1,    -1,    -1,     1,   680,    -1,     4,
-     5,     6,     7,    -1,   687,    -1,    -1,    12,    13,    14,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-   703,    -1,    27,    28,    -1,    30,    -1,    -1,    -1,    -1,
-    -1,    36,    46,    47,    48,    49,    50,    51,    52,    -1,
-    45,    -1,   725,    -1,    -1,   728,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
-    -1,   744,    67,    -1,   747,    -1,   749,    72,    -1,    -1,
-    -1,    -1,    77,    -1,    -1,    -1,    81,    82,     4,    -1,
-     6,     7,    -1,   766,    -1,    -1,    12,    13,    14,    -1,
-     1,    -1,     3,     4,   777,    -1,    -1,     8,     9,    -1,
-    11,    -1,    28,    -1,    15,   788,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    -1,    29,    45,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,   814,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    67,    -1,    54,    55,    -1,    72,    -1,    59,    60,
-    -1,    77,    78,    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,    -1,    -1,   869,    -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,    -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,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -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,    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,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -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,    -1,    -1,    -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,    -1,    28,    -1,    30,    12,    13,
-    14,     4,    -1,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    45,    -1,    28,     3,    30,    -1,    -1,    -1,
-     8,     9,    -1,    11,    -1,    28,    -1,    30,    -1,    -1,
-    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    -1,    29,    45,    31,    -1,    33,    34,    50,    -1,    82,
-    -1,    -1,    40,    67,    -1,    43,    59,    60,    72,    -1,
-    48,    49,    50,    -1,    67,    -1,    54,    55,    82,    72,
-    -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,    -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,    -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,    -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,    -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,
+    57,    16,    33,    24,    19,    20,   199,    85,    23,    83,
+    25,    26,     2,     3,    31,     2,     3,   208,     2,     3,
+   235,   577,   311,    38,    39,    40,   176,   207,    22,   281,
+    24,    66,   408,    91,   202,   340,   105,   106,   319,    95,
+     2,     3,   430,   112,    32,    33,    67,     9,    10,    11,
+    71,   176,    42,   269,   123,    42,   338,   432,    42,    74,
+    77,   645,   344,   326,   141,   134,   222,   144,    85,    31,
+   555,    33,   276,    67,   193,   686,     1,    71,   222,     1,
+    42,     9,    33,     1,    36,   203,   115,     1,    10,     3,
+     4,     1,   523,   108,     3,    37,   527,    30,   278,    39,
+     3,    53,    54,    55,     7,    77,    57,   275,    39,    39,
+    82,     3,     4,   238,    46,    77,   672,    59,     3,     4,
+     0,    83,    30,    85,     3,     4,   317,    30,    80,    91,
+   145,    39,   147,    42,   327,    60,    88,    77,    27,   570,
+     0,   198,   573,   172,   755,   338,    77,    77,    51,    77,
+    82,   344,    46,   541,    68,   213,   171,    60,   421,    73,
+    60,    83,    60,   415,   115,    83,   181,   182,    78,   184,
+   185,    60,    61,   190,    60,   838,    68,   194,   912,   141,
+   237,    73,   144,    68,   731,     3,   203,    77,    73,    68,
+   746,    83,    82,   144,    73,     5,   352,     7,    83,     3,
+     4,   405,   418,   750,    83,    78,   940,   411,   352,   820,
+   239,   226,    30,   270,   332,   244,   335,   246,   336,    60,
+   277,   172,    77,   281,   612,   240,   889,    82,   190,   714,
+   715,   193,   194,    51,     3,     4,     3,     4,   222,    66,
+   529,   203,    60,     3,     4,   908,   621,    83,   911,   374,
+   913,   213,   267,   268,     3,   207,    60,    77,   921,   522,
+    39,    30,    82,   639,    68,   294,   218,    46,    39,    73,
+   854,   222,    78,    78,    79,    46,    82,   470,    39,   472,
+   436,    30,    51,   304,   341,    46,    83,   302,   239,    60,
+   953,    60,   436,   244,    83,   246,    60,   353,   367,   355,
+    60,    68,    51,   859,    73,    30,    73,    60,    68,    60,
+   304,    60,    61,    73,   276,   332,     3,     4,    77,   336,
+    60,    39,    77,    82,   587,   614,   278,   384,    82,     4,
+     5,     6,     7,    60,    61,    60,    61,    12,    13,    14,
+    78,     9,    60,   294,    82,   360,    76,   562,     3,     4,
+     5,     6,     7,    28,    78,    30,   413,   415,    82,   321,
+    77,   349,   487,   351,    51,    83,   516,    77,   352,    39,
+   332,    46,    78,   335,   336,   591,    82,    27,    83,   331,
+    30,    68,     3,     4,   600,    78,    73,    37,    60,    30,
+    79,   516,    30,    68,   587,    78,   425,   649,    73,    82,
+   351,   352,   417,    78,   667,    78,    79,   670,   429,    30,
+    51,   716,   443,    68,    60,   704,    60,    61,    73,    60,
+    61,    79,    60,    61,    77,   456,   630,    83,    78,    77,
+    51,   421,    82,    77,   421,   429,    60,    61,    77,    60,
+    61,    78,   432,   405,   432,   432,   408,    60,    61,   411,
+    39,   631,   481,    77,   442,   443,   636,    49,    50,   421,
+     7,   629,   424,   478,   657,    60,    61,   635,   624,   594,
+   432,    77,    64,   689,   425,   668,   728,   670,   555,   556,
+   624,   443,    77,    30,    60,   436,    77,   518,     3,     4,
+    78,    78,   443,    10,   339,    82,     3,     4,    78,   514,
+     7,   346,    82,    64,    51,   456,    83,   538,    78,   354,
+   714,   715,    82,    60,    61,    30,    27,   721,   722,   536,
+     6,     7,    77,    30,    39,     9,    12,    13,    14,   517,
+   481,   521,    84,   748,   521,   824,    51,    78,   555,   556,
+    78,    82,   620,    78,    51,    60,    37,    82,    68,   537,
+   538,   625,   626,    60,    78,    79,   518,    78,    73,   521,
+    37,   549,   550,    69,    70,    71,    73,   518,    82,   647,
+    79,   586,   787,    79,   536,    77,   538,    39,   566,   567,
+    77,   616,   617,    77,   658,    78,    39,   538,   605,    82,
+    77,   649,     3,   555,   556,   610,     7,   559,    77,   550,
+     5,     6,     7,   620,    69,    70,    71,    12,    13,    14,
+    69,    70,    71,   630,    79,    84,   567,   127,   128,    30,
+    79,   903,    77,   905,    84,    30,    69,    70,    71,    77,
+   647,   621,    77,   621,   621,    77,    79,    51,    52,    53,
+    51,    64,     1,   605,    83,     4,     5,     6,     7,    60,
+    61,    10,    64,    12,    13,    14,    77,   619,   620,   621,
+   717,    77,   677,   625,   626,    37,   947,    84,   630,    28,
+   728,    60,    61,   624,   955,   890,    77,   639,    32,   631,
+    60,    61,    79,   645,   636,   647,    79,    46,    79,    39,
+    84,   748,    27,   884,    77,    30,   658,   714,   715,   773,
+    78,    82,    37,    77,   721,   722,     3,    78,    78,    68,
+   903,    79,   905,    82,    73,   930,   931,     3,     4,    77,
+    39,     7,    84,   738,    83,    60,    61,    64,    79,    39,
+   787,    79,    39,   748,   579,   580,    79,    82,   583,    64,
+    39,   798,    82,    78,    30,    79,    64,    82,   765,   818,
+    79,    84,   714,   715,    39,    60,    60,    60,   748,   721,
+   722,   748,    39,    78,   748,    51,    78,     7,     3,     4,
+    39,    16,   787,    79,    60,    61,    78,   808,   856,   836,
+   854,   802,   839,   840,   799,    78,   748,   632,   633,   634,
+   847,    78,   637,   638,    60,    30,    55,    56,    78,    58,
+    59,    60,    61,   765,    39,   862,    60,   801,   802,    64,
+    77,   773,   869,    17,    78,    77,    51,   662,    77,   807,
+   808,    78,    78,   880,    77,    60,    77,     9,   818,    78,
+    78,   818,    60,   890,   818,   230,    82,    78,    73,   856,
+    49,    50,    51,    52,    53,    77,   808,    77,   243,    78,
+   695,   696,   697,   248,   249,   912,   818,   808,   253,   254,
+   255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+    78,     5,     6,     7,     0,   890,     0,   934,    12,    13,
+    14,    55,    56,   940,    58,    59,    60,    61,   418,   839,
+   735,   327,   854,     1,   856,     3,     4,     5,     6,     7,
+     8,     9,   668,    11,    12,    13,    14,    15,    87,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,    30,    31,   284,    33,    34,    35,   648,   417,
+   818,   753,   655,    41,   480,   685,    44,   782,    46,   352,
+   472,    49,    50,    51,   657,   360,   668,    55,    56,   478,
+   935,   670,    60,    61,   588,   890,   890,    65,   937,    67,
+    68,   412,   559,   424,    72,    73,   424,    25,    76,   626,
+    78,    79,    80,    81,    38,    83,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+   835,   386,   387,   546,   770,   773,   539,     1,   521,     3,
+     4,     5,     6,     7,     8,     9,   851,    11,    12,    13,
+    14,    15,   303,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    30,    31,   765,    33,
+    34,    35,   420,   516,   420,   689,   594,    41,   374,    -1,
+    44,    -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,
+    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,    -1,
+    -1,    65,    -1,    67,    68,    -1,    -1,    -1,    72,    73,
+    -1,    -1,    76,    -1,    78,    -1,    80,    81,    -1,    83,
+    -1,    -1,   477,    -1,    -1,    -1,    -1,     1,    -1,     3,
+     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
+    -1,    15,   497,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,
+    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
+    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
+    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,    -1,
+    -1,    65,    -1,    67,    68,    -1,    -1,    -1,    72,    73,
+    -1,    -1,    76,    -1,    78,    79,    80,    81,     1,    83,
+     3,     4,    -1,    -1,   569,     8,     9,    -1,    11,    -1,
+    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,   590,    29,    -1,    31,    -1,
+    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,
+    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
+    -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,
+    -1,    -1,    65,    -1,    67,    68,    -1,    -1,    -1,    72,
+    73,    -1,    -1,    76,    -1,    78,    -1,    80,    81,    -1,
+    83,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+   655,    -1,     1,    -1,     3,     4,    -1,     6,     7,     8,
+     9,    -1,    11,    12,    13,    14,     4,    -1,     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,    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,    -1,
-     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,    31,    -1,    -1,    -1,    -1,
-    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    45,
-    76,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
-    -1,    -1,    77,    -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,
+    29,   686,    31,    -1,    33,    34,    35,    -1,   693,    -1,
+    28,    -1,    41,    -1,    -1,    44,    -1,    46,    -1,    -1,
+    49,    50,    51,    -1,   709,    -1,    55,    56,    46,    -1,
+    -1,    60,    61,    -1,    -1,    -1,    65,    -1,    67,    68,
+    -1,    -1,    -1,    72,    73,    -1,   731,    76,    -1,   734,
+    68,    80,    81,    -1,    83,    73,    -1,    -1,    -1,    -1,
+    78,    79,    -1,    -1,    -1,   750,    -1,    -1,   753,    -1,
+   755,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
+     1,    -1,    -1,     4,     5,     6,     7,   772,    -1,    -1,
+    -1,    12,    13,    14,     1,    -1,     3,     4,   783,    -1,
+    -1,     8,     9,    -1,    11,    -1,    -1,    28,    15,   794,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    -1,    29,    -1,    31,    46,    33,    34,    35,    -1,
+    -1,    -1,    -1,    -1,    41,   820,    -1,    44,    -1,    -1,
+    -1,    -1,    49,    50,    51,    -1,    -1,    68,    55,    56,
+    -1,    -1,    73,    60,    61,    -1,    -1,    -1,    65,    -1,
+    67,    68,    83,    -1,    -1,    72,    73,    -1,    -1,    76,
+    -1,    78,    -1,    80,    81,     1,    83,     3,     4,    -1,
+    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,
+   875,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    53,    29,    -1,    31,    -1,    33,    34,    35,
+    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,
+    -1,    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,
+    56,    -1,    -1,    59,    60,    61,    -1,    -1,    -1,    65,
+    -1,    67,    68,    -1,    -1,    -1,    72,    73,    -1,    -1,
+    76,    -1,    -1,    79,    80,    81,     1,    83,     3,     4,
+    -1,    -1,    -1,     8,     9,    -1,    11,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
+    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,
+    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,    -1,
+    55,    56,    -1,    -1,    59,    60,    61,    -1,    -1,    -1,
+    65,    -1,    67,    68,    -1,    -1,    -1,    72,    73,    -1,
+    -1,    76,    -1,    -1,    79,    80,    81,     1,    83,     3,
+    -1,    -1,    -1,    -1,     8,     9,    -1,    11,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
+    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    35,    -1,    37,    -1,    -1,    -1,    41,    -1,    -1,
+    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
+    -1,    55,    56,    -1,    -1,    59,    60,    61,    -1,    -1,
+    -1,    65,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,
+    -1,    -1,    76,     1,    -1,     3,    80,    81,    -1,    83,
+     8,     9,    -1,    11,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    53,    47,    48,    49,    50,    51,    52,
+    53,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
+    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,
+    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,
+    -1,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,    67,
+    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,     1,
+    -1,     3,    80,    81,    -1,    83,     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,    35,    -1,    -1,    -1,    28,    -1,    41,
+    31,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    46,    -1,    -1,    60,    61,
+    -1,    -1,    -1,    65,    -1,    67,    -1,    -1,    -1,    -1,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    68,    80,    81,
+     1,    83,    73,     4,     5,     6,     7,    78,    79,    -1,
+    -1,    12,    13,    14,     4,     5,     6,     7,    -1,    -1,
+    -1,    -1,    12,    13,    14,    -1,    27,    28,     1,    30,
+    -1,     4,     5,     6,     7,    -1,    37,    -1,    28,    12,
+    13,    14,    -1,    -1,    -1,    46,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    27,    28,    46,    30,    -1,    60,
+    61,    -1,    -1,    -1,    37,    -1,    -1,    68,    -1,    -1,
+    -1,    -1,    73,    46,    -1,    -1,    -1,    78,    68,    -1,
+    -1,    82,    83,    73,    -1,    -1,     1,    60,    61,     4,
+     5,     6,     7,    -1,    -1,    68,    -1,    12,    13,    14,
+    73,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    82,
+    83,    -1,    27,    28,     1,    30,    -1,     4,     5,     6,
+     7,    -1,    37,    -1,    -1,    12,    13,    14,    -1,    -1,
+    -1,    46,    -1,     1,    -1,    -1,     4,     5,     6,     7,
+    -1,    28,    -1,    30,    12,    13,    14,    -1,    -1,    -1,
+    -1,    -1,    -1,    68,    -1,    -1,    -1,    -1,    73,    46,
+    28,    -1,    30,    78,    -1,    -1,    -1,    82,    83,    -1,
+    -1,     3,    -1,    -1,    -1,    -1,     8,     9,    46,    11,
+    -1,    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    83,    29,    -1,    31,
+    68,    33,    34,    35,    -1,    73,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    -1,    -1,    83,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,
+    -1,     3,    -1,    65,    -1,    67,     8,     9,    -1,    11,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
+    -1,    -1,    84,    -1,    -1,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,
+    -1,     3,    -1,    65,    -1,    67,     8,     9,    -1,    11,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
+    -1,    -1,    84,    -1,    -1,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,
+    -1,     3,    -1,    65,    -1,    67,     8,     9,    -1,    11,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
+    -1,    -1,    84,    -1,    -1,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,
+    -1,     3,    -1,    65,    -1,    67,     8,     9,    -1,    11,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
+    -1,    -1,    84,    -1,    -1,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,
+    -1,    -1,    -1,    65,    -1,    67,    -1,    -1,    -1,    -1,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
+    -1,    -1,    84,     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,    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,
+    30,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,
+    -1,    41,    -1,    -1,    44,    -1,    46,    -1,    -1,    49,
+    50,    51,    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,
+    60,    61,    -1,    -1,    -1,    65,    -1,    67,    68,    -1,
+    -1,    -1,    72,    73,    -1,    -1,    76,    -1,    78,    -1,
+    80,    81,    -1,    83,     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,    35,    -1,    -1,    -1,
+    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,
+    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,     3,
+    -1,    60,    61,    -1,     8,     9,    65,    11,    67,    68,
+    -1,    -1,    -1,    72,    73,    -1,    -1,    76,    -1,    78,
+    -1,    80,    81,    -1,    83,    29,    -1,    31,    -1,    33,
+    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
+    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
+    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,    -1,
+    -1,    65,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,
+    -1,    -1,    76,    -1,    -1,    -1,    80,    81,    -1,    83,
+     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,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    39,     3,     4,     5,
+     6,     7,     8,     9,    -1,    11,    12,    13,    14,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    -1,    28,    29,    30,    31,    -1,    33,    34,    35,
+    73,    -1,    -1,    28,    -1,    41,    -1,    -1,    44,    82,
+    46,    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,
+    56,    46,    -1,    -1,    60,    61,    -1,    -1,    -1,    65,
+    -1,    67,    68,    -1,    -1,    -1,    72,    73,    -1,    -1,
+    76,    -1,    -1,    68,    80,    81,     3,     4,    73,     6,
+     7,     8,     9,    78,    11,    12,    13,    14,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    28,    29,    -1,    31,    -1,    33,    34,    35,    -1,
+    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    46,
+    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,
+    -1,     3,    -1,    60,    61,    -1,     8,     9,    65,    11,
+    67,    68,    -1,    -1,    -1,    72,    73,    -1,    -1,    76,
+    -1,    -1,    -1,    80,    81,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    -1,     3,    -1,    60,    61,
+    -1,     8,     9,    65,    11,    67,    68,    -1,    -1,    -1,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
+    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,
+    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,
+    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,
+    -1,     3,    -1,    60,    61,    -1,     8,     9,    65,    11,
+    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
+    -1,    78,    -1,    80,    81,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    -1,     3,    -1,    60,    61,
+    -1,     8,     9,    65,    11,    67,    -1,    -1,    -1,    -1,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
+    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,
+    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,
+    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,
+    -1,     3,    -1,    60,    61,    -1,     8,     9,    65,    11,
+    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
+    -1,    -1,    -1,    80,    81,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,
+    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+    -1,    -1,    -1,    55,    56,    -1,     3,    -1,    60,    61,
+    -1,     8,     9,    65,    11,    67,    -1,    -1,    -1,    -1,
+    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
+    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,
+    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,
+    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,
+    -1,    -1,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,
+    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
+    -1,    -1,     1,    80,    81,     4,    -1,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,     1,
+    -1,    -1,     4,    -1,     6,     7,    -1,    -1,    -1,    28,
+    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    28,    46,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
+     6,     7,    -1,    -1,    46,    -1,    12,    13,    14,    68,
+    69,    70,    71,    -1,    73,    -1,    -1,    -1,    -1,    78,
+    79,    27,    28,    -1,    30,    31,    68,    69,    70,    71,
+    -1,    73,    -1,    -1,    -1,    -1,    78,    79,    -1,    -1,
+    46,    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    60,    -1,    62,    63,    64,    -1,
+    -1,    -1,    68,    -1,    -1,    -1,    72,    73,    74,    75,
+    -1,     1,    78,     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,    -1,    46,    -1,    -1,    49,
+    50,    51,    -1,    -1,    -1,    -1,    28,    -1,    30,    -1,
+    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,
+    -1,    -1,    -1,    73,    46,    -1,    -1,    -1,    78,    51,
+     1,    -1,     3,     4,     5,     6,     7,    -1,    60,    10,
+    -1,    12,    13,    14,    -1,    -1,    68,    -1,    -1,     1,
+    -1,    73,     4,     5,     6,     7,    78,    28,    10,    30,
+    12,    13,    14,     4,     5,     6,     7,    -1,    -1,    -1,
+    -1,    12,    13,    14,    -1,    46,    28,    -1,    30,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
-    72,    -1,    45,     4,    -1,     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
+    -1,    -1,    -1,    -1,    46,    -1,    -1,    68,    -1,    -1,
+    -1,    -1,    73,    -1,    -1,    46,    77,    -1,    -1,     4,
+     5,     6,     7,    -1,    -1,    -1,    68,    12,    13,    14,
+    -1,    73,    -1,    -1,    -1,    77,    -1,    68,    -1,    -1,
+    -1,    -1,    73,    28,    -1,    30,     1,    78,    -1,     4,
+    -1,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    28,    -1,    -1,    31,    -1,    -1,    -1,
+    -1,    -1,    -1,    68,    -1,    -1,     3,     4,    73,     6,
+     7,    46,    -1,    78,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    68,    -1,    -1,     3,     4,    73,     6,
+     7,    -1,    39,    -1,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    60,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    39,    -1,     3,     4,    73,     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,    -1,     3,     4,    73,     6,     7,    -1,
+    39,    -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,    -1,    -1,    -1,
+    39,    12,    13,    14,    73,     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,    -1,    -1,    73,    46,    -1,    -1,    -1,    -1,
+    51,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    60,
+    61,    -1,    -1,    -1,    -1,    -1,    -1,    68,     4,     5,
+     6,     7,    73,    -1,    10,    -1,    12,    13,    14,    68,
+     4,     5,     6,     7,    73,    -1,    -1,    -1,    12,    13,
+    14,    -1,    28,     4,    30,     6,     7,    -1,    -1,    -1,
+    -1,    12,    13,    14,    28,     4,    30,     6,     7,    -1,
+    46,    -1,    -1,    12,    13,    14,    -1,    28,    -1,    -1,
+    -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,    28,
+    -1,    -1,    68,    -1,    -1,    46,    -1,    73,    -1,    -1,
+    -1,    -1,    -1,    -1,    68,    -1,    -1,    46,    -1,    73,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
+    -1,    -1,    73,    10,    -1,    -1,    -1,    -1,    -1,    68,
+    -1,    36,    37,    38,    73,    40,    41,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    53,    36,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    53,    -1,    30,    -1,
+    -1,    -1,    -1,    -1,    36,    37,    38,    82,    40,    41,
+    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    53,    36,    37,    38,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+    36,    37,    38,    -1,    40,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    53
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/lib/bison.simple"
+/* This file comes from bison-1.27.  */
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1691,46 +1709,66 @@ static const short yycheck[] = {    56,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /* As a special exception, when this file is copied by Bison into a
    Bison output file, you may use that output file without restriction.
    This special exception was added by the Free Software Foundation
    in version 1.24 of Bison.  */
 
-#ifndef alloca
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
 #ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
 #define alloca __builtin_alloca
 #else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
 #include <alloca.h>
 #else /* not sparc */
-#if defined (MSDOS) && !defined (__TURBOC__)
+/* We think this test detects Watcom and Microsoft C.  */
+/* This used to test MSDOS, but that is a bad idea
+   since that symbol is in the user namespace.  */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+        instead, just don't use alloca.  */
 #include <malloc.h>
+#endif
 #else /* not MSDOS, or __TURBOC__ */
 #if defined(_AIX)
-#include <malloc.h>
+/* I don't know what this was needed for, but it pollutes the namespace.
+   So I turned it off.   rms, 2 May 1997.  */
+/* #include <malloc.h>  */
  #pragma alloca
-#else /* not MSDOS, __TURBOC__, or _AIX */
-#ifdef __hpux
-#ifdef __cplusplus
-extern "C" {
-void *alloca (unsigned int);
-};
-#else /* not __cplusplus */
-void *alloca ();
-#endif /* not __cplusplus */
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+                and on HPUX 10.  Eventually we can turn this on.  */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
 #endif /* __hpux */
+#endif
 #endif /* not _AIX */
 #endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc.  */
-#endif /* not GNU C.  */
-#endif /* alloca not defined.  */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
 
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
 
 /* Note: there must be only one dollar sign in this file.
    It is replaced by the list of actions, each action
@@ -1740,8 +1778,8 @@ void *alloca ();
 #define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                -2
 #define YYEOF          0
-#define YYACCEPT       return(0)
-#define YYABORT        return(1)
+#define YYACCEPT       goto yyacceptlab
+#define YYABORT        goto yyabortlab
 #define YYERROR                goto yyerrlab1
 /* Like YYERROR except do call yyerror.
    This remains here temporarily to ease the
@@ -1822,12 +1860,12 @@ int yydebug;                    /*  nonzero means print parse trace     */
 #ifndef YYMAXDEPTH
 #define YYMAXDEPTH 10000
 #endif
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-int yyparse (void);
-#endif
 \f
+/* Define __yy_memcpy.  Note that the size argument
+   should be passed with type unsigned int, because that is what the non-GCC
+   definitions require.  With GCC, __builtin_memcpy takes an arg
+   of type size_t, but it can handle unsigned int.  */
+
 #if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
 #define __yy_memcpy(TO,FROM,COUNT)     __builtin_memcpy(TO,FROM,COUNT)
 #else                          /* not GNU C or C++ */
@@ -1839,7 +1877,7 @@ static void
 __yy_memcpy (to, from, count)
      char *to;
      char *from;
-     int count;
+     unsigned int count;
 {
   register char *f = from;
   register char *t = to;
@@ -1854,10 +1892,10 @@ __yy_memcpy (to, from, count)
 /* This is the most reliable way to avoid incompatibilities
    in available built-in functions on various systems.  */
 static void
-__yy_memcpy (char *to, char *from, int count)
+__yy_memcpy (char *to, char *from, unsigned int count)
 {
-  register char *f = from;
   register char *t = to;
+  register char *f = from;
   register int i = count;
 
   while (i-- > 0)
@@ -1867,7 +1905,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/lib/bison.simple"
+#line 216 "/usr/lib/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 *.
@@ -1888,6 +1926,15 @@ __yy_memcpy (char *to, char *from, int count)
 #define YYPARSE_PARAM_DECL
 #endif /* not YYPARSE_PARAM */
 
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
 int
 yyparse(YYPARSE_PARAM_ARG)
      YYPARSE_PARAM_DECL
@@ -1916,6 +1963,7 @@ yyparse(YYPARSE_PARAM_ARG)
 #endif
 
   int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
 #ifdef YYPURE
   int yychar;
@@ -2000,18 +2048,32 @@ yynewstate:
       if (yystacksize >= YYMAXDEPTH)
        {
          yyerror("parser stack overflow");
+         if (yyfree_stacks)
+           {
+             free (yyss);
+             free (yyvs);
+#ifdef YYLSP_NEEDED
+             free (yyls);
+#endif
+           }
          return 2;
        }
       yystacksize *= 2;
       if (yystacksize > YYMAXDEPTH)
        yystacksize = YYMAXDEPTH;
-      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
-      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
+#ifndef YYSTACK_USE_ALLOCA
+      yyfree_stacks = 1;
+#endif
+      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss, (char *)yyss1,
+                  size * (unsigned int) sizeof (*yyssp));
+      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+                  size * (unsigned int) sizeof (*yyvsp));
 #ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
+      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls, (char *)yyls1,
+                  size * (unsigned int) sizeof (*yylsp));
 #endif
 #endif /* no yyoverflow */
 
@@ -2432,26 +2494,30 @@ case 58:
 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 59:
-#line 464 "objc-parse.y"
-{ skip_evaluation++; ;
+#line 462 "objc-parse.y"
+{ yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 60:
-#line 468 "objc-parse.y"
+#line 466 "objc-parse.y"
+{ skip_evaluation++; ;
+    break;}
+case 61:
+#line 470 "objc-parse.y"
 { skip_evaluation++; ;
     break;}
-case 62:
-#line 474 "objc-parse.y"
+case 63:
+#line 476 "objc-parse.y"
 { tree type = groktypename (yyvsp[-2].ttype);
                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
     break;}
-case 63:
-#line 477 "objc-parse.y"
+case 64:
+#line 479 "objc-parse.y"
 { start_init (NULL_TREE, NULL, 0);
                  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
                  really_start_incremental_init (yyvsp[-2].ttype); ;
     break;}
-case 64:
-#line 481 "objc-parse.y"
+case 65:
+#line 483 "objc-parse.y"
 { char *name;
                  tree result = pop_init_level (0);
                  tree type = yyvsp[-5].ttype;
@@ -2477,10 +2543,6 @@ case 64:
                    }
                ;
     break;}
-case 66:
-#line 510 "objc-parse.y"
-{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
-    break;}
 case 67:
 #line 512 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
@@ -2527,41 +2589,45 @@ case 77:
     break;}
 case 78:
 #line 534 "objc-parse.y"
+{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+    break;}
+case 79:
+#line 536 "objc-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
     break;}
-case 79:
-#line 537 "objc-parse.y"
+case 80:
+#line 539 "objc-parse.y"
 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
                  yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
-case 80:
-#line 540 "objc-parse.y"
+case 81:
+#line 542 "objc-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
-case 81:
-#line 543 "objc-parse.y"
+case 82:
+#line 545 "objc-parse.y"
 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
                  yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
-case 82:
-#line 546 "objc-parse.y"
+case 83:
+#line 548 "objc-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
     break;}
-case 83:
-#line 549 "objc-parse.y"
+case 84:
+#line 551 "objc-parse.y"
 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
                                      - (yyvsp[-4].ttype == boolean_false_node)); ;
     break;}
-case 84:
-#line 552 "objc-parse.y"
+case 85:
+#line 554 "objc-parse.y"
 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
                  yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
-case 85:
-#line 555 "objc-parse.y"
+case 86:
+#line 557 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
                  /* Make sure first operand is calculated only once.  */
@@ -2569,13 +2635,13 @@ case 85:
                  yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
-case 86:
-#line 562 "objc-parse.y"
+case 87:
+#line 564 "objc-parse.y"
 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
                  yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
-case 87:
-#line 565 "objc-parse.y"
+case 88:
+#line 567 "objc-parse.y"
 { char class;
                  yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
                  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
@@ -2584,8 +2650,8 @@ case 87:
                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR);
                ;
     break;}
-case 88:
-#line 573 "objc-parse.y"
+case 89:
+#line 575 "objc-parse.y"
 { char class;
                  yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
                  /* This inhibits warnings in truthvalue_conversion.  */
@@ -2595,8 +2661,8 @@ case 88:
                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK);
                ;
     break;}
-case 89:
-#line 585 "objc-parse.y"
+case 90:
+#line 587 "objc-parse.y"
 {
                  yyval.ttype = lastiddecl;
                  if (!yyval.ttype || yyval.ttype == error_mark_node)
@@ -2756,24 +2822,24 @@ case 89:
                    }
                ;
     break;}
-case 91:
-#line 745 "objc-parse.y"
-{ yyval.ttype = combine_strings (yyvsp[0].ttype); ;
-    break;}
 case 92:
 #line 747 "objc-parse.y"
+{ yyval.ttype = combine_strings (yyvsp[0].ttype); ;
+    break;}
+case 93:
+#line 749 "objc-parse.y"
 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
                  if (class == 'e' || class == '1'
                      || class == '2' || class == '<')
                    C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
                  yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 93:
-#line 753 "objc-parse.y"
-{ yyval.ttype = error_mark_node; ;
-    break;}
 case 94:
 #line 755 "objc-parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 95:
+#line 757 "objc-parse.y"
 { if (current_function_decl == 0)
                    {
                      error ("braced-group within expression allowed only inside a function");
@@ -2788,8 +2854,8 @@ case 94:
                  push_label_level ();
                  yyval.ttype = expand_start_stmt_expr (); ;
     break;}
-case 95:
-#line 769 "objc-parse.y"
+case 96:
+#line 771 "objc-parse.y"
 { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
@@ -2813,16 +2879,16 @@ case 95:
                    yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 96:
-#line 792 "objc-parse.y"
-{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
-    break;}
 case 97:
 #line 794 "objc-parse.y"
-{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 98:
 #line 796 "objc-parse.y"
+{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 99:
+#line 798 "objc-parse.y"
 {
                   if (doing_objc_thang)
                     {
@@ -2835,8 +2901,8 @@ case 98:
                    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 99:
-#line 808 "objc-parse.y"
+case 100:
+#line 810 "objc-parse.y"
 {
                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
 
@@ -2851,81 +2917,81 @@ case 99:
                     yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
                ;
     break;}
-case 100:
-#line 822 "objc-parse.y"
-{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
-    break;}
 case 101:
 #line 824 "objc-parse.y"
-{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
+{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 102:
 #line 826 "objc-parse.y"
-{ yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
+{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 103:
 #line 828 "objc-parse.y"
-{ yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
+{ yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
     break;}
 case 104:
 #line 830 "objc-parse.y"
-{ yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
+{ yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
     break;}
 case 105:
 #line 832 "objc-parse.y"
-{ yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
+{ yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
     break;}
 case 106:
 #line 834 "objc-parse.y"
+{ yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
+    break;}
+case 107:
+#line 836 "objc-parse.y"
 { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
     break;}
-case 108:
-#line 841 "objc-parse.y"
+case 109:
+#line 843 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 110:
-#line 849 "objc-parse.y"
+case 111:
+#line 851 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 113:
-#line 857 "objc-parse.y"
+case 114:
+#line 859 "objc-parse.y"
 { c_mark_varargs ();
                  if (pedantic)
                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
     break;}
-case 114:
-#line 867 "objc-parse.y"
+case 115:
+#line 869 "objc-parse.y"
 { ;
     break;}
-case 119:
-#line 883 "objc-parse.y"
+case 120:
+#line 885 "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 120:
-#line 888 "objc-parse.y"
+case 121:
+#line 890 "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 121:
-#line 893 "objc-parse.y"
+case 122:
+#line 895 "objc-parse.y"
 { shadow_tag_warned (yyvsp[-1].ttype, 1);
                  pedwarn ("empty declaration"); ;
     break;}
-case 122:
-#line 896 "objc-parse.y"
+case 123:
+#line 898 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
-case 123:
-#line 905 "objc-parse.y"
+case 124:
+#line 907 "objc-parse.y"
 { ;
     break;}
-case 128:
-#line 920 "objc-parse.y"
+case 129:
+#line 922 "objc-parse.y"
 { yyval.itype = suspend_momentary ();
                  pending_xref_error ();
                  declspec_stack = tree_cons (prefix_attributes,
@@ -2934,283 +3000,283 @@ case 128:
                  split_specs_attrs (yyvsp[0].ttype,
                                     &current_declspecs, &prefix_attributes); ;
     break;}
-case 129:
-#line 931 "objc-parse.y"
+case 130:
+#line 933 "objc-parse.y"
 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
     break;}
-case 130:
-#line 936 "objc-parse.y"
+case 131:
+#line 938 "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 131:
-#line 941 "objc-parse.y"
+case 132:
+#line 943 "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 132:
-#line 946 "objc-parse.y"
+case 133:
+#line 948 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 133:
-#line 951 "objc-parse.y"
+case 134:
+#line 953 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 134:
-#line 956 "objc-parse.y"
-{ shadow_tag (yyvsp[-1].ttype); ;
-    break;}
 case 135:
 #line 958 "objc-parse.y"
-{ pedwarn ("empty declaration"); ;
+{ shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 136:
 #line 960 "objc-parse.y"
-{ pedantic = yyvsp[-1].itype; ;
+{ pedwarn ("empty declaration"); ;
     break;}
 case 137:
-#line 970 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 962 "objc-parse.y"
+{ pedantic = yyvsp[-1].itype; ;
     break;}
 case 138:
 #line 972 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 139:
-#line 976 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 974 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 140:
 #line 978 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 141:
 #line 980 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 142:
+#line 982 "objc-parse.y"
 { if (extra_warnings)
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 142:
-#line 985 "objc-parse.y"
-{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
-    break;}
 case 143:
-#line 990 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 987 "objc-parse.y"
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 144:
 #line 992 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 145:
-#line 997 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 994 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 146:
 #line 999 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 147:
 #line 1001 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 148:
+#line 1003 "objc-parse.y"
 { if (extra_warnings)
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 148:
-#line 1014 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
-    break;}
 case 149:
 #line 1016 "objc-parse.y"
-{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 150:
 #line 1018 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
     break;}
 case 151:
 #line 1020 "objc-parse.y"
-{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
+{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 152:
-#line 1025 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
-                 TREE_STATIC (yyval.ttype) = 1; ;
+#line 1022 "objc-parse.y"
+{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 153:
-#line 1028 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+#line 1027 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
+                 TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 154:
 #line 1030 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+    break;}
+case 155:
+#line 1032 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
-case 155:
-#line 1033 "objc-parse.y"
+case 156:
+#line 1035 "objc-parse.y"
 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
     break;}
-case 156:
-#line 1047 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
-    break;}
 case 157:
 #line 1049 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 158:
-#line 1053 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1051 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 159:
 #line 1055 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 160:
+#line 1057 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 162:
-#line 1065 "objc-parse.y"
+case 163:
+#line 1067 "objc-parse.y"
 { /* For a typedef name, record the meaning, not the name.
                     In case of `foo foo, bar;'.  */
                  yyval.ttype = lookup_name (yyvsp[0].ttype); ;
     break;}
-case 163:
-#line 1069 "objc-parse.y"
-{ yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
-    break;}
 case 164:
 #line 1071 "objc-parse.y"
-{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
+{ yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 165:
-#line 1076 "objc-parse.y"
+#line 1073 "objc-parse.y"
 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
     break;}
 case 166:
 #line 1078 "objc-parse.y"
-{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
+{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
     break;}
 case 167:
 #line 1080 "objc-parse.y"
-{ yyval.ttype = groktypename (yyvsp[-1].ttype); ;
+{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
     break;}
-case 175:
-#line 1102 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+case 168:
+#line 1082 "objc-parse.y"
+{ yyval.ttype = groktypename (yyvsp[-1].ttype); ;
     break;}
 case 176:
 #line 1104 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 177:
+#line 1106 "objc-parse.y"
 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 177:
-#line 1111 "objc-parse.y"
+case 178:
+#line 1113 "objc-parse.y"
 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
                                          yyvsp[-1].ttype, prefix_attributes);
                  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
     break;}
-case 178:
-#line 1116 "objc-parse.y"
+case 179:
+#line 1118 "objc-parse.y"
 { finish_init ();
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
-case 179:
-#line 1119 "objc-parse.y"
+case 180:
+#line 1121 "objc-parse.y"
 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
                                       yyvsp[0].ttype, prefix_attributes);
                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); 
                 ;
     break;}
-case 180:
-#line 1127 "objc-parse.y"
+case 181:
+#line 1129 "objc-parse.y"
 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
                                          yyvsp[-1].ttype, prefix_attributes);
                  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
     break;}
-case 181:
-#line 1132 "objc-parse.y"
+case 182:
+#line 1134 "objc-parse.y"
 { finish_init ();
                  decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
-case 182:
-#line 1136 "objc-parse.y"
+case 183:
+#line 1138 "objc-parse.y"
 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
                                       yyvsp[0].ttype, prefix_attributes);
                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 183:
-#line 1144 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
-    break;}
 case 184:
 #line 1146 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 185:
-#line 1151 "objc-parse.y"
+#line 1148 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 186:
 #line 1153 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 187:
-#line 1158 "objc-parse.y"
-{ yyval.ttype = yyvsp[-2].ttype; ;
+#line 1155 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 188:
-#line 1163 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1160 "objc-parse.y"
+{ yyval.ttype = yyvsp[-2].ttype; ;
     break;}
 case 189:
 #line 1165 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 190:
-#line 1170 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1167 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 191:
 #line 1172 "objc-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 192:
 #line 1174 "objc-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
+{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 193:
 #line 1176 "objc-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
     break;}
 case 194:
 #line 1178 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
+    break;}
+case 195:
+#line 1180 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 200:
-#line 1196 "objc-parse.y"
+case 201:
+#line 1198 "objc-parse.y"
 { really_start_incremental_init (NULL_TREE);
                  /* Note that the call to clear_momentary
                     is in process_init_element.  */
                  push_momentary (); ;
     break;}
-case 201:
-#line 1201 "objc-parse.y"
+case 202:
+#line 1203 "objc-parse.y"
 { yyval.ttype = pop_init_level (0);
                  if (yyval.ttype == error_mark_node
                      && ! (yychar == STRING || yychar == CONSTANT))
@@ -3218,37 +3284,37 @@ case 201:
                  else
                    pop_momentary_nofree (); ;
     break;}
-case 202:
-#line 1209 "objc-parse.y"
+case 203:
+#line 1211 "objc-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
-case 203:
-#line 1215 "objc-parse.y"
+case 204:
+#line 1217 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids empty initializer braces"); ;
     break;}
-case 209:
-#line 1231 "objc-parse.y"
+case 210:
+#line 1233 "objc-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
-case 212:
-#line 1238 "objc-parse.y"
-{ push_init_level (0); ;
-    break;}
 case 213:
 #line 1240 "objc-parse.y"
-{ process_init_element (pop_init_level (0)); ;
+{ push_init_level (0); ;
     break;}
 case 214:
 #line 1242 "objc-parse.y"
+{ process_init_element (pop_init_level (0)); ;
+    break;}
+case 215:
+#line 1244 "objc-parse.y"
 { process_init_element (yyvsp[0].ttype); ;
     break;}
-case 218:
-#line 1253 "objc-parse.y"
+case 219:
+#line 1255 "objc-parse.y"
 { set_init_label (yyvsp[0].ttype); ;
     break;}
-case 219:
-#line 1261 "objc-parse.y"
+case 220:
+#line 1263 "objc-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -3258,17 +3324,17 @@ case 219:
                    }
                  reinit_parse_for_function (); ;
     break;}
-case 220:
-#line 1270 "objc-parse.y"
+case 221:
+#line 1272 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
-case 221:
-#line 1278 "objc-parse.y"
+case 222:
+#line 1280 "objc-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
-case 222:
-#line 1284 "objc-parse.y"
+case 223:
+#line 1286 "objc-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -3278,198 +3344,198 @@ case 222:
                    }
                  reinit_parse_for_function (); ;
     break;}
-case 223:
-#line 1293 "objc-parse.y"
+case 224:
+#line 1295 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
-case 224:
-#line 1301 "objc-parse.y"
+case 225:
+#line 1303 "objc-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
-case 227:
-#line 1317 "objc-parse.y"
-{ yyval.ttype = yyvsp[-1].ttype; ;
-    break;}
 case 228:
 #line 1319 "objc-parse.y"
-{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+{ yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 229:
-#line 1324 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 1321 "objc-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 230:
 #line 1326 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 231:
 #line 1328 "objc-parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 232:
-#line 1335 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1330 "objc-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 235:
-#line 1347 "objc-parse.y"
-{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+case 233:
+#line 1337 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 236:
-#line 1352 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 1349 "objc-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 237:
 #line 1354 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 238:
 #line 1356 "objc-parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 239:
-#line 1363 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1358 "objc-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 241:
-#line 1372 "objc-parse.y"
-{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+case 240:
+#line 1365 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 242:
-#line 1377 "objc-parse.y"
-{ yyval.ttype = yyvsp[-1].ttype; ;
+#line 1374 "objc-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 243:
 #line 1379 "objc-parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+{ yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 244:
 #line 1381 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 245:
 #line 1383 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 246:
-#line 1390 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1385 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 248:
-#line 1396 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+case 247:
+#line 1392 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 249:
 #line 1398 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 250:
-#line 1403 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1400 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 251:
 #line 1405 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 252:
-#line 1410 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1407 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 253:
 #line 1412 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 254:
-#line 1417 "objc-parse.y"
+#line 1414 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 255:
+#line 1419 "objc-parse.y"
 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
                  /* Start scope of tag before parsing components.  */
                ;
     break;}
-case 255:
-#line 1421 "objc-parse.y"
-{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
-    break;}
 case 256:
 #line 1423 "objc-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
+    break;}
+case 257:
+#line 1425 "objc-parse.y"
 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
                                      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
                ;
     break;}
-case 257:
-#line 1427 "objc-parse.y"
-{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
-    break;}
 case 258:
 #line 1429 "objc-parse.y"
-{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
+{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
     break;}
 case 259:
 #line 1431 "objc-parse.y"
-{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
+{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
     break;}
 case 260:
 #line 1433 "objc-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
+    break;}
+case 261:
+#line 1435 "objc-parse.y"
 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
                                      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
                ;
     break;}
-case 261:
-#line 1437 "objc-parse.y"
-{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
-    break;}
 case 262:
 #line 1439 "objc-parse.y"
+{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 263:
+#line 1441 "objc-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
-case 263:
-#line 1442 "objc-parse.y"
+case 264:
+#line 1444 "objc-parse.y"
 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
-case 264:
-#line 1445 "objc-parse.y"
+case 265:
+#line 1447 "objc-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (NULL_TREE); ;
     break;}
-case 265:
-#line 1448 "objc-parse.y"
+case 266:
+#line 1450 "objc-parse.y"
 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
-case 266:
-#line 1451 "objc-parse.y"
+case 267:
+#line 1453 "objc-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
-case 270:
-#line 1462 "objc-parse.y"
+case 271:
+#line 1464 "objc-parse.y"
 { if (pedantic && ! flag_isoc9x)
                    pedwarn ("comma at end of enumerator list"); ;
     break;}
-case 271:
-#line 1468 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
-    break;}
 case 272:
 #line 1470 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
-                 pedwarn ("no semicolon at end of struct or union"); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 273:
-#line 1475 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1472 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
+                 pedwarn ("no semicolon at end of struct or union"); ;
     break;}
 case 274:
 #line 1477 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 275:
 #line 1479 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 276:
+#line 1481 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
-case 276:
-#line 1483 "objc-parse.y"
+case 277:
+#line 1485 "objc-parse.y"
 {
                  tree interface = lookup_interface (yyvsp[-1].ttype);
 
@@ -3483,168 +3549,168 @@ case 276:
                    }
                ;
     break;}
-case 277:
-#line 1508 "objc-parse.y"
+case 278:
+#line 1510 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 278:
-#line 1514 "objc-parse.y"
+case 279:
+#line 1516 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids member declarations with no members");
                  shadow_tag(yyvsp[0].ttype);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 279:
-#line 1519 "objc-parse.y"
+case 280:
+#line 1521 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 280:
-#line 1525 "objc-parse.y"
+case 281:
+#line 1527 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids member declarations with no members");
                  shadow_tag(yyvsp[0].ttype);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 281:
-#line 1530 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
-    break;}
 case 282:
 #line 1532 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 283:
+#line 1534 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
-case 284:
-#line 1539 "objc-parse.y"
+case 285:
+#line 1541 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 285:
-#line 1544 "objc-parse.y"
+case 286:
+#line 1546 "objc-parse.y"
 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 286:
-#line 1548 "objc-parse.y"
+case 287:
+#line 1550 "objc-parse.y"
 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 287:
-#line 1551 "objc-parse.y"
+case 288:
+#line 1553 "objc-parse.y"
 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 289:
-#line 1563 "objc-parse.y"
+case 290:
+#line 1565 "objc-parse.y"
 { if (yyvsp[-2].ttype == error_mark_node)
                    yyval.ttype = yyvsp[-2].ttype;
                  else
                    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
     break;}
-case 290:
-#line 1568 "objc-parse.y"
-{ yyval.ttype = error_mark_node; ;
-    break;}
 case 291:
-#line 1574 "objc-parse.y"
-{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
+#line 1570 "objc-parse.y"
+{ yyval.ttype = error_mark_node; ;
     break;}
 case 292:
 #line 1576 "objc-parse.y"
-{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 293:
-#line 1581 "objc-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 1578 "objc-parse.y"
+{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 294:
 #line 1583 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 295:
-#line 1588 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1585 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 297:
-#line 1594 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+case 296:
+#line 1590 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 298:
 #line 1596 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 299:
-#line 1601 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1598 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 300:
 #line 1603 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 301:
-#line 1608 "objc-parse.y"
-{ yyval.ttype = yyvsp[-1].ttype; ;
+#line 1605 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 302:
-#line 1611 "objc-parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 1610 "objc-parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 303:
 #line 1613 "objc-parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 304:
 #line 1615 "objc-parse.y"
-{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 305:
 #line 1617 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 306:
 #line 1619 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 307:
 #line 1621 "objc-parse.y"
-{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 308:
 #line 1623 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
+{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 309:
 #line 1625 "objc-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
+{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 310:
-#line 1629 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1627 "objc-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
 case 311:
-#line 1638 "objc-parse.y"
+#line 1631 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 312:
+#line 1640 "objc-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
-case 313:
-#line 1647 "objc-parse.y"
-{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
-    break;}
 case 314:
 #line 1649 "objc-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+    break;}
+case 315:
+#line 1651 "objc-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 318:
-#line 1661 "objc-parse.y"
+case 319:
+#line 1663 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
@@ -3654,13 +3720,13 @@ case 318:
                    add_objc_decls ();
                ;
     break;}
-case 320:
-#line 1676 "objc-parse.y"
+case 321:
+#line 1678 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
-case 323:
-#line 1687 "objc-parse.y"
+case 324:
+#line 1689 "objc-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3670,20 +3736,20 @@ case 323:
                    }
                ;
     break;}
-case 324:
-#line 1701 "objc-parse.y"
+case 325:
+#line 1703 "objc-parse.y"
 {;
     break;}
-case 326:
-#line 1705 "objc-parse.y"
-{ compstmt_count++; ;
-    break;}
 case 327:
-#line 1708 "objc-parse.y"
-{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
+#line 1707 "objc-parse.y"
+{ compstmt_count++; ;
     break;}
 case 328:
 #line 1710 "objc-parse.y"
+{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
+    break;}
+case 329:
+#line 1712 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  yyval.ttype = poplevel (1, 1, 0);
@@ -3692,8 +3758,8 @@ case 328:
                  else
                    pop_momentary (); ;
     break;}
-case 329:
-#line 1718 "objc-parse.y"
+case 330:
+#line 1720 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3702,8 +3768,8 @@ case 329:
                  else
                    pop_momentary (); ;
     break;}
-case 330:
-#line 1726 "objc-parse.y"
+case 331:
+#line 1728 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3712,8 +3778,8 @@ case 330:
                  else
                    pop_momentary (); ;
     break;}
-case 333:
-#line 1746 "objc-parse.y"
+case 334:
+#line 1748 "objc-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3722,8 +3788,8 @@ case 333:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 334:
-#line 1760 "objc-parse.y"
+case 335:
+#line 1762 "objc-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3732,44 +3798,44 @@ case 334:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 335:
-#line 1768 "objc-parse.y"
-{ expand_loop_continue_here (); ;
-    break;}
 case 336:
-#line 1772 "objc-parse.y"
-{ yyval.filename = input_filename; ;
+#line 1770 "objc-parse.y"
+{ expand_loop_continue_here (); ;
     break;}
 case 337:
-#line 1776 "objc-parse.y"
-{ yyval.lineno = lineno; ;
+#line 1774 "objc-parse.y"
+{ yyval.filename = input_filename; ;
     break;}
 case 338:
-#line 1781 "objc-parse.y"
-{ ;
+#line 1778 "objc-parse.y"
+{ yyval.lineno = lineno; ;
     break;}
 case 339:
-#line 1786 "objc-parse.y"
+#line 1783 "objc-parse.y"
 { ;
     break;}
 case 340:
-#line 1791 "objc-parse.y"
-{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+#line 1788 "objc-parse.y"
+{ ;
     break;}
 case 341:
-#line 1796 "objc-parse.y"
-{ yyval.ends_in_label = 0; ;
+#line 1793 "objc-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 342:
 #line 1798 "objc-parse.y"
-{ yyval.ends_in_label = 1; ;
+{ yyval.ends_in_label = 0; ;
     break;}
 case 343:
-#line 1804 "objc-parse.y"
+#line 1800 "objc-parse.y"
+{ yyval.ends_in_label = 1; ;
+    break;}
+case 344:
+#line 1806 "objc-parse.y"
 { stmt_count++; ;
     break;}
-case 345:
-#line 1807 "objc-parse.y"
+case 346:
+#line 1809 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 /* It appears that this should not be done--that a non-lvalue array
@@ -3787,20 +3853,20 @@ case 345:
                  iterator_expand (yyvsp[-1].ttype);
                  clear_momentary (); ;
     break;}
-case 346:
-#line 1824 "objc-parse.y"
+case 347:
+#line 1826 "objc-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 347:
-#line 1828 "objc-parse.y"
+case 348:
+#line 1830 "objc-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 348:
-#line 1832 "objc-parse.y"
+case 349:
+#line 1834 "objc-parse.y"
 { c_expand_end_cond ();
                  /* This warning is here instead of in simple_if, because we
                     do not want a warning if an empty if is followed by an
@@ -3810,12 +3876,12 @@ case 348:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 349:
-#line 1844 "objc-parse.y"
-{ c_expand_end_cond (); ;
-    break;}
 case 350:
 #line 1846 "objc-parse.y"
+{ c_expand_end_cond (); ;
+    break;}
+case 351:
+#line 1848 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3826,8 +3892,8 @@ case 350:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 351:
-#line 1856 "objc-parse.y"
+case 352:
+#line 1858 "objc-parse.y"
 { /* Don't start the loop till we have succeeded
                     in parsing the end test.  This is to make sure
                     that we end every loop we start.  */
@@ -3837,25 +3903,25 @@ case 351:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 352:
-#line 1865 "objc-parse.y"
+case 353:
+#line 1867 "objc-parse.y"
 { expand_end_loop (); ;
     break;}
-case 353:
-#line 1868 "objc-parse.y"
+case 354:
+#line 1870 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_exit_loop_if_false (NULL_PTR,
                                             truthvalue_conversion (yyvsp[-2].ttype));
                  expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 354:
-#line 1875 "objc-parse.y"
+case 355:
+#line 1877 "objc-parse.y"
 { expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 355:
-#line 1879 "objc-parse.y"
+case 356:
+#line 1881 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3867,13 +3933,13 @@ case 355:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 356:
-#line 1891 "objc-parse.y"
+case 357:
+#line 1893 "objc-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 357:
-#line 1894 "objc-parse.y"
+case 358:
+#line 1896 "objc-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3890,8 +3956,8 @@ case 357:
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 358:
-#line 1910 "objc-parse.y"
+case 359:
+#line 1912 "objc-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
@@ -3903,8 +3969,8 @@ case 358:
                    pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 359:
-#line 1921 "objc-parse.y"
+case 360:
+#line 1923 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
@@ -3913,42 +3979,42 @@ case 359:
                  push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 360:
-#line 1929 "objc-parse.y"
+case 361:
+#line 1931 "objc-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
                  if (yychar == CONSTANT || yychar == STRING)
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); ;
     break;}
-case 361:
-#line 1935 "objc-parse.y"
+case 362:
+#line 1937 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if ( ! expand_exit_something ())
                    error ("break statement not within loop or switch"); ;
     break;}
-case 362:
-#line 1940 "objc-parse.y"
+case 363:
+#line 1942 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if (! expand_continue_loop (NULL_PTR))
                    error ("continue statement not within a loop"); ;
     break;}
-case 363:
-#line 1945 "objc-parse.y"
+case 364:
+#line 1947 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 364:
-#line 1949 "objc-parse.y"
+case 365:
+#line 1951 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 365:
-#line 1953 "objc-parse.y"
+case 366:
+#line 1955 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3959,32 +4025,32 @@ case 365:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 366:
-#line 1964 "objc-parse.y"
+case 367:
+#line 1966 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 367:
-#line 1971 "objc-parse.y"
+case 368:
+#line 1973 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 368:
-#line 1979 "objc-parse.y"
+case 369:
+#line 1981 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 369:
-#line 1985 "objc-parse.y"
+case 370:
+#line 1987 "objc-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3996,16 +4062,16 @@ case 369:
                    }
                ;
     break;}
-case 370:
-#line 1996 "objc-parse.y"
+case 371:
+#line 1998 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
-case 373:
-#line 2011 "objc-parse.y"
+case 374:
+#line 2013 "objc-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -4027,15 +4093,15 @@ case 373:
              }
          ;
     break;}
-case 374:
-#line 2032 "objc-parse.y"
+case 375:
+#line 2034 "objc-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 375:
-#line 2067 "objc-parse.y"
+case 376:
+#line 2069 "objc-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -4067,8 +4133,8 @@ case 375:
                    }
                  position_after_white_space (); ;
     break;}
-case 376:
-#line 2098 "objc-parse.y"
+case 377:
+#line 2100 "objc-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -4100,8 +4166,8 @@ case 376:
                    }
                  position_after_white_space (); ;
     break;}
-case 377:
-#line 2129 "objc-parse.y"
+case 378:
+#line 2131 "objc-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -4117,8 +4183,8 @@ case 377:
                    }
                  position_after_white_space (); ;
     break;}
-case 378:
-#line 2144 "objc-parse.y"
+case 379:
+#line 2146 "objc-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -4129,53 +4195,53 @@ case 378:
                    }
                  position_after_white_space (); ;
     break;}
-case 379:
-#line 2159 "objc-parse.y"
+case 380:
+#line 2161 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 380:
-#line 2162 "objc-parse.y"
-{ emit_line_note (input_filename, lineno); ;
-    break;}
 case 381:
-#line 2167 "objc-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 2164 "objc-parse.y"
+{ emit_line_note (input_filename, lineno); ;
     break;}
-case 383:
-#line 2174 "objc-parse.y"
+case 382:
+#line 2169 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 386:
-#line 2181 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+case 384:
+#line 2176 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 387:
-#line 2186 "objc-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 2183 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 388:
-#line 2191 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
+#line 2188 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 389:
 #line 2193 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 390:
-#line 2199 "objc-parse.y"
+#line 2195 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
+    break;}
+case 391:
+#line 2201 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 391:
-#line 2203 "objc-parse.y"
+case 392:
+#line 2205 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 393:
-#line 2211 "objc-parse.y"
+case 394:
+#line 2213 "objc-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -4184,20 +4250,20 @@ case 393:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 394:
-#line 2219 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
-    break;}
 case 395:
 #line 2221 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 396:
-#line 2227 "objc-parse.y"
-{ yyval.ttype = get_parm_info (0); ;
+#line 2223 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 397:
 #line 2229 "objc-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
+    break;}
+case 398:
+#line 2231 "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.
@@ -4208,24 +4274,24 @@ case 397:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 398:
-#line 2239 "objc-parse.y"
-{ yyval.ttype = get_parm_info (1); ;
-    break;}
 case 399:
 #line 2241 "objc-parse.y"
-{ yyval.ttype = get_parm_info (0); ;
+{ yyval.ttype = get_parm_info (1); ;
     break;}
 case 400:
-#line 2246 "objc-parse.y"
-{ push_parm_decl (yyvsp[0].ttype); ;
+#line 2243 "objc-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
     break;}
 case 401:
 #line 2248 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 402:
-#line 2255 "objc-parse.y"
+#line 2250 "objc-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 403:
+#line 2257 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4235,8 +4301,8 @@ case 402:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 403:
-#line 2264 "objc-parse.y"
+case 404:
+#line 2266 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4246,8 +4312,8 @@ case 403:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 404:
-#line 2273 "objc-parse.y"
+case 405:
+#line 2275 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4257,8 +4323,8 @@ case 404:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 405:
-#line 2282 "objc-parse.y"
+case 406:
+#line 2284 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4268,8 +4334,8 @@ case 405:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 406:
-#line 2292 "objc-parse.y"
+case 407:
+#line 2294 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4279,49 +4345,49 @@ case 406:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 407:
-#line 2306 "objc-parse.y"
+case 408:
+#line 2308 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 408:
-#line 2310 "objc-parse.y"
+case 409:
+#line 2312 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 410:
-#line 2318 "objc-parse.y"
+case 411:
+#line 2320 "objc-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
                      error ("`...' in old-style identifier list");
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 411:
-#line 2328 "objc-parse.y"
-{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
-    break;}
 case 412:
 #line 2330 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 413:
-#line 2336 "objc-parse.y"
-{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+#line 2332 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 414:
 #line 2338 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 415:
-#line 2343 "objc-parse.y"
+#line 2340 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 416:
+#line 2345 "objc-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
-case 421:
-#line 2356 "objc-parse.y"
+case 422:
+#line 2358 "objc-parse.y"
 {
                  if (objc_implementation_context)
                     {
@@ -4333,115 +4399,115 @@ case 421:
                    warning ("`@end' must appear in an implementation context");
                ;
     break;}
-case 422:
-#line 2371 "objc-parse.y"
-{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
-    break;}
 case 423:
 #line 2373 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 424:
-#line 2378 "objc-parse.y"
+#line 2375 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 425:
+#line 2380 "objc-parse.y"
 {
                  objc_declare_class (yyvsp[-1].ttype);
                ;
     break;}
-case 425:
-#line 2384 "objc-parse.y"
+case 426:
+#line 2386 "objc-parse.y"
 {
                  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
                ;
     break;}
-case 426:
-#line 2390 "objc-parse.y"
+case 427:
+#line 2392 "objc-parse.y"
 {
                  objc_interface_context = objc_ivar_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
                   objc_public_flag = 0;
                ;
     break;}
-case 427:
-#line 2396 "objc-parse.y"
+case 428:
+#line 2398 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
-case 428:
-#line 2401 "objc-parse.y"
+case 429:
+#line 2403 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 429:
-#line 2407 "objc-parse.y"
+case 430:
+#line 2409 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 430:
-#line 2414 "objc-parse.y"
+case 431:
+#line 2416 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 431:
-#line 2420 "objc-parse.y"
+case 432:
+#line 2422 "objc-parse.y"
 {
                  objc_interface_context = objc_ivar_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
                   objc_public_flag = 0;
                ;
     break;}
-case 432:
-#line 2426 "objc-parse.y"
+case 433:
+#line 2428 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
-case 433:
-#line 2431 "objc-parse.y"
+case 434:
+#line 2433 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 434:
-#line 2437 "objc-parse.y"
+case 435:
+#line 2439 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 435:
-#line 2444 "objc-parse.y"
+case 436:
+#line 2446 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 436:
-#line 2450 "objc-parse.y"
+case 437:
+#line 2452 "objc-parse.y"
 {
                  objc_implementation_context = objc_ivar_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
                   objc_public_flag = 0;
                ;
     break;}
-case 437:
-#line 2456 "objc-parse.y"
+case 438:
+#line 2458 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 438:
-#line 2462 "objc-parse.y"
+case 439:
+#line 2464 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
@@ -4449,23 +4515,23 @@ case 438:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 439:
-#line 2470 "objc-parse.y"
+case 440:
+#line 2472 "objc-parse.y"
 {
                  objc_implementation_context = objc_ivar_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
                   objc_public_flag = 0;
                ;
     break;}
-case 440:
-#line 2476 "objc-parse.y"
+case 441:
+#line 2478 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 441:
-#line 2482 "objc-parse.y"
+case 442:
+#line 2484 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
@@ -4473,23 +4539,23 @@ case 441:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 442:
-#line 2490 "objc-parse.y"
+case 443:
+#line 2492 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 443:
-#line 2497 "objc-parse.y"
+case 444:
+#line 2499 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 444:
-#line 2503 "objc-parse.y"
+case 445:
+#line 2505 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
@@ -4497,30 +4563,30 @@ case 444:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 445:
-#line 2513 "objc-parse.y"
+case 446:
+#line 2515 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  objc_interface_context
                    = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 446:
-#line 2519 "objc-parse.y"
+case 447:
+#line 2521 "objc-parse.y"
 {
                  forget_protocol_qualifiers();
                  finish_protocol(objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 447:
-#line 2528 "objc-parse.y"
+case 448:
+#line 2530 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
-case 449:
-#line 2536 "objc-parse.y"
+case 450:
+#line 2538 "objc-parse.y"
 {
                  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
                    yyval.ttype = yyvsp[-1].ttype;
@@ -4528,57 +4594,57 @@ case 449:
                    YYERROR1;
                ;
     break;}
-case 452:
-#line 2550 "objc-parse.y"
+case 453:
+#line 2552 "objc-parse.y"
 { objc_public_flag = 2; ;
     break;}
-case 453:
-#line 2551 "objc-parse.y"
+case 454:
+#line 2553 "objc-parse.y"
 { objc_public_flag = 0; ;
     break;}
-case 454:
-#line 2552 "objc-parse.y"
+case 455:
+#line 2554 "objc-parse.y"
 { objc_public_flag = 1; ;
     break;}
-case 455:
-#line 2557 "objc-parse.y"
+case 456:
+#line 2559 "objc-parse.y"
 {
                   yyval.ttype = NULL_TREE;
                 ;
     break;}
-case 457:
-#line 2562 "objc-parse.y"
+case 458:
+#line 2564 "objc-parse.y"
 {
                   if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified");
                 ;
     break;}
-case 458:
-#line 2580 "objc-parse.y"
+case 459:
+#line 2582 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 459:
-#line 2586 "objc-parse.y"
+case 460:
+#line 2588 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 460:
-#line 2592 "objc-parse.y"
+case 461:
+#line 2594 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 461:
-#line 2597 "objc-parse.y"
+case 462:
+#line 2599 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 464:
-#line 2604 "objc-parse.y"
+case 465:
+#line 2606 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4586,16 +4652,16 @@ case 464:
                                              NULL_TREE);
                 ;
     break;}
-case 465:
-#line 2611 "objc-parse.y"
+case 466:
+#line 2613 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
                                              yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
                 ;
     break;}
-case 466:
-#line 2617 "objc-parse.y"
+case 467:
+#line 2619 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4603,8 +4669,8 @@ case 466:
                                              current_declspecs, yyvsp[0].ttype);
                 ;
     break;}
-case 467:
-#line 2627 "objc-parse.y"
+case 468:
+#line 2629 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4613,8 +4679,8 @@ case 467:
                    fatal ("method definition not in class context");
                ;
     break;}
-case 468:
-#line 2635 "objc-parse.y"
+case 469:
+#line 2637 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_class_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4622,21 +4688,21 @@ case 468:
                  objc_method_context = yyvsp[0].ttype;
                ;
     break;}
-case 469:
-#line 2642 "objc-parse.y"
+case 470:
+#line 2644 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
-case 470:
-#line 2646 "objc-parse.y"
+case 471:
+#line 2648 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
-case 471:
-#line 2652 "objc-parse.y"
+case 472:
+#line 2654 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4645,8 +4711,8 @@ case 471:
                    fatal ("method definition not in class context");
                ;
     break;}
-case 472:
-#line 2660 "objc-parse.y"
+case 473:
+#line 2662 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4654,268 +4720,268 @@ case 472:
                  objc_method_context = yyvsp[0].ttype;
                ;
     break;}
-case 473:
-#line 2667 "objc-parse.y"
+case 474:
+#line 2669 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
-case 474:
-#line 2671 "objc-parse.y"
+case 475:
+#line 2673 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
-case 476:
-#line 2683 "objc-parse.y"
+case 477:
+#line 2685 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
-case 481:
-#line 2690 "objc-parse.y"
+case 482:
+#line 2692 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
-case 485:
-#line 2700 "objc-parse.y"
+case 486:
+#line 2702 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
                  objc_inherit_code = CLASS_METHOD_DECL;
                ;
     break;}
-case 486:
-#line 2706 "objc-parse.y"
+case 487:
+#line 2708 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
                  add_class_method (objc_interface_context, yyvsp[0].ttype);
                ;
     break;}
-case 488:
-#line 2714 "objc-parse.y"
+case 489:
+#line 2716 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
                  objc_inherit_code = INSTANCE_METHOD_DECL;
                ;
     break;}
-case 489:
-#line 2720 "objc-parse.y"
+case 490:
+#line 2722 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_interface_context, yyvsp[0].ttype);
                ;
     break;}
-case 491:
-#line 2730 "objc-parse.y"
+case 492:
+#line 2732 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
-case 492:
-#line 2735 "objc-parse.y"
+case 493:
+#line 2737 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
-case 493:
-#line 2740 "objc-parse.y"
+case 494:
+#line 2742 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 494:
-#line 2745 "objc-parse.y"
+case 495:
+#line 2747 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 503:
-#line 2775 "objc-parse.y"
+case 504:
+#line 2777 "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 504:
-#line 2780 "objc-parse.y"
-{ shadow_tag (yyvsp[-1].ttype); ;
-    break;}
 case 505:
 #line 2782 "objc-parse.y"
-{ pedwarn ("empty declaration"); ;
+{ shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 506:
-#line 2787 "objc-parse.y"
-{ push_parm_decl (yyvsp[0].ttype); ;
+#line 2784 "objc-parse.y"
+{ pedwarn ("empty declaration"); ;
     break;}
 case 507:
 #line 2789 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 508:
-#line 2797 "objc-parse.y"
+#line 2791 "objc-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 509:
+#line 2799 "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 2802 "objc-parse.y"
+case 510:
+#line 2804 "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 2807 "objc-parse.y"
+case 511:
+#line 2809 "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 511:
-#line 2815 "objc-parse.y"
+case 512:
+#line 2817 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
-case 512:
-#line 2819 "objc-parse.y"
+case 513:
+#line 2821 "objc-parse.y"
 {
                  /* oh what a kludge! */
                  yyval.ttype = (tree)1;
                ;
     break;}
-case 513:
-#line 2824 "objc-parse.y"
+case 514:
+#line 2826 "objc-parse.y"
 {
                  pushlevel (0);
                ;
     break;}
-case 514:
-#line 2828 "objc-parse.y"
+case 515:
+#line 2830 "objc-parse.y"
 {
                  /* returns a tree list node generated by get_parm_info */
                  yyval.ttype = yyvsp[0].ttype;
                  poplevel (0, 0, 0);
                ;
     break;}
-case 517:
-#line 2843 "objc-parse.y"
+case 518:
+#line 2845 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 522:
-#line 2856 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
 case 523:
-#line 2857 "objc-parse.y"
+#line 2858 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 524:
-#line 2858 "objc-parse.y"
+#line 2859 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 525:
-#line 2859 "objc-parse.y"
+#line 2860 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 526:
-#line 2860 "objc-parse.y"
+#line 2861 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 527:
-#line 2861 "objc-parse.y"
+#line 2862 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 528:
-#line 2862 "objc-parse.y"
+#line 2863 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 529:
-#line 2863 "objc-parse.y"
+#line 2864 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 530:
-#line 2864 "objc-parse.y"
+#line 2865 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 531:
-#line 2865 "objc-parse.y"
+#line 2866 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 532:
-#line 2866 "objc-parse.y"
+#line 2867 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 533:
-#line 2867 "objc-parse.y"
+#line 2868 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 534:
-#line 2868 "objc-parse.y"
+#line 2869 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 535:
-#line 2869 "objc-parse.y"
+#line 2870 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 536:
-#line 2870 "objc-parse.y"
+#line 2871 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 537:
-#line 2871 "objc-parse.y"
+#line 2872 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 538:
-#line 2872 "objc-parse.y"
+#line 2873 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 539:
-#line 2873 "objc-parse.y"
+#line 2874 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 540:
-#line 2874 "objc-parse.y"
+#line 2875 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 541:
+#line 2876 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
-case 543:
-#line 2880 "objc-parse.y"
+case 544:
+#line 2882 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 544:
-#line 2885 "objc-parse.y"
+case 545:
+#line 2887 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 545:
-#line 2890 "objc-parse.y"
+case 546:
+#line 2892 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 546:
-#line 2895 "objc-parse.y"
+case 547:
+#line 2897 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 550:
-#line 2908 "objc-parse.y"
+case 551:
+#line 2910 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 551:
-#line 2916 "objc-parse.y"
+case 552:
+#line 2918 "objc-parse.y"
 {
                  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
                    /* just return the expr., remove a level of indirection */
@@ -4925,77 +4991,77 @@ case 551:
                    yyval.ttype = yyvsp[0].ttype;
                ;
     break;}
-case 552:
-#line 2928 "objc-parse.y"
+case 553:
+#line 2930 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 553:
-#line 2932 "objc-parse.y"
+case 554:
+#line 2934 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 555:
-#line 2940 "objc-parse.y"
+case 556:
+#line 2942 "objc-parse.y"
 {
                  yyval.ttype = get_class_reference (yyvsp[0].ttype);
                ;
     break;}
-case 556:
-#line 2947 "objc-parse.y"
-{ objc_receiver_context = 1; ;
-    break;}
 case 557:
 #line 2949 "objc-parse.y"
-{ objc_receiver_context = 0; ;
+{ objc_receiver_context = 1; ;
     break;}
 case 558:
 #line 2951 "objc-parse.y"
+{ objc_receiver_context = 0; ;
+    break;}
+case 559:
+#line 2953 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
                ;
     break;}
-case 562:
-#line 2964 "objc-parse.y"
+case 563:
+#line 2966 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 563:
-#line 2971 "objc-parse.y"
+case 564:
+#line 2973 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
                ;
     break;}
-case 564:
-#line 2975 "objc-parse.y"
+case 565:
+#line 2977 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
                ;
     break;}
-case 565:
-#line 2982 "objc-parse.y"
+case 566:
+#line 2984 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 566:
-#line 2989 "objc-parse.y"
+case 567:
+#line 2991 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 567:
-#line 2998 "objc-parse.y"
+case 568:
+#line 3000 "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 542 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5190,6 +5256,30 @@ yyerrhandle:
 
   yystate = yyn;
   goto yynewstate;
+
+ yyacceptlab:
+  /* YYACCEPT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 0;
+
+ yyabortlab:
+  /* YYABORT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 1;
 }
-#line 3003 "objc-parse.y"
+#line 3005 "objc-parse.y"
 
index 1ad13219c4d2902da828914086723cdcb77fda15..09d9a6a88870ab4bbb349bd059efb4a27e15f72c 100644 (file)
@@ -102,7 +102,7 @@ char *language_string = "GNU Obj-C";
 %token SIZEOF ENUM STRUCT UNION IF ELSE WHILE DO FOR SWITCH CASE DEFAULT
 %token BREAK CONTINUE RETURN GOTO ASM_KEYWORD TYPEOF ALIGNOF
 %token ATTRIBUTE EXTENSION LABEL
-%token REALPART IMAGPART
+%token REALPART IMAGPART VA_ARG
 
 /* Add precedence rules to solve dangling else s/r conflict */
 %nonassoc IF
@@ -458,6 +458,8 @@ unary_expr:
                { $$ = build_unary_op (REALPART_EXPR, $2, 0); }
        | IMAGPART cast_expr %prec UNARY
                { $$ = build_unary_op (IMAGPART_EXPR, $2, 0); }
+       | VA_ARG '(' expr_no_commas ',' typename ')'
+               { $$ = build_va_arg ($3, groktypename ($5)); }
        ;
 
 sizeof: