Index: Singular/grammar.cc
===================================================================
--- Singular/grammar.cc	(revision e5324ae0d87043f3dd2f19e754586d0028d614cc)
+++ Singular/grammar.cc	(revision e73abe2246b5f27f16872412d2daae5888ef54f1)
@@ -628,5 +628,5 @@
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1955
+#define YYLAST   1814
 
 /* YYNTOKENS -- Number of terminals.  */
@@ -698,9 +698,9 @@
       21,    24,    26,    28,    30,    32,    34,    36,    38,    40,
       43,    45,    47,    49,    51,    53,    55,    57,    59,    61,
-      64,    66,    68,    72,    76,    81,    85,    87,    89,    91,
-      96,   100,   102,   104,   106,   110,   117,   122,   127,   132,
-     136,   141,   146,   150,   155,   162,   171,   178,   187,   192,
-     197,   204,   209,   216,   225,   234,   238,   243,   252,   257,
-     266,   271,   275,   281,   282,   288,   291,   293,   296,   299,
+      64,    66,    68,    72,    76,    80,    85,    89,    91,    93,
+      95,   100,   104,   106,   108,   110,   114,   121,   126,   131,
+     136,   140,   145,   150,   154,   159,   166,   175,   182,   191,
+     196,   201,   208,   213,   220,   229,   238,   242,   247,   256,
+     261,   270,   275,   279,   285,   286,   292,   295,   297,   300,
      303,   307,   311,   315,   319,   323,   327,   331,   335,   339,
      343,   346,   349,   352,   355,   357,   361,   364,   367,   370,
@@ -724,32 +724,32 @@
       -1,   189,    -1,   180,    -1,   181,    -1,   183,    -1,   184,
       -1,   161,   155,    -1,   114,    -1,   162,    -1,   154,    11,
-     154,    -1,   154,   143,   144,    -1,   154,   143,   155,   144,
-      -1,   134,   155,   135,    -1,   112,    -1,   127,    -1,   164,
-      -1,    15,   143,   156,   144,    -1,   155,   137,   156,    -1,
-     156,    -1,   160,    -1,   154,    -1,   143,   155,   144,    -1,
-     156,   134,   156,   137,   156,   135,    -1,   156,   134,   156,
-     135,    -1,    98,   143,   156,   144,    -1,    99,   143,   155,
-     144,    -1,    99,   143,   144,    -1,   100,   143,   156,   144,
-      -1,   101,   143,   155,   144,    -1,   101,   143,   144,    -1,
-      90,   143,   156,   144,    -1,    91,   143,   156,   137,   156,
-     144,    -1,    92,   143,   156,   137,   156,   137,   156,   144,
-      -1,    95,   143,   156,   137,   156,   144,    -1,    95,   143,
-     156,   137,   156,   137,   156,   144,    -1,    93,   143,   156,
-     144,    -1,    94,   143,   156,   144,    -1,    93,   143,   156,
-     137,   156,   144,    -1,    96,   143,   156,   144,    -1,    96,
-     143,   156,   137,   156,   144,    -1,    94,   143,   156,   137,
-     156,   137,   156,   144,    -1,    96,   143,   156,   137,   156,
-     137,   156,   144,    -1,    97,   143,   144,    -1,    97,   143,
-     155,   144,    -1,   171,   143,   156,   137,   156,   137,   156,
-     144,    -1,   171,   143,   156,   144,    -1,    16,   143,   165,
-     137,   165,   137,   169,   144,    -1,    16,   143,   156,   144,
-      -1,   158,   156,   159,    -1,   158,   156,   128,   156,   159,
-      -1,    -1,   119,   143,   157,   156,   144,    -1,   120,   143,
-      -1,   144,    -1,   156,    10,    -1,   156,     7,    -1,   156,
-     131,   156,    -1,   156,   132,   156,    -1,   156,   133,   156,
-      -1,   156,   136,   156,    -1,   156,   129,   156,    -1,   156,
-     139,   156,    -1,   156,     9,   156,    -1,   156,     4,   156,
-      -1,   156,     3,   156,    -1,   156,   140,   156,    -1,   156,
-     145,   156,    -1,     8,   156,    -1,   132,   156,    -1,   163,
+     154,    -1,   154,   145,   154,    -1,   154,   143,   144,    -1,
+     154,   143,   155,   144,    -1,   134,   155,   135,    -1,   112,
+      -1,   127,    -1,   164,    -1,    15,   143,   156,   144,    -1,
+     155,   137,   156,    -1,   156,    -1,   160,    -1,   154,    -1,
+     143,   155,   144,    -1,   156,   134,   156,   137,   156,   135,
+      -1,   156,   134,   156,   135,    -1,    98,   143,   156,   144,
+      -1,    99,   143,   155,   144,    -1,    99,   143,   144,    -1,
+     100,   143,   156,   144,    -1,   101,   143,   155,   144,    -1,
+     101,   143,   144,    -1,    90,   143,   156,   144,    -1,    91,
+     143,   156,   137,   156,   144,    -1,    92,   143,   156,   137,
+     156,   137,   156,   144,    -1,    95,   143,   156,   137,   156,
+     144,    -1,    95,   143,   156,   137,   156,   137,   156,   144,
+      -1,    93,   143,   156,   144,    -1,    94,   143,   156,   144,
+      -1,    93,   143,   156,   137,   156,   144,    -1,    96,   143,
+     156,   144,    -1,    96,   143,   156,   137,   156,   144,    -1,
+      94,   143,   156,   137,   156,   137,   156,   144,    -1,    96,
+     143,   156,   137,   156,   137,   156,   144,    -1,    97,   143,
+     144,    -1,    97,   143,   155,   144,    -1,   171,   143,   156,
+     137,   156,   137,   156,   144,    -1,   171,   143,   156,   144,
+      -1,    16,   143,   165,   137,   165,   137,   169,   144,    -1,
+      16,   143,   156,   144,    -1,   158,   156,   159,    -1,   158,
+     156,   128,   156,   159,    -1,    -1,   119,   143,   157,   156,
+     144,    -1,   120,   143,    -1,   144,    -1,   156,    10,    -1,
+     156,     7,    -1,   156,   131,   156,    -1,   156,   132,   156,
+      -1,   156,   133,   156,    -1,   156,   136,   156,    -1,   156,
+     129,   156,    -1,   156,   139,   156,    -1,   156,     9,   156,
+      -1,   156,     4,   156,    -1,   156,     3,   156,    -1,   156,
+     140,   156,    -1,     8,   156,    -1,   132,   156,    -1,   163,
      170,    -1,   155,   128,    -1,   113,    -1,   146,   156,   146,
       -1,    98,   154,    -1,    99,   154,    -1,   100,   154,    -1,
@@ -789,9 +789,9 @@
      415,   466,   467,   468,   469,   470,   471,   472,   473,   477,
      480,   481,   482,   483,   484,   485,   486,   487,   488,   491,
-     498,   503,   507,   511,   515,   528,   556,   580,   586,   592,
-     599,   610,   616,   621,   622,   623,   627,   631,   635,   639,
+     498,   503,   507,   511,   515,   519,   532,   560,   584,   590,
+     596,   603,   614,   620,   625,   626,   627,   631,   635,   639,
      643,   647,   651,   655,   659,   663,   667,   671,   675,   679,
      683,   687,   691,   695,   699,   703,   707,   711,   715,   719,
-     723,   727,   731,   749,   748,   766,   774,   783,   787,   791,
+     723,   727,   731,   735,   753,   752,   770,   778,   787,   791,
      795,   799,   803,   807,   811,   815,   819,   823,   827,   831,
      835,   842,   849,   850,   869,   870,   882,   887,   892,   896,
@@ -878,8 +878,8 @@
      152,   152,   152,   152,   152,   152,   152,   152,   152,   153,
      154,   154,   154,   154,   154,   154,   154,   154,   154,   154,
-     155,   155,   156,   156,   156,   156,   156,   156,   156,   156,
+     154,   155,   155,   156,   156,   156,   156,   156,   156,   156,
      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
-     156,   156,   156,   157,   156,   158,   159,   160,   160,   160,
+     156,   156,   156,   156,   157,   156,   158,   159,   160,   160,
      160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
      160,   160,   161,   161,   162,   162,   163,   163,   163,   163,
@@ -899,9 +899,9 @@
        2,     1,     1,     1,     1,     1,     1,     1,     1,     2,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
-       1,     1,     3,     3,     4,     3,     1,     1,     1,     4,
-       3,     1,     1,     1,     3,     6,     4,     4,     4,     3,
-       4,     4,     3,     4,     6,     8,     6,     8,     4,     4,
-       6,     4,     6,     8,     8,     3,     4,     8,     4,     8,
-       4,     3,     5,     0,     5,     2,     1,     2,     2,     3,
+       1,     1,     3,     3,     3,     4,     3,     1,     1,     1,
+       4,     3,     1,     1,     1,     3,     6,     4,     4,     4,
+       3,     4,     4,     3,     4,     6,     8,     6,     8,     4,
+       4,     6,     4,     6,     8,     8,     3,     4,     8,     4,
+       8,     4,     3,     5,     0,     5,     2,     1,     2,     2,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        2,     2,     2,     2,     1,     3,     2,     2,     2,     2,
@@ -923,36 +923,36 @@
      147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,   146,     0,
-     104,    36,    94,    30,     0,   154,   155,     0,     0,     0,
-       0,     0,     8,     0,     0,     0,    37,     0,     0,     0,
-       9,     0,     0,     3,     4,    13,     0,    20,    43,   150,
-      41,     0,    42,     0,    31,     0,    38,     0,    16,    17,
+     104,    37,    94,    30,     0,   154,   155,     0,     0,     0,
+       0,     0,     8,     0,     0,     0,    38,     0,     0,     0,
+       9,     0,     0,     3,     4,    13,     0,    20,    44,   150,
+      42,     0,    43,     0,    31,     0,    39,     0,    16,    17,
       18,    21,    22,    23,     0,    25,    26,     0,    27,    28,
       11,    12,    14,    15,    24,     7,    10,     0,     0,     0,
-       0,     0,     0,    37,    90,     0,     0,   103,    31,     0,
+       0,     0,     0,    38,    90,     0,     0,   103,    31,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    96,
        0,    97,     0,    98,     0,    99,     0,    19,   123,     0,
-     121,   124,     0,   149,     0,   152,    73,    75,     0,     0,
+     121,   124,     0,   149,     0,   152,    74,    76,     0,     0,
        0,     0,     0,   162,   161,   145,   118,    91,     0,     0,
-       0,     5,     0,     0,    93,     0,     0,     0,    78,     0,
-      77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     5,     0,     0,     0,    93,     0,     0,     0,    79,
+       0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
        0,    29,   114,     0,     6,    92,     0,   101,     0,   144,
      148,     0,   158,     0,   105,     0,     0,     0,     0,     0,
-       0,     0,     0,    65,     0,     0,    49,     0,     0,    52,
+       0,     0,     0,    66,     0,     0,    50,     0,     0,    53,
        0,   122,   120,     0,     0,     0,     0,     0,     0,   141,
        0,     0,     0,   159,     0,     0,     0,   156,   164,     0,
-       0,    35,    44,    95,    32,    33,     0,    40,    87,    86,
-      85,    83,    79,    80,    81,     0,    82,    84,    88,    89,
-       0,    76,    71,   102,     0,     0,   125,     0,    39,    41,
-      70,     0,    53,     0,     0,     0,    58,     0,    59,     0,
-       0,    61,    66,    47,    48,    50,    51,   132,   130,   126,
+       0,    36,    45,    95,    32,    34,     0,    33,    41,    88,
+      87,    86,    84,    80,    81,    82,     0,    83,    85,    89,
+       0,    77,    72,   102,     0,     0,   125,     0,    40,    42,
+      71,     0,    54,     0,     0,     0,    59,     0,    60,     0,
+       0,    62,    67,    48,    49,    51,    52,   132,   130,   126,
      127,   128,   129,     0,   133,   131,   160,     0,     0,     0,
-     163,   119,    34,    46,     0,     0,     0,    68,     0,   105,
+     163,   119,    35,    47,     0,     0,     0,    69,     0,   105,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    74,   157,   151,   153,
-       0,    72,     0,     0,     0,     0,     0,    54,     0,    60,
-       0,     0,    56,     0,    62,   140,   138,   134,   135,   136,
-     137,   139,    45,     0,     0,     0,   106,   107,     0,   108,
+       0,     0,     0,     0,     0,     0,    75,   157,   151,   153,
+       0,    73,     0,     0,     0,     0,     0,    55,     0,    61,
+       0,     0,    57,     0,    63,   140,   138,   134,   135,   136,
+     137,   139,    46,     0,     0,     0,   106,   107,     0,   108,
      112,     0,     0,     0,     0,     0,     0,     0,     0,   110,
-       0,     0,    69,    55,    63,    57,    64,    67,   100,   143,
+       0,     0,    70,    56,    64,    58,    65,    68,   100,   143,
        0,   113,     0,   111,   109
 };
@@ -970,43 +970,43 @@
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -321
+#define YYPACT_NINF -319
 static const yytype_int16 yypact[] =
 {
-    -321,   253,  -321,  -124,  1643,  -321,  -321,   610,  -114,  -321,
-    -321,   -82,   -74,   -68,   -63,   -60,   -52,   -46,   -45,  1076,
-    1276,  1331,  1752,   -32,  1643,  -106,   366,   -43,  -321,  1643,
-    -321,  -321,  -321,  -321,   -73,  -321,  -321,   -58,   -40,   -38,
-     -55,   -35,  -321,   -53,   -33,  1701,    -6,    -6,  1643,  1643,
-    -321,  1643,  1643,  -321,  -321,  -321,   -26,  -321,    -2,  -111,
-    1223,  1643,  -321,  1643,  -321,  -122,  -321,  1801,  -321,  -321,
-    -321,  -321,   -13,  -321,   366,  -321,  -321,  1643,  -321,  -321,
-    -321,  -321,  -321,  -321,  -321,  -321,  -321,   -18,  -114,   -11,
-     -10,    -9,     2,  -321,     3,    10,  1643,    -2,    27,  1758,
-    1643,  1643,  1643,  1643,  1643,  1643,  1643,  1356,  1643,    -2,
-    1413,    -2,  1643,    -2,  1471,    -2,     5,  -321,    20,    17,
-    -321,    -2,  1809,  1223,   -25,  -321,  -321,  -321,    49,  1643,
-      64,  1528,   610,  1223,    41,  -321,  -321,     3,  -117,  -113,
-      61,  -321,   366,  1586,  -321,  1643,  1643,  1643,  -321,  1643,
-    -321,  1643,  1643,  1643,  1643,  1643,  1643,  1643,  1643,  1643,
-      92,    20,  -321,   366,  -321,  -321,  1643,    -8,   366,    71,
-    1223,   482,  -321,  1643,   499,    50,   524,   541,   569,   176,
-     272,   638,   291,  -321,   -98,   680,  -321,   -94,   708,  -321,
-     -90,  -321,  -321,   -54,    40,    45,    52,    54,    58,  -321,
-      96,    59,    80,  -321,  1643,    94,   725,  -321,  -321,   -88,
-      67,  -321,  -321,  -321,  -321,  -321,   -86,  1223,  1275,   836,
-     836,    77,    -5,    -5,     3,   326,    31,    18,    -5,  -321,
-    1643,  -321,  -321,    -2,   385,  1643,    -2,  1758,  -321,   742,
-    -321,  1758,  -321,  1643,  1643,  1643,  -321,  1643,  -321,  1643,
-    1643,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-    -321,  -321,  -321,   884,  -321,  -321,  -321,   777,   101,   -39,
-    -321,  -321,  -321,  -321,  1643,   794,  1643,  -321,   819,  1223,
-      78,  1643,    79,   881,   933,   953,   970,   430,   465,    74,
-      83,    85,    86,    90,    91,    97,  -321,  -321,  -321,  -321,
-     985,  -321,  1020,   104,  1758,   -85,  -101,  -321,  1643,  -321,
-    1643,  1643,  -321,  1643,  -321,  -321,  -321,  -321,  -321,  -321,
-    -321,  -321,  -321,  1643,  1643,   105,  -321,  -321,   130,   103,
-    -321,   100,  1035,  1119,  1136,  1174,  1191,  1208,  -101,   110,
-     107,  1643,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-     130,  -321,   -71,  -321,  -321
+    -319,   253,  -319,  -134,  1202,  -319,  -319,   366,  -129,  -319,
+    -319,  -125,  -121,  -105,  -100,   -69,   -63,   -60,   -52,   890,
+    1527,  1566,  1650,   -54,  1202,  -107,  1427,   -50,  -319,  1202,
+    -319,  -319,  -319,  -319,   -80,  -319,  -319,   -53,   -49,   -46,
+     -12,   -43,  -319,    -7,   -39,  1260,    -5,    -5,  1202,  1202,
+    -319,  1202,  1202,  -319,  -319,  -319,   -77,  -319,     2,  -113,
+    1589,  1202,  -319,  1202,  -319,   -87,  -319,  1660,  -319,  -319,
+    -319,  -319,   -30,  -319,  1427,  -319,  -319,  1202,  -319,  -319,
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,   -35,  -129,   -31,
+     -19,   -18,   -17,  -319,    19,   -15,  1202,     2,    23,  1317,
+    1202,  1202,  1202,  1202,  1202,  1202,  1202,   915,  1202,     2,
+     972,     2,  1202,     2,  1030,     2,   -28,  -319,    -8,    11,
+    -319,     2,  1668,  1589,   -33,  -319,  -319,  -319,    30,  1202,
+      46,  1087,   366,  1589,    22,  -319,  -319,    19,   -82,  -117,
+      61,  -319,  1427,  1145,  1427,  -319,  1202,  1202,  1202,  -319,
+    1202,  -319,  1202,  1202,  1202,  1202,  1202,  1202,  1202,  1202,
+      92,    -8,  -319,  1427,  -319,  -319,  1202,    -2,  1427,     5,
+    1589,   443,  -319,  1202,   464,    27,   478,  1337,  1359,   176,
+     272,  1374,   291,  -319,   -98,   492,  -319,   -95,   523,  -319,
+     -90,  -319,  -319,   -58,    16,    31,    32,    34,    40,  -319,
+      -6,    45,    55,  -319,  1202,    81,   537,  -319,  -319,   -85,
+      49,  -319,  -319,  -319,    51,  -319,   -71,  -319,  1589,  1613,
+      77,    77,   403,    18,    18,    19,   827,     1,  1625,    18,
+    1202,  -319,  -319,     2,   326,  1202,     2,  1317,  -319,  1386,
+    -319,  1317,  -319,  1202,  1202,  1202,  -319,  1202,  -319,  1202,
+    1202,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,   633,  -319,  -319,  -319,   581,    87,   -99,
+    -319,  -319,  -319,  -319,  1202,   630,  1202,  -319,  1416,  1589,
+      62,  1202,    65,   675,  1431,   689,  1443,   385,   429,    59,
+      60,    68,    70,    71,    72,    74,  -319,  -319,  -319,  -319,
+    1455,  -319,  1475,    88,  1317,   -65,  -106,  -319,  1202,  -319,
+    1202,  1202,  -319,  1202,  -319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  1202,  1202,    90,  -319,  -319,   116,    91,
+    -319,    86,   719,   733,   747,   768,   782,  1524,  -106,    96,
+      93,  1202,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+     116,  -319,   -62,  -319,  -319
 };
 
@@ -1014,9 +1014,9 @@
 static const yytype_int16 yypgoto[] =
 {
-    -321,  -321,  -321,  -321,  -321,  -321,  -321,    14,    -1,    15,
-    -321,  -321,   -27,  -321,  -321,   242,   210,    47,  -230,  -321,
-    -320,   -93,   -67,   108,     0,  -321,  -321,  -321,  -321,  -321,
-    -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-    -321,  -321,  -321,  -321
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,    14,    -1,    15,
+    -319,  -319,   -70,  -319,  -319,   228,   193,    43,  -235,  -319,
+    -318,  -111,   -97,    73,     0,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319
 };
 
@@ -1028,237 +1028,223 @@
 static const yytype_int16 yytable[] =
 {
-      59,    67,   148,   142,   119,   150,   162,   280,   339,   142,
-     148,   282,   327,   150,    86,   163,   164,   144,   211,    94,
-     145,    97,   147,   118,   145,   148,   145,   149,   150,    99,
-     339,   212,   120,   109,   111,   113,   115,   124,   148,   145,
-     121,   150,   328,   145,   123,    67,   252,   145,   138,   145,
-     254,   145,   145,   125,   256,   128,   270,   130,   272,   326,
-     133,   100,   161,   137,   146,   147,   145,   140,   148,   101,
-     149,   150,   298,   354,   325,   102,   160,   299,   116,   117,
-     103,   167,   142,   104,   148,   202,   203,   150,   169,    96,
-     257,   105,   170,   135,   136,   146,   147,   106,   107,   148,
-     122,   149,   150,   126,    30,   127,   184,   142,   129,   187,
-     131,   171,   141,   190,   174,   176,   177,   178,   179,   180,
-     181,   182,   201,   185,   168,    96,   235,   188,   154,   155,
-     209,   156,   108,   110,   112,   143,   200,   155,   172,   156,
-     159,   143,   216,   191,   206,   114,    97,   151,   159,   152,
-     153,   154,   155,   166,   156,   192,   214,   145,   158,   205,
-     217,   218,   219,   159,   220,   155,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   207,   159,   233,   163,   146,
-     147,   234,   236,   148,   258,   149,   150,   241,   239,   259,
-     151,   266,   152,   153,   154,   155,   260,   156,   261,   162,
-     157,   158,   262,   265,   268,   271,   159,   213,   152,   153,
-     154,   155,   297,   156,   143,   304,   306,   158,   315,   267,
-     230,   151,   159,   152,   153,   154,   155,   316,   156,   317,
-     318,   157,   158,   263,   319,   320,   231,   159,   324,   143,
-     264,   321,   338,   327,   342,   275,   341,   350,   301,    98,
-     278,   351,   279,     2,     3,   134,   279,   353,   283,   284,
+      59,    67,   280,   119,    86,   142,   282,   327,   149,   142,
+     339,   151,   298,   142,    99,   145,   142,   299,   100,    94,
+     146,    97,   101,   118,   146,   149,   149,   212,   151,   151,
+     124,   120,   339,   109,   111,   113,   115,   328,   102,   146,
+     121,   162,   146,   103,   123,    67,   252,   146,   138,   254,
+     163,   164,   146,   211,   256,   146,   116,   117,   125,   270,
+     133,   141,   161,   137,   147,   148,   146,   140,   149,   325,
+     150,   151,   146,   272,   104,   146,   160,   202,   203,   326,
+     105,   167,   354,   106,   149,    96,   257,   151,   169,   135,
+     136,   107,   170,   122,   126,   147,   148,   127,   128,   149,
+     129,   150,   151,   130,   131,    30,   184,   168,    96,   187,
+     191,   171,   108,   190,   174,   176,   177,   178,   179,   180,
+     181,   182,   201,   185,   110,   112,   114,   188,   166,   146,
+     209,   263,   235,   162,   172,   156,   200,   143,   264,   144,
+     205,   143,   216,   144,   206,   143,    97,   144,   143,   192,
+     144,   155,   156,   156,   157,   157,   214,   207,   217,   163,
+     258,   218,   219,   220,   241,   221,   266,   222,   223,   224,
+     225,   226,   227,   228,   229,   259,   260,   233,   261,   147,
+     148,   234,   236,   149,   262,   150,   151,   271,   239,   265,
+     152,   268,   153,   154,   155,   156,   144,   157,   297,   304,
+     158,   159,   306,   315,   316,   301,   152,   213,   153,   154,
+     155,   156,   317,   157,   318,   319,   320,   159,   321,   267,
+     230,   152,   324,   153,   154,   155,   156,   338,   157,   327,
+     342,   158,   159,   350,   341,    98,   231,   351,   134,   353,
+       0,   349,   237,     0,     0,   275,     0,     0,     0,     0,
+     278,     0,   279,     2,     3,     0,   279,     0,   283,   284,
      285,     4,   286,   295,   287,   288,     5,     6,     7,     8,
-       0,   349,     0,     9,     0,   146,   147,   237,     0,   148,
-     305,   149,   150,     0,     0,     0,     0,     0,     0,   300,
-       0,   302,     0,    10,   146,   147,     0,     0,   148,     0,
-     149,   150,     0,     0,     0,   151,     0,   152,   153,   154,
-     155,     0,   156,   245,     0,   157,   158,     0,     0,   279,
-     246,   159,     0,   332,     0,   333,   334,     0,   335,   146,
-     147,     0,     0,   148,     0,   149,   150,     0,   336,   337,
+       0,     0,     0,     9,     0,   147,   148,     0,     0,   149,
+     305,   150,   151,     0,     0,     0,     0,     0,     0,   300,
+       0,   302,     0,    10,   147,   148,     0,     0,   149,     0,
+     150,   151,     0,     0,     0,   152,     0,   153,   154,   155,
+     156,     0,   157,   245,     0,   158,   159,     0,     0,   279,
+     246,     0,     0,   332,     0,   333,   334,     0,   335,   147,
+     148,     0,     0,   149,     0,   150,   151,     0,   336,   337,
      352,     0,     0,    11,    12,    13,    14,    15,    16,    17,
       18,    19,    20,    21,    22,    23,    24,    25,    26,     0,
       27,    28,    29,    30,     0,    31,    32,    33,    34,    35,
       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    87,    47,     0,     0,    48,     0,    49,   146,   147,
-       0,    50,   148,     0,   149,   150,    51,     0,     0,    52,
-       0,   151,     0,   152,   153,   154,   155,     0,   156,   247,
-       0,   157,   158,     0,     0,     0,   248,   159,     0,     0,
-     151,     0,   152,   153,   154,   155,     0,   156,   250,     0,
-     157,   158,     0,   146,   147,   251,   159,   148,     0,   149,
-     150,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   151,     0,   152,   153,   154,
-     155,   273,   156,   274,     0,   157,   158,     0,   146,   147,
-       0,   159,   148,     0,   149,   150,    30,     0,    31,    32,
-      33,     0,     0,     0,     0,   146,   147,     0,     0,   148,
-       0,   149,   150,    93,     0,     0,     0,     0,     0,     0,
-      49,     0,   146,   147,     0,     0,   148,     0,   149,   150,
-       0,     0,    52,     0,   151,     0,   152,   153,   154,   155,
-       0,   156,   276,     0,   157,   158,     0,   146,   147,   277,
-     159,   148,     0,   149,   150,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   146,   147,     0,     0,   148,     0,
-     149,   150,     0,     0,     0,     0,     0,     0,     0,   151,
-       0,   152,   153,   154,   155,     0,   156,   311,     0,   157,
-     158,     0,   146,   147,   312,   159,   148,     0,   149,   150,
+      46,    87,    47,     0,     0,    48,     0,    49,   147,   148,
+       0,    50,   149,     0,   150,   151,    51,     0,     0,    52,
+       0,   152,     0,   153,   154,   155,   156,     0,   157,   247,
+     149,   158,   159,   151,     0,     0,   248,     0,     0,     0,
+     152,     0,   153,   154,   155,   156,     0,   157,   250,     0,
+     158,   159,   147,   148,     0,   251,   149,     0,   150,   151,
+       0,     0,     0,     0,     0,     0,   147,   148,     0,     0,
+     149,     0,   150,   151,     0,   152,     0,   153,   154,   155,
+     156,     0,   157,   276,     0,   158,   159,   147,   148,     0,
+     277,   149,     0,   150,   151,     0,    30,     0,    31,    32,
+      33,   147,   148,     0,     0,   149,     0,   150,   151,     0,
+       0,     0,     0,    93,     0,   147,   148,     0,     0,   149,
+      49,   150,   151,     0,     0,     0,     0,     0,     0,    96,
+       0,     0,    52,     0,   152,     0,   153,   154,   155,   156,
+       0,   157,   311,     0,   158,   159,   147,   148,     0,   312,
+     149,     0,   150,   151,   153,   154,   155,   156,     0,   157,
+     147,   148,     0,   159,   149,     0,   150,   151,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   152,     0,
+     153,   154,   155,   156,     0,   157,   313,     0,   158,   159,
+       0,     0,   152,   314,   153,   154,   155,   156,     0,   157,
+       0,     0,   158,   159,   147,   148,     0,   238,   149,     0,
+     150,   151,     0,   152,     0,   153,   154,   155,   156,     0,
+     157,     0,     0,   158,   159,     0,     0,   152,   240,   153,
+     154,   155,   156,     0,   157,     0,     0,   158,   159,     0,
+       0,   152,   242,   153,   154,   155,   156,     0,   157,     0,
+       0,   158,   159,   147,   148,     0,   253,   149,     0,   150,
+     151,     0,     0,     0,     0,     0,     5,     6,   289,   290,
+       0,     0,   152,     9,   153,   154,   155,   156,     0,   157,
+       0,     0,   158,   159,     0,     0,   152,   255,   153,   154,
+     155,   156,     0,   157,     0,     0,   158,   159,   147,   148,
+       0,   269,   149,     0,   150,   151,     0,     0,     0,     0,
+       0,     0,   147,   148,     0,     0,   149,     0,   150,   151,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   151,     0,   152,   153,   154,   155,
-       0,   156,   313,     0,   157,   158,     0,     0,     0,   314,
-     159,   151,     0,   152,   153,   154,   155,     0,   156,     0,
-       0,   157,   158,     0,     0,    87,   238,   159,   151,     0,
-     152,   153,   154,   155,     0,   156,     0,     0,   157,   158,
-       0,   146,   147,   240,   159,   148,     0,   149,   150,     0,
-       0,     0,     0,   151,     0,   152,   153,   154,   155,     0,
-     156,     0,     0,   157,   158,     0,     0,     0,   242,   159,
-     151,     0,   152,   153,   154,   155,     0,   156,   243,     0,
-     157,   158,     0,   146,   147,     0,   159,   148,     0,   149,
-     150,     0,     0,     0,     0,     0,     0,     0,   151,     0,
-     152,   153,   154,   155,     0,   156,   244,     0,   157,   158,
-       0,   146,   147,     0,   159,   148,     0,   149,   150,     0,
-      30,     0,    31,    32,    33,     0,     0,     0,   146,   147,
-       0,     0,   148,     0,   149,   150,     0,    93,     0,     0,
-       0,     0,     0,     0,    49,   146,   147,     0,     0,   148,
-       0,   149,   150,    96,     0,     0,    52,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   151,     0,   152,
-     153,   154,   155,     0,   156,   249,     0,   157,   158,     0,
-     146,   147,     0,   159,   148,     0,   149,   150,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   146,   147,     0,
-       0,   148,     0,   149,   150,     0,     0,     0,     0,   151,
-       0,   152,   153,   154,   155,     0,   156,     0,     0,   157,
-     158,     0,   146,   147,   253,   159,   148,     0,   149,   150,
-       0,     0,     0,     0,     0,     0,     0,   151,     0,   152,
-     153,   154,   155,   148,   156,     0,   150,   157,   158,     0,
-       0,     0,   255,   159,   151,     0,   152,   153,   154,   155,
-       0,   156,     0,     0,   157,   158,     0,     0,     0,   269,
-     159,   151,     0,   152,   153,   154,   155,     0,   156,   281,
-       0,   157,   158,     0,   146,   147,     0,   159,   148,     0,
-     149,   150,     0,     0,     0,     0,     0,     5,     6,   289,
-     290,     0,     0,     0,     9,     0,   151,     0,   152,   153,
-     154,   155,     0,   156,     0,     0,   157,   158,     0,     0,
-       0,   296,   159,   151,     0,   152,   153,   154,   155,     0,
-     156,     0,     0,   157,   158,     0,   146,   147,   231,   159,
-     148,     0,   149,   150,     0,     0,     0,     0,   151,     0,
-     152,   153,   154,   155,   303,   156,   146,   147,   157,   158,
-     148,     0,   149,   150,   159,   151,     0,   152,   153,   154,
-     155,     0,   156,   146,   147,     0,   158,   148,     0,   149,
-     150,   159,   291,   292,   293,   294,     0,     0,   146,   147,
-       0,     0,   148,     0,   149,   150,     0,     0,     0,     0,
+     152,     0,   153,   154,   155,   156,     0,   157,     0,     0,
+     158,   159,   147,   148,     0,   296,   149,     0,   150,   151,
+       0,   291,   292,   293,   294,     0,   147,   148,     0,     0,
+     149,     0,   150,   151,     0,     0,     0,     0,     0,     0,
+     147,   148,     0,     0,   149,     0,   150,   151,     0,   152,
+       0,   153,   154,   155,   156,     0,   157,     0,     0,   158,
+     159,   147,   148,     0,   231,   149,     0,   150,   151,     0,
+       0,     0,     0,     0,     0,   147,   148,     0,     0,   149,
+       0,   150,   151,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   152,     0,   153,   154,   155,   156,
+       0,   157,     0,     0,   158,   159,     0,     0,   152,   307,
+     153,   154,   155,   156,     0,   157,     0,     0,   158,   159,
+     147,   148,     0,   309,   149,     0,   150,   151,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   152,     0,
+     153,   154,   155,   156,     0,   157,     0,     0,   158,   159,
+       0,     0,   152,   343,   153,   154,   155,   156,     0,   157,
+       0,     0,   158,   159,     0,     0,   152,   344,   153,   154,
+     155,   156,     0,   157,     0,     0,   158,   159,     0,     0,
+       0,   345,     0,     0,     0,     0,     0,   152,     0,   153,
+     154,   155,   156,     0,   157,    87,     0,   158,   159,     0,
+       0,   152,   346,   153,   154,   155,   156,     0,   157,     0,
+       0,   158,   159,     4,     0,     0,   347,     0,     5,     6,
+      87,    88,     0,     0,     0,     9,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     151,     0,   152,   153,   154,   155,     0,   156,     0,     0,
-     157,   158,     0,   146,   147,   307,   159,   148,     0,   149,
-     150,     0,     0,     0,     0,     0,     0,     0,   146,   147,
-       0,     0,   148,     0,   149,   150,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   152,     0,   153,   154,
+     155,   156,   273,   157,   274,     0,   158,   159,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   151,     0,   152,   153,   154,   155,     0,   156,
-     308,     0,   157,   158,     0,     0,     0,     0,   159,     0,
-       0,     0,   151,     0,   152,   153,   154,   155,     0,   156,
-       0,    87,   157,   158,     0,     0,     0,   309,   159,   151,
-       0,   152,   153,   154,   155,     0,   156,   310,     0,   157,
-     158,     0,     0,     0,   151,   159,   152,   153,   154,   155,
-     322,   156,   146,   147,   157,   158,   148,     0,   149,   150,
-     159,     0,     0,     0,     0,     0,     0,     0,     0,   146,
-     147,     0,     0,   148,     0,   149,   150,     0,     0,   151,
-       0,   152,   153,   154,   155,     0,   156,   323,     0,   157,
-     158,     0,     0,     0,   151,   159,   152,   153,   154,   155,
-       0,   156,     0,     0,   157,   158,     0,   146,   147,   343,
-     159,   148,     0,   149,   150,     0,    30,     0,    31,    32,
-      33,     0,     0,     0,   146,   147,     0,     0,   148,     0,
-     149,   150,     0,    93,     0,     0,     0,     0,     0,     0,
-      49,   146,   147,     0,     0,   148,     0,   149,   150,   108,
-       0,     0,    52,     0,     0,     0,   146,   147,     0,     0,
-     148,     0,   149,   150,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   151,     0,
-     152,   153,   154,   155,     0,   156,     0,     0,   157,   158,
-       0,     0,     0,   344,   159,   151,     0,   152,   153,   154,
-     155,     0,   156,     0,     0,   157,   158,     0,    -1,   147,
-     345,   159,   148,     0,   149,   150,     0,     0,     0,     0,
-       0,    87,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   151,     0,   152,   153,   154,   155,     0,
-     156,     0,     0,   157,   158,     0,     0,     0,   346,   159,
-     151,     0,   152,   153,   154,   155,     0,   156,     0,     0,
-     157,   158,     0,     0,     0,   347,   159,   151,     0,   152,
-     153,   154,   155,   348,   156,     0,    87,   157,   158,     0,
-       0,     0,   151,   159,   152,   153,   154,   155,     0,   156,
-       0,     0,   157,   158,     4,     0,     0,     0,   159,     5,
-       6,    87,    88,     0,     0,     0,     9,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    30,     0,    31,    32,
-      33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    93,   151,     0,   152,   153,   154,   155,
-      49,   156,     0,     0,   157,   158,     0,     0,     0,   110,
-     159,     4,    52,     0,     0,     0,     5,     6,    87,    88,
-       0,     0,     0,     9,     0,     0,     0,     0,     0,     0,
-       0,    30,     0,    31,    32,    33,    11,    12,    13,    14,
-      15,    16,    17,    18,    89,    90,    91,    92,    93,     0,
-       0,     0,     0,     0,     0,    49,    30,     0,    31,    32,
-      33,     0,     0,     0,   112,    38,    39,    52,     0,     4,
-       0,     0,     0,    93,     5,     6,    87,    88,    48,     0,
-      49,     9,     0,     0,     0,     0,     0,     0,     0,    51,
-     183,     0,    52,    11,    12,    13,    14,    15,    16,    17,
-      18,    89,    90,    91,    92,     0,     0,     0,     0,     0,
-       0,     0,     0,    30,     0,    31,    32,    33,     0,     0,
-       0,     0,    38,    39,     0,     0,     4,     0,     0,     0,
-      93,     5,     6,    87,    88,    48,     0,    49,     9,     0,
-       0,     0,     0,     0,     0,     0,    51,   186,     0,    52,
-       0,    11,    12,    13,    14,    15,    16,    17,    18,    89,
-      90,    91,    92,     0,     0,     0,     0,     0,     0,     0,
-       0,    30,     0,    31,    32,    33,     0,     0,     0,     0,
-      38,    39,     0,     0,     4,     0,     0,     0,    93,     5,
-       6,    87,    88,    48,     0,    49,     9,     0,     0,     0,
-       0,     0,     0,     0,    51,   189,     0,    52,    11,    12,
-      13,    14,    15,    16,    17,    18,    89,    90,    91,    92,
-       0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
-      31,    32,    33,     0,     0,     0,     0,    38,    39,     0,
-       0,     4,     0,     0,     0,    93,     5,     6,    87,    88,
-      48,     0,    49,     9,     0,     0,     0,     0,     0,     0,
-       0,    51,   208,     0,    52,     0,    11,    12,    13,    14,
-      15,    16,    17,    18,    89,    90,    91,    92,     0,     0,
-       0,     0,     0,     0,     0,     0,    30,     0,    31,    32,
-      33,     0,     0,     0,     0,    38,    39,     0,     0,     4,
-       0,     0,     0,    93,     5,     6,   132,    88,    48,     0,
-      49,     9,     0,     0,     0,     0,     0,     0,     0,    51,
-     215,     0,    52,    11,    12,    13,    14,    15,    16,    17,
-      18,    89,    90,    91,    92,     0,     0,     0,     0,     0,
-       0,     0,     0,    30,     0,    31,    32,    33,     0,     0,
-       0,     0,    38,    39,     0,     0,     4,    87,     0,     0,
-      93,     5,     6,    87,    88,    48,     0,    49,     9,     0,
-       0,     0,     0,     0,     0,     0,    51,     0,     0,    52,
-       0,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,     0,     0,     0,     0,     0,     0,     0,
-       0,    30,     0,    31,    32,    33,    87,     0,     0,     0,
-      38,    39,     5,     6,   193,   194,     0,     0,    93,     9,
-       0,     0,     0,    48,     0,    49,     0,     0,     0,     0,
-       0,     0,     0,     0,    51,     0,     0,    52,    11,    12,
-      13,    14,    15,    16,    17,    18,    89,    90,    91,    92,
-       0,     0,    30,     0,    31,    32,    33,     0,    30,     0,
-      31,    32,    33,     0,     0,     0,     0,    38,    39,    93,
-       0,     0,     0,     0,     0,    93,    49,     0,     0,     0,
-      48,     0,    49,     0,     0,   114,     0,     0,    52,     0,
-       0,   173,     0,     0,    52,     0,     0,   195,   196,   197,
-     198,    30,     0,    31,    32,    33,     0,     0,     0,    30,
-       0,    31,    32,    33,     0,     0,     0,     0,    93,     0,
-       0,     0,     0,     0,     0,    49,    93,     0,     0,     0,
-       0,     0,     0,    49,   166,     0,     0,    52,     0,     0,
-       0,     0,     0,   199,     0,    52
+       4,     0,     0,     0,     0,     5,     6,    87,    88,     0,
+       0,     0,     9,     0,     0,     0,     0,     0,     0,     0,
+      30,     0,    31,    32,    33,    11,    12,    13,    14,    15,
+      16,    17,    18,    89,    90,    91,    92,    93,     0,     0,
+       0,     0,     0,     0,    49,    30,     0,    31,    32,    33,
+       0,     0,     0,   108,    38,    39,    52,     0,     4,     0,
+       0,     0,    93,     5,     6,    87,    88,    48,     0,    49,
+       9,     0,     0,     0,     0,     0,     0,     0,    51,   183,
+       0,    52,    11,    12,    13,    14,    15,    16,    17,    18,
+      89,    90,    91,    92,     0,     0,     0,     0,     0,     0,
+       0,     0,    30,     0,    31,    32,    33,     0,     0,     0,
+       0,    38,    39,     0,     0,     4,     0,     0,     0,    93,
+       5,     6,    87,    88,    48,     0,    49,     9,     0,     0,
+       0,     0,     0,     0,     0,    51,   186,     0,    52,     0,
+      11,    12,    13,    14,    15,    16,    17,    18,    89,    90,
+      91,    92,     0,     0,     0,     0,     0,     0,     0,     0,
+      30,     0,    31,    32,    33,     0,     0,     0,     0,    38,
+      39,     0,     0,     4,     0,     0,     0,    93,     5,     6,
+      87,    88,    48,     0,    49,     9,     0,     0,     0,     0,
+       0,     0,     0,    51,   189,     0,    52,    11,    12,    13,
+      14,    15,    16,    17,    18,    89,    90,    91,    92,     0,
+       0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
+      32,    33,     0,     0,     0,     0,    38,    39,     0,     0,
+       4,     0,     0,     0,    93,     5,     6,    87,    88,    48,
+       0,    49,     9,     0,     0,     0,     0,     0,     0,     0,
+      51,   208,     0,    52,     0,    11,    12,    13,    14,    15,
+      16,    17,    18,    89,    90,    91,    92,     0,     0,     0,
+       0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
+       0,     0,     0,     0,    38,    39,     0,     0,     4,     0,
+       0,     0,    93,     5,     6,   132,    88,    48,     0,    49,
+       9,     0,     0,     0,     0,     0,     0,     0,    51,   215,
+       0,    52,    11,    12,    13,    14,    15,    16,    17,    18,
+      89,    90,    91,    92,     0,     0,     0,     0,     0,     0,
+       0,     0,    30,     0,    31,    32,    33,     0,     0,     0,
+       0,    38,    39,     0,     0,     4,     0,     0,     0,    93,
+       5,     6,    87,    88,    48,     0,    49,     9,     0,     0,
+     147,   148,     0,     0,   149,    51,   150,   151,    52,     0,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,   147,   148,     0,     0,   149,     0,   150,   151,
+      30,     0,    31,    32,    33,     0,     0,   147,   148,    38,
+      39,   149,     0,   150,   151,     0,     0,    93,     0,   147,
+     148,     0,    48,   149,    49,   150,   151,     0,     0,     0,
+       0,     0,     0,    51,     0,     0,    52,    11,    12,    13,
+      14,    15,    16,    17,    18,    89,    90,    91,    92,   147,
+     148,     0,     0,   149,     0,   150,   151,    30,     0,    31,
+      32,    33,     0,     0,   147,   148,    38,    39,   149,     0,
+     150,   151,    87,     0,    93,     0,   147,   148,     0,    48,
+     149,    49,   150,   151,     0,     0,     0,     0,   147,   148,
+     173,     0,   149,    52,   150,   151,   152,     0,   153,   154,
+     155,   156,     0,   157,   243,     0,   158,   159,   147,   148,
+       0,     0,   149,     0,   150,   151,     0,     0,   152,     0,
+     153,   154,   155,   156,     0,   157,   244,     0,   158,   159,
+       0,     0,     0,   152,     0,   153,   154,   155,   156,     0,
+     157,   249,     0,   158,   159,   152,     0,   153,   154,   155,
+     156,     0,   157,   281,     0,   158,   159,   147,   148,     0,
+       0,   149,     0,   150,   151,     0,     0,    30,     0,    31,
+      32,    33,    87,     0,     0,   152,     0,   153,   154,   155,
+     156,   303,   157,     0,    93,   158,   159,     0,     0,     0,
+     152,    49,   153,   154,   155,   156,     0,   157,   308,     0,
+     158,   159,   152,    52,   153,   154,   155,   156,     0,   157,
+     310,    87,   158,   159,   152,     0,   153,   154,   155,   156,
+     322,   157,   147,   148,   158,   159,   149,     0,   150,   151,
+       0,     0,     0,     0,   152,     0,   153,   154,   155,   156,
+       0,   157,   323,     0,   158,   159,    -1,   148,     0,     0,
+     149,     0,   150,   151,     0,     0,     0,     0,     0,   148,
+       0,     0,   149,     0,   150,   151,     0,    30,     0,    31,
+      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   152,    93,   153,   154,   155,   156,   348,
+     157,    49,     0,   158,   159,    87,     0,     0,     0,     0,
+     110,     0,     0,    52,     0,    87,    30,     0,    31,    32,
+      33,     5,     6,   193,   194,     0,     0,     0,     9,     0,
+       0,     0,     0,    93,     0,     0,     0,     0,     0,     0,
+      49,     0,     0,     0,     0,     0,     0,     0,     0,   112,
+       0,     0,    52,     0,     0,     0,     0,     0,   152,     0,
+     153,   154,   155,   156,     0,   157,     0,     0,   158,   159,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   152,     0,   153,   154,   155,   156,     0,   157,
+       0,     0,   158,   159,   152,     0,   153,   154,   155,   156,
+      30,   157,    31,    32,    33,   159,   195,   196,   197,   198,
+      30,     0,    31,    32,    33,     0,     0,    93,    30,     0,
+      31,    32,    33,     0,    49,     0,     0,    93,     0,     0,
+       0,     0,     0,   114,    49,    93,    52,     0,     0,     0,
+       0,     0,    49,   166,     0,     0,    52,     0,     0,     0,
+       0,     0,   199,     0,    52
 };
 
 static const yytype_int16 yycheck[] =
 {
-       1,     1,     7,    11,   110,    10,   128,   237,   328,    11,
-       7,   241,   113,    10,   138,   137,   138,   128,   135,     4,
-     137,     7,     4,    24,   137,     7,   137,     9,    10,   143,
-     350,   144,   138,    19,    20,    21,    22,   110,     7,   137,
-      26,    10,   143,   137,    29,    45,   144,   137,    49,   137,
-     144,   137,   137,   111,   144,   110,   144,   110,   144,   144,
-      45,   143,    63,    48,     3,     4,   137,    52,     7,   143,
-       9,    10,   111,   144,   304,   143,    61,   116,   110,   111,
-     143,    67,    11,   143,     7,   110,   111,    10,    74,   143,
-     144,   143,    77,    46,    47,     3,     4,   143,   143,     7,
-     143,     9,    10,   143,   110,   143,   107,    11,   143,   110,
-     143,    96,   138,   114,    99,   100,   101,   102,   103,   104,
-     105,   106,   122,   108,   137,   143,   134,   112,   133,   134,
-     131,   136,   143,   143,   143,   143,   122,   134,   111,   136,
-     145,   143,   143,   138,   129,   143,   132,   129,   145,   131,
-     132,   133,   134,   143,   136,   138,   142,   137,   140,   110,
-     145,   146,   147,   145,   149,   134,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   111,   145,   163,   137,     3,
-       4,   166,   168,     7,   144,     9,    10,   137,   173,   144,
-     129,   111,   131,   132,   133,   134,   144,   136,   144,   128,
-     139,   140,   144,   144,   110,   138,   145,   146,   131,   132,
-     133,   134,   111,   136,   143,   137,   137,   140,   144,   204,
-     128,   129,   145,   131,   132,   133,   134,   144,   136,   144,
-     144,   139,   140,   137,   144,   144,   144,   145,   134,   143,
-     144,   144,   137,   113,   144,   230,   143,   137,   275,     7,
-     235,   144,   237,     0,     1,    45,   241,   350,   243,   244,
+       1,     1,   237,   110,   138,    11,   241,   113,     7,    11,
+     328,    10,   111,    11,   143,   128,    11,   116,   143,     4,
+     137,     7,   143,    24,   137,     7,     7,   144,    10,    10,
+     110,   138,   350,    19,    20,    21,    22,   143,   143,   137,
+      26,   128,   137,   143,    29,    45,   144,   137,    49,   144,
+     137,   138,   137,   135,   144,   137,   110,   111,   111,   144,
+      45,   138,    63,    48,     3,     4,   137,    52,     7,   304,
+       9,    10,   137,   144,   143,   137,    61,   110,   111,   144,
+     143,    67,   144,   143,     7,   143,   144,    10,    74,    46,
+      47,   143,    77,   143,   143,     3,     4,   143,   110,     7,
+     143,     9,    10,   110,   143,   110,   107,   137,   143,   110,
+     138,    96,   143,   114,    99,   100,   101,   102,   103,   104,
+     105,   106,   122,   108,   143,   143,   143,   112,   143,   137,
+     131,   137,   134,   128,   111,   134,   122,   143,   144,   145,
+     110,   143,   143,   145,   129,   143,   132,   145,   143,   138,
+     145,   133,   134,   134,   136,   136,   142,   111,   144,   137,
+     144,   146,   147,   148,   137,   150,   111,   152,   153,   154,
+     155,   156,   157,   158,   159,   144,   144,   163,   144,     3,
+       4,   166,   168,     7,   144,     9,    10,   138,   173,   144,
+     129,   110,   131,   132,   133,   134,   145,   136,   111,   137,
+     139,   140,   137,   144,   144,   275,   129,   146,   131,   132,
+     133,   134,   144,   136,   144,   144,   144,   140,   144,   204,
+     128,   129,   134,   131,   132,   133,   134,   137,   136,   113,
+     144,   139,   140,   137,   143,     7,   144,   144,    45,   350,
+      -1,   338,   169,    -1,    -1,   230,    -1,    -1,    -1,    -1,
+     235,    -1,   237,     0,     1,    -1,   241,    -1,   243,   244,
      245,     8,   247,   263,   249,   250,    13,    14,    15,    16,
-      -1,   338,    -1,    20,    -1,     3,     4,   169,    -1,     7,
+      -1,    -1,    -1,    20,    -1,     3,     4,    -1,    -1,     7,
      281,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,   274,
       -1,   276,    -1,    40,     3,     4,    -1,    -1,     7,    -1,
        9,    10,    -1,    -1,    -1,   129,    -1,   131,   132,   133,
      134,    -1,   136,   137,    -1,   139,   140,    -1,    -1,   304,
-     144,   145,    -1,   308,    -1,   310,   311,    -1,   313,     3,
+     144,    -1,    -1,   308,    -1,   310,   311,    -1,   313,     3,
        4,    -1,    -1,     7,    -1,     9,    10,    -1,   323,   324,
      341,    -1,    -1,    90,    91,    92,    93,    94,    95,    96,
@@ -1269,159 +1255,145 @@
       -1,   138,     7,    -1,     9,    10,   143,    -1,    -1,   146,
       -1,   129,    -1,   131,   132,   133,   134,    -1,   136,   137,
-      -1,   139,   140,    -1,    -1,    -1,   144,   145,    -1,    -1,
+       7,   139,   140,    10,    -1,    -1,   144,    -1,    -1,    -1,
      129,    -1,   131,   132,   133,   134,    -1,   136,   137,    -1,
-     139,   140,    -1,     3,     4,   144,   145,     7,    -1,     9,
-      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,   132,   133,
-     134,   135,   136,   137,    -1,   139,   140,    -1,     3,     4,
-      -1,   145,     7,    -1,     9,    10,   110,    -1,   112,   113,
-     114,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
-      -1,     9,    10,   127,    -1,    -1,    -1,    -1,    -1,    -1,
-     134,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
+     139,   140,     3,     4,    -1,   144,     7,    -1,     9,    10,
+      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
+       7,    -1,     9,    10,    -1,   129,    -1,   131,   132,   133,
+     134,    -1,   136,   137,    -1,   139,   140,     3,     4,    -1,
+     144,     7,    -1,     9,    10,    -1,   110,    -1,   112,   113,
+     114,     3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,
+      -1,    -1,    -1,   127,    -1,     3,     4,    -1,    -1,     7,
+     134,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,   143,
       -1,    -1,   146,    -1,   129,    -1,   131,   132,   133,   134,
-      -1,   136,   137,    -1,   139,   140,    -1,     3,     4,   144,
-     145,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,
-       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,
-      -1,   131,   132,   133,   134,    -1,   136,   137,    -1,   139,
-     140,    -1,     3,     4,   144,   145,     7,    -1,     9,    10,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,
-      -1,   136,   137,    -1,   139,   140,    -1,    -1,    -1,   144,
-     145,   129,    -1,   131,   132,   133,   134,    -1,   136,    -1,
-      -1,   139,   140,    -1,    -1,    15,   144,   145,   129,    -1,
-     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
-      -1,     3,     4,   144,   145,     7,    -1,     9,    10,    -1,
-      -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,
-     136,    -1,    -1,   139,   140,    -1,    -1,    -1,   144,   145,
-     129,    -1,   131,   132,   133,   134,    -1,   136,   137,    -1,
-     139,   140,    -1,     3,     4,    -1,   145,     7,    -1,     9,
-      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,
+      -1,   136,   137,    -1,   139,   140,     3,     4,    -1,   144,
+       7,    -1,     9,    10,   131,   132,   133,   134,    -1,   136,
+       3,     4,    -1,   140,     7,    -1,     9,    10,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,
      131,   132,   133,   134,    -1,   136,   137,    -1,   139,   140,
-      -1,     3,     4,    -1,   145,     7,    -1,     9,    10,    -1,
-     110,    -1,   112,   113,   114,    -1,    -1,    -1,     3,     4,
-      -1,    -1,     7,    -1,     9,    10,    -1,   127,    -1,    -1,
-      -1,    -1,    -1,    -1,   134,     3,     4,    -1,    -1,     7,
-      -1,     9,    10,   143,    -1,    -1,   146,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,
-     132,   133,   134,    -1,   136,   137,    -1,   139,   140,    -1,
-       3,     4,    -1,   145,     7,    -1,     9,    10,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
-      -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,   129,
-      -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,   139,
-     140,    -1,     3,     4,   144,   145,     7,    -1,     9,    10,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,
-     132,   133,   134,     7,   136,    -1,    10,   139,   140,    -1,
-      -1,    -1,   144,   145,   129,    -1,   131,   132,   133,   134,
-      -1,   136,    -1,    -1,   139,   140,    -1,    -1,    -1,   144,
-     145,   129,    -1,   131,   132,   133,   134,    -1,   136,   137,
-      -1,   139,   140,    -1,     3,     4,    -1,   145,     7,    -1,
-       9,    10,    -1,    -1,    -1,    -1,    -1,    13,    14,    15,
-      16,    -1,    -1,    -1,    20,    -1,   129,    -1,   131,   132,
-     133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,    -1,
-      -1,   144,   145,   129,    -1,   131,   132,   133,   134,    -1,
-     136,    -1,    -1,   139,   140,    -1,     3,     4,   144,   145,
-       7,    -1,     9,    10,    -1,    -1,    -1,    -1,   129,    -1,
-     131,   132,   133,   134,   135,   136,     3,     4,   139,   140,
-       7,    -1,     9,    10,   145,   129,    -1,   131,   132,   133,
-     134,    -1,   136,     3,     4,    -1,   140,     7,    -1,     9,
-      10,   145,    98,    99,   100,   101,    -1,    -1,     3,     4,
-      -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
+      -1,    -1,   129,   144,   131,   132,   133,   134,    -1,   136,
+      -1,    -1,   139,   140,     3,     4,    -1,   144,     7,    -1,
+       9,    10,    -1,   129,    -1,   131,   132,   133,   134,    -1,
+     136,    -1,    -1,   139,   140,    -1,    -1,   129,   144,   131,
+     132,   133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,
+      -1,   129,   144,   131,   132,   133,   134,    -1,   136,    -1,
+      -1,   139,   140,     3,     4,    -1,   144,     7,    -1,     9,
+      10,    -1,    -1,    -1,    -1,    -1,    13,    14,    15,    16,
+      -1,    -1,   129,    20,   131,   132,   133,   134,    -1,   136,
+      -1,    -1,   139,   140,    -1,    -1,   129,   144,   131,   132,
+     133,   134,    -1,   136,    -1,    -1,   139,   140,     3,     4,
+      -1,   144,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
+      -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      129,    -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,
-     139,   140,    -1,     3,     4,   144,   145,     7,    -1,     9,
-      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
-      -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
+     139,   140,     3,     4,    -1,   144,     7,    -1,     9,    10,
+      -1,    98,    99,   100,   101,    -1,     3,     4,    -1,    -1,
+       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
+       3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,   129,
+      -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,   139,
+     140,     3,     4,    -1,   144,     7,    -1,     9,    10,    -1,
+      -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
+      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,
+      -1,   136,    -1,    -1,   139,   140,    -1,    -1,   129,   144,
+     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
+       3,     4,    -1,   144,     7,    -1,     9,    10,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,
+     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
+      -1,    -1,   129,   144,   131,   132,   133,   134,    -1,   136,
+      -1,    -1,   139,   140,    -1,    -1,   129,   144,   131,   132,
+     133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,
+     132,   133,   134,    -1,   136,    15,    -1,   139,   140,    -1,
+      -1,   129,   144,   131,   132,   133,   134,    -1,   136,    -1,
+      -1,   139,   140,     8,    -1,    -1,   144,    -1,    13,    14,
+      15,    16,    -1,    -1,    -1,    20,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,   132,
+     133,   134,   135,   136,   137,    -1,   139,   140,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       8,    -1,    -1,    -1,    -1,    13,    14,    15,    16,    -1,
+      -1,    -1,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     110,    -1,   112,   113,   114,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   127,    -1,    -1,
+      -1,    -1,    -1,    -1,   134,   110,    -1,   112,   113,   114,
+      -1,    -1,    -1,   143,   119,   120,   146,    -1,     8,    -1,
+      -1,    -1,   127,    13,    14,    15,    16,   132,    -1,   134,
+      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,   144,
+      -1,   146,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   110,    -1,   112,   113,   114,    -1,    -1,    -1,
+      -1,   119,   120,    -1,    -1,     8,    -1,    -1,    -1,   127,
+      13,    14,    15,    16,   132,    -1,   134,    20,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   143,   144,    -1,   146,    -1,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     110,    -1,   112,   113,   114,    -1,    -1,    -1,    -1,   119,
+     120,    -1,    -1,     8,    -1,    -1,    -1,   127,    13,    14,
+      15,    16,   132,    -1,   134,    20,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   143,   144,    -1,   146,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,
+     113,   114,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,
+       8,    -1,    -1,    -1,   127,    13,    14,    15,    16,   132,
+      -1,   134,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     143,   144,    -1,   146,    -1,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   110,    -1,   112,   113,   114,
+      -1,    -1,    -1,    -1,   119,   120,    -1,    -1,     8,    -1,
+      -1,    -1,   127,    13,    14,    15,    16,   132,    -1,   134,
+      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,   144,
+      -1,   146,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   110,    -1,   112,   113,   114,    -1,    -1,    -1,
+      -1,   119,   120,    -1,    -1,     8,    -1,    -1,    -1,   127,
+      13,    14,    15,    16,   132,    -1,   134,    20,    -1,    -1,
+       3,     4,    -1,    -1,     7,   143,     9,    10,   146,    -1,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,     3,     4,    -1,    -1,     7,    -1,     9,    10,
+     110,    -1,   112,   113,   114,    -1,    -1,     3,     4,   119,
+     120,     7,    -1,     9,    10,    -1,    -1,   127,    -1,     3,
+       4,    -1,   132,     7,   134,     9,    10,    -1,    -1,    -1,
+      -1,    -1,    -1,   143,    -1,    -1,   146,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,     3,
+       4,    -1,    -1,     7,    -1,     9,    10,   110,    -1,   112,
+     113,   114,    -1,    -1,     3,     4,   119,   120,     7,    -1,
+       9,    10,    15,    -1,   127,    -1,     3,     4,    -1,   132,
+       7,   134,     9,    10,    -1,    -1,    -1,    -1,     3,     4,
+     143,    -1,     7,   146,     9,    10,   129,    -1,   131,   132,
+     133,   134,    -1,   136,   137,    -1,   139,   140,     3,     4,
+      -1,    -1,     7,    -1,     9,    10,    -1,    -1,   129,    -1,
+     131,   132,   133,   134,    -1,   136,   137,    -1,   139,   140,
+      -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,
+     136,   137,    -1,   139,   140,   129,    -1,   131,   132,   133,
+     134,    -1,   136,   137,    -1,   139,   140,     3,     4,    -1,
+      -1,     7,    -1,     9,    10,    -1,    -1,   110,    -1,   112,
+     113,   114,    15,    -1,    -1,   129,    -1,   131,   132,   133,
+     134,   135,   136,    -1,   127,   139,   140,    -1,    -1,    -1,
+     129,   134,   131,   132,   133,   134,    -1,   136,   137,    -1,
+     139,   140,   129,   146,   131,   132,   133,   134,    -1,   136,
+     137,    15,   139,   140,   129,    -1,   131,   132,   133,   134,
+     135,   136,     3,     4,   139,   140,     7,    -1,     9,    10,
+      -1,    -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,
+      -1,   136,   137,    -1,   139,   140,     3,     4,    -1,    -1,
+       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,     4,
+      -1,    -1,     7,    -1,     9,    10,    -1,   110,    -1,   112,
+     113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   129,   127,   131,   132,   133,   134,   135,
+     136,   134,    -1,   139,   140,    15,    -1,    -1,    -1,    -1,
+     143,    -1,    -1,   146,    -1,    15,   110,    -1,   112,   113,
+     114,    13,    14,    15,    16,    -1,    -1,    -1,    20,    -1,
+      -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,
+     134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
+      -1,    -1,   146,    -1,    -1,    -1,    -1,    -1,   129,    -1,
+     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,   136,
-     137,    -1,   139,   140,    -1,    -1,    -1,    -1,   145,    -1,
-      -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,   136,
-      -1,    15,   139,   140,    -1,    -1,    -1,   144,   145,   129,
-      -1,   131,   132,   133,   134,    -1,   136,   137,    -1,   139,
-     140,    -1,    -1,    -1,   129,   145,   131,   132,   133,   134,
-     135,   136,     3,     4,   139,   140,     7,    -1,     9,    10,
-     145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
-       4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,   129,
-      -1,   131,   132,   133,   134,    -1,   136,   137,    -1,   139,
-     140,    -1,    -1,    -1,   129,   145,   131,   132,   133,   134,
-      -1,   136,    -1,    -1,   139,   140,    -1,     3,     4,   144,
-     145,     7,    -1,     9,    10,    -1,   110,    -1,   112,   113,
-     114,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,
-       9,    10,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,
-     134,     3,     4,    -1,    -1,     7,    -1,     9,    10,   143,
-      -1,    -1,   146,    -1,    -1,    -1,     3,     4,    -1,    -1,
-       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,
-     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
-      -1,    -1,    -1,   144,   145,   129,    -1,   131,   132,   133,
-     134,    -1,   136,    -1,    -1,   139,   140,    -1,     3,     4,
-     144,   145,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
-      -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,
-     136,    -1,    -1,   139,   140,    -1,    -1,    -1,   144,   145,
-     129,    -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,
-     139,   140,    -1,    -1,    -1,   144,   145,   129,    -1,   131,
-     132,   133,   134,   135,   136,    -1,    15,   139,   140,    -1,
-      -1,    -1,   129,   145,   131,   132,   133,   134,    -1,   136,
-      -1,    -1,   139,   140,     8,    -1,    -1,    -1,   145,    13,
-      14,    15,    16,    -1,    -1,    -1,    20,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,   113,
-     114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   127,   129,    -1,   131,   132,   133,   134,
-     134,   136,    -1,    -1,   139,   140,    -1,    -1,    -1,   143,
-     145,     8,   146,    -1,    -1,    -1,    13,    14,    15,    16,
-      -1,    -1,    -1,    20,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   110,    -1,   112,   113,   114,    90,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,   127,    -1,
-      -1,    -1,    -1,    -1,    -1,   134,   110,    -1,   112,   113,
-     114,    -1,    -1,    -1,   143,   119,   120,   146,    -1,     8,
-      -1,    -1,    -1,   127,    13,    14,    15,    16,   132,    -1,
-     134,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
-     144,    -1,   146,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   110,    -1,   112,   113,   114,    -1,    -1,
-      -1,    -1,   119,   120,    -1,    -1,     8,    -1,    -1,    -1,
-     127,    13,    14,    15,    16,   132,    -1,   134,    20,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   143,   144,    -1,   146,
-      -1,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   110,    -1,   112,   113,   114,    -1,    -1,    -1,    -1,
-     119,   120,    -1,    -1,     8,    -1,    -1,    -1,   127,    13,
-      14,    15,    16,   132,    -1,   134,    20,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   143,   144,    -1,   146,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
-     112,   113,   114,    -1,    -1,    -1,    -1,   119,   120,    -1,
-      -1,     8,    -1,    -1,    -1,   127,    13,    14,    15,    16,
-     132,    -1,   134,    20,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   143,   144,    -1,   146,    -1,    90,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,   113,
-     114,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,     8,
-      -1,    -1,    -1,   127,    13,    14,    15,    16,   132,    -1,
-     134,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
-     144,    -1,   146,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   110,    -1,   112,   113,   114,    -1,    -1,
-      -1,    -1,   119,   120,    -1,    -1,     8,    15,    -1,    -1,
-     127,    13,    14,    15,    16,   132,    -1,   134,    20,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,   146,
-      -1,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   110,    -1,   112,   113,   114,    15,    -1,    -1,    -1,
-     119,   120,    13,    14,    15,    16,    -1,    -1,   127,    20,
-      -1,    -1,    -1,   132,    -1,   134,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   143,    -1,    -1,   146,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-      -1,    -1,   110,    -1,   112,   113,   114,    -1,   110,    -1,
-     112,   113,   114,    -1,    -1,    -1,    -1,   119,   120,   127,
-      -1,    -1,    -1,    -1,    -1,   127,   134,    -1,    -1,    -1,
-     132,    -1,   134,    -1,    -1,   143,    -1,    -1,   146,    -1,
-      -1,   143,    -1,    -1,   146,    -1,    -1,    98,    99,   100,
-     101,   110,    -1,   112,   113,   114,    -1,    -1,    -1,   110,
-      -1,   112,   113,   114,    -1,    -1,    -1,    -1,   127,    -1,
-      -1,    -1,    -1,    -1,    -1,   134,   127,    -1,    -1,    -1,
-      -1,    -1,    -1,   134,   143,    -1,    -1,   146,    -1,    -1,
-      -1,    -1,    -1,   144,    -1,   146
+      -1,    -1,   139,   140,   129,    -1,   131,   132,   133,   134,
+     110,   136,   112,   113,   114,   140,    98,    99,   100,   101,
+     110,    -1,   112,   113,   114,    -1,    -1,   127,   110,    -1,
+     112,   113,   114,    -1,   134,    -1,    -1,   127,    -1,    -1,
+      -1,    -1,    -1,   143,   134,   127,   146,    -1,    -1,    -1,
+      -1,    -1,   134,   143,    -1,    -1,   146,    -1,    -1,    -1,
+      -1,    -1,   144,    -1,   146
 };
 
@@ -1444,6 +1416,6 @@
      138,   154,   143,   156,   110,   111,   143,   143,   110,   143,
      110,   143,    15,   156,   163,   164,   164,   156,   155,   155,
-     156,   138,    11,   143,   128,   137,     3,     4,     7,     9,
-      10,   129,   131,   132,   133,   134,   136,   139,   140,   145,
+     156,   138,    11,   143,   145,   128,   137,     3,     4,     7,
+       9,    10,   129,   131,   132,   133,   134,   136,   139,   140,
      156,   155,   128,   137,   138,   170,   143,   154,   137,   154,
      156,   156,   111,   143,   156,   165,   156,   156,   156,   156,
@@ -1451,5 +1423,5 @@
      155,   138,   138,    15,    16,    98,    99,   100,   101,   144,
      154,   171,   110,   111,   157,   110,   156,   111,   144,   155,
-     173,   135,   144,   146,   154,   144,   155,   156,   156,   156,
+     173,   135,   144,   146,   154,   144,   155,   154,   156,   156,
      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
      128,   144,   159,   154,   156,   134,   154,   170,   144,   156,
@@ -2472,12 +2444,21 @@
 #line 512 "grammar.y"
     {
+            if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR;
+          ;}
+    break;
+
+  case 34:
+
+/* Line 1464 of yacc.c  */
+#line 516 "grammar.y"
+    {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'(')) YYERROR;
           ;}
     break;
 
-  case 34:
-
-/* Line 1464 of yacc.c  */
-#line 516 "grammar.y"
+  case 35:
+
+/* Line 1464 of yacc.c  */
+#line 520 "grammar.y"
     {
             if ((yyvsp[(1) - (4)].lv).rtyp==UNKNOWN)
@@ -2494,8 +2475,8 @@
     break;
 
-  case 35:
-
-/* Line 1464 of yacc.c  */
-#line 529 "grammar.y"
+  case 36:
+
+/* Line 1464 of yacc.c  */
+#line 533 "grammar.y"
     {
             if (currRingHdl==NULL) MYYERROR("no ring active");
@@ -2527,8 +2508,8 @@
     break;
 
-  case 36:
-
-/* Line 1464 of yacc.c  */
-#line 557 "grammar.y"
+  case 37:
+
+/* Line 1464 of yacc.c  */
+#line 561 "grammar.y"
     {
             memset(&(yyval.lv),0,sizeof((yyval.lv)));
@@ -2556,8 +2537,8 @@
     break;
 
-  case 37:
-
-/* Line 1464 of yacc.c  */
-#line 581 "grammar.y"
+  case 38:
+
+/* Line 1464 of yacc.c  */
+#line 585 "grammar.y"
     {
             memset(&(yyval.lv),0,sizeof((yyval.lv)));
@@ -2567,8 +2548,8 @@
     break;
 
-  case 38:
-
-/* Line 1464 of yacc.c  */
-#line 587 "grammar.y"
+  case 39:
+
+/* Line 1464 of yacc.c  */
+#line 591 "grammar.y"
     {
             memset(&(yyval.lv),0,sizeof((yyval.lv)));
@@ -2578,8 +2559,8 @@
     break;
 
-  case 39:
-
-/* Line 1464 of yacc.c  */
-#line 593 "grammar.y"
+  case 40:
+
+/* Line 1464 of yacc.c  */
+#line 597 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2587,8 +2568,8 @@
     break;
 
-  case 40:
-
-/* Line 1464 of yacc.c  */
-#line 600 "grammar.y"
+  case 41:
+
+/* Line 1464 of yacc.c  */
+#line 604 "grammar.y"
     {
             leftv v = &(yyvsp[(1) - (3)].lv);
@@ -2603,8 +2584,8 @@
     break;
 
-  case 41:
-
-/* Line 1464 of yacc.c  */
-#line 611 "grammar.y"
+  case 42:
+
+/* Line 1464 of yacc.c  */
+#line 615 "grammar.y"
     {
             (yyval.lv) = (yyvsp[(1) - (1)].lv);
@@ -2612,8 +2593,8 @@
     break;
 
-  case 42:
-
-/* Line 1464 of yacc.c  */
-#line 617 "grammar.y"
+  case 43:
+
+/* Line 1464 of yacc.c  */
+#line 621 "grammar.y"
     {
             /*if ($1.typ == eunknown) YYERROR;*/
@@ -2622,22 +2603,22 @@
     break;
 
-  case 43:
-
-/* Line 1464 of yacc.c  */
-#line 621 "grammar.y"
+  case 44:
+
+/* Line 1464 of yacc.c  */
+#line 625 "grammar.y"
     { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;}
     break;
 
-  case 44:
-
-/* Line 1464 of yacc.c  */
-#line 622 "grammar.y"
+  case 45:
+
+/* Line 1464 of yacc.c  */
+#line 626 "grammar.y"
     { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;}
     break;
 
-  case 45:
-
-/* Line 1464 of yacc.c  */
-#line 624 "grammar.y"
+  case 46:
+
+/* Line 1464 of yacc.c  */
+#line 628 "grammar.y"
     {
             if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR;
@@ -2645,8 +2626,8 @@
     break;
 
-  case 46:
-
-/* Line 1464 of yacc.c  */
-#line 628 "grammar.y"
+  case 47:
+
+/* Line 1464 of yacc.c  */
+#line 632 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR;
@@ -2654,8 +2635,8 @@
     break;
 
-  case 47:
-
-/* Line 1464 of yacc.c  */
-#line 632 "grammar.y"
+  case 48:
+
+/* Line 1464 of yacc.c  */
+#line 636 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2663,8 +2644,8 @@
     break;
 
-  case 48:
-
-/* Line 1464 of yacc.c  */
-#line 636 "grammar.y"
+  case 49:
+
+/* Line 1464 of yacc.c  */
+#line 640 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2672,8 +2653,8 @@
     break;
 
-  case 49:
-
-/* Line 1464 of yacc.c  */
-#line 640 "grammar.y"
+  case 50:
+
+/* Line 1464 of yacc.c  */
+#line 644 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
@@ -2681,8 +2662,8 @@
     break;
 
-  case 50:
-
-/* Line 1464 of yacc.c  */
-#line 644 "grammar.y"
+  case 51:
+
+/* Line 1464 of yacc.c  */
+#line 648 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2690,8 +2671,8 @@
     break;
 
-  case 51:
-
-/* Line 1464 of yacc.c  */
-#line 648 "grammar.y"
+  case 52:
+
+/* Line 1464 of yacc.c  */
+#line 652 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2699,8 +2680,8 @@
     break;
 
-  case 52:
-
-/* Line 1464 of yacc.c  */
-#line 652 "grammar.y"
+  case 53:
+
+/* Line 1464 of yacc.c  */
+#line 656 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
@@ -2708,8 +2689,8 @@
     break;
 
-  case 53:
-
-/* Line 1464 of yacc.c  */
-#line 656 "grammar.y"
+  case 54:
+
+/* Line 1464 of yacc.c  */
+#line 660 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2717,8 +2698,8 @@
     break;
 
-  case 54:
-
-/* Line 1464 of yacc.c  */
-#line 660 "grammar.y"
+  case 55:
+
+/* Line 1464 of yacc.c  */
+#line 664 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
@@ -2726,8 +2707,8 @@
     break;
 
-  case 55:
-
-/* Line 1464 of yacc.c  */
-#line 664 "grammar.y"
+  case 56:
+
+/* Line 1464 of yacc.c  */
+#line 668 "grammar.y"
     {
             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
@@ -2735,8 +2716,8 @@
     break;
 
-  case 56:
-
-/* Line 1464 of yacc.c  */
-#line 668 "grammar.y"
+  case 57:
+
+/* Line 1464 of yacc.c  */
+#line 672 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
@@ -2744,8 +2725,8 @@
     break;
 
-  case 57:
-
-/* Line 1464 of yacc.c  */
-#line 672 "grammar.y"
+  case 58:
+
+/* Line 1464 of yacc.c  */
+#line 676 "grammar.y"
     {
             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
@@ -2753,8 +2734,8 @@
     break;
 
-  case 58:
-
-/* Line 1464 of yacc.c  */
-#line 676 "grammar.y"
+  case 59:
+
+/* Line 1464 of yacc.c  */
+#line 680 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2762,8 +2743,8 @@
     break;
 
-  case 59:
-
-/* Line 1464 of yacc.c  */
-#line 680 "grammar.y"
+  case 60:
+
+/* Line 1464 of yacc.c  */
+#line 684 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2771,8 +2752,8 @@
     break;
 
-  case 60:
-
-/* Line 1464 of yacc.c  */
-#line 684 "grammar.y"
+  case 61:
+
+/* Line 1464 of yacc.c  */
+#line 688 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
@@ -2780,8 +2761,8 @@
     break;
 
-  case 61:
-
-/* Line 1464 of yacc.c  */
-#line 688 "grammar.y"
+  case 62:
+
+/* Line 1464 of yacc.c  */
+#line 692 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2789,8 +2770,8 @@
     break;
 
-  case 62:
-
-/* Line 1464 of yacc.c  */
-#line 692 "grammar.y"
+  case 63:
+
+/* Line 1464 of yacc.c  */
+#line 696 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
@@ -2798,8 +2779,8 @@
     break;
 
-  case 63:
-
-/* Line 1464 of yacc.c  */
-#line 696 "grammar.y"
+  case 64:
+
+/* Line 1464 of yacc.c  */
+#line 700 "grammar.y"
     {
             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
@@ -2807,8 +2788,8 @@
     break;
 
-  case 64:
-
-/* Line 1464 of yacc.c  */
-#line 700 "grammar.y"
+  case 65:
+
+/* Line 1464 of yacc.c  */
+#line 704 "grammar.y"
     {
             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
@@ -2816,8 +2797,8 @@
     break;
 
-  case 65:
-
-/* Line 1464 of yacc.c  */
-#line 704 "grammar.y"
+  case 66:
+
+/* Line 1464 of yacc.c  */
+#line 708 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
@@ -2825,8 +2806,8 @@
     break;
 
-  case 66:
-
-/* Line 1464 of yacc.c  */
-#line 708 "grammar.y"
+  case 67:
+
+/* Line 1464 of yacc.c  */
+#line 712 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2834,8 +2815,8 @@
     break;
 
-  case 67:
-
-/* Line 1464 of yacc.c  */
-#line 712 "grammar.y"
+  case 68:
+
+/* Line 1464 of yacc.c  */
+#line 716 "grammar.y"
     {
             if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
@@ -2843,8 +2824,8 @@
     break;
 
-  case 68:
-
-/* Line 1464 of yacc.c  */
-#line 716 "grammar.y"
+  case 69:
+
+/* Line 1464 of yacc.c  */
+#line 720 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2852,8 +2833,8 @@
     break;
 
-  case 69:
-
-/* Line 1464 of yacc.c  */
-#line 720 "grammar.y"
+  case 70:
+
+/* Line 1464 of yacc.c  */
+#line 724 "grammar.y"
     {
             if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
@@ -2861,8 +2842,8 @@
     break;
 
-  case 70:
-
-/* Line 1464 of yacc.c  */
-#line 724 "grammar.y"
+  case 71:
+
+/* Line 1464 of yacc.c  */
+#line 728 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR;
@@ -2870,8 +2851,8 @@
     break;
 
-  case 71:
-
-/* Line 1464 of yacc.c  */
-#line 728 "grammar.y"
+  case 72:
+
+/* Line 1464 of yacc.c  */
+#line 732 "grammar.y"
     {
             (yyval.lv)=(yyvsp[(2) - (3)].lv);
@@ -2879,8 +2860,8 @@
     break;
 
-  case 72:
-
-/* Line 1464 of yacc.c  */
-#line 732 "grammar.y"
+  case 73:
+
+/* Line 1464 of yacc.c  */
+#line 736 "grammar.y"
     {
             #ifdef SIQ
@@ -2901,8 +2882,8 @@
     break;
 
-  case 73:
-
-/* Line 1464 of yacc.c  */
-#line 749 "grammar.y"
+  case 74:
+
+/* Line 1464 of yacc.c  */
+#line 753 "grammar.y"
     {
             #ifdef SIQ
@@ -2912,8 +2893,8 @@
     break;
 
-  case 74:
-
-/* Line 1464 of yacc.c  */
-#line 755 "grammar.y"
+  case 75:
+
+/* Line 1464 of yacc.c  */
+#line 759 "grammar.y"
     {
             #ifdef SIQ
@@ -2927,8 +2908,8 @@
     break;
 
-  case 75:
-
-/* Line 1464 of yacc.c  */
-#line 767 "grammar.y"
+  case 76:
+
+/* Line 1464 of yacc.c  */
+#line 771 "grammar.y"
     {
             #ifdef SIQ
@@ -2938,8 +2919,8 @@
     break;
 
-  case 76:
-
-/* Line 1464 of yacc.c  */
-#line 775 "grammar.y"
+  case 77:
+
+/* Line 1464 of yacc.c  */
+#line 779 "grammar.y"
     {
             #ifdef SIQ
@@ -2949,8 +2930,8 @@
     break;
 
-  case 77:
-
-/* Line 1464 of yacc.c  */
-#line 784 "grammar.y"
+  case 78:
+
+/* Line 1464 of yacc.c  */
+#line 788 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),PLUSPLUS)) YYERROR;
@@ -2958,8 +2939,8 @@
     break;
 
-  case 78:
-
-/* Line 1464 of yacc.c  */
-#line 788 "grammar.y"
+  case 79:
+
+/* Line 1464 of yacc.c  */
+#line 792 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),MINUSMINUS)) YYERROR;
@@ -2967,8 +2948,8 @@
     break;
 
-  case 79:
-
-/* Line 1464 of yacc.c  */
-#line 792 "grammar.y"
+  case 80:
+
+/* Line 1464 of yacc.c  */
+#line 796 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'+',&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -2976,8 +2957,8 @@
     break;
 
-  case 80:
-
-/* Line 1464 of yacc.c  */
-#line 796 "grammar.y"
+  case 81:
+
+/* Line 1464 of yacc.c  */
+#line 800 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'-',&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -2985,8 +2966,8 @@
     break;
 
-  case 81:
-
-/* Line 1464 of yacc.c  */
-#line 800 "grammar.y"
+  case 82:
+
+/* Line 1464 of yacc.c  */
+#line 804 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -2994,8 +2975,8 @@
     break;
 
-  case 82:
-
-/* Line 1464 of yacc.c  */
-#line 804 "grammar.y"
+  case 83:
+
+/* Line 1464 of yacc.c  */
+#line 808 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'^',&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -3003,8 +2984,8 @@
     break;
 
-  case 83:
-
-/* Line 1464 of yacc.c  */
-#line 808 "grammar.y"
+  case 84:
+
+/* Line 1464 of yacc.c  */
+#line 812 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -3012,8 +2993,8 @@
     break;
 
-  case 84:
-
-/* Line 1464 of yacc.c  */
-#line 812 "grammar.y"
+  case 85:
+
+/* Line 1464 of yacc.c  */
+#line 816 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -3021,8 +3002,8 @@
     break;
 
-  case 85:
-
-/* Line 1464 of yacc.c  */
-#line 816 "grammar.y"
+  case 86:
+
+/* Line 1464 of yacc.c  */
+#line 820 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),NOTEQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -3030,8 +3011,8 @@
     break;
 
-  case 86:
-
-/* Line 1464 of yacc.c  */
-#line 820 "grammar.y"
+  case 87:
+
+/* Line 1464 of yacc.c  */
+#line 824 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),EQUAL_EQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -3039,8 +3020,8 @@
     break;
 
-  case 87:
-
-/* Line 1464 of yacc.c  */
-#line 824 "grammar.y"
+  case 88:
+
+/* Line 1464 of yacc.c  */
+#line 828 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),DOTDOT,&(yyvsp[(3) - (3)].lv))) YYERROR;
@@ -3048,19 +3029,10 @@
     break;
 
-  case 88:
-
-/* Line 1464 of yacc.c  */
-#line 828 "grammar.y"
+  case 89:
+
+/* Line 1464 of yacc.c  */
+#line 832 "grammar.y"
     {
             if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),':',&(yyvsp[(3) - (3)].lv))) YYERROR;
-          ;}
-    break;
-
-  case 89:
-
-/* Line 1464 of yacc.c  */
-#line 832 "grammar.y"
-    {
-            if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR;
           ;}
     break;
@@ -4090,5 +4062,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 4091 "grammar.cc"
+#line 4063 "grammar.cc"
       default: break;
     }
Index: Singular/grammar.y
===================================================================
--- Singular/grammar.y	(revision e5324ae0d87043f3dd2f19e754586d0028d614cc)
+++ Singular/grammar.y	(revision e73abe2246b5f27f16872412d2daae5888ef54f1)
@@ -509,4 +509,8 @@
             if(iiExprArith2(&$$, &$1, COLONCOLON, &$3)) YYERROR;
           }
+        | elemexpr '.' elemexpr
+          {
+            if(iiExprArith2(&$$, &$1, '.', &$3)) YYERROR;
+          }
         | elemexpr '('  ')'
           {
@@ -828,8 +832,4 @@
           {
             if(iiExprArith2(&$$,&$1,':',&$3)) YYERROR;
-          }
-        | expr '.' expr
-          {
-            if(iiExprArith2(&$$, &$1, '.', &$3)) YYERROR;
           }
         | NOT expr
