Index: Singular/grammar.cc
===================================================================
--- Singular/grammar.cc	(revision 0e2f8c5ae674291213ebe9d468d1011105793cd3)
+++ Singular/grammar.cc	(revision 39d427f4321691ff7ee982ea2a474bb8c09aacbb)
@@ -635,5 +635,5 @@
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1934
+#define YYLAST   2180
 
 /* YYNTOKENS -- Number of terminals.  */
@@ -705,9 +705,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,    80,    85,    89,    91,    93,
-      95,   100,   104,   106,   108,   110,   114,   121,   126,   131,
-     136,   140,   145,   150,   154,   159,   164,   169,   174,   181,
-     188,   195,   202,   211,   220,   229,   238,   242,   247,   256,
-     261,   270,   275,   282,   289,   296,   303,   310,   317,   321,
+      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,   160,   165,   170,   177,   184,
+     191,   198,   207,   216,   225,   234,   238,   243,   252,   257,
+     266,   271,   275,   282,   289,   296,   303,   310,   317,   321,
      327,   328,   334,   337,   339,   342,   345,   349,   353,   357,
      361,   365,   369,   373,   377,   381,   385,   388,   391,   394,
@@ -732,25 +732,25 @@
       -1,   191,    -1,   182,    -1,   183,    -1,   185,    -1,   186,
       -1,   163,   157,    -1,   115,    -1,   164,    -1,   156,    11,
-     156,    -1,   156,   147,   156,    -1,   156,   145,   146,    -1,
-     156,   145,   157,   146,    -1,   136,   157,   137,    -1,   113,
-      -1,   129,    -1,   166,    -1,    15,   145,   158,   146,    -1,
-     157,   139,   158,    -1,   158,    -1,   162,    -1,   156,    -1,
-     145,   157,   146,    -1,   158,   136,   158,   139,   158,   137,
-      -1,   158,   136,   158,   137,    -1,    99,   145,   158,   146,
-      -1,   100,   145,   157,   146,    -1,   100,   145,   146,    -1,
-     101,   145,   158,   146,    -1,   102,   145,   157,   146,    -1,
-     102,   145,   146,    -1,    91,   145,   158,   146,    -1,    94,
-     145,   158,   146,    -1,    95,   145,   158,   146,    -1,    97,
-     145,   158,   146,    -1,    92,   145,   158,   139,   158,   146,
-      -1,    94,   145,   158,   139,   158,   146,    -1,    96,   145,
+     156,    -1,   156,   145,   146,    -1,   156,   145,   157,   146,
+      -1,   136,   157,   137,    -1,   113,    -1,   129,    -1,   166,
+      -1,    15,   145,   158,   146,    -1,   157,   139,   158,    -1,
+     158,    -1,   162,    -1,   156,    -1,   145,   157,   146,    -1,
+     158,   136,   158,   139,   158,   137,    -1,   158,   136,   158,
+     137,    -1,    99,   145,   158,   146,    -1,   100,   145,   157,
+     146,    -1,   100,   145,   146,    -1,   101,   145,   158,   146,
+      -1,   102,   145,   157,   146,    -1,   102,   145,   146,    -1,
+      91,   145,   158,   146,    -1,    94,   145,   158,   146,    -1,
+      95,   145,   158,   146,    -1,    97,   145,   158,   146,    -1,
+      92,   145,   158,   139,   158,   146,    -1,    94,   145,   158,
+     139,   158,   146,    -1,    96,   145,   158,   139,   158,   146,
+      -1,    97,   145,   158,   139,   158,   146,    -1,    93,   145,
+     158,   139,   158,   139,   158,   146,    -1,    95,   145,   158,
+     139,   158,   139,   158,   146,    -1,    96,   145,   158,   139,
      158,   139,   158,   146,    -1,    97,   145,   158,   139,   158,
-     146,    -1,    93,   145,   158,   139,   158,   139,   158,   146,
-      -1,    95,   145,   158,   139,   158,   139,   158,   146,    -1,
-      96,   145,   158,   139,   158,   139,   158,   146,    -1,    97,
-     145,   158,   139,   158,   139,   158,   146,    -1,    98,   145,
-     146,    -1,    98,   145,   157,   146,    -1,   173,   145,   158,
-     139,   158,   139,   158,   146,    -1,   173,   145,   158,   146,
-      -1,    16,   145,   167,   139,   167,   139,   171,   146,    -1,
-      16,   145,   158,   146,    -1,   117,   145,   158,   139,    91,
+     139,   158,   146,    -1,    98,   145,   146,    -1,    98,   145,
+     157,   146,    -1,   173,   145,   158,   139,   158,   139,   158,
+     146,    -1,   173,   145,   158,   146,    -1,    16,   145,   167,
+     139,   167,   139,   171,   146,    -1,    16,   145,   158,   146,
+      -1,   158,   147,   156,    -1,   117,   145,   158,   139,    91,
      146,    -1,   117,   145,   158,   139,    94,   146,    -1,   117,
      145,   158,   139,    95,   146,    -1,   117,   145,   158,   139,
@@ -801,6 +801,6 @@
      422,   473,   474,   475,   476,   477,   478,   479,   480,   484,
      487,   488,   489,   490,   491,   492,   493,   494,   495,   498,
-     505,   510,   514,   518,   522,   526,   539,   567,   591,   597,
-     603,   610,   621,   627,   632,   633,   634,   638,   642,   646,
+     505,   510,   514,   518,   522,   535,   563,   587,   593,   599,
+     606,   617,   623,   628,   629,   630,   634,   638,   642,   646,
      650,   654,   658,   662,   666,   670,   674,   678,   682,   686,
      690,   694,   698,   702,   706,   710,   714,   718,   722,   726,
@@ -892,5 +892,5 @@
      154,   154,   154,   154,   154,   154,   154,   154,   154,   155,
      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
-     156,   157,   157,   158,   158,   158,   158,   158,   158,   158,
+     157,   157,   158,   158,   158,   158,   158,   158,   158,   158,
      158,   158,   158,   158,   158,   158,   158,   158,   158,   158,
      158,   158,   158,   158,   158,   158,   158,   158,   158,   158,
@@ -914,9 +914,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,     3,     4,     3,     1,     1,     1,
-       4,     3,     1,     1,     1,     3,     6,     4,     4,     4,
-       3,     4,     4,     3,     4,     4,     4,     4,     6,     6,
-       6,     6,     8,     8,     8,     8,     3,     4,     8,     4,
-       8,     4,     6,     6,     6,     6,     6,     6,     3,     5,
+       1,     1,     3,     3,     4,     3,     1,     1,     1,     4,
+       3,     1,     1,     1,     3,     6,     4,     4,     4,     3,
+       4,     4,     3,     4,     4,     4,     4,     6,     6,     6,
+       6,     8,     8,     8,     8,     3,     4,     8,     4,     8,
+       4,     3,     6,     6,     6,     6,     6,     6,     3,     5,
        0,     5,     2,     1,     2,     2,     3,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     2,     2,     2,     2,
@@ -939,38 +939,38 @@
      153,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,   152,     0,
-     110,    37,   100,    30,     0,     0,   160,   161,     0,     0,
-       0,     0,     0,     8,     0,     0,     0,    38,     0,     0,
-       0,     9,     0,     0,     3,     4,    13,     0,    20,    44,
-     156,    42,     0,    43,     0,    31,     0,    39,     0,    16,
+     110,    36,   100,    30,     0,     0,   160,   161,     0,     0,
+       0,     0,     0,     8,     0,     0,     0,    37,     0,     0,
+       0,     9,     0,     0,     3,     4,    13,     0,    20,    43,
+     156,    41,     0,    42,     0,    31,     0,    38,     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,    38,    96,     0,     0,   109,    31,
+       0,     0,     0,     0,    37,    96,     0,     0,   109,    31,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      102,     0,   103,     0,   104,     0,   105,     0,    19,   129,
        0,   127,   130,     0,   155,     0,     0,   158,    80,    82,
        0,     0,     0,     0,     0,   168,   167,   151,   124,    97,
-       0,     0,     0,     5,     0,     0,     0,    99,     0,     0,
-       0,    85,     0,    84,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     5,     0,     0,    99,     0,     0,     0,
+      85,     0,    84,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    29,   120,     0,     6,    98,     0,   107,
        0,   150,   154,     0,   164,     0,   111,     0,     0,     0,
-       0,     0,     0,     0,     0,    66,     0,     0,    50,     0,
-       0,    53,     0,   128,   126,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    65,     0,     0,    49,     0,
+       0,    52,     0,   128,   126,     0,     0,     0,     0,     0,
        0,   147,     0,     0,     0,   165,     0,     0,     0,     0,
-     162,   170,     0,     0,    36,    45,   101,    32,    34,     0,
-      33,    41,    94,    93,    92,    90,    86,    87,    88,     0,
-      89,    91,    95,     0,    83,    78,   108,     0,     0,   131,
-       0,    40,    42,    71,     0,    54,     0,     0,     0,    55,
-       0,    56,     0,     0,    57,    67,    48,    49,    51,    52,
+     162,   170,     0,     0,    35,    44,   101,    32,    33,     0,
+      40,    94,    93,    92,    90,    86,    87,    88,     0,    89,
+      91,    95,    71,     0,    83,    78,   108,     0,     0,   131,
+       0,    39,    41,    70,     0,    53,     0,     0,     0,    54,
+       0,    55,     0,     0,    56,    66,    47,    48,    50,    51,
      138,   136,   132,   133,   134,   135,     0,   139,   137,   166,
-       0,     0,     0,     0,   169,   125,    35,    47,     0,     0,
-       0,    69,     0,   111,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   169,   125,    34,    46,     0,     0,
+       0,    68,     0,   111,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,    81,   163,   157,   159,
-       0,    79,     0,     0,     0,     0,     0,    58,     0,    59,
-       0,     0,    60,     0,    61,   146,   144,   140,   141,   142,
-     143,   145,    72,    73,    74,    75,    76,    77,    46,     0,
+       0,    79,     0,     0,     0,     0,     0,    57,     0,    58,
+       0,     0,    59,     0,    60,   146,   144,   140,   141,   142,
+     143,   145,    72,    73,    74,    75,    76,    77,    45,     0,
        0,     0,   112,   113,     0,   114,   118,     0,     0,     0,
-       0,     0,     0,     0,     0,   116,     0,     0,    70,    62,
-      63,    64,    65,    68,   106,   149,     0,   119,     0,   117,
+       0,     0,     0,     0,     0,   116,     0,     0,    69,    61,
+      62,    63,    64,    67,   106,   149,     0,   119,     0,   117,
      115
 };
@@ -988,45 +988,45 @@
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -329
+#define YYPACT_NINF -338
 static const yytype_int16 yypact[] =
 {
-    -329,   274,  -329,  -101,  1312,  -329,  -329,   389,  -103,  -329,
-    -329,   -78,   -75,   -57,   -53,   -47,   -46,   -44,   -41,   812,
-     858,  1740,  1781,   -87,  1312,  -108,   333,   -40,  -329,  1312,
-    -329,  -329,  -329,  -329,   -54,   -39,  -329,  -329,    -4,   -36,
-     -34,   -52,   -32,  -329,    18,   -19,  1370,    19,    19,  1312,
-    1312,  -329,  1312,  1312,  -329,  -329,  -329,     5,  -329,     7,
-    -119,  1693,  1312,  -329,  1312,  -329,  -113,  -329,  1786,  -329,
-    -329,  -329,  -329,    -8,  -329,   333,  -329,  -329,  1312,  -329,
-    -329,  -329,  -329,  -329,  -329,  -329,  -329,  -329,    -6,  -103,
-       2,     8,    10,    16,  -329,    -3,    17,  1312,     7,    54,
-    1429,  1312,  1312,  1312,  1312,  1312,  1312,  1312,   968,  1312,
-       7,  1078,     7,  1312,     7,  1136,     7,    28,  -329,    38,
-      40,  -329,     7,  1757,  1693,   -38,  1312,  -329,  -329,  -329,
-      67,  1312,    69,  1195,   389,  1693,    43,  -329,  -329,    -3,
-    -125,  -117,    62,  -329,   333,  1253,   333,  -329,  1312,  1312,
-    1312,  -329,  1312,  -329,  1312,  1312,  1312,  1312,  1312,  1312,
-    1312,  1312,    93,    38,  -329,   333,  -329,  -329,  1312,    -9,
-     333,    -5,  1693,   461,  -329,  1312,   475,    48,   489,   998,
-    1024,   182,   211,  1507,   293,  -329,  -109,   503,  -329,   -96,
-     517,  -329,   -94,  -329,  -329,   -70,    42,    53,    55,    56,
-      59,  -329,     4,    60,    82,  -329,  1529,  1312,    96,   548,
-    -329,  -329,   -92,    68,  -329,  -329,  -329,    64,  -329,   -91,
-    -329,  1693,  1705,   538,   538,   353,    21,    21,    -3,   986,
-      -2,   942,    21,  1312,  -329,  -329,     7,   408,  1312,     7,
-    1429,  -329,  1545,  -329,  1429,  -329,  1312,  1312,  1312,  -329,
-    1312,  -329,  1312,  1312,  -329,  -329,  -329,  -329,  -329,  -329,
-    -329,  -329,  -329,  -329,  -329,  -329,   460,  -329,  -329,  -329,
-    1487,   657,    97,   -56,  -329,  -329,  -329,  -329,  1312,   688,
-    1312,  -329,  1557,  1693,    73,  1312,    74,   702,  1587,   716,
-    1603,   433,   447,    70,    71,    79,    84,    86,    87,    90,
-     -67,   -65,   -61,   -59,   -55,   730,  -329,  -329,  -329,  -329,
-    1615,  -329,  1627,    83,  1429,   -88,  -104,  -329,  1312,  -329,
-    1312,  1312,  -329,  1312,  -329,  -329,  -329,  -329,  -329,  -329,
-    -329,  -329,  -329,  -329,  -329,  -329,  -329,  -329,  -329,  1312,
-    1312,    98,  -329,  -329,   124,    95,  -329,    99,   744,   758,
-     772,   797,   912,  1647,  -104,   102,   100,  1312,  -329,  -329,
-    -329,  -329,  -329,  -329,  -329,  -329,   124,  -329,   -86,  -329,
-    -329
+    -338,   274,  -338,  -126,  1857,  -338,  -338,   609,  -125,  -338,
+    -338,  -114,  -105,   -83,   -75,   -69,   -44,   -39,   -37,   893,
+    1140,  1357,  1362,   -53,  1857,   -99,   449,   -36,  -338,  1857,
+    -338,  -338,  -338,  -338,   -38,   -34,  -338,  -338,   -56,   -32,
+     -20,   -30,   -19,  -338,    16,     8,  1915,    34,    34,  1857,
+    1857,  -338,  1857,  1857,  -338,  -338,  -338,    19,  -338,     5,
+    -117,  1320,  1857,  -338,  1857,  -338,  -113,  -338,  1368,  -338,
+    -338,  -338,  -338,    21,  -338,   449,  -338,  -338,  1857,  -338,
+    -338,  -338,  -338,  -338,  -338,  -338,  -338,  -338,    10,  -125,
+      12,    31,    32,    35,  -338,    11,    36,  1857,     5,    44,
+    1974,  1857,  1857,  1857,  1857,  1857,  1857,  1857,  1513,  1857,
+       5,  1623,     5,  1857,     5,  1681,     5,    48,  -338,    45,
+      49,  -338,     5,  1552,  1320,   -33,  1857,  -338,  -338,  -338,
+      80,  1857,    82,  1740,   609,  1320,    53,  -338,  -338,    11,
+    -107,  -104,    62,  -338,   449,  1798,  -338,  1857,  1857,  1857,
+    -338,  1857,  -338,  1857,  1857,  1857,  1857,  1857,  1857,  1857,
+    1857,   449,    93,    45,  -338,   449,  -338,  -338,  1857,    -7,
+     449,    22,  1320,   504,  -338,  1857,   521,    66,   549,   566,
+     662,   211,   293,   707,   312,  -338,   -94,   722,  -338,   -92,
+     739,  -338,   -91,  -338,  -338,   -62,    55,    60,    61,    65,
+      67,  -338,    40,    70,    96,  -338,   756,  1857,   101,   771,
+    -338,  -338,   -89,    77,  -338,  -338,  -338,  -338,  -338,   -86,
+    1320,  1415,   192,   192,     1,    -5,    -5,    11,   408,    18,
+    1456,    -5,     5,  1857,  -338,  -338,     5,   453,  1857,     5,
+    1974,  -338,   803,  -338,  1974,  -338,  1857,  1857,  1857,  -338,
+    1857,  -338,  1857,  1857,  -338,  -338,  -338,  -338,  -338,  -338,
+    -338,  -338,  -338,  -338,  -338,  -338,  1474,  -338,  -338,  -338,
+    2032,   818,   107,  -103,  -338,  -338,  -338,  -338,  1857,   912,
+    1857,  -338,   959,  1320,    86,  1857,    91,   974,   991,  1006,
+    1023,   470,   487,    87,    90,    92,    95,    97,    98,    99,
+     -59,   -57,   -55,   -51,   -47,  1053,  -338,  -338,  -338,  -338,
+    1070,  -338,  1164,   106,  1974,   -72,  -111,  -338,  1857,  -338,
+    1857,  1857,  -338,  1857,  -338,  -338,  -338,  -338,  -338,  -338,
+    -338,  -338,  -338,  -338,  -338,  -338,  -338,  -338,  -338,  1857,
+    1857,   108,  -338,  -338,   118,   104,  -338,   100,  1206,  1223,
+    1240,  1257,  1274,  1305,  -111,   111,   105,  1857,  -338,  -338,
+    -338,  -338,  -338,  -338,  -338,  -338,   118,  -338,   -64,  -338,
+    -338
 };
 
@@ -1034,9 +1034,9 @@
 static const yytype_int16 yypgoto[] =
 {
-    -329,  -329,  -329,  -329,  -329,  -329,  -329,    14,    -1,    15,
-    -329,  -329,   -37,  -329,  -329,   236,   198,    47,  -231,  -329,
-    -328,  -116,  -107,    78,     0,  -329,  -329,  -329,  -329,  -329,
-    -329,  -329,  -329,  -329,  -329,  -329,  -329,  -329,  -329,  -329,
-    -329,  -329,  -329,  -329
+    -338,  -338,  -338,  -338,  -338,  -338,  -338,    17,    -1,    15,
+    -338,  -338,   -42,  -338,  -338,   245,   208,    57,  -234,  -338,
+    -337,  -110,   -97,    89,     0,  -338,  -338,  -338,  -338,  -338,
+    -338,  -338,  -338,  -338,  -338,  -338,  -338,  -338,  -338,  -338,
+    -338,  -338,  -338,  -338
 };
 
@@ -1048,319 +1048,416 @@
 static const yytype_int16 yytable[] =
 {
-      60,    68,   144,   120,   151,   151,   144,   153,   153,   284,
-     343,   147,   214,   286,   148,   144,   355,   164,   144,    95,
-     148,    98,   148,   119,   117,   118,   165,   166,   151,   215,
-     148,   153,   121,   110,   112,   114,   116,   255,   355,    87,
-     122,   344,   100,   148,   124,   148,    68,   148,   148,   140,
-     257,   148,   259,   148,   274,   276,   308,   125,   342,   130,
-     370,   135,   309,   163,   139,   149,   150,   101,   142,   151,
-     102,   152,   153,   204,   205,    97,   260,   162,   101,   332,
-     104,   333,   169,   341,   105,   334,   107,   335,   103,   171,
-     108,   336,   104,   172,   137,   138,   149,   150,   105,   106,
-     151,   107,   152,   153,   108,   123,   126,   186,   127,   128,
-     189,   129,   173,   131,   192,   176,   178,   179,   180,   181,
-     182,   183,   184,   203,   187,   164,   133,   238,   190,   132,
-      30,   170,   212,   158,   158,   159,   145,   202,   146,    97,
-     145,   206,   146,   266,   219,   143,   209,   109,    98,   145,
-     267,   146,   145,   111,   146,   113,   157,   158,   217,   159,
-     220,   115,   168,   221,   222,   223,   174,   224,   193,   225,
-     226,   227,   228,   229,   230,   231,   232,   148,   208,   236,
-     194,   210,   165,   237,   239,   149,   150,   244,   261,   151,
-     242,   152,   153,   154,   269,   155,   156,   157,   158,   262,
-     159,   263,   264,   160,   161,   265,   268,   272,   275,   307,
-     216,   146,   314,   316,   149,   150,   325,   326,   151,   340,
-     152,   153,   271,   233,   154,   327,   155,   156,   157,   158,
-     328,   159,   329,   330,   160,   161,   331,   354,   343,   234,
-     357,   366,   311,    99,   136,   358,   367,   365,   279,   240,
-     369,     0,     0,   282,     0,   283,     0,     0,     0,   283,
-       0,   287,   288,   289,     0,   290,   299,   291,   292,     0,
+      60,    68,   150,   343,   144,   152,   284,   355,   150,   308,
+     286,   152,   120,   146,    87,   309,   144,   164,   150,    95,
+     100,   152,   147,   119,    98,   150,   165,   166,   152,   355,
+     214,   101,   147,   144,   344,   147,   110,   112,   114,   116,
+     102,   121,   215,   122,   124,   147,    68,   147,   147,   140,
+     147,   144,   255,   147,   257,   259,   127,   274,   117,   118,
+     276,   135,   103,   163,   139,   148,   149,   147,   142,   150,
+     104,   151,   152,   125,   342,   147,   105,   162,   204,   205,
+     341,   130,   370,    97,   260,   169,   101,   332,   104,   333,
+     105,   334,   171,   172,   107,   335,   148,   149,   108,   336,
+     150,   106,   151,   152,   137,   138,   107,   186,   108,   123,
+     189,   126,   173,   128,   192,   176,   178,   179,   180,   181,
+     182,   183,   184,   203,   187,   129,   131,   132,   190,   238,
+     156,   157,   212,   158,   154,   155,   156,   157,   145,   158,
+     202,   206,   161,   160,   219,    30,   209,   157,   161,   158,
+     145,    98,   164,   133,   157,    97,   174,   109,   161,   143,
+     170,   217,   220,   221,   222,   161,   223,   145,   224,   225,
+     226,   227,   228,   229,   230,   231,   111,   113,   232,   266,
+     115,   168,   236,   237,   147,   145,   267,   239,   193,   194,
+     242,   208,   165,   153,   210,   154,   155,   156,   157,   150,
+     158,   261,   152,   159,   160,   244,   262,   263,   269,   161,
+     216,   264,   272,   265,   148,   149,   268,   275,   150,   307,
+     151,   152,   271,   233,   153,   314,   154,   155,   156,   157,
+     316,   158,   343,   325,   159,   160,   326,   311,   327,   234,
+     161,   328,   340,   329,   330,   331,   358,   354,   279,   357,
+     366,   367,    99,   282,   136,   283,   369,   365,     0,   283,
+     240,   287,   288,   289,     0,   290,   299,   291,   292,     0,
        0,     0,     0,     0,     2,     3,     0,     0,     0,     0,
        0,     0,     4,     0,   315,   305,     0,     5,     6,     7,
-       8,     0,     0,   310,     9,   312,   149,   150,     0,     0,
-     151,     0,   152,   153,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   154,    10,   155,   156,   157,   158,     0,
-     159,   248,     0,   160,   161,     0,     0,     0,   249,   283,
-       0,     0,     0,   348,     0,   349,   350,     0,   351,     0,
-       0,     0,   154,     0,   155,   156,   157,   158,    88,   159,
-     250,     0,   160,   161,   352,   353,   368,   251,     0,     0,
-     151,     0,     0,   153,     0,    11,    12,    13,    14,    15,
+       8,     0,     0,   310,     9,   312,   148,   149,     0,     0,
+     150,     0,   151,   152,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    10,   148,   149,     0,     0,   150,
+       0,   151,   152,   153,     0,   154,   155,   156,   157,   283,
+     158,     0,     0,   348,   160,   349,   350,     0,   351,   161,
+       0,     0,   153,     0,   154,   155,   156,   157,     0,   158,
+     248,     0,   159,   160,   352,   353,   368,   249,   161,     0,
+       0,     0,     0,     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,    47,    88,    48,     0,     0,    49,     0,
-      50,   149,   150,     0,    51,   151,     0,   152,   153,    52,
-       0,     0,    53,     0,   154,     0,   155,   156,   157,   158,
-       0,   159,   253,     0,   160,   161,   149,   150,     0,   254,
-     151,     0,   152,   153,    30,     0,    31,    32,    33,     0,
-     149,   150,     0,     0,   151,     0,   152,   153,     0,     0,
-       0,     0,    94,     0,   149,   150,     0,     0,   151,    50,
-     152,   153,     0,     5,     6,   293,   294,     0,   149,   150,
-       9,    53,   151,     0,   152,   153,   155,   156,   157,   158,
-       0,   159,   149,   150,     0,   161,   151,     0,   152,   153,
-      30,     0,    31,    32,    33,     0,   149,   150,     0,     0,
-     151,     0,   152,   153,     0,     0,     0,     0,    94,     0,
-     149,   150,     0,     0,   151,    50,   152,   153,     0,     0,
-       0,     0,     0,     0,    97,     0,     0,    53,     0,   154,
-       0,   155,   156,   157,   158,   151,   159,   280,   153,   160,
-     161,   149,   150,     0,   281,   151,     0,   152,   153,   295,
-     296,   297,   298,     0,   154,     0,   155,   156,   157,   158,
-       0,   159,   321,     0,   160,   161,     0,     0,   154,   322,
-     155,   156,   157,   158,     0,   159,   323,     0,   160,   161,
-       0,     0,   154,   324,   155,   156,   157,   158,     0,   159,
-       0,     0,   160,   161,     0,     0,   154,   241,   155,   156,
-     157,   158,     0,   159,     0,     0,   160,   161,     0,     0,
-     154,   243,   155,   156,   157,   158,     0,   159,     0,     0,
-     160,   161,     0,     0,   154,   245,   155,   156,   157,   158,
-       0,   159,     0,     0,   160,   161,     0,     0,   154,   256,
-     155,   156,   157,   158,     0,   159,     0,     0,   160,   161,
-     149,   150,     0,   258,   151,     0,   152,   153,     0,   154,
-       0,   155,   156,   157,   158,     0,   159,     0,     0,   154,
-     161,   155,   156,   157,   158,     0,   159,     0,     0,   160,
-     161,   149,   150,     0,   273,   151,     0,   152,   153,     0,
-       0,     0,     0,     0,     0,   149,   150,     0,     0,   151,
-       0,   152,   153,     0,     0,     0,     0,     0,     0,   149,
-     150,     0,     0,   151,     0,   152,   153,     0,     0,     0,
-       0,     0,     0,   149,   150,     0,     0,   151,     0,   152,
-     153,     0,     0,     0,     0,     0,     0,   149,   150,     0,
-       0,   151,     0,   152,   153,     0,     0,     0,     0,     0,
-       0,   149,   150,     0,     0,   151,     0,   152,   153,     0,
-       0,     0,     0,     0,     0,   149,   150,     0,     0,   151,
-       0,   152,   153,     0,     0,     0,     0,     0,   154,     0,
-     155,   156,   157,   158,     0,   159,     0,     0,   160,   161,
-     149,   150,     0,   306,   151,     0,   152,   153,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   154,
-       0,   155,   156,   157,   158,     0,   159,    88,     0,   160,
-     161,     0,     0,   154,   234,   155,   156,   157,   158,     0,
-     159,     0,     0,   160,   161,     0,     0,   154,   317,   155,
-     156,   157,   158,     0,   159,     0,     0,   160,   161,     0,
-       0,   154,   319,   155,   156,   157,   158,     0,   159,     0,
-       0,   160,   161,    88,     0,   154,   337,   155,   156,   157,
-     158,     0,   159,     0,     0,   160,   161,     0,     0,   154,
-     359,   155,   156,   157,   158,     0,   159,     0,     0,   160,
-     161,     0,     0,   154,   360,   155,   156,   157,   158,     0,
-     159,     0,     0,   160,   161,   149,   150,     0,   361,   151,
-       0,   152,   153,    30,     0,    31,    32,    33,   154,     0,
-     155,   156,   157,   158,     0,   159,     0,     0,   160,   161,
-       0,    94,     0,   362,     0,     0,   150,     0,    50,   151,
-       0,   152,   153,     0,     0,     0,     0,   109,     0,     0,
-      53,     0,     0,     0,     0,     0,     0,     0,     0,    30,
-       0,    31,    32,    33,     0,     0,     4,     0,     0,     0,
-       0,     5,     6,    88,    89,     0,     0,    94,     9,   149,
-     150,     0,     0,   151,    50,   152,   153,     0,     0,     0,
-       0,   149,   150,   111,     0,   151,    53,   152,   153,     0,
+      44,    45,    46,    47,     0,    48,     0,     0,    49,     0,
+      50,   148,   149,     0,    51,   150,     0,   151,   152,    52,
+       0,     0,    53,     0,   153,     0,   154,   155,   156,   157,
+       0,   158,   250,     0,   159,   160,     0,     0,     0,   251,
+     161,     0,     0,   153,     0,   154,   155,   156,   157,     0,
+     158,   253,     0,   159,   160,     0,   148,   149,   254,   161,
+     150,     0,   151,   152,    88,     0,     0,     0,     0,     0,
+       0,     0,     0,   148,   149,     0,     0,   150,     0,   151,
+     152,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     148,   149,     0,     0,   150,     0,   151,   152,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   148,   149,     0,
+       0,   150,     0,   151,   152,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   148,   149,     0,     0,   150,     0,
+     151,   152,     0,     0,     0,     0,     0,     0,     0,   153,
+       0,   154,   155,   156,   157,   277,   158,   278,     0,   159,
+     160,     0,   148,   149,     0,   161,   150,     0,   151,   152,
+      30,     0,    31,    32,    33,     0,     0,     0,     0,   148,
+     149,     0,     0,   150,     0,   151,   152,     0,    94,     0,
+       0,     0,     0,     0,   153,    50,   154,   155,   156,   157,
+       0,   158,   280,     0,   159,   160,     0,    53,     0,   281,
+     161,   153,     0,   154,   155,   156,   157,     0,   158,   321,
+       0,   159,   160,     0,     0,     0,   322,   161,   153,     0,
+     154,   155,   156,   157,    88,   158,   323,     0,   159,   160,
+       0,     0,     0,   324,   161,   153,     0,   154,   155,   156,
+     157,     0,   158,     0,     0,   159,   160,     0,     0,     0,
+     241,   161,   153,     0,   154,   155,   156,   157,     0,   158,
+       0,     0,   159,   160,     0,   148,   149,   243,   161,   150,
+       0,   151,   152,     0,     0,     0,     0,     0,     0,     0,
+     153,     0,   154,   155,   156,   157,     0,   158,     0,     0,
+     159,   160,     0,     0,     0,   245,   161,   153,     0,   154,
+     155,   156,   157,     0,   158,   246,     0,   159,   160,     0,
+     148,   149,     0,   161,   150,     0,   151,   152,     0,     0,
+      30,     0,    31,    32,    33,   148,   149,     0,     0,   150,
+       0,   151,   152,     0,     0,     0,     0,     0,    94,     0,
+       0,     0,   148,   149,     0,    50,   150,     0,   151,   152,
+       0,     0,     0,     0,    97,     0,     0,    53,     0,   148,
+     149,     0,     0,   150,     0,   151,   152,     0,     0,     0,
+       0,     0,     0,     0,   148,   149,     0,     0,   150,     0,
+     151,   152,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   153,     0,   154,   155,   156,   157,     0,
+     158,   247,     0,   159,   160,     0,   148,   149,     0,   161,
+     150,     0,   151,   152,     0,     0,     0,     0,     0,     0,
+       0,   148,   149,     0,     0,   150,     0,   151,   152,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   153,     0,
+     154,   155,   156,   157,     0,   158,   252,     0,   159,   160,
+       0,     0,     0,   153,   161,   154,   155,   156,   157,     0,
+     158,     0,     0,   159,   160,     0,     0,     0,   256,   161,
+     153,     0,   154,   155,   156,   157,     0,   158,     0,     0,
+     159,   160,     0,     0,     0,   258,   161,   153,     0,   154,
+     155,   156,   157,     0,   158,   270,     0,   159,   160,     0,
+       0,     0,   153,   161,   154,   155,   156,   157,    88,   158,
+       0,     0,   159,   160,     0,   148,   149,   273,   161,   150,
+       0,   151,   152,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   153,     0,   154,   155,   156,   157,
+       0,   158,   285,     0,   159,   160,     0,     0,     0,   153,
+     161,   154,   155,   156,   157,     0,   158,     0,     0,   159,
+     160,     0,   148,   149,   306,   161,   150,     0,   151,   152,
+       0,     0,     0,     0,     0,     0,     0,   148,   149,     0,
+       0,   150,     0,   151,   152,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   148,   149,     0,     0,   150,     0,
+     151,   152,     0,     0,    30,     0,    31,    32,    33,   148,
+     149,     0,     0,   150,     0,   151,   152,     0,     0,     0,
+       0,     0,    94,     0,     0,     0,   148,   149,     0,    50,
+     150,     0,   151,   152,     0,     0,     0,     0,   109,     0,
+       0,    53,     0,   153,     0,   154,   155,   156,   157,     0,
+     158,     0,     0,   159,   160,     0,   148,   149,   234,   161,
+     150,     0,   151,   152,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   148,   149,     0,     0,   150,     0,   151,
+     152,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     153,     0,   154,   155,   156,   157,   313,   158,     0,     0,
+     159,   160,     0,     0,     0,   153,   161,   154,   155,   156,
+     157,     0,   158,     0,     0,   159,   160,     0,     0,     0,
+     317,   161,   153,     0,   154,   155,   156,   157,     0,   158,
+     318,     0,   159,   160,     0,     0,     0,   153,   161,   154,
+     155,   156,   157,     0,   158,     0,     0,   159,   160,     0,
+       0,     0,   319,   161,   153,    88,   154,   155,   156,   157,
+       0,   158,   320,     0,   159,   160,     0,   148,   149,     0,
+     161,   150,     0,   151,   152,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   153,     0,   154,   155,   156,   157,
+       0,   158,     0,     0,   159,   160,     0,     0,     0,   337,
+     161,   153,     0,   154,   155,   156,   157,   338,   158,   148,
+     149,   159,   160,   150,     0,   151,   152,   161,     0,     0,
+       0,     0,     0,     0,     0,     0,   148,   149,     0,     0,
+     150,     0,   151,   152,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   148,   149,     0,     0,   150,     0,   151,
+     152,    30,     0,    31,    32,    33,     0,     0,     0,     0,
+     148,   149,     0,     0,   150,     0,   151,   152,     0,    94,
+       0,     0,     0,     0,     0,     0,    50,   148,   149,     0,
+       0,   150,     0,   151,   152,   111,     0,     0,    53,     0,
+       0,     0,     0,     0,     0,   153,     0,   154,   155,   156,
+     157,     0,   158,   339,     0,   159,   160,     0,   148,   149,
+       0,   161,   150,     0,   151,   152,     0,     0,     0,     0,
+       0,     0,     0,   148,   149,     0,     0,   150,     0,   151,
+     152,     0,     0,     0,     0,     0,     0,   153,     0,   154,
+     155,   156,   157,     0,   158,     0,     0,   159,   160,     0,
+       0,     0,   359,   161,   153,     0,   154,   155,   156,   157,
+       0,   158,     0,     0,   159,   160,     0,     0,     0,   360,
+     161,   153,    88,   154,   155,   156,   157,    88,   158,     0,
+       0,   159,   160,    88,     0,     0,   361,   161,   153,     0,
+     154,   155,   156,   157,     0,   158,     0,     0,   159,   160,
+       0,     0,     0,   362,   161,   153,     0,   154,   155,   156,
+     157,     0,   158,     0,     0,   159,   160,     0,    -1,   149,
+     363,   161,   150,     0,   151,   152,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   153,     0,   154,   155,
+     156,   157,   364,   158,     0,     0,   159,   160,     0,     0,
+       0,   153,   161,   154,   155,   156,   157,     0,   158,     0,
+     149,   159,   160,   150,     0,   151,   152,   161,    30,     0,
+      31,    32,    33,    30,     0,    31,    32,    33,     0,    30,
+       0,    31,    32,    33,     0,     0,    94,     5,     6,   293,
+     294,    94,     0,    50,     9,     0,     0,    94,    50,     0,
+       0,     0,   113,     0,    50,    53,     0,   115,     0,     0,
+      53,     0,     0,   168,     0,     0,    53,     0,     0,     0,
+       0,     4,     0,     0,     0,     0,     5,     6,    88,    89,
+       0,     0,     0,     9,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   153,     0,   154,   155,
+     156,   157,     0,   158,     0,     0,   159,   160,     0,     0,
+       0,     0,   161,     0,     0,     5,     6,   195,   196,     0,
+       0,     0,     9,   295,   296,   297,   298,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   153,     0,   154,
+     155,   156,   157,     0,   158,     0,     0,     0,   160,     0,
+       0,     0,     0,   161,    11,    12,    13,    14,    15,    16,
+      17,    18,    90,    91,    92,    93,     0,     0,     0,     0,
+       0,     0,     0,     0,    30,     0,    31,    32,    33,     0,
+      35,     4,     0,     0,    39,    40,     5,     6,    88,    89,
+       0,     0,    94,     9,     0,     0,     0,    49,     0,    50,
+       0,   197,   198,   199,   200,     0,     0,     0,    52,   185,
+       0,    53,     0,    30,     0,    31,    32,    33,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   149,   150,     0,
-       0,   151,     0,   152,   153,     0,     0,     0,     0,     0,
-       0,     0,     0,   154,     0,   155,   156,   157,   158,     0,
-     159,     0,     0,   160,   161,     0,     0,     0,   363,    11,
-      12,    13,    14,    15,    16,    17,    18,    90,    91,    92,
-      93,     0,     0,   154,     0,   155,   156,   157,   158,    30,
-     159,    31,    32,    33,   161,    35,     4,     0,     0,    39,
-      40,     5,     6,    88,    89,     0,     0,    94,     9,     0,
-       0,     0,    49,     0,    50,     0,     0,     0,     0,     0,
-       0,     0,     0,    52,   185,     0,    53,   154,     0,   155,
-     156,   157,   158,   277,   159,   278,     0,   160,   161,   154,
-       0,   155,   156,   157,   158,     0,   159,   246,     0,   160,
-     161,     0,     0,     0,     4,     0,     0,     0,     0,     5,
-       6,    88,    89,     0,     0,   154,     9,   155,   156,   157,
-     158,     0,   159,   247,     0,   160,   161,     0,     0,    11,
+       0,    94,     0,     0,     0,     0,     0,     0,    50,     4,
+       0,     0,     0,     0,     5,     6,    88,    89,   201,     0,
+      53,     9,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    11,    12,    13,    14,    15,    16,
+      17,    18,    90,    91,    92,    93,     0,     0,     0,     0,
+       0,     0,     0,     0,    30,     0,    31,    32,    33,     0,
+      35,     0,     0,     0,    39,    40,     0,     0,     4,     0,
+       0,     0,    94,     5,     6,    88,    89,    49,     0,    50,
+       9,     0,     0,     0,     0,     0,     0,     0,    52,   188,
+       0,    53,    11,    12,    13,    14,    15,    16,    17,    18,
+      90,    91,    92,    93,     0,     0,     0,     0,     0,     0,
+       0,     0,    30,     0,    31,    32,    33,     0,    35,     0,
+       0,     0,    39,    40,     0,     0,     4,     0,     0,     0,
+      94,     5,     6,    88,    89,    49,     0,    50,     9,     0,
+       0,     0,     0,     0,     0,     0,    52,   191,     0,    53,
+       0,    11,    12,    13,    14,    15,    16,    17,    18,    90,
+      91,    92,    93,     0,     0,     0,     0,     0,     0,     0,
+       0,    30,     0,    31,    32,    33,     0,    35,     0,     0,
+       0,    39,    40,     0,     0,     4,     0,     0,     0,    94,
+       5,     6,    88,    89,    49,     0,    50,     9,     0,     0,
+       0,     0,     0,     0,     0,    52,   211,     0,    53,    11,
       12,    13,    14,    15,    16,    17,    18,    90,    91,    92,
       93,     0,     0,     0,     0,     0,     0,     0,     0,    30,
        0,    31,    32,    33,     0,    35,     0,     0,     0,    39,
       40,     0,     0,     4,     0,     0,     0,    94,     5,     6,
-      88,    89,    49,     0,    50,     9,     0,     0,     0,     0,
-       0,     0,     0,    52,   188,     0,    53,    11,    12,    13,
-      14,    15,    16,    17,    18,    90,    91,    92,    93,     0,
-       0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
-      32,    33,     0,    35,     0,     0,     0,    39,    40,     0,
-       0,     4,     0,     0,     0,    94,     5,     6,    88,    89,
-      49,     0,    50,     9,     0,     0,     0,     0,     0,     0,
-       0,    52,   191,     0,    53,     0,    11,    12,    13,    14,
-      15,    16,    17,    18,    90,    91,    92,    93,     0,     0,
+     134,    89,    49,     0,    50,     9,     0,     0,     0,     0,
+       0,     0,     0,    52,   218,     0,    53,     0,    11,    12,
+      13,    14,    15,    16,    17,    18,    90,    91,    92,    93,
+       0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
+      31,    32,    33,     0,    35,     0,     0,     0,    39,    40,
+       0,     0,     4,     0,     0,     0,    94,     5,     6,    88,
+      89,    49,     0,    50,     9,     0,     0,     0,     0,     0,
+       0,     0,    52,     0,     0,    53,    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,     0,    35,     0,     0,     0,    39,    40,     0,     0,
        4,     0,     0,     0,    94,     5,     6,    88,    89,    49,
        0,    50,     9,     0,     0,     0,     0,     0,     0,     0,
-      52,   211,     0,    53,    11,    12,    13,    14,    15,    16,
-      17,    18,    90,    91,    92,    93,     0,     0,     0,     0,
-       0,     0,     0,     0,    30,     0,    31,    32,    33,     0,
-      35,     0,     0,     0,    39,    40,     0,     0,     4,     0,
-       0,     0,    94,     5,     6,   134,    89,    49,     0,    50,
-       9,     0,     0,     0,     0,     0,     0,     0,    52,   218,
-       0,    53,     0,    11,    12,    13,    14,    15,    16,    17,
-      18,    90,    91,    92,    93,     0,     0,     0,     0,     0,
+      52,     0,     0,    53,     0,    11,    12,    13,    14,    15,
+      16,    17,    18,    90,    91,    92,    93,     0,     0,     0,
+       0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
+       0,    35,     0,     0,     0,    39,    40,     0,     0,     0,
+       0,     0,     0,    94,     0,     0,     0,     0,    49,     0,
+      50,     0,     0,     0,     0,     0,     0,     0,     0,   175,
+       0,     0,    53,   300,    12,    13,   301,   302,    16,   303,
+     304,    90,    91,    92,    93,     0,     0,     0,     0,     0,
        0,     0,     0,    30,     0,    31,    32,    33,     0,    35,
-       0,     0,     0,    39,    40,     0,     0,     4,     0,     0,
-       0,    94,     5,     6,    88,    89,    49,     0,    50,     9,
+       0,     0,     0,    39,    40,     0,     0,     0,     0,     0,
+       0,    94,     0,     0,     0,     0,    49,     0,    50,     0,
        0,     0,     0,     0,     0,     0,     0,    52,     0,     0,
-      53,    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,     0,    35,     0,     0,
-       0,    39,    40,     0,     0,     4,     0,     0,     0,    94,
-       5,     6,    88,    89,    49,     0,    50,     9,     0,     0,
-     149,   150,     0,     0,   151,    52,   152,   153,    53,     0,
-      11,    12,    13,    14,    15,    16,    17,    18,    90,    91,
-      92,    93,   149,   150,     0,     0,   151,     0,   152,   153,
-      30,     0,    31,    32,    33,     0,    35,     0,   149,   150,
-      39,    40,   151,     0,   152,   153,     0,     0,    94,     0,
-     149,   150,     0,    49,   151,    50,   152,   153,     0,     0,
-       0,     0,     0,     0,   175,     0,     0,    53,   300,    12,
-      13,   301,   302,    16,   303,   304,    90,    91,    92,    93,
-     149,   150,     0,     0,   151,     0,   152,   153,    30,     0,
-      31,    32,    33,     0,    35,     0,   149,   150,    39,    40,
-     151,     0,   152,   153,     0,     0,    94,     0,   149,   150,
-       0,    49,   151,    50,   152,   153,     0,     0,     0,     0,
-     149,   150,    52,     0,   151,    53,   152,   153,   154,     0,
-     155,   156,   157,   158,     0,   159,   252,     0,   160,   161,
-     149,   150,     0,     0,   151,     0,   152,   153,     0,     0,
-     154,     0,   155,   156,   157,   158,     0,   159,   270,     0,
-     160,   161,     0,     0,     0,     0,   154,     0,   155,   156,
-     157,   158,     0,   159,   285,     0,   160,   161,   154,     0,
-     155,   156,   157,   158,   313,   159,   149,   150,   160,   161,
-     151,     0,   152,   153,     0,     0,     0,     0,    -1,   150,
-       0,     0,   151,     0,   152,   153,     0,     0,   154,     0,
-     155,   156,   157,   158,     0,   159,   318,     0,   160,   161,
-       0,     0,     0,     0,   154,     0,   155,   156,   157,   158,
-       0,   159,   320,     0,   160,   161,   154,     0,   155,   156,
-     157,   158,   338,   159,     0,    88,   160,   161,   154,     0,
-     155,   156,   157,   158,     0,   159,   339,     0,   160,   161,
-       5,     6,   195,   196,     0,     0,     0,     9,   154,     0,
-     155,   156,   157,   158,   364,   159,     0,     0,   160,   161,
-       0,     0,     0,     0,     0,     0,    88,     0,     0,     0,
-       0,    88,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   154,     0,   155,   156,   157,   158,
-       0,   159,     0,     0,   160,   161,   154,     0,   155,   156,
-     157,   158,     0,   159,     0,     0,   160,   161,     0,     0,
-       0,    30,     0,    31,    32,    33,   197,   198,   199,   200,
-       0,     0,     0,     0,     0,     0,     0,     0,    30,    94,
-      31,    32,    33,     0,     0,     0,    50,     0,     0,     0,
-       0,     0,     0,     0,     0,   113,    94,     0,    53,     0,
-       0,     0,    30,    50,    31,    32,    33,    30,     0,    31,
-      32,    33,     0,   201,     0,    53,     0,     0,     0,     0,
-      94,     0,     0,     0,     0,    94,     0,    50,     0,     0,
-       0,     0,    50,     0,     0,     0,   115,     0,     0,    53,
-       0,   168,     0,     0,    53
+      53
 };
 
 static const yytype_int16 yycheck[] =
 {
-       1,     1,    11,   111,     7,     7,    11,    10,    10,   240,
-     114,   130,   137,   244,   139,    11,   344,   130,    11,     4,
-     139,     7,   139,    24,   111,   112,   139,   140,     7,   146,
-     139,    10,   140,    19,    20,    21,    22,   146,   366,   140,
-      26,   145,   145,   139,    29,   139,    46,   139,   139,    50,
-     146,   139,   146,   139,   146,   146,   112,   111,   146,   111,
-     146,    46,   118,    64,    49,     3,     4,   145,    53,     7,
-     145,     9,    10,   111,   112,   145,   146,    62,   145,   146,
-     145,   146,    68,   314,   145,   146,   145,   146,   145,    75,
-     145,   146,   145,    78,    47,    48,     3,     4,   145,   145,
-       7,   145,     9,    10,   145,   145,   145,   108,   112,   145,
+       1,     1,     7,   114,    11,    10,   240,   344,     7,   112,
+     244,    10,   111,   130,   140,   118,    11,   130,     7,     4,
+     145,    10,   139,    24,     7,     7,   139,   140,    10,   366,
+     137,   145,   139,    11,   145,   139,    19,    20,    21,    22,
+     145,   140,   146,    26,    29,   139,    46,   139,   139,    50,
+     139,    11,   146,   139,   146,   146,   112,   146,   111,   112,
+     146,    46,   145,    64,    49,     3,     4,   139,    53,     7,
+     145,     9,    10,   111,   146,   139,   145,    62,   111,   112,
+     314,   111,   146,   145,   146,    68,   145,   146,   145,   146,
+     145,   146,    75,    78,   145,   146,     3,     4,   145,   146,
+       7,   145,     9,    10,    47,    48,   145,   108,   145,   145,
      111,   145,    97,   145,   115,   100,   101,   102,   103,   104,
-     105,   106,   107,   123,   109,   130,   145,   136,   113,   111,
-     111,   139,   133,   136,   136,   138,   145,   123,   147,   145,
-     145,   126,   147,   139,   145,   140,   131,   145,   134,   145,
-     146,   147,   145,   145,   147,   145,   135,   136,   144,   138,
-     146,   145,   145,   148,   149,   150,   112,   152,   140,   154,
-     155,   156,   157,   158,   159,   160,   161,   139,   111,   165,
-     140,   112,   139,   168,   170,     3,     4,   139,   146,     7,
-     175,     9,    10,   131,   112,   133,   134,   135,   136,   146,
-     138,   146,   146,   141,   142,   146,   146,   111,   140,   112,
-     148,   147,   139,   139,     3,     4,   146,   146,     7,   136,
-       9,    10,   207,   130,   131,   146,   133,   134,   135,   136,
-     146,   138,   146,   146,   141,   142,   146,   139,   114,   146,
-     145,   139,   279,     7,    46,   146,   146,   354,   233,   171,
-     366,    -1,    -1,   238,    -1,   240,    -1,    -1,    -1,   244,
-      -1,   246,   247,   248,    -1,   250,   266,   252,   253,    -1,
+     105,   106,   107,   123,   109,   145,   145,   111,   113,   136,
+     135,   136,   133,   138,   133,   134,   135,   136,   145,   138,
+     123,   126,   147,   142,   145,   111,   131,   136,   147,   138,
+     145,   134,   130,   145,   136,   145,   112,   145,   147,   140,
+     139,   144,   147,   148,   149,   147,   151,   145,   153,   154,
+     155,   156,   157,   158,   159,   160,   145,   145,   161,   139,
+     145,   145,   165,   168,   139,   145,   146,   170,   140,   140,
+     175,   111,   139,   131,   112,   133,   134,   135,   136,     7,
+     138,   146,    10,   141,   142,   139,   146,   146,   112,   147,
+     148,   146,   111,   146,     3,     4,   146,   140,     7,   112,
+       9,    10,   207,   130,   131,   139,   133,   134,   135,   136,
+     139,   138,   114,   146,   141,   142,   146,   279,   146,   146,
+     147,   146,   136,   146,   146,   146,   146,   139,   233,   145,
+     139,   146,     7,   238,    46,   240,   366,   354,    -1,   244,
+     171,   246,   247,   248,    -1,   250,   266,   252,   253,    -1,
       -1,    -1,    -1,    -1,     0,     1,    -1,    -1,    -1,    -1,
       -1,    -1,     8,    -1,   285,   270,    -1,    13,    14,    15,
       16,    -1,    -1,   278,    20,   280,     3,     4,    -1,    -1,
        7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   131,    40,   133,   134,   135,   136,    -1,
-     138,   139,    -1,   141,   142,    -1,    -1,    -1,   146,   314,
-      -1,    -1,    -1,   318,    -1,   320,   321,    -1,   323,    -1,
-      -1,    -1,   131,    -1,   133,   134,   135,   136,    15,   138,
-     139,    -1,   141,   142,   339,   340,   357,   146,    -1,    -1,
-       7,    -1,    -1,    10,    -1,    91,    92,    93,    94,    95,
+      -1,    -1,    -1,    -1,    40,     3,     4,    -1,    -1,     7,
+      -1,     9,    10,   131,    -1,   133,   134,   135,   136,   314,
+     138,    -1,    -1,   318,   142,   320,   321,    -1,   323,   147,
+      -1,    -1,   131,    -1,   133,   134,   135,   136,    -1,   138,
+     139,    -1,   141,   142,   339,   340,   357,   146,   147,    -1,
+      -1,    -1,    -1,    -1,    -1,    91,    92,    93,    94,    95,
       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
      106,    -1,   108,   109,   110,   111,    -1,   113,   114,   115,
      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,    15,   131,    -1,    -1,   134,    -1,
+     126,   127,   128,   129,    -1,   131,    -1,    -1,   134,    -1,
      136,     3,     4,    -1,   140,     7,    -1,     9,    10,   145,
       -1,    -1,   148,    -1,   131,    -1,   133,   134,   135,   136,
-      -1,   138,   139,    -1,   141,   142,     3,     4,    -1,   146,
-       7,    -1,     9,    10,   111,    -1,   113,   114,   115,    -1,
+      -1,   138,   139,    -1,   141,   142,    -1,    -1,    -1,   146,
+     147,    -1,    -1,   131,    -1,   133,   134,   135,   136,    -1,
+     138,   139,    -1,   141,   142,    -1,     3,     4,   146,   147,
+       7,    -1,     9,    10,    15,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     3,     4,    -1,    -1,     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,     3,     4,    -1,    -1,     7,   136,
-       9,    10,    -1,    13,    14,    15,    16,    -1,     3,     4,
-      20,   148,     7,    -1,     9,    10,   133,   134,   135,   136,
-      -1,   138,     3,     4,    -1,   142,     7,    -1,     9,    10,
-     111,    -1,   113,   114,   115,    -1,     3,     4,    -1,    -1,
-       7,    -1,     9,    10,    -1,    -1,    -1,    -1,   129,    -1,
-       3,     4,    -1,    -1,     7,   136,     9,    10,    -1,    -1,
-      -1,    -1,    -1,    -1,   145,    -1,    -1,   148,    -1,   131,
-      -1,   133,   134,   135,   136,     7,   138,   139,    10,   141,
-     142,     3,     4,    -1,   146,     7,    -1,     9,    10,    99,
-     100,   101,   102,    -1,   131,    -1,   133,   134,   135,   136,
-      -1,   138,   139,    -1,   141,   142,    -1,    -1,   131,   146,
-     133,   134,   135,   136,    -1,   138,   139,    -1,   141,   142,
-      -1,    -1,   131,   146,   133,   134,   135,   136,    -1,   138,
-      -1,    -1,   141,   142,    -1,    -1,   131,   146,   133,   134,
-     135,   136,    -1,   138,    -1,    -1,   141,   142,    -1,    -1,
-     131,   146,   133,   134,   135,   136,    -1,   138,    -1,    -1,
-     141,   142,    -1,    -1,   131,   146,   133,   134,   135,   136,
-      -1,   138,    -1,    -1,   141,   142,    -1,    -1,   131,   146,
-     133,   134,   135,   136,    -1,   138,    -1,    -1,   141,   142,
-       3,     4,    -1,   146,     7,    -1,     9,    10,    -1,   131,
-      -1,   133,   134,   135,   136,    -1,   138,    -1,    -1,   131,
-     142,   133,   134,   135,   136,    -1,   138,    -1,    -1,   141,
-     142,     3,     4,    -1,   146,     7,    -1,     9,    10,    -1,
-      -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
-      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,     3,
-       4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,
-      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
-      10,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
-      -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
-      -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,
-      -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
-      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,   131,    -1,
-     133,   134,   135,   136,    -1,   138,    -1,    -1,   141,   142,
-       3,     4,    -1,   146,     7,    -1,     9,    10,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,
-      -1,   133,   134,   135,   136,    -1,   138,    15,    -1,   141,
-     142,    -1,    -1,   131,   146,   133,   134,   135,   136,    -1,
-     138,    -1,    -1,   141,   142,    -1,    -1,   131,   146,   133,
-     134,   135,   136,    -1,   138,    -1,    -1,   141,   142,    -1,
-      -1,   131,   146,   133,   134,   135,   136,    -1,   138,    -1,
-      -1,   141,   142,    15,    -1,   131,   146,   133,   134,   135,
-     136,    -1,   138,    -1,    -1,   141,   142,    -1,    -1,   131,
-     146,   133,   134,   135,   136,    -1,   138,    -1,    -1,   141,
-     142,    -1,    -1,   131,   146,   133,   134,   135,   136,    -1,
-     138,    -1,    -1,   141,   142,     3,     4,    -1,   146,     7,
-      -1,     9,    10,   111,    -1,   113,   114,   115,   131,    -1,
-     133,   134,   135,   136,    -1,   138,    -1,    -1,   141,   142,
-      -1,   129,    -1,   146,    -1,    -1,     4,    -1,   136,     7,
-      -1,     9,    10,    -1,    -1,    -1,    -1,   145,    -1,    -1,
-     148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
-      -1,   113,   114,   115,    -1,    -1,     8,    -1,    -1,    -1,
-      -1,    13,    14,    15,    16,    -1,    -1,   129,    20,     3,
-       4,    -1,    -1,     7,   136,     9,    10,    -1,    -1,    -1,
-      -1,     3,     4,   145,    -1,     7,   148,     9,    10,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
       -1,     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,   131,
+      -1,   133,   134,   135,   136,   137,   138,   139,    -1,   141,
+     142,    -1,     3,     4,    -1,   147,     7,    -1,     9,    10,
+     111,    -1,   113,   114,   115,    -1,    -1,    -1,    -1,     3,
+       4,    -1,    -1,     7,    -1,     9,    10,    -1,   129,    -1,
+      -1,    -1,    -1,    -1,   131,   136,   133,   134,   135,   136,
+      -1,   138,   139,    -1,   141,   142,    -1,   148,    -1,   146,
+     147,   131,    -1,   133,   134,   135,   136,    -1,   138,   139,
+      -1,   141,   142,    -1,    -1,    -1,   146,   147,   131,    -1,
+     133,   134,   135,   136,    15,   138,   139,    -1,   141,   142,
+      -1,    -1,    -1,   146,   147,   131,    -1,   133,   134,   135,
+     136,    -1,   138,    -1,    -1,   141,   142,    -1,    -1,    -1,
+     146,   147,   131,    -1,   133,   134,   135,   136,    -1,   138,
+      -1,    -1,   141,   142,    -1,     3,     4,   146,   147,     7,
+      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     131,    -1,   133,   134,   135,   136,    -1,   138,    -1,    -1,
+     141,   142,    -1,    -1,    -1,   146,   147,   131,    -1,   133,
+     134,   135,   136,    -1,   138,   139,    -1,   141,   142,    -1,
+       3,     4,    -1,   147,     7,    -1,     9,    10,    -1,    -1,
+     111,    -1,   113,   114,   115,     3,     4,    -1,    -1,     7,
+      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,   129,    -1,
+      -1,    -1,     3,     4,    -1,   136,     7,    -1,     9,    10,
+      -1,    -1,    -1,    -1,   145,    -1,    -1,   148,    -1,     3,
+       4,    -1,    -1,     7,    -1,     9,    10,    -1,    -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,   131,    -1,   133,   134,   135,   136,    -1,
-     138,    -1,    -1,   141,   142,    -1,    -1,    -1,   146,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,    -1,    -1,   131,    -1,   133,   134,   135,   136,   111,
-     138,   113,   114,   115,   142,   117,     8,    -1,    -1,   121,
-     122,    13,    14,    15,    16,    -1,    -1,   129,    20,    -1,
-      -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   145,   146,    -1,   148,   131,    -1,   133,
-     134,   135,   136,   137,   138,   139,    -1,   141,   142,   131,
-      -1,   133,   134,   135,   136,    -1,   138,   139,    -1,   141,
-     142,    -1,    -1,    -1,     8,    -1,    -1,    -1,    -1,    13,
-      14,    15,    16,    -1,    -1,   131,    20,   133,   134,   135,
-     136,    -1,   138,   139,    -1,   141,   142,    -1,    -1,    91,
+     138,   139,    -1,   141,   142,    -1,     3,     4,    -1,   147,
+       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,    -1,
+     133,   134,   135,   136,    -1,   138,   139,    -1,   141,   142,
+      -1,    -1,    -1,   131,   147,   133,   134,   135,   136,    -1,
+     138,    -1,    -1,   141,   142,    -1,    -1,    -1,   146,   147,
+     131,    -1,   133,   134,   135,   136,    -1,   138,    -1,    -1,
+     141,   142,    -1,    -1,    -1,   146,   147,   131,    -1,   133,
+     134,   135,   136,    -1,   138,   139,    -1,   141,   142,    -1,
+      -1,    -1,   131,   147,   133,   134,   135,   136,    15,   138,
+      -1,    -1,   141,   142,    -1,     3,     4,   146,   147,     7,
+      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   131,    -1,   133,   134,   135,   136,
+      -1,   138,   139,    -1,   141,   142,    -1,    -1,    -1,   131,
+     147,   133,   134,   135,   136,    -1,   138,    -1,    -1,   141,
+     142,    -1,     3,     4,   146,   147,     7,    -1,     9,    10,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
+      -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,
+       9,    10,    -1,    -1,   111,    -1,   113,   114,   115,     3,
+       4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,
+      -1,    -1,   129,    -1,    -1,    -1,     3,     4,    -1,   136,
+       7,    -1,     9,    10,    -1,    -1,    -1,    -1,   145,    -1,
+      -1,   148,    -1,   131,    -1,   133,   134,   135,   136,    -1,
+     138,    -1,    -1,   141,   142,    -1,     3,     4,   146,   147,
+       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,    -1,    -1,
+     131,    -1,   133,   134,   135,   136,   137,   138,    -1,    -1,
+     141,   142,    -1,    -1,    -1,   131,   147,   133,   134,   135,
+     136,    -1,   138,    -1,    -1,   141,   142,    -1,    -1,    -1,
+     146,   147,   131,    -1,   133,   134,   135,   136,    -1,   138,
+     139,    -1,   141,   142,    -1,    -1,    -1,   131,   147,   133,
+     134,   135,   136,    -1,   138,    -1,    -1,   141,   142,    -1,
+      -1,    -1,   146,   147,   131,    15,   133,   134,   135,   136,
+      -1,   138,   139,    -1,   141,   142,    -1,     3,     4,    -1,
+     147,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   131,    -1,   133,   134,   135,   136,
+      -1,   138,    -1,    -1,   141,   142,    -1,    -1,    -1,   146,
+     147,   131,    -1,   133,   134,   135,   136,   137,   138,     3,
+       4,   141,   142,     7,    -1,     9,    10,   147,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
+       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
+      10,   111,    -1,   113,   114,   115,    -1,    -1,    -1,    -1,
+       3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,   129,
+      -1,    -1,    -1,    -1,    -1,    -1,   136,     3,     4,    -1,
+      -1,     7,    -1,     9,    10,   145,    -1,    -1,   148,    -1,
+      -1,    -1,    -1,    -1,    -1,   131,    -1,   133,   134,   135,
+     136,    -1,   138,   139,    -1,   141,   142,    -1,     3,     4,
+      -1,   147,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
+      10,    -1,    -1,    -1,    -1,    -1,    -1,   131,    -1,   133,
+     134,   135,   136,    -1,   138,    -1,    -1,   141,   142,    -1,
+      -1,    -1,   146,   147,   131,    -1,   133,   134,   135,   136,
+      -1,   138,    -1,    -1,   141,   142,    -1,    -1,    -1,   146,
+     147,   131,    15,   133,   134,   135,   136,    15,   138,    -1,
+      -1,   141,   142,    15,    -1,    -1,   146,   147,   131,    -1,
+     133,   134,   135,   136,    -1,   138,    -1,    -1,   141,   142,
+      -1,    -1,    -1,   146,   147,   131,    -1,   133,   134,   135,
+     136,    -1,   138,    -1,    -1,   141,   142,    -1,     3,     4,
+     146,   147,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   131,    -1,   133,   134,
+     135,   136,   137,   138,    -1,    -1,   141,   142,    -1,    -1,
+      -1,   131,   147,   133,   134,   135,   136,    -1,   138,    -1,
+       4,   141,   142,     7,    -1,     9,    10,   147,   111,    -1,
+     113,   114,   115,   111,    -1,   113,   114,   115,    -1,   111,
+      -1,   113,   114,   115,    -1,    -1,   129,    13,    14,    15,
+      16,   129,    -1,   136,    20,    -1,    -1,   129,   136,    -1,
+      -1,    -1,   145,    -1,   136,   148,    -1,   145,    -1,    -1,
+     148,    -1,    -1,   145,    -1,    -1,   148,    -1,    -1,    -1,
+      -1,     8,    -1,    -1,    -1,    -1,    13,    14,    15,    16,
+      -1,    -1,    -1,    20,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   131,    -1,   133,   134,
+     135,   136,    -1,   138,    -1,    -1,   141,   142,    -1,    -1,
+      -1,    -1,   147,    -1,    -1,    13,    14,    15,    16,    -1,
+      -1,    -1,    20,    99,   100,   101,   102,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,    -1,   133,
+     134,   135,   136,    -1,   138,    -1,    -1,    -1,   142,    -1,
+      -1,    -1,    -1,   147,    91,    92,    93,    94,    95,    96,
+      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   111,    -1,   113,   114,   115,    -1,
+     117,     8,    -1,    -1,   121,   122,    13,    14,    15,    16,
+      -1,    -1,   129,    20,    -1,    -1,    -1,   134,    -1,   136,
+      -1,    99,   100,   101,   102,    -1,    -1,    -1,   145,   146,
+      -1,   148,    -1,   111,    -1,   113,   114,   115,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   129,    -1,    -1,    -1,    -1,    -1,    -1,   136,     8,
+      -1,    -1,    -1,    -1,    13,    14,    15,    16,   146,    -1,
+     148,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    91,    92,    93,    94,    95,    96,
+      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   111,    -1,   113,   114,   115,    -1,
+     117,    -1,    -1,    -1,   121,   122,    -1,    -1,     8,    -1,
+      -1,    -1,   129,    13,    14,    15,    16,   134,    -1,   136,
+      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   145,   146,
+      -1,   148,    91,    92,    93,    94,    95,    96,    97,    98,
+      99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   111,    -1,   113,   114,   115,    -1,   117,    -1,
+      -1,    -1,   121,   122,    -1,    -1,     8,    -1,    -1,    -1,
+     129,    13,    14,    15,    16,   134,    -1,   136,    20,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   145,   146,    -1,   148,
+      -1,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   111,    -1,   113,   114,   115,    -1,   117,    -1,    -1,
+      -1,   121,   122,    -1,    -1,     8,    -1,    -1,    -1,   129,
+      13,    14,    15,    16,   134,    -1,   136,    20,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   145,   146,    -1,   148,    91,
       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
      102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
@@ -1368,11 +1465,11 @@
      122,    -1,    -1,     8,    -1,    -1,    -1,   129,    13,    14,
       15,    16,   134,    -1,   136,    20,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   145,   146,    -1,   148,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,
-     114,   115,    -1,   117,    -1,    -1,    -1,   121,   122,    -1,
-      -1,     8,    -1,    -1,    -1,   129,    13,    14,    15,    16,
-     134,    -1,   136,    20,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   145,   146,    -1,   148,    -1,    91,    92,    93,    94,
+      -1,    -1,    -1,   145,   146,    -1,   148,    -1,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
+     113,   114,   115,    -1,   117,    -1,    -1,    -1,   121,   122,
+      -1,    -1,     8,    -1,    -1,    -1,   129,    13,    14,    15,
+      16,   134,    -1,   136,    20,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   145,    -1,    -1,   148,    91,    92,    93,    94,
       95,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,   114,
@@ -1380,64 +1477,17 @@
        8,    -1,    -1,    -1,   129,    13,    14,    15,    16,   134,
       -1,   136,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     145,   146,    -1,   148,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   111,    -1,   113,   114,   115,    -1,
-     117,    -1,    -1,    -1,   121,   122,    -1,    -1,     8,    -1,
-      -1,    -1,   129,    13,    14,    15,    16,   134,    -1,   136,
-      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   145,   146,
-      -1,   148,    -1,    91,    92,    93,    94,    95,    96,    97,
+     145,    -1,    -1,   148,    -1,    91,    92,    93,    94,    95,
+      96,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   111,    -1,   113,   114,   115,
+      -1,   117,    -1,    -1,    -1,   121,   122,    -1,    -1,    -1,
+      -1,    -1,    -1,   129,    -1,    -1,    -1,    -1,   134,    -1,
+     136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   145,
+      -1,    -1,   148,    91,    92,    93,    94,    95,    96,    97,
       98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,   111,    -1,   113,   114,   115,    -1,   117,
-      -1,    -1,    -1,   121,   122,    -1,    -1,     8,    -1,    -1,
-      -1,   129,    13,    14,    15,    16,   134,    -1,   136,    20,
+      -1,    -1,    -1,   121,   122,    -1,    -1,    -1,    -1,    -1,
+      -1,   129,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,   145,    -1,    -1,
-     148,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   111,    -1,   113,   114,   115,    -1,   117,    -1,    -1,
-      -1,   121,   122,    -1,    -1,     8,    -1,    -1,    -1,   129,
-      13,    14,    15,    16,   134,    -1,   136,    20,    -1,    -1,
-       3,     4,    -1,    -1,     7,   145,     9,    10,   148,    -1,
-      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-     101,   102,     3,     4,    -1,    -1,     7,    -1,     9,    10,
-     111,    -1,   113,   114,   115,    -1,   117,    -1,     3,     4,
-     121,   122,     7,    -1,     9,    10,    -1,    -1,   129,    -1,
-       3,     4,    -1,   134,     7,   136,     9,    10,    -1,    -1,
-      -1,    -1,    -1,    -1,   145,    -1,    -1,   148,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-       3,     4,    -1,    -1,     7,    -1,     9,    10,   111,    -1,
-     113,   114,   115,    -1,   117,    -1,     3,     4,   121,   122,
-       7,    -1,     9,    10,    -1,    -1,   129,    -1,     3,     4,
-      -1,   134,     7,   136,     9,    10,    -1,    -1,    -1,    -1,
-       3,     4,   145,    -1,     7,   148,     9,    10,   131,    -1,
-     133,   134,   135,   136,    -1,   138,   139,    -1,   141,   142,
-       3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,
-     131,    -1,   133,   134,   135,   136,    -1,   138,   139,    -1,
-     141,   142,    -1,    -1,    -1,    -1,   131,    -1,   133,   134,
-     135,   136,    -1,   138,   139,    -1,   141,   142,   131,    -1,
-     133,   134,   135,   136,   137,   138,     3,     4,   141,   142,
-       7,    -1,     9,    10,    -1,    -1,    -1,    -1,     3,     4,
-      -1,    -1,     7,    -1,     9,    10,    -1,    -1,   131,    -1,
-     133,   134,   135,   136,    -1,   138,   139,    -1,   141,   142,
-      -1,    -1,    -1,    -1,   131,    -1,   133,   134,   135,   136,
-      -1,   138,   139,    -1,   141,   142,   131,    -1,   133,   134,
-     135,   136,   137,   138,    -1,    15,   141,   142,   131,    -1,
-     133,   134,   135,   136,    -1,   138,   139,    -1,   141,   142,
-      13,    14,    15,    16,    -1,    -1,    -1,    20,   131,    -1,
-     133,   134,   135,   136,   137,   138,    -1,    -1,   141,   142,
-      -1,    -1,    -1,    -1,    -1,    -1,    15,    -1,    -1,    -1,
-      -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   131,    -1,   133,   134,   135,   136,
-      -1,   138,    -1,    -1,   141,   142,   131,    -1,   133,   134,
-     135,   136,    -1,   138,    -1,    -1,   141,   142,    -1,    -1,
-      -1,   111,    -1,   113,   114,   115,    99,   100,   101,   102,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   129,
-     113,   114,   115,    -1,    -1,    -1,   136,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   145,   129,    -1,   148,    -1,
-      -1,    -1,   111,   136,   113,   114,   115,   111,    -1,   113,
-     114,   115,    -1,   146,    -1,   148,    -1,    -1,    -1,    -1,
-     129,    -1,    -1,    -1,    -1,   129,    -1,   136,    -1,    -1,
-      -1,    -1,   136,    -1,    -1,    -1,   145,    -1,    -1,   148,
-      -1,   145,    -1,    -1,   148
+     148
 };
 
@@ -1460,7 +1510,7 @@
      111,   140,   156,   145,   158,   111,   145,   112,   145,   145,
      111,   145,   111,   145,    15,   158,   165,   166,   166,   158,
-     157,   157,   158,   140,    11,   145,   147,   130,   139,     3,
-       4,     7,     9,    10,   131,   133,   134,   135,   136,   138,
-     141,   142,   158,   157,   130,   139,   140,   172,   145,   156,
+     157,   157,   158,   140,    11,   145,   130,   139,     3,     4,
+       7,     9,    10,   131,   133,   134,   135,   136,   138,   141,
+     142,   147,   158,   157,   130,   139,   140,   172,   145,   156,
      139,   156,   158,   158,   112,   145,   158,   167,   158,   158,
      158,   158,   158,   158,   158,   146,   157,   158,   146,   157,
@@ -1468,6 +1518,6 @@
      102,   146,   156,   173,   111,   112,   158,   159,   111,   158,
      112,   146,   157,   175,   137,   146,   148,   156,   146,   157,
-     156,   158,   158,   158,   158,   158,   158,   158,   158,   158,
-     158,   158,   158,   130,   146,   161,   156,   158,   136,   156,
+     158,   158,   158,   158,   158,   158,   158,   158,   158,   158,
+     158,   158,   156,   130,   146,   161,   156,   158,   136,   156,
      172,   146,   158,   146,   139,   146,   139,   139,   139,   146,
      139,   146,   139,   139,   146,   146,   146,   146,   146,   146,
@@ -2490,5 +2540,5 @@
 #line 519 "grammar.y"
     {
-            if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR;
+            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'(')) YYERROR;
           ;}
     break;
@@ -2498,13 +2548,4 @@
 /* Line 1464 of yacc.c  */
 #line 523 "grammar.y"
-    {
-            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'(')) YYERROR;
-          ;}
-    break;
-
-  case 35:
-
-/* Line 1464 of yacc.c  */
-#line 527 "grammar.y"
     {
             if ((yyvsp[(1) - (4)].lv).rtyp==UNKNOWN)
@@ -2521,8 +2562,8 @@
     break;
 
-  case 36:
-
-/* Line 1464 of yacc.c  */
-#line 540 "grammar.y"
+  case 35:
+
+/* Line 1464 of yacc.c  */
+#line 536 "grammar.y"
     {
             if (currRingHdl==NULL) MYYERROR("no ring active");
@@ -2554,8 +2595,8 @@
     break;
 
-  case 37:
-
-/* Line 1464 of yacc.c  */
-#line 568 "grammar.y"
+  case 36:
+
+/* Line 1464 of yacc.c  */
+#line 564 "grammar.y"
     {
             memset(&(yyval.lv),0,sizeof((yyval.lv)));
@@ -2583,8 +2624,8 @@
     break;
 
-  case 38:
-
-/* Line 1464 of yacc.c  */
-#line 592 "grammar.y"
+  case 37:
+
+/* Line 1464 of yacc.c  */
+#line 588 "grammar.y"
     {
             memset(&(yyval.lv),0,sizeof((yyval.lv)));
@@ -2594,8 +2635,8 @@
     break;
 
-  case 39:
-
-/* Line 1464 of yacc.c  */
-#line 598 "grammar.y"
+  case 38:
+
+/* Line 1464 of yacc.c  */
+#line 594 "grammar.y"
     {
             memset(&(yyval.lv),0,sizeof((yyval.lv)));
@@ -2605,17 +2646,17 @@
     break;
 
+  case 39:
+
+/* Line 1464 of yacc.c  */
+#line 600 "grammar.y"
+    {
+            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
+          ;}
+    break;
+
   case 40:
 
 /* Line 1464 of yacc.c  */
-#line 604 "grammar.y"
-    {
-            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
-          ;}
-    break;
-
-  case 41:
-
-/* Line 1464 of yacc.c  */
-#line 611 "grammar.y"
+#line 607 "grammar.y"
     {
             leftv v = &(yyvsp[(1) - (3)].lv);
@@ -2630,17 +2671,17 @@
     break;
 
+  case 41:
+
+/* Line 1464 of yacc.c  */
+#line 618 "grammar.y"
+    {
+            (yyval.lv) = (yyvsp[(1) - (1)].lv);
+          ;}
+    break;
+
   case 42:
 
 /* Line 1464 of yacc.c  */
-#line 622 "grammar.y"
-    {
-            (yyval.lv) = (yyvsp[(1) - (1)].lv);
-          ;}
-    break;
-
-  case 43:
-
-/* Line 1464 of yacc.c  */
-#line 628 "grammar.y"
+#line 624 "grammar.y"
     {
             /*if ($1.typ == eunknown) YYERROR;*/
@@ -2649,9 +2690,16 @@
     break;
 
+  case 43:
+
+/* Line 1464 of yacc.c  */
+#line 628 "grammar.y"
+    { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;}
+    break;
+
   case 44:
 
 /* Line 1464 of yacc.c  */
-#line 632 "grammar.y"
-    { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;}
+#line 629 "grammar.y"
+    { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;}
     break;
 
@@ -2659,6 +2707,8 @@
 
 /* Line 1464 of yacc.c  */
-#line 633 "grammar.y"
-    { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;}
+#line 631 "grammar.y"
+    {
+            if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR;
+          ;}
     break;
 
@@ -2668,5 +2718,5 @@
 #line 635 "grammar.y"
     {
-            if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR;
+            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR;
           ;}
     break;
@@ -2677,5 +2727,5 @@
 #line 639 "grammar.y"
     {
-            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR;
+            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
           ;}
     break;
@@ -2686,12 +2736,30 @@
 #line 643 "grammar.y"
     {
+            if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
+          ;}
+    break;
+
+  case 49:
+
+/* Line 1464 of yacc.c  */
+#line 647 "grammar.y"
+    {
+            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
+          ;}
+    break;
+
+  case 50:
+
+/* Line 1464 of yacc.c  */
+#line 651 "grammar.y"
+    {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
           ;}
     break;
 
-  case 49:
-
-/* Line 1464 of yacc.c  */
-#line 647 "grammar.y"
+  case 51:
+
+/* Line 1464 of yacc.c  */
+#line 655 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2699,8 +2767,8 @@
     break;
 
-  case 50:
-
-/* Line 1464 of yacc.c  */
-#line 651 "grammar.y"
+  case 52:
+
+/* Line 1464 of yacc.c  */
+#line 659 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
@@ -2708,8 +2776,8 @@
     break;
 
-  case 51:
-
-/* Line 1464 of yacc.c  */
-#line 655 "grammar.y"
+  case 53:
+
+/* Line 1464 of yacc.c  */
+#line 663 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2717,8 +2785,116 @@
     break;
 
-  case 52:
-
-/* Line 1464 of yacc.c  */
-#line 659 "grammar.y"
+  case 54:
+
+/* Line 1464 of yacc.c  */
+#line 667 "grammar.y"
+    {
+            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
+          ;}
+    break;
+
+  case 55:
+
+/* Line 1464 of yacc.c  */
+#line 671 "grammar.y"
+    {
+            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
+          ;}
+    break;
+
+  case 56:
+
+/* Line 1464 of yacc.c  */
+#line 675 "grammar.y"
+    {
+            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
+          ;}
+    break;
+
+  case 57:
+
+/* Line 1464 of yacc.c  */
+#line 679 "grammar.y"
+    {
+            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
+          ;}
+    break;
+
+  case 58:
+
+/* Line 1464 of yacc.c  */
+#line 683 "grammar.y"
+    {
+            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
+          ;}
+    break;
+
+  case 59:
+
+/* Line 1464 of yacc.c  */
+#line 687 "grammar.y"
+    {
+            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
+          ;}
+    break;
+
+  case 60:
+
+/* Line 1464 of yacc.c  */
+#line 691 "grammar.y"
+    {
+            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
+          ;}
+    break;
+
+  case 61:
+
+/* Line 1464 of yacc.c  */
+#line 695 "grammar.y"
+    {
+            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
+          ;}
+    break;
+
+  case 62:
+
+/* Line 1464 of yacc.c  */
+#line 699 "grammar.y"
+    {
+            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
+          ;}
+    break;
+
+  case 63:
+
+/* Line 1464 of yacc.c  */
+#line 703 "grammar.y"
+    {
+            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
+          ;}
+    break;
+
+  case 64:
+
+/* Line 1464 of yacc.c  */
+#line 707 "grammar.y"
+    {
+            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
+          ;}
+    break;
+
+  case 65:
+
+/* Line 1464 of yacc.c  */
+#line 711 "grammar.y"
+    {
+            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
+          ;}
+    break;
+
+  case 66:
+
+/* Line 1464 of yacc.c  */
+#line 715 "grammar.y"
     {
             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2726,17 +2902,17 @@
     break;
 
-  case 53:
-
-/* Line 1464 of yacc.c  */
-#line 663 "grammar.y"
-    {
-            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
-          ;}
-    break;
-
-  case 54:
-
-/* Line 1464 of yacc.c  */
-#line 667 "grammar.y"
+  case 67:
+
+/* Line 1464 of yacc.c  */
+#line 719 "grammar.y"
+    {
+            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
+          ;}
+    break;
+
+  case 68:
+
+/* Line 1464 of yacc.c  */
+#line 723 "grammar.y"
     {
             if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
@@ -2744,130 +2920,4 @@
     break;
 
-  case 55:
-
-/* Line 1464 of yacc.c  */
-#line 671 "grammar.y"
-    {
-            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
-          ;}
-    break;
-
-  case 56:
-
-/* Line 1464 of yacc.c  */
-#line 675 "grammar.y"
-    {
-            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
-          ;}
-    break;
-
-  case 57:
-
-/* Line 1464 of yacc.c  */
-#line 679 "grammar.y"
-    {
-            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
-          ;}
-    break;
-
-  case 58:
-
-/* Line 1464 of yacc.c  */
-#line 683 "grammar.y"
-    {
-            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
-          ;}
-    break;
-
-  case 59:
-
-/* Line 1464 of yacc.c  */
-#line 687 "grammar.y"
-    {
-            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
-          ;}
-    break;
-
-  case 60:
-
-/* Line 1464 of yacc.c  */
-#line 691 "grammar.y"
-    {
-            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
-          ;}
-    break;
-
-  case 61:
-
-/* Line 1464 of yacc.c  */
-#line 695 "grammar.y"
-    {
-            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
-          ;}
-    break;
-
-  case 62:
-
-/* Line 1464 of yacc.c  */
-#line 699 "grammar.y"
-    {
-            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
-          ;}
-    break;
-
-  case 63:
-
-/* Line 1464 of yacc.c  */
-#line 703 "grammar.y"
-    {
-            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
-          ;}
-    break;
-
-  case 64:
-
-/* Line 1464 of yacc.c  */
-#line 707 "grammar.y"
-    {
-            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
-          ;}
-    break;
-
-  case 65:
-
-/* Line 1464 of yacc.c  */
-#line 711 "grammar.y"
-    {
-            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
-          ;}
-    break;
-
-  case 66:
-
-/* Line 1464 of yacc.c  */
-#line 715 "grammar.y"
-    {
-            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
-          ;}
-    break;
-
-  case 67:
-
-/* Line 1464 of yacc.c  */
-#line 719 "grammar.y"
-    {
-            if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
-          ;}
-    break;
-
-  case 68:
-
-/* Line 1464 of yacc.c  */
-#line 723 "grammar.y"
-    {
-            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
-          ;}
-    break;
-
   case 69:
 
@@ -2875,5 +2925,5 @@
 #line 727 "grammar.y"
     {
-            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
+            if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
           ;}
     break;
@@ -2884,5 +2934,5 @@
 #line 731 "grammar.y"
     {
-            if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
+            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR;
           ;}
     break;
@@ -2893,5 +2943,5 @@
 #line 735 "grammar.y"
     {
-            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR;
+            if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR;
           ;}
     break;
@@ -4150,5 +4200,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 4151 "grammar.cc"
+#line 4201 "grammar.cc"
       default: break;
     }
Index: Singular/grammar.y
===================================================================
--- Singular/grammar.y	(revision 0e2f8c5ae674291213ebe9d468d1011105793cd3)
+++ Singular/grammar.y	(revision 39d427f4321691ff7ee982ea2a474bb8c09aacbb)
@@ -516,8 +516,4 @@
             if(iiExprArith2(&$$, &$1, COLONCOLON, &$3)) YYERROR;
           }
-        | elemexpr '.' elemexpr
-          {
-            if(iiExprArith2(&$$, &$1, '.', &$3)) YYERROR;
-          }
         | elemexpr '('  ')'
           {
@@ -735,4 +731,8 @@
           {
             if(iiExprArith1(&$$,&$3,RING_CMD)) YYERROR;
+          }
+        | expr '.' elemexpr
+          {
+            if(iiExprArith2(&$$, &$1, '.', &$3)) YYERROR;
           }
         | APPLY '('  expr ',' CMD_1 ')'
