[project @ 1996-03-22 09:24:22 by partain]
[ghc-hetmet.git] / ghc / compiler / yaccParser / hslexer.c
index 768b8a2..add30be 100644 (file)
@@ -1,7 +1,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /srv/cvs/cvs.haskell.org/fptools/ghc/compiler/yaccParser/Attic/hslexer.c,v 1.2 1996/01/12 11:36:07 partain Exp $
+ * $Header: /srv/cvs/cvs.haskell.org/fptools/ghc/compiler/yaccParser/Attic/hslexer.c,v 1.4 1996/01/23 11:11:20 partain Exp $
  */
 
 #define FLEX_SCANNER
@@ -281,102 +281,92 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 201
-#define YY_END_OF_BUFFER 202
-static yyconst short int yy_accept[836] =
+#define YY_NUM_RULES 202
+#define YY_END_OF_BUFFER 203
+static yyconst short int yy_accept[743] =
     {   0,
-        0,    0,    0,    0,    0,    0,    0,    0,  190,  190,
+        0,    0,    0,    0,    0,    0,    0,    0,  191,  191,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      202,  196,  197,  129,  128,  136,  198,  141,  184,  198,
-      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
-      198,  198,  198,  139,  198,  150,  152,  160,  156,  198,
-      162,  154,  158,  198,  188,  121,  132,  126,   91,   92,
-       97,   84,  104,  121,  110,  110,  121,   83,  121,   86,
-       98,  120,   93,   99,   94,  101,  102,  120,  120,  120,
-      120,  120,  120,  120,  120,  120,  120,  120,   95,   85,
-       96,  103,  121,  190,  195,  195,  132,  126,  104,  110,
-
-      110,  120,  101,  102,  120,  120,  120,  120,  120,  120,
-      120,  120,  120,  120,  120,  188,  126,  121,  110,  196,
-      120,  120,  120,  120,  120,   95,  121,  121,  121,  196,
-      196,  120,  120,  196,  199,  135,  134,  138,  200,  188,
-      141,  200,  184,  200,  200,  200,  200,  200,  200,  200,
-      200,  200,  200,  200,  200,  200,  200,  140,  200,  150,
-      152,  160,  156,  200,  162,  154,  158,  200,  200,  129,
-      128,  127,  184,    0,    0,  151,    0,  161,    0,    0,
-        0,  174,    0,    0,    0,    0,  159,  177,  178,  153,
-      155,    0,    0,  179,  164,  163,  181,    0,    0,    0,
-
-      180,  157,  183,  185,  186,  188,  121,  132,  131,  126,
-      125,  187,   88,   82,    0,  110,    0,    0,   90,   87,
-       89,  120,  119,    0,  119,  120,  120,  120,  120,  120,
-      120,   60,  120,   74,  120,  120,   68,  120,  120,   71,
-      120,  120,  189,    0,    0,  190,  191,    0,  194,  192,
-      193,    0,  132,  131,  126,    0,    0,  109,    0,  110,
-        0,    0,  118,  120,  119,    0,    0,  120,  120,  120,
-      120,  120,  120,   60,  120,   74,  120,  120,   68,  120,
-      120,   71,  120,  120,    0,  126,    0,  110,    0,    0,
-        0,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-
-      119,  119,  119,  119,  119,  119,  119,    0,  120,  120,
-       74,  120,   68,  189,    0,  120,  135,  134,  133,  137,
-      148,  149,  173,  166,  167,  168,  169,  182,  165,  147,
-      146,  176,  172,  145,  170,  142,  143,  144,  175,  171,
-      126,  124,  187,  187,  187,  187,  113,  106,  108,  119,
-      119,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  120,   75,  120,  120,  120,  120,  120,    0,    0,
-        1,    1,    0,  130,  124,    0,    0,  113,  106,  108,
-      119,  119,    0,    0,    0,  120,  120,  120,  120,  120,
-      120,  120,  120,  120,  120,  120,   75,  120,  120,  120,
-
-      120,  120,    0,    0,    0,   18,   19,    0,  119,  119,
-      119,  119,   12,  119,  119,  119,  119,  119,  119,   17,
-      119,   15,  119,  119,  119,   11,  119,  119,    6,  119,
-      119,  119,  119,   14,  119,  119,  119,   13,  119,  119,
-      117,  120,   75,   52,  187,    0,  119,   53,  120,   55,
-      120,  120,   58,  120,  120,  120,  120,  120,  120,  120,
-       70,   72,  120,    0,    0,    0,    0,    0,    0,    0,
-        0,  123,    0,    0,  112,    0,  105,  107,  119,  119,
-      122,    0,   53,  120,   55,  120,  120,   58,  120,  120,
-      120,  120,  120,  120,  120,   70,   72,  120,   46,    0,
-
-      100,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,   16,  119,    7,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  117,   53,    0,  113,   80,   54,  120,  120,  120,
-      120,   62,  120,  120,  120,  120,   73,    0,    0,    0,
-        0,    0,    0,    0,    0,  111,    0,  113,  119,  119,
-      114,   54,  120,  120,  120,  120,   62,  120,  120,  120,
-      120,   73,    0,    0,  119,   22,  119,  119,   20,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      115,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-
-      119,  119,  119,  120,  120,   59,   61,   63,   64,  120,
-      120,   67,  120,    0,    0,    0,    0,    0,    0,    0,
-        0,   78,  119,  120,  120,   59,   61,   63,   64,  120,
-      120,   67,  120,  119,  119,  119,  119,  119,  119,   35,
-      119,   36,  119,  119,  119,  119,   34,  119,  119,   40,
-      119,   23,  119,  119,   38,  116,  119,  119,   39,  119,
-       56,  120,  120,  120,  120,    0,    0,    0,    0,    0,
-        0,    0,    0,    2,    2,  119,   76,   56,  120,  120,
-      120,  120,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,   33,  119,   21,  119,
-
-      119,   57,   65,  120,   69,    0,    0,    0,    0,    0,
-        0,    0,  119,  119,   57,   65,  120,   69,  119,  119,
-       41,  119,   32,   37,  119,  119,  119,  119,   25,  119,
-      119,  119,  119,  119,  119,  119,   81,   66,    0,    0,
-        0,    0,   48,    0,    0,   79,  119,   66,  119,  119,
-       29,  119,   30,   31,   42,   43,   44,   45,  119,  119,
-      119,   28,    0,    0,    0,    0,    0,    0,    0,   77,
-        8,  119,    9,   24,  119,  119,    0,    0,   51,   50,
-        0,    0,  119,  119,  119,    0,    3,    3,    0,    0,
-      119,  119,   10,    0,    0,   47,  119,  119,    0,    0,
-
-       27,  119,    5,    0,  119,    0,    0,  119,    0,    0,
-      119,    0,   49,   26,    0,    0,    0,    0,    0,    0,
+      203,  197,  198,  130,  129,  137,  199,  142,  185,  199,
+      199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
+      199,  199,  199,  140,  199,  151,  153,  161,  157,  199,
+      163,  155,  159,  199,  189,  122,  133,  127,   92,   93,
+       98,   85,  105,  122,  111,  111,  122,   84,  122,   87,
+       99,  121,   94,  100,   95,  102,  103,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,   96,   86,
+       97,  104,  122,  191,  196,  196,  133,  127,  105,  111,
+
+      111,  102,  103,  189,  127,  122,  111,  197,  121,  121,
+      121,  121,  121,   96,  122,  122,  122,  197,  197,  121,
+      121,  197,  200,  136,  135,  139,  201,  189,  142,  201,
+      185,  201,  201,  201,  201,  201,  201,  201,  201,  201,
+      201,  201,  201,  201,  201,  141,  201,  151,  153,  161,
+      157,  201,  163,  155,  159,  201,  201,  130,  129,  128,
+      185,    0,    0,  152,    0,  162,    0,    0,    0,  175,
+        0,    0,    0,    0,  160,  178,  179,  154,  156,    0,
+        0,  180,  165,  164,  182,    0,    0,    0,  181,  158,
+      184,  186,  187,  189,  122,  133,  132,  127,  126,  188,
+
+       89,   83,    0,  111,    0,    0,   91,   88,   90,  119,
+      121,  120,    0,  120,  121,  121,  121,  121,  121,  121,
+       61,  121,   75,  121,  121,   69,  121,  121,   72,  121,
+      121,  190,    0,    0,  191,  192,    0,  195,  193,  194,
+        0,  133,  132,  127,    0,    0,  110,    0,  111,    0,
+        0,  120,    0,    0,    0,  127,    0,  111,    0,    0,
+        0,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,    0,  121,  121,
+       75,  121,   69,  190,    0,  121,  136,  135,  134,  138,
+      149,  150,  174,  167,  168,  169,  170,  183,  166,  148,
+
+      147,  177,  173,  146,  171,  143,  144,  145,  176,  172,
+      127,  125,  188,  188,  188,  188,  114,  107,  109,  120,
+      120,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,   76,  121,  121,  121,  121,  121,    0,    0,
+        1,    1,    0,  131,  125,    0,    0,  114,  107,  109,
+      120,  120,    0,    0,    0,    0,    0,    0,   18,   19,
+        0,  120,  120,  120,  120,   12,  120,  120,  120,  120,
+      120,  120,   17,  120,   15,  120,  120,  120,   11,  120,
+      120,    6,  120,  120,  120,  120,   14,  120,  120,  120,
+       13,  120,  120,  118,  121,   76,   53,  188,    0,  120,
+
+       54,  121,   56,  121,  121,   59,  121,  121,  121,  121,
+      121,  121,  121,   71,   73,  121,    0,    0,   52,   52,
+       52,   52,   52,   52,    0,  124,    0,    0,  113,    0,
+      106,  108,  120,  120,  123,    0,   46,    0,  101,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,   16,  120,    7,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  118,
+       54,    0,  114,   81,   55,  121,  121,  121,  121,   63,
+      121,  121,  121,  121,   74,   52,   52,   52,   52,   52,
+       52,   52,    0,  112,    0,  114,  120,  120,  115,    0,
+
+        0,  120,   22,  120,  120,   20,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  116,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      121,  121,   60,   62,   64,   65,  121,  121,   68,  121,
+       52,   52,   52,   52,   52,   52,   52,    0,   79,  120,
+      120,  120,  120,  120,  120,  120,   35,  120,   36,  120,
+      120,  120,  120,   34,  120,  120,   40,  120,   23,  120,
+      120,   38,  117,  120,  120,   39,  120,   57,  121,  121,
+      121,  121,   52,   52,   52,   52,   52,   52,   52,    0,
+        2,    2,  120,   77,  120,  120,  120,  120,  120,  120,
+
+      120,  120,  120,  120,  120,  120,  120,  120,   33,  120,
+       21,  120,  120,   58,   66,  121,   70,   52,   52,   52,
+       52,   52,   52,   52,  120,  120,  120,  120,   41,  120,
+       32,   37,  120,  120,  120,  120,   25,  120,  120,  120,
+      120,  120,  120,  120,   82,   67,   52,    0,   52,   52,
+       48,   52,   52,   80,  120,  120,  120,   29,  120,   30,
+       31,   42,   43,   44,   45,  120,  120,  120,   28,   52,
+        0,    0,   52,   52,   52,   52,   78,    8,  120,    9,
+       24,  120,  120,   52,    0,   51,   50,   52,   52,  120,
+      120,  120,   52,    3,    3,   52,   52,  120,  120,   10,
+
+       52,   52,   47,  120,  120,   52,   52,   27,  120,    5,
+       52,  120,    0,   52,  120,    0,   52,  120,    0,   49,
+       26,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    4,    0
+        4,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -413,246 +403,226 @@ static yyconst int yy_ec[256] =
 
 static yyconst int yy_meta[92] =
     {   0,
-        1,    1,    2,    1,    3,    4,    3,    5,    6,    4,
-        4,    7,    3,    3,    4,    3,    8,    4,    4,    9,
-        9,    9,    9,    9,    9,    9,    4,    3,    4,    4,
-        4,   10,   11,   11,   11,   11,   11,   11,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   13,   14,
-       13,   10,   15,   16,   17,   17,   17,   17,   17,   17,
-       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
-       18,   18,   18,   18,   18,   18,   18,   19,    4,   20,
-        4
+        1,    2,    3,    2,    4,    5,    6,    7,    8,    5,
+        5,    9,    6,    6,    5,    6,   10,    5,    5,   11,
+       11,   11,   11,   11,   11,   11,    5,    6,    5,    5,
+        5,   12,   13,   13,   13,   13,   13,   13,   14,   14,
+       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
+       14,   14,   14,   14,   14,   14,   14,   14,   15,   16,
+       15,   12,   17,   18,   19,   19,   19,   19,   19,   19,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   21,    5,   22,
+        5
 
     } ;
 
-static yyconst short int yy_base[879] =
+static yyconst short int yy_base[785] =
     {   0,
-        0,    0,    0,    4,   58,  138,  224, 2188,    0,    1,
-      315, 2187,  402,    0,  487,    0,   25,   39,  578,    0,
-     2194, 2197, 2197, 2181, 2184, 2197, 2197, 2197,   13, 2156,
-        7,   12,   12,   21,   10, 2139, 2137, 2150,   18, 2136,
-       69, 2135, 2133, 2197,    0, 2197, 2197, 2197, 2197,    0,
-     2197, 2197, 2197,    0,   50,    0, 2177, 2171, 2197, 2197,
-        0, 2197,   46, 2164,  131,  415, 2154, 2197, 2163, 2148,
-        0,    0, 2197,    0, 2197,    6, 2197,   11,   36, 2103,
-     2104,   30, 2107, 2097, 2104, 2104,   47, 2100, 2154,    0,
-     2197,    0,   52,    0,   13,    2, 2163, 2157,  425,  662,
-
-      506, 2160,   66, 2103,   66,  452,  105,    2,  129,  124,
-      107,  131,  138,  663,   42,  407,    0,  148,  515,  745,
-        5,  158,  421,  449,  455, 2149,    0, 2148, 2133, 2100,
-     2098,  122,  135, 2144, 2197, 2153, 2151, 2147, 2197,  192,
-     2197, 2140,  652, 2121,  132,  169,  417,  497,  370, 2104,
-     2102, 2115,  137, 2101,  648, 2100, 2098, 2197,    0, 2197,
-     2197, 2197, 2197,  686, 2197, 2197, 2197,    0, 2132, 2136,
-     2139, 2197,  692, 2103, 2101, 2197, 2098, 2197,  669, 2099,
-     2105, 2197, 2092, 2088, 2104,  410, 2197, 2197, 2197, 2197,
-     2197, 2095, 2093, 2197, 2197, 2096, 2197, 2079, 2100, 2087,
-
-     2197, 2197, 2197,  699,    0,  723,    0, 2125, 2197, 2119,
-     2197,  727,    0,    0,  734,  745,  722,    0,    0, 2197,
-        0,    0,    0, 2067, 2062, 2047, 2062, 2044,  141, 2044,
-     2056,    0, 2044,  464, 2040, 2053,    0, 2043, 2050,    0,
-     2039, 2048, 2108,  210, 2042,    0,    0, 2097, 2197,    0,
-     2197, 2025, 2105, 2103, 2098,  796,  815, 2197,  822,  841,
-      752,    0, 2197, 2101,  114, 2100,    0,  410,  435,  424,
-      488,  489,  454, 2099,  495,  725,  484,  493, 2098,  726,
-      451, 2097,  673,  730, 2087, 2091,  830,  863, 2039, 2038,
-     2040,  846,  524,  772, 2036, 2060, 2034, 2059,  699,  738,
-
-     2045, 2044,  843,  641,  501, 2043, 2014,    0,  694,  819,
-      821,  823,  849, 2197, 2001,  753, 2083, 2081, 2197, 2197,
-     2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197,
-     2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197,
-     2076, 2197,  873,  893,  899,  908,  894,  901,    0,    0,
-     2020, 2017, 2004, 2019, 2018, 2009, 2012, 2007, 2001, 2005,
-     1995, 2007,    0, 1992, 2009, 1996, 2003, 1991,  925,  865,
-     2197,  869, 1993, 2197, 2061,  912,    0,  930,  957, 2060,
-     1986, 2001, 2001, 2056, 2051,  899,  779,  884,  931,  797,
-      900,  932,  671,  933,  934,  935, 2054,  936,  937,  816,
-
-      938,  731, 1971, 2052,  963, 2197, 2197, 1996, 2007,  918,
-     2009, 2004,    0, 2017, 2008, 2015, 1999, 2016, 2002,    0,
-     1986,    0, 1996, 1995, 1983,    0,  928,  897,    0, 2004,
-      953, 1993, 2006,    0, 1994, 2008, 2003,    0, 1996, 1958,
-        0,  966,  984, 2197, 1006, 1000, 1974,    0, 1955,    0,
-     1952, 1950,    0, 1956, 1952, 1945, 1965, 1949, 1953, 1951,
-        0,    0, 1957, 1025, 1036, 1991, 1987, 1977, 1989, 1973,
-     1951, 2197, 1023, 2011, 2010, 1068, 2197, 2197, 1941, 1941,
-     2197, 2003, 2006,  956, 2005,  951,  987, 2004,  990,  993,
-      696,  989, 1004, 1025, 1006, 2003, 2002,  995, 2197, 1081,
-
-     2197, 1957, 1945, 1944, 1973, 1942, 1957, 1940, 1951,  408,
-     1955, 1948, 1963, 1965, 1947, 1956,    0, 1932,    0, 1957,
-     1957, 1953, 1947, 1945, 1952, 1953, 1924, 1938, 1935, 1934,
-     1918,    0, 1041, 1088, 1095,    0,    0, 1907, 1908, 1909,
-     1897,  938, 1901, 1907, 1907, 1902,    0, 1934, 1932, 1921,
-     1933, 1926, 1930, 1931, 1962, 2197, 1102, 1121, 1903, 1890,
-     2197, 1956, 1055, 1060, 1028, 1049, 1057, 1071,  140, 1066,
-     1078, 1955, 1132, 1141, 1912,    0, 1925, 1903,    0, 1896,
-     1923, 1905, 1893, 1905, 1891, 1890, 1889, 1901, 1913, 1886,
-        0, 1900, 1910, 1883, 1892, 1881, 1899, 1015, 1148, 1894,
-
-     1878, 1877, 1864, 1856, 1860,    0,    0,    0,    0, 1869,
-     1870,    0, 1857, 1898, 1886, 1879, 1883, 1888, 1887, 1892,
-     1048, 1887, 1862, 1052, 1128, 1916, 1915, 1914, 1913, 1130,
-     1131, 1912, 1132, 1886, 1877, 1866, 1881, 1880, 1869,    0,
-     1876,    0, 1877, 1876, 1871, 1874,    0, 1845, 1869,    0,
-     1870,    0, 1842, 1871,    0, 1155, 1840, 1867,    0, 1826,
-        0, 1829, 1830, 1831, 1826, 1833, 1858, 1844, 1825, 1805,
-     1814, 1807, 1156, 2197, 1179, 1810, 1804, 1827, 1142, 1176,
-     1177, 1178, 1786, 1784, 1755, 1780, 1750, 1733, 1736, 1750,
-     1749, 1730, 1716, 1148, 1733, 1732,    0, 1703,    0, 1694,
-
-     1657,    0,    0, 1640,    0, 1631, 1672, 1643, 1636, 1634,
-     1604, 1632, 1601, 1626, 1651, 1623, 1179, 1605, 1547, 1545,
-        0, 1533,    0,    0, 1541, 1528, 1518, 1511,    0, 1503,
-     1502, 1501, 1507, 1494, 1515, 1490,    0,    0, 1501, 1532,
-     1506, 1472, 2197, 1438, 1427,    0, 1397, 1442, 1385, 1396,
-        0, 1379,    0,    0,    0,    0,    0,    0, 1377, 1403,
-     1385,    0, 1401, 1409, 1171, 1356, 1343, 1348, 1352,    0,
-        0, 1328,    0,    0, 1349, 1352, 1334, 1187, 2197, 2197,
-     1222, 1004, 1224, 1223, 1194, 1211, 2197, 1238, 1207, 1216,
-     1217, 1199,    0, 1217, 1203, 2197, 1183, 1192, 1237, 1205,
-
-        0, 1177, 1198, 1197, 1200, 1188, 1187, 1197, 1160, 1172,
-     1147, 1171, 2197,    0, 1157, 1059, 1062, 1024, 1016, 1037,
-      894,  765,  744,  733,  658,  650,  527,  548, 1194, 1201,
-      408,  396,   96, 2197, 2197, 1261, 1281, 1301, 1321, 1341,
-     1359, 1370, 1183, 1382, 1394, 1412, 1426, 1434, 1452, 1472,
-     1492, 1509, 1527, 1543, 1551, 1567, 1583, 1599, 1617, 1637,
-     1184, 1651, 1663, 1681, 1701, 1721, 1739, 1755, 1219, 1771,
-     1789, 1185, 1805, 1821, 1220, 1835, 1853, 1873
+        0,    0,    0,    4,   58,  138,  224, 2291,    0,    1,
+        3,   23,  311,    0,  396,    0,   50,   70,  487,    0,
+     2298, 2300, 2300, 2285, 2288, 2300, 2300, 2300,  131, 2260,
+        4,    0,   24,   54,   18, 2243, 2241, 2254,    5, 2240,
+       74, 2239, 2237, 2300,    0, 2300, 2300, 2300, 2300,  145,
+     2300, 2300, 2300,    0,  144,    0, 2281, 2275, 2300, 2300,
+        0, 2300,    5, 2268,  329,  338, 2258, 2300, 2267, 2252,
+        0, 2274, 2300,    0, 2300,   22, 2300,   54,   68,  105,
+       34,  109,    6,  117,  124,  133,  357,  135, 2264,    0,
+     2300,    0,  134,    0,   97,    2, 2273, 2267,  416,  571,
+
+      580,  130, 2214,  317,    0,   17,  591,  652,  197,  336,
+      333,  358,  330, 2260,    0, 2259, 2244, 2211, 2209,  340,
+      349, 2255, 2300, 2264, 2262, 2258, 2300,  366, 2300, 2251,
+      428, 2232,  159,  373,  146,  535,  161, 2215, 2213, 2226,
+      168, 2212,  577, 2211, 2209, 2300,    0, 2300, 2300, 2300,
+     2300,  615, 2300, 2300, 2300,    0, 2243, 2247, 2250, 2300,
+      621, 2214, 2212, 2300, 2209, 2300,  598, 2210, 2216, 2300,
+     2203, 2199, 2215,  290, 2300, 2300, 2300, 2300, 2300, 2206,
+     2204, 2300, 2300, 2207, 2300, 2190, 2211, 2198, 2300, 2300,
+     2300,  630,    0,  659,    0, 2236, 2300, 2230, 2300,  663,
+
+        0,    0,  652,  688,  659,    0,    0, 2300,    0, 2300,
+     2233,    0, 2177, 2172,  364,  365,  401,  648,  620,  602,
+     2230,   55,  661,  577,  618, 2229,  615,  404, 2228,  623,
+      625, 2227,  210, 2161,    0,    0, 2216, 2300,    0, 2300,
+     2144, 2224, 2222, 2217,  726,  737, 2300,  715,  746,  753,
+        0,  152, 2220,    0, 2210, 2214,  759,  785, 2162, 2161,
+     2163,  779,  399,  429, 2159, 2183, 2157, 2182,  751,  414,
+     2168, 2167,  395,  422,  666, 2166, 2137,    0,  575,  715,
+      599,  712,  717, 2300, 2124,  719, 2206, 2204, 2300, 2300,
+     2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300,
+
+     2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300,
+     2199, 2300,  813,  817,  826,  831,  823,  830,    0,    0,
+     2143,  722,  745,  624,  791,  683,  789,  784,  708,  790,
+      757,  793, 2201,  782,  794,  787,  816,  817,  865,  834,
+     2300,  837, 2131, 2300, 2199,  851,    0,  858,  897, 2198,
+     2124, 2139, 2139, 2194, 2189, 2110, 2191,  915, 2300, 2300,
+     2135, 2146,  847, 2148, 2143,    0, 2156, 2147, 2154, 2138,
+     2155, 2141,    0, 2125,    0, 2135, 2134, 2122,    0,  833,
+      267,    0, 2143,  852, 2132, 2145,    0, 2133, 2147, 2142,
+        0, 2135, 2097,    0,  879,  891, 2300,  909,  934, 2113,
+
+     2167,  853, 2166,  882,  886, 2165,  895,  896,  899,  901,
+      900,  907,  916, 2164, 2163,  917,  928,  418,  940,  985,
+      991,  995,  999, 1003, 2101, 2300, 1001, 2161, 2160, 1014,
+     2300, 2300, 2091, 2091, 2300, 2153, 2300, 1032, 2300, 2112,
+     2100, 2099, 2128, 2097, 2112, 2095, 2106,  881, 2110, 2103,
+     2118, 2120, 2102, 2111,    0, 2087,    0, 2112, 2112, 2108,
+     2102, 2100, 2107, 2108, 2079, 2093, 2090, 2089, 2073,    0,
+      938,  990, 1039,    0, 2129,  942,  945,  959,  960,  970,
+      967,  921, 1011,  954, 2128, 1064, 1068, 1072, 1079, 1083,
+     1087, 1091, 2130, 2300, 1077, 1110, 2071, 2058, 2300, 1090,
+
+     1117, 2082,    0, 2095, 2073,    0, 2066, 2093, 2075, 2063,
+     2075, 2061, 2060, 2059, 2071, 2083, 2056,    0, 2070, 2080,
+     2034, 2017, 2005, 2023, 1066, 1124, 2016, 1999, 1996, 1983,
+     1038, 1097, 2047, 2046, 2045, 2044, 1012, 1098, 2043, 1100,
+     1149, 1153, 1157, 1163, 1167, 1176, 1183, 1118, 2011, 1986,
+     2015, 1997, 1972, 1986, 1985, 1972,    0, 1978,    0, 1963,
+     1952, 1946, 1949,    0, 1918, 1941,    0, 1941,    0, 1906,
+     1913,    0, 1169, 1863, 1880,    0, 1829, 1862, 1111, 1156,
+     1116, 1165, 1198, 1202, 1209, 1217, 1224, 1228, 1238, 1172,
+     2300, 1193, 1833, 1828, 1829, 1827, 1769, 1778, 1735, 1733,
+
+     1744, 1757, 1755, 1729, 1710, 1194, 1720, 1726,    0, 1718,
+        0, 1718, 1671, 1691, 1669, 1207, 1658, 1244, 1248, 1252,
+     1269, 1278, 1284, 1291, 1591, 1617, 1599, 1594,    0, 1580,
+        0,    0, 1588, 1565, 1546, 1532,    0, 1531, 1530, 1528,
+     1538, 1526, 1545, 1509,    0, 1434, 1295, 1416, 1299, 1305,
+     1309, 1314, 1318,    0, 1368, 1367, 1378,    0, 1363,    0,
+        0,    0,    0,    0,    0, 1360, 1386, 1369,    0, 1324,
+     1393, 1241, 1333, 1337, 1346, 1350,    0,    0, 1341,    0,
+        0, 1346, 1309, 1356, 1220, 1361, 1366, 1370, 1374, 1309,
+     1308, 1270, 1217, 2300, 1313, 1335, 1343, 1270, 1238,    0,
+
+     1233, 1339, 1274, 1215, 1226, 1376, 1348,    0, 1206, 1219,
+     1347, 1203, 1188, 1356, 1181, 1146, 1361, 1015, 1011, 1345,
+        0,  993,  995,  950,  946,  940,  966,  909,  750,  682,
+      597,  586,  543,  434,  429, 1415, 1423,  319,  206,   26,
+     2300, 2300, 1449, 1471, 1493, 1515, 1537, 1556, 1567, 1398,
+     1580, 1593, 1612, 1628, 1636, 1656, 1678, 1700, 1718, 1737,
+     1747, 1764, 1780, 1797, 1816, 1838, 1402, 1852, 1872, 1894,
+     1916, 1936, 1953, 1405, 1969, 1989, 1245, 2005, 2022, 2043,
+     1625, 2052, 2072, 2094
     } ;
 
-static yyconst short int yy_def[879] =
+static yyconst short int yy_def[785] =
     {   0,
-      836,  836,  837,  837,  838,  838,  835,    7,  839,  839,
-      835,   11,   11,   13,   11,   15,  840,  840,  835,   19,
-      835,  835,  835,  841,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  842,  835,  835,  835,  835,  835,
-      835,  835,  835,  843,  835,  844,  845,  846,  835,  835,
-      844,  835,  844,  844,  835,  835,  844,  835,  844,  844,
-      844,  847,  835,  844,  835,  848,  835,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  835,  844,
-      835,  844,  844,  849,  850,  851,  852,  853,  844,  835,
-
-      835,  854,  848,  855,  854,  854,  854,  854,  854,  854,
-      854,  854,  854,  854,  854,  835,  856,   99,  835,  848,
-      857,  857,  857,  857,  857,  835,  844,  844,  844,  848,
-      855,  854,  854,  835,  835,  858,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  842,  835,
-      835,  835,  835,  835,  835,  835,  835,  843,  835,  841,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-
-      835,  835,  835,  835,  843,  835,  844,  845,  835,  859,
-      835,  860,  844,  844,  835,  835,  835,  861,  844,  835,
-      844,  862,  863,  848,  863,  862,  862,  862,  862,  862,
-      862,  862,  862,  862,  862,  862,  862,  862,  862,  862,
-      862,  862,  835,  864,  835,  865,  866,  866,  835,  867,
-      835,  867,  868,  835,  859,  835,  835,  835,  835,  835,
-      835,  869,  835,  854,  863,  870,  871,  854,  854,  854,
-      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
-      854,  854,  854,  854,  835,  859,  835,  835,  835,  835,
-      835,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-
-      863,  863,  863,  863,  863,  863,  863,  872,  873,  873,
-      873,  873,  873,  835,  835,  854,  874,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      859,  835,  860,  860,  835,  860,  835,  835,  861,  863,
-      863,  862,  862,  862,  862,  862,  862,  862,  862,  862,
-      862,  862,  862,  862,  862,  862,  862,  862,  835,  864,
-      835,  864,  835,  835,  835,  835,  875,  835,  835,  869,
-      863,  863,  835,  870,  871,  854,  854,  854,  854,  854,
-      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
-
-      854,  854,  835,  835,  835,  835,  835,  835,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      876,  873,  873,  835,  835,  835,  863,  862,  862,  862,
-      862,  862,  862,  862,  862,  862,  862,  862,  862,  862,
-      862,  862,  862,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  875,  835,  835,  835,  835,  863,  863,
-      835,  835,  854,  854,  854,  854,  854,  854,  854,  854,
-      854,  854,  854,  854,  854,  854,  854,  854,  835,  835,
-
-      835,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  876,  873,  835,  835,  863,  862,  862,  862,  862,
-      862,  862,  862,  862,  862,  862,  862,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  863,  863,
-      835,  854,  854,  854,  854,  854,  854,  854,  854,  854,
-      854,  854,  835,  835,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-
-      863,  863,  863,  862,  862,  862,  862,  862,  862,  862,
-      862,  862,  862,  835,  835,  835,  835,  835,  835,  835,
-      877,  863,  863,  854,  854,  854,  854,  854,  854,  854,
-      854,  854,  854,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      862,  862,  862,  862,  862,  835,  835,  835,  835,  835,
-      835,  835,  877,  835,  877,  863,  863,  854,  854,  854,
-      854,  854,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-
-      863,  862,  862,  862,  862,  835,  835,  835,  835,  835,
-      835,  835,  863,  863,  854,  854,  854,  854,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  862,  835,  878,
-      835,  835,  835,  835,  835,  863,  863,  854,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  835,  878,  878,  835,  835,  835,  835,  863,
-      863,  863,  863,  863,  863,  863,  835,  878,  835,  835,
-      835,  835,  863,  863,  863,  835,  835,  878,  835,  835,
-      863,  863,  863,  835,  835,  835,  863,  863,  835,  835,
-
-      863,  863,  835,  835,  863,  835,  835,  863,  835,  835,
-      863,  835,  835,  863,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,    0,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835
+      743,  743,  744,  744,  745,  745,  742,    7,  746,  746,
+        7,    7,    7,   13,    7,   15,  747,  747,  742,   19,
+      742,  742,  742,  748,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  749,  742,  742,  742,  742,  742,
+      742,  742,  742,  750,  742,  751,  752,  753,  742,  742,
+      751,  742,  751,  751,  742,  742,  751,  742,  751,  751,
+      751,  754,  742,  751,  742,  755,  742,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  742,  751,
+      742,  751,  751,  756,  757,  758,  759,  760,  751,  742,
+
+      742,  755,  761,  742,  762,   99,  742,  755,  763,  763,
+      763,  763,  763,  742,  751,  751,  751,  755,  761,  754,
+      754,  742,  742,  764,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  749,  742,  742,  742,
+      742,  742,  742,  742,  742,  750,  742,  748,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  750,  742,  751,  752,  742,  765,  742,  766,
+
+      751,  751,  742,  742,  742,  767,  751,  742,  751,  742,
+      754,  768,  755,  768,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  742,  769,  742,  770,  771,  771,  742,  772,  742,
+      772,  773,  742,  765,  742,  742,  742,  742,  742,  742,
+      774,  768,  775,  776,  742,  765,  742,  742,  742,  742,
+      742,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  777,  778,  778,
+      778,  778,  778,  742,  742,  754,  779,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      765,  742,  766,  766,  742,  766,  742,  742,  767,  768,
+      768,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  780,  769,
+      742,  769,  742,  742,  742,  742,  781,  742,  742,  774,
+      768,  768,  742,  775,  776,  742,  742,  742,  742,  742,
+      742,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  782,  778,  778,  742,  742,  742,  768,
+
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  780,  417,  780,  780,
+      780,  780,  780,  780,  742,  742,  742,  781,  742,  742,
+      742,  742,  768,  768,  742,  742,  742,  742,  742,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  782,
+      778,  742,  742,  768,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  780,  780,  780,  780,  780,
+      780,  780,  742,  742,  742,  742,  768,  768,  742,  742,
+
+      742,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      780,  780,  780,  780,  780,  780,  780,  783,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  754,  754,  754,
+      754,  754,  780,  780,  780,  780,  780,  780,  780,  783,
+      742,  783,  768,  768,  768,  768,  768,  768,  768,  768,
+
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  754,  754,  754,  754,  780,  780,  780,
+      780,  780,  780,  780,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  754,  780,  784,  780,  780,
+      780,  780,  780,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  780,
+      784,  784,  780,  780,  780,  780,  768,  768,  768,  768,
+      768,  768,  768,  780,  784,  780,  780,  780,  780,  768,
+      768,  768,  689,  742,  784,  689,  689,  768,  768,  768,
+
+      689,  689,  689,  768,  768,  689,  689,  768,  768,  742,
+      689,  768,  742,  689,  768,  742,  689,  768,  742,  689,
+      768,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,    0,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742
     } ;
 
-static yyconst short int yy_nxt[2289] =
+static yyconst short int yy_nxt[2392] =
     {   0,
-       23,   23,   23,   23,   23,   23,   23,   23,  835,  263,
-      835,   25,  263,  308,  835,   25,   95,   95,  251,  204,
-      204,  204,  204,  204,  204,  135,  135,  135,  135,  248,
-      835,  137,  173,  173,  173,  173,  173,  173,  173,  135,
-      135,  135,  135,  175,  177,  137,  179,  187,  180,  263,
-      192,  206,  206,  206,  206,  181,  244,  176,  835,   26,
-      188,  178,  212,   26,   28,  182,  183,  184,  224,   28,
-      193,  185,  186,  263,  273,  226,  213,   29,   29,   29,
-       29,   29,   29,   29,  138,  227,  225,   96,   96,  252,
-       30,   31,   32,   33,   34,   35,   36,   37,  138,  232,
-
-      228,   38,  249,   39,  229,  233,  234,   40,   41,  195,
-       42,   43,  263,  284,  263,  196,  197,   44,  239,   45,
-      198,  199,   46,   47,  240,  200,  245,   48,  224,  263,
-      268,  263,  265,  241,   49,   50,  263,   51,  263,   52,
-      269,   53,  263,   54,   28,  263,  225,  263,  215,   28,
-      216,  216,  216,  216,  216,  216,  216,   29,   29,   29,
-       29,   29,   29,   29,  835,  263,  308,  257,  175,  192,
-       30,   31,   32,   33,   34,   35,   36,   37,  381,  272,
-      382,   38,  176,   39,  278,  834,  270,   40,   41,  193,
-       42,   43,  277,  206,  206,  206,  206,   44,  274,   45,
-
-      279,  177,   46,   47,  275,  276,  280,   48,  217,  631,
-      355,  316,  371,  372,   49,   50,  218,   51,  178,   52,
-      356,   53,  310,   54,   22,   55,   55,   55,   55,   56,
+       23,   23,   23,   23,   23,   23,   23,   23,  742,   97,
+      742,   25,  742,  210,   98,   25,   95,   95,  240,   99,
+      742,  200,  100,  101,  101,  101,  101,  101,  101,   97,
+       93,  742,  165,  742,   98,  201,  246,  180,  742,   99,
+      163,  210,  100,  101,  101,  101,  101,  101,  101,  166,
+      123,  123,  123,  123,  164,  175,  125,  181,  167,   26,
+      168,  210,  210,   26,   28,  102,  103,  169,  176,   28,
+      123,  123,  123,  123,  224,  210,  125,   29,   29,   29,
+       29,   29,   29,   29,  213,  102,  103,   96,   96,  241,
+       30,   31,   32,   33,   34,   35,   36,   37,  170,  171,
+
+      172,   38,  214,   39,  173,  174,  220,   40,   41,  126,
+       42,   43,  210,  237,  183,  741,  210,   44,  215,   45,
+      184,  185,   46,   47,  210,  186,  187,   48,  216,  126,
+      188,  210,  217,  329,   49,   50,  218,   51,  233,   52,
+      210,   53,  210,   54,   28,  194,  194,  194,  194,   28,
+      161,  161,  161,  161,  161,  161,  161,   29,   29,   29,
+       29,   29,   29,   29,  192,  192,  192,  192,  192,  192,
+       30,   31,   32,   33,   34,   35,   36,   37,  221,  219,
+      167,   38,  168,   39,  222,  223,  238,   40,   41,  169,
+       42,   43,  213,  226,  225,  163,  252,   44,  175,   45,
+
+      180,  227,   46,   47,  210,  278,  231,   48,  234,  164,
+      214,  176,  341,  342,   49,   50,  351,   51,  352,   52,
+      181,   53,  740,   54,   22,   55,   55,   55,   55,   56,
        57,   56,   56,   56,   56,   58,   59,   60,   61,   62,
        63,   64,   56,   65,   66,   66,   66,   66,   66,   66,
        67,   68,   69,   70,   56,   71,   72,   72,   72,   72,
@@ -662,252 +632,265 @@ static yyconst short int yy_nxt[2289] =
        78,   79,   80,   72,   72,   81,   82,   72,   83,   84,
 
        72,   85,   72,   86,   72,   87,   72,   72,   88,   72,
-       72,   89,   90,   91,   92,   22,   55,   55,   55,   55,
-       56,   97,   56,   56,   56,   56,   98,   59,   60,   61,
-       62,   99,   64,   56,  100,  101,  101,  101,  101,  101,
-      101,   67,   68,   69,   70,   56,   71,  102,  102,  102,
-      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-      102,  102,  102,   73,   74,   75,   56,  103,  104,  102,
-      102,  105,  106,  107,  102,  102,  108,  109,  102,  110,
-      111,  102,  112,  102,  113,  102,  114,  102,  102,  115,
-
-      102,  102,   89,   90,   91,   92,  116,  187,  206,  206,
-      206,  206,  833,  117,  285,  832,   56,  263,  118,   56,
-      188,  119,  119,  119,  119,  119,  119,  119,  263,  308,
-       56,  263,  215,   56,  216,  216,  216,  216,  216,  216,
-      216,  212,  263,  333,  256,  257,  257,  257,  257,  257,
-      257,  179,  583,  180,  584,  213,  263,  308,  263,  263,
-      181,  263,  263,  308,  120,  334,  121,  121,  122,  121,
-      121,  121,  121,  121,  123,  121,  124,  121,  121,  125,
-      121,  121,  121,  121,  121,  121,  121,  121,  121,  126,
-      386,  263,  127,   22,  128,  263,  263,  311,   22,  387,
-
-      263,   56,  263,  129,   56,  388,   22,   22,   22,   22,
-       22,   22,   22,  258,   22,   56,  270,  312,   56,  400,
-      271,  392,  258,  259,  313,  260,  260,  260,  260,  260,
-      260,  260,  287,  360,  288,  288,  288,  288,  288,  288,
-      288,  182,  183,  184,  361,  362,   56,  185,  186,  130,
-      131,  437,  829,  102,  132,  102,  414,  389,  102,  133,
-      398,  102,  102,  438,  102,  397,  102,  390,  102,  391,
-      415,  102,  828,  393,  134,   56,   22,  127,  139,  140,
-      140,  140,  140,  139,  141,  139,  139,  139,  139,  141,
-      139,  139,  139,  139,  142,  139,  139,  143,  143,  143,
-
-      143,  143,  143,  143,  139,  139,  139,  139,  139,  139,
-      144,  145,  146,  147,  148,  149,  150,  151,  139,  139,
-      139,  152,  139,  153,  139,  139,  139,  154,  155,  139,
-      156,  157,  139,  139,  139,  139,  139,  158,  139,  159,
-      139,  139,  160,  161,  139,  139,  139,  162,  139,  139,
-      139,  139,  139,  139,  163,  164,  139,  165,  139,  166,
-      139,  167,  139,  168,  139,  169,  139,  139,  139,  258,
-      263,  173,  173,  173,  173,  173,  173,  173,  263,  259,
-      263,  260,  260,  260,  260,  260,  260,  260,  195,  324,
-      325,  326,  327,  435,  196,  197,  827,  436,  826,  198,
-
-      199,  263,  308,  263,  200,  204,  204,  204,  204,  204,
-      204,  173,  173,  173,  173,  173,  173,  173,  204,  204,
-      204,  204,  204,  204,  206,  206,  206,  206,  344,  345,
-      346,  344,  263,  263,  281,  424,  425,  263,  263,  261,
-      282,  348,  348,  348,  348,  348,  348,  262,  490,  283,
-      289,  401,  290,  347,  347,  347,  347,  347,  347,  347,
-      263,  426,  215,  291,  216,  216,  216,  216,  216,  216,
-      216,  379,  379,  379,  379,  379,  379,  292,  427,  293,
-      294,  567,  295,  825,  428,  296,  263,  297,  298,  299,
-      300,  301,  302,  824,  394,  303,  304,  305,  402,  306,
-
-      429,  823,  399,  258,  263,  395,  396,  224,  416,  417,
-      498,  265,  418,  287,  307,  257,  257,  257,  257,  257,
-      257,  257,  258,  263,  419,  225,  263,  308,  263,  308,
-      263,  308,  287,  395,  257,  257,  257,  257,  257,  257,
-      257,  378,  378,  378,  378,  378,  378,  378,  258,  405,
-      405,  405,  405,  405,  405,  405,  263,  308,  259,  484,
-      260,  260,  260,  260,  260,  260,  260,  371,  372,  487,
-      258,  371,  372,  376,  344,  345,  346,  344,  432,  409,
-      287,  377,  288,  288,  288,  288,  288,  288,  288,  410,
-      433,  263,  496,  411,  344,  345,  346,  344,  412,  442,
-
-      445,  445,  445,  445,  443,  434,  263,  263,  413,  344,
-      345,  346,  344,  347,  347,  347,  347,  347,  347,  347,
-      348,  348,  348,  348,  348,  348,  464,  464,  464,  465,
-      446,  473,  473,  473,  473,  473,  473,  475,  263,  263,
-      263,  263,  263,  263,  263,  263,  520,  822,  485,  378,
-      378,  378,  378,  378,  378,  378,  503,  466,  263,  521,
-      467,  504,  446,  263,  477,  468,  476,  483,  488,  469,
-      475,  518,  505,  263,  308,  470,  379,  379,  379,  379,
-      379,  379,  405,  405,  405,  405,  405,  405,  405,  523,
-      519,  263,  308,  524,  263,  486,  263,  263,  476,  500,
-
-      263,  495,  263,  493,  489,  491,  497,  445,  445,  445,
-      445,  263,  608,  263,  534,  492,  534,  609,  494,  535,
-      535,  535,  535,  535,  535,  535,  464,  464,  464,  464,
-      477,  500,  263,  563,  533,  263,  562,  464,  464,  464,
-      464,  821,  473,  473,  473,  473,  473,  473,  263,  308,
-      674,  675,  820,  568,  790,  654,  263,  466,  819,  263,
-      467,  790,  263,  572,  263,  468,  565,  263,  466,  469,
-      564,  467,  566,  263,  548,  470,  468,  655,  263,  549,
-      469,  571,  557,  569,  557,  263,  470,  558,  558,  558,
-      558,  558,  558,  558,  818,  573,  817,  573,  626,  570,
-
-      574,  574,  574,  574,  574,  574,  574,  535,  535,  535,
-      535,  535,  535,  535,  535,  535,  535,  535,  535,  535,
-      535,  558,  558,  558,  558,  558,  558,  558,  475,  624,
-      627,  628,  625,  678,  632,  263,  629,  263,  263,  263,
-      558,  558,  558,  558,  558,  558,  558,  630,  475,  263,
-      633,  574,  574,  574,  574,  574,  574,  574,  674,  675,
-      574,  574,  574,  574,  574,  574,  574,  656,  656,  656,
-      656,  656,  656,  656,  656,  656,  656,  656,  656,  656,
-      656,  674,  675,  263,  263,  263,  263,  765,  730,  787,
-      788,  205,  349,  205,  349,  681,  680,  731,  732,  205,
-
-      349,  441,  441,  765,  679,  831,  816,  815,  682,  814,
-      813,  812,  715,  830,  830,  830,  830,  830,  830,  830,
-      830,  830,  830,  830,  830,  830,  830,  380,  474,  380,
-      474,  811,  810,  809,  808,  380,  474,  807,  806,  805,
-      804,  803,  802,  717,  716,  801,  800,  748,  718,  799,
-      798,  797,  796,  795,  765,  794,  793,  792,  791,  789,
-      778,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       72,   89,   90,   91,   92,  104,  458,   97,  194,  194,
+      194,  194,  105,  303,  255,   56,  739,  106,   56,  459,
+      107,  107,  107,  107,  107,  107,  107,  210,  278,   56,
+      210,  278,   56,  210,  278,  304,  203,  210,  204,  204,
+      204,  204,  204,  204,  204,  203,  210,  204,  204,  204,
+      204,  204,  204,  204,  210,  210,  278,  194,  194,  194,
+      194,  210,  210,  108,  103,  109,  109,  110,  109,  109,
+      109,  109,  109,  111,  109,  112,  109,  109,  113,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  114,  283,
+
+      280,  115,   22,  116,  217,  165,  205,   22,  210,  281,
+       56,  210,  117,   56,  206,   22,   22,   22,   22,   22,
+       22,   22,  166,   22,   56,  286,  282,   56,  228,  323,
+      385,  367,  200,  736,  229,  245,  246,  246,  246,  246,
+      246,  246,  386,  230,  322,  368,  201,  161,  161,  161,
+      161,  161,  161,  161,  380,   56,  486,  387,  118,  119,
+      381,  487,   72,  120,   72,  369,  370,   72,  121,  371,
+       72,   72,  336,   72,  388,   72,  382,   72,  389,  735,
+       72,  372,  324,  122,   56,   22,  115,  127,  128,  128,
+      128,  128,  127,  129,  127,  127,  127,  127,  129,  127,
+
+      127,  127,  127,  130,  127,  127,  131,  131,  131,  131,
+      131,  131,  131,  127,  127,  127,  127,  127,  127,  132,
+      133,  134,  135,  136,  137,  138,  139,  127,  127,  127,
+      140,  127,  141,  127,  127,  127,  142,  143,  127,  144,
+      145,  127,  127,  127,  127,  127,  146,  127,  147,  127,
+      127,  148,  149,  127,  127,  127,  150,  127,  127,  127,
+      127,  127,  127,  151,  152,  127,  153,  127,  154,  127,
+      155,  127,  156,  127,  157,  127,  127,  127,  247,  170,
+      171,  172,  210,  278,  210,  173,  174,  247,  248,  734,
+      249,  249,  249,  249,  249,  249,  249,  248,  247,  249,
+
+      249,  249,  249,  249,  249,  249,  210,  278,  257,  210,
+      258,  258,  258,  258,  258,  258,  258,  183,  294,  295,
+      296,  297,  210,  184,  185,  210,  733,  210,  186,  187,
+      210,  210,  210,  188,  192,  192,  192,  192,  192,  192,
+      161,  161,  161,  161,  161,  161,  161,  732,  250,  192,
+      192,  192,  192,  192,  192,  210,  251,  259,  333,  260,
+      194,  194,  194,  194,  314,  315,  316,  314,  210,  328,
+      261,  317,  317,  317,  317,  317,  317,  317,  318,  318,
+      318,  318,  318,  318,  262,  334,  263,  264,  403,  265,
+      210,  335,  266,  338,  267,  268,  269,  270,  271,  272,
+
+      327,  337,  273,  274,  275,  203,  276,  204,  204,  204,
+      204,  204,  204,  204,  213,  210,  390,  325,  252,  210,
+      278,  277,  210,  278,  210,  278,  210,  326,  391,  210,
+      330,  731,  214,  247,  348,  348,  348,  348,  348,  348,
+      348,  331,  332,  257,  247,  246,  246,  246,  246,  246,
+      246,  246,  210,  247,  257,  405,  246,  246,  246,  246,
+      246,  246,  246,  248,  210,  249,  249,  249,  249,  249,
+      249,  249,  349,  349,  349,  349,  349,  349,  358,  358,
+      358,  358,  358,  358,  358,  408,  730,  377,  378,  210,
+      401,  210,  247,  396,  210,  395,  210,  210,  210,  331,
+
+      210,  210,  257,  346,  258,  258,  258,  258,  258,  258,
+      258,  347,  362,  379,  314,  315,  316,  314,  314,  315,
+      316,  314,  363,  210,  210,  402,  364,  398,  398,  398,
+      398,  365,  314,  315,  316,  314,  341,  342,  410,  341,
+      342,  366,  317,  317,  317,  317,  317,  317,  317,  318,
+      318,  318,  318,  318,  318,  404,  407,  406,  413,  399,
+      210,  411,  409,  414,  412,  429,  417,  417,  417,  418,
+      427,  427,  427,  427,  427,  427,  456,  348,  348,  348,
+      348,  348,  348,  348,  415,  441,  210,  278,  461,  210,
+      442,  399,  462,  210,  430,  457,  416,  419,  210,  278,
+
+      421,  443,  210,  210,  431,  422,  210,  210,  210,  423,
+      398,  398,  398,  398,  210,  424,  349,  349,  349,  349,
+      349,  349,  429,  210,  210,  510,  430,  511,  210,  417,
+      417,  417,  417,  475,  358,  358,  358,  358,  358,  358,
+      358,  742,  742,  742,  742,  210,  278,  471,  472,  210,
+      472,  438,  210,  473,  473,  473,  473,  473,  473,  473,
+      419,  210,  729,  421,  476,  481,  210,  210,  422,  477,
+      728,  478,  423,  488,  210,  479,  727,  210,  424,  482,
+      726,  483,  725,  438,  480,  485,  742,  742,  742,  742,
+      538,  484,  742,  742,  742,  742,  742,  742,  742,  742,
+
+      742,  742,  742,  742,  742,  742,  742,  742,  431,  473,
+      473,  473,  473,  473,  473,  473,  531,  532,  210,  210,
+      427,  427,  427,  427,  427,  427,  540,  489,  495,  533,
+      495,  491,  724,  496,  496,  496,  496,  496,  496,  496,
+      490,  534,  723,  537,  535,  210,  500,  722,  500,  536,
+      492,  501,  501,  501,  501,  501,  501,  501,  473,  473,
+      473,  473,  473,  473,  473,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  721,  580,  539,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  496,  496,  496,  496,
+
+      496,  496,  496,  541,  210,  210,  571,  210,  542,  501,
+      501,  501,  501,  501,  501,  501,  544,  429,  210,  578,
+      591,  592,  543,  210,  429,  546,  545,  547,  572,  496,
+      496,  496,  496,  496,  496,  496,  501,  501,  501,  501,
+      501,  501,  501,  573,  573,  573,  573,  573,  573,  573,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  581,  210,  742,  742,  742,  742,  742,  742,
+      742,  742,  210,  579,  591,  592,  582,  742,  742,  742,
+      742,  614,  616,  583,  742,  742,  742,  742,  573,  573,
+      573,  573,  573,  573,  573,  591,  592,  719,  584,  742,
+
+      742,  742,  742,  742,  742,  742,  742,  587,  585,  586,
+      742,  742,  742,  742,  210,  718,  588,  589,  742,  742,
+      742,  742,  694,  695,  615,  742,  742,  742,  742,  742,
+      742,  742,  742,  716,  638,  617,  672,  715,  619,  742,
+      742,  742,  742,  639,  640,  742,  742,  742,  742,  742,
+      742,  742,  648,  742,  742,  742,  742,  672,  620,  713,
+      618,  701,  623,  394,  394,  706,  621,  420,  712,  622,
+      742,  742,  742,  742,  420,  646,  709,  708,  624,  742,
+      742,  742,  742,  420,  649,  742,  742,  742,  742,  705,
+      420,  647,  742,  742,  742,  742,  742,  742,  742,  742,
+
+      742,  742,  742,  742,  704,  650,  742,  742,  742,  742,
+      742,  742,  742,  742,  651,  742,  742,  742,  742,  742,
+      742,  742,  742,  653,  420,  742,  742,  742,  742,  672,
+      685,  420,  700,  673,  742,  742,  742,  742,  742,  742,
+      742,  742,  699,  698,  670,  692,  652,  742,  742,  742,
+      742,  742,  742,  742,  742,  674,  684,  742,  742,  742,
+      742,  676,  742,  742,  742,  742,  675,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  703,
+      710,  702,  707,  711,  686,  420,  691,  714,  687,  420,
+      689,  688,  420,  420,  693,  420,  420,  420,  420,  720,
+
+      420,  717,  420,  690,  420,  420,  420,  696,  193,  672,
+      193,  420,  319,  420,  319,  350,  193,  350,  420,  683,
+      319,  682,  681,  350,  697,  680,  420,  738,  679,  678,
+      677,  697,  672,  420,  737,  737,  737,  737,  737,  737,
+      737,  210,  737,  737,  737,  737,  737,  737,  737,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
        22,   24,   24,   24,   24,   24,   24,   24,   24,   24,
        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   27,   27,   27,   27,   27,   27,   27,
 
-       24,   27,   27,   27,   27,   27,   27,   27,   27,   27,
        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
-       27,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       27,   27,   27,   27,   27,   94,   94,   94,   94,   94,
        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
-       94,  136,  136,  136,  136,  136,  136,  136,  136,  136,
-      136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
-      136,  170,  170,  170,  170,  170,  170,  170,  170,  170,
-      170,  170,  786,  170,  170,  170,  170,  170,  170,  203,
-      203,  203,  203,  203,  203,  207,  207,  207,  785,  784,
-      783,  207,  782,  781,  780,  207,  208,  208,  208,  208,
-
-      208,  208,  208,  208,  208,  208,  208,  779,  208,  208,
-      208,  208,  208,  208,  210,  210,  210,  210,  210,  210,
-      210,  210,  210,  210,  210,  765,  210,  210,  210,  210,
-      210,  210,  222,  777,  222,  776,  222,  222,  775,  774,
-      222,  773,  222,  222,  223,  223,  772,  771,  223,  263,
-      223,  223,  246,  246,  246,  246,  246,  246,  246,  770,
-      246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
-      769,  246,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      768,  247,  250,  250,  250,  250,  250,  250,  250,  250,
-
-      250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
-      250,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  767,  253,  253,  253,  253,  253,  253,  255,
-      255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
-      766,  255,  255,  255,  255,  255,  255,  264,  765,  264,
-      763,  264,  762,  264,  264,  761,  760,  264,  759,  264,
-      264,  266,  266,  758,  757,  756,  266,  266,  266,  286,
-      286,  286,  286,  755,  286,  286,  286,  286,  286,  286,
-      754,  286,  286,  286,  286,  286,  286,  309,  309,  309,
-      753,  309,  752,  309,  309,  751,  750,  309,  749,  309,
-
-      309,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  263,  317,  317,  317,  317,  317,  317,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-      263,  341,  341,  341,  341,  341,  341,  343,  343,  343,
-      343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
-      343,  343,  343,  343,  343,  343,  343,  222,  263,  222,
-      747,  222,  222,  746,  745,  222,  744,  222,  222,  350,
-      743,  350,  742,  350,  350,  741,  740,  350,  739,  350,
-      350,  370,  370,  370,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
-
-      370,  246,  246,  246,  246,  246,  246,  246,  738,  246,
-      246,  246,  246,  246,  246,  246,  246,  246,  246,  737,
-      246,  247,  247,  247,  247,  247,  247,  247,  736,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  250,
-      250,  250,  250,  250,  250,  250,  735,  250,  250,  250,
-      250,  250,  250,  250,  250,  250,  250,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  734,  253,
-      253,  253,  253,  253,  253,  384,  733,  384,  729,  384,
-      728,  384,  384,  727,  726,  384,  725,  384,  384,  385,
-      385,  385,  385,  385,  385,  724,  385,  385,  385,  385,
-
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  309,
-      309,  309,  723,  309,  722,  309,  309,  721,  720,  309,
-      719,  309,  309,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  263,  317,  317,  317,  317,  317,
-      317,  532,  714,  532,  713,  532,  532,  712,  711,  532,
-      710,  532,  532,  673,  673,  673,  673,  673,  673,  673,
-      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
-      673,  673,  673,  764,  709,  764,  764,  764,  764,  764,
-      764,  764,  764,  764,  764,  764,  764,  764,  764,  764,
-      764,  764,  764,  708,  707,  706,  705,  704,  703,  702,
-
-      701,  700,  699,  698,  697,  696,  695,  694,  693,  692,
-      691,  690,  689,  688,  687,  686,  685,  684,  683,  263,
-      263,  263,  263,  263,  677,  676,  672,  671,  670,  669,
-      668,  667,  666,  665,  664,  663,  662,  661,  660,  659,
-      658,  657,  653,  652,  651,  650,  649,  648,  647,  646,
-      645,  644,  643,  642,  641,  640,  639,  638,  637,  636,
-      635,  634,  263,  263,  623,  622,  621,  620,  619,  618,
-      617,  616,  615,  614,  613,  612,  611,  610,  607,  606,
-      605,  604,  603,  602,  601,  600,  599,  598,  597,  596,
-      595,  594,  593,  592,  591,  590,  589,  588,  587,  586,
-
-      585,  582,  581,  580,  579,  578,  577,  576,  575,  263,
-      263,  263,  263,  263,  561,  560,  559,  556,  478,  555,
-      554,  553,  552,  551,  550,  547,  546,  545,  544,  543,
-      542,  541,  540,  539,  538,  537,  536,  531,  530,  529,
-      528,  527,  526,  525,  522,  517,  516,  515,  514,  513,
-      512,  511,  510,  509,  508,  507,  506,  502,  501,  472,
-      499,  263,  482,  383,  481,  480,  479,  478,  472,  471,
-      463,  462,  461,  460,  459,  458,  457,  456,  455,  454,
-      453,  452,  451,  450,  449,  448,  447,  835,  319,  318,
-      444,  440,  439,  431,  430,  423,  422,  421,  420,  408,
-
-      407,  406,  404,  403,  263,  263,  263,  383,  263,  375,
-      374,  254,  252,  248,  373,  369,  368,  367,  366,  365,
-      364,  363,  359,  358,  357,  354,  353,  352,  351,  224,
-      342,  209,  340,  339,  338,  337,  336,  335,  332,  331,
-      330,  329,  328,  323,  322,  321,  172,  171,  314,  202,
-      201,  194,  191,  190,  189,  174,  212,  320,  319,  318,
-      314,  835,  224,  213,  315,  314,  267,  263,  211,  254,
-      243,  242,  238,  237,  236,  235,  231,  230,  221,  220,
-      219,  214,  211,  209,  202,  201,  194,  191,  190,  189,
-      174,  172,  171,  835,   93,   93,   21,  835,  835,  835,
-
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835
+       94,   94,   94,   94,   94,   94,   94,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  669,  158,  158,  158,  158,  158,  158,  191,  191,
+      191,  191,  191,  191,  195,  668,  195,  195,  667,  666,
+      665,  195,  664,  663,  662,  195,  196,  196,  196,  196,
+
+      196,  196,  196,  196,  196,  196,  196,  196,  661,  196,
+      196,  196,  196,  196,  196,  198,  198,  198,  198,  198,
+      198,  198,  198,  198,  198,  198,  198,  660,  198,  198,
+      198,  198,  198,  198,  211,  428,  211,  428,  211,  659,
+      211,  211,  658,  428,  211,  657,  211,  211,  212,  212,
+      656,  655,  212,  654,  212,  212,  235,  235,  235,  235,
+      235,  235,  235,  235,  235,  210,  235,  235,  235,  235,
+      235,  235,  235,  235,  235,  235,  210,  235,  236,  236,
+      236,  236,  236,  236,  236,  236,  236,  236,  236,  236,
+      236,  236,  236,  236,  236,  236,  236,  236,  210,  236,
+
+      239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
+      239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
+      239,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  645,  242,  242,  242,  242,  242,  242,
+      244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
+      244,  244,  644,  244,  244,  244,  244,  244,  244,  253,
+      253,  643,  642,  641,  253,  253,  253,  256,  256,  256,
+      256,  256,  637,  256,  256,  256,  256,  256,  256,  636,
+      256,  256,  256,  256,  256,  256,  279,  279,  279,  635,
+      279,  634,  279,  279,  633,  632,  279,  631,  279,  279,
+
+      287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
+      287,  287,  630,  287,  287,  287,  287,  287,  287,  311,
+      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+      311,  629,  311,  311,  311,  311,  311,  311,  313,  313,
+      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
+      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
+      320,  628,  320,  627,  320,  320,  626,  625,  320,  210,
+      320,  320,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  235,  235,  235,  235,  235,  235,
+
+      235,  235,  235,  613,  235,  235,  235,  235,  235,  235,
+      235,  235,  235,  235,  612,  235,  236,  236,  236,  236,
+      236,  236,  236,  236,  236,  611,  236,  236,  236,  236,
+      236,  236,  236,  236,  236,  236,  239,  239,  239,  239,
+      239,  239,  239,  239,  239,  610,  239,  239,  239,  239,
+      239,  239,  239,  239,  239,  239,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  609,  242,
+      242,  242,  242,  242,  242,  354,  608,  354,  607,  354,
+      606,  354,  354,  605,  604,  354,  603,  354,  354,  355,
+      355,  355,  355,  355,  355,  355,  355,  602,  355,  355,
+
+      355,  355,  355,  355,  355,  355,  355,  355,  355,  355,
+      355,  279,  279,  279,  601,  279,  600,  279,  279,  599,
+      598,  279,  597,  279,  279,  287,  287,  287,  287,  287,
+      287,  287,  287,  287,  287,  287,  287,  596,  287,  287,
+      287,  287,  287,  287,  420,  420,  420,  595,  594,  593,
+      210,  210,  210,  210,  210,  420,  420,  577,  576,  420,
+      470,  575,  470,  574,  470,  470,  570,  569,  470,  568,
+      470,  470,  590,  590,  590,  590,  590,  590,  590,  590,
+      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
+      590,  590,  590,  590,  671,  671,  567,  671,  671,  671,
+
+      671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
+      671,  671,  671,  671,  671,  671,  566,  565,  564,  563,
+      562,  561,  560,  559,  558,  557,  556,  555,  554,  553,
+      552,  551,  550,  549,  548,  210,  210,  530,  529,  528,
+      527,  526,  525,  524,  523,  522,  521,  520,  519,  518,
+      517,  516,  515,  514,  513,  512,  509,  508,  507,  506,
+      505,  504,  503,  502,  499,  498,  497,  494,  432,  493,
+      210,  210,  210,  210,  210,  474,  469,  468,  467,  466,
+      465,  464,  463,  460,  455,  454,  453,  452,  451,  450,
+      449,  448,  447,  446,  445,  444,  440,  439,  426,  437,
+
+      436,  353,  435,  434,  433,  432,  426,  425,  210,  400,
+      742,  289,  288,  397,  393,  392,  384,  383,  376,  375,
+      374,  373,  361,  360,  359,  357,  356,  353,  345,  344,
+      243,  241,  237,  343,  339,  210,  210,  210,  321,  213,
+      210,  312,  197,  310,  309,  308,  307,  306,  305,  302,
+      301,  300,  299,  298,  293,  292,  291,  160,  159,  284,
+      190,  189,  182,  179,  178,  177,  162,  200,  290,  289,
+      288,  284,  742,  213,  201,  285,  284,  254,  199,  243,
+      232,  210,  209,  208,  207,  202,  199,  197,  190,  189,
+      182,  179,  178,  177,  162,  160,  159,  742,   93,   21,
+
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742
+
     } ;
 
-static yyconst short int yy_chk[2289] =
+static yyconst short int yy_chk[2392] =
     {   0,
-        3,    3,    3,    3,    4,    4,    4,    4,    0,  108,
-        0,    3,  121,  121,    0,    4,    9,   10,   96,   50,
-       50,   50,   50,   50,   50,   17,   17,   17,   17,   95,
-        0,   17,   29,   29,   29,   29,   29,   29,   29,   18,
-       18,   18,   18,   31,   32,   18,   33,   35,   33,  115,
-       39,   55,   55,   55,   55,   33,   93,   31,    0,    3,
-       35,   32,   63,    4,    5,   34,   34,   34,   76,    5,
-       39,   34,   34,  105,  108,   78,   63,    5,    5,    5,
-        5,    5,    5,    5,   17,   78,   76,    9,   10,   96,
-        5,    5,    5,    5,    5,    5,    5,    5,   18,   82,
-
-       79,    5,   95,    5,   79,   82,   82,    5,    5,   41,
-        5,    5,  107,  115,  111,   41,   41,    5,   87,    5,
-       41,   41,    5,    5,   87,   41,   93,    5,  103,  132,
-      105,  110,  103,   87,    5,    5,  109,    5,  112,    5,
-      105,    5,  133,    5,    6,  113,  103,  569,   65,    6,
-       65,   65,   65,   65,   65,   65,   65,    6,    6,    6,
-        6,    6,    6,    6,  118,  122,  122,  118,  145,  153,
-        6,    6,    6,    6,    6,    6,    6,    6,  265,  107,
-      265,    6,  145,    6,  111,  833,  132,    6,    6,  153,
-        6,    6,  110,  140,  140,  140,  140,    6,  109,    6,
-
-      112,  146,    6,    6,  109,  109,  113,    6,   65,  569,
-      229,  133,  244,  244,    6,    6,   65,    6,  146,    6,
-      229,    6,  122,    6,    7,    7,    7,    7,    7,    7,
+        3,    3,    3,    3,    4,    4,    4,    4,    0,   11,
+        0,    3,    0,   83,   11,    4,    9,   10,   96,   11,
+        0,   63,   11,   11,   11,   11,   11,   11,   11,   12,
+       12,    0,   32,  106,   12,   63,  106,   39,    0,   12,
+       31,   81,   12,   12,   12,   12,   12,   12,   12,   32,
+       17,   17,   17,   17,   31,   35,   17,   39,   33,    3,
+       33,   78,  222,    4,    5,   11,   11,   33,   35,    5,
+       18,   18,   18,   18,   83,   79,   18,    5,    5,    5,
+        5,    5,    5,    5,   76,   12,   12,    9,   10,   96,
+        5,    5,    5,    5,    5,    5,    5,    5,   34,   34,
+
+       34,    5,   76,    5,   34,   34,   81,    5,    5,   17,
+        5,    5,   80,   95,   41,  740,   82,    5,   78,    5,
+       41,   41,    5,    5,   84,   41,   41,    5,   78,   18,
+       41,   85,   79,  222,    5,    5,   79,    5,   93,    5,
+       86,    5,   88,    5,    6,   55,   55,   55,   55,    6,
+       29,   29,   29,   29,   29,   29,   29,    6,    6,    6,
+        6,    6,    6,    6,   50,   50,   50,   50,   50,   50,
+        6,    6,    6,    6,    6,    6,    6,    6,   82,   80,
+      135,    6,  135,    6,   82,   82,   95,    6,    6,  135,
+        6,    6,  102,   85,   84,  133,  102,    6,  137,    6,
+
+      141,   86,    6,    6,  109,  109,   88,    6,   93,  133,
+      102,  137,  233,  233,    6,    6,  252,    6,  252,    6,
+      141,    6,  739,    6,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
@@ -917,36 +900,25 @@ static yyconst short int yy_chk[2289] =
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
 
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-        7,    7,    7,    7,    7,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-
-       11,   11,   11,   11,   11,   11,   13,  149,  116,  116,
-      116,  116,  832,   13,  116,  831,   13,  268,   13,   13,
-      149,   13,   13,   13,   13,   13,   13,   13,  123,  123,
-       13,  270,   66,   13,   66,   66,   66,   66,   66,   66,
-       66,   99,  269,  186,   99,   99,   99,   99,   99,   99,
-       99,  147,  510,  147,  510,   99,  124,  124,  281,  106,
-      147,  273,  125,  125,   13,  186,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+        7,    7,    7,    7,    7,   13,  381,   13,  104,  104,
+      104,  104,   13,  174,  104,   13,  738,   13,   13,  381,
+       13,   13,   13,   13,   13,   13,   13,  113,  113,   13,
+      111,  111,   13,  110,  110,  174,   65,  120,   65,   65,
+       65,   65,   65,   65,   65,   66,  121,   66,   66,   66,
+       66,   66,   66,   66,   87,  112,  112,  128,  128,  128,
+      128,  215,  216,   13,   13,   13,   13,   13,   13,   13,
        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-      268,  277,   13,   15,   15,  271,  272,  123,   15,  269,
-
-      278,   15,  275,   15,   15,  270,   15,   15,   15,   15,
-       15,   15,   15,  101,   15,   15,  106,  124,   15,  281,
-      106,  273,  119,  101,  125,  101,  101,  101,  101,  101,
-      101,  101,  119,  234,  119,  119,  119,  119,  119,  119,
-      119,  148,  148,  148,  234,  234,   15,  148,  148,   15,
-       15,  305,  828,   15,   15,   15,  293,  271,   15,   15,
-      278,   15,   15,  305,   15,  277,   15,  271,   15,  272,
-      293,   15,  827,  275,   15,   15,   15,   15,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,  113,
+
+      110,   13,   15,   15,  120,  134,   65,   15,  217,  111,
+       15,  228,   15,   15,   65,   15,   15,   15,   15,   15,
+       15,   15,  134,   15,   15,  121,  112,   15,   87,  216,
+      273,  263,   99,  735,   87,   99,   99,   99,   99,   99,
+       99,   99,  273,   87,  215,  263,   99,  131,  131,  131,
+      131,  131,  131,  131,  270,   15,  418,  273,   15,   15,
+      270,  418,   15,   15,   15,  264,  264,   15,   15,  264,
+       15,   15,  228,   15,  274,   15,  270,   15,  274,  734,
+       15,  264,  217,   15,   15,   15,   15,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
 
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
@@ -955,185 +927,209 @@ static yyconst short int yy_chk[2289] =
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,  100,
-      114,  143,  143,  143,  143,  143,  143,  143,  393,  100,
-      283,  100,  100,  100,  100,  100,  100,  100,  155,  179,
-      179,  179,  179,  304,  155,  155,  826,  304,  825,  155,
-
-      155,  309,  309,  491,  155,  164,  164,  164,  164,  164,
-      164,  173,  173,  173,  173,  173,  173,  173,  204,  204,
-      204,  204,  204,  204,  206,  206,  206,  206,  212,  212,
-      212,  212,  276,  280,  114,  299,  299,  284,  402,  100,
-      114,  217,  217,  217,  217,  217,  217,  100,  393,  114,
-      120,  283,  120,  215,  215,  215,  215,  215,  215,  215,
-      316,  299,  216,  120,  216,  216,  216,  216,  216,  216,
-      216,  261,  261,  261,  261,  261,  261,  120,  300,  120,
-      120,  491,  120,  824,  300,  120,  387,  120,  120,  120,
-      120,  120,  120,  823,  276,  120,  120,  120,  284,  120,
-
-      300,  822,  280,  256,  390,  276,  276,  120,  294,  294,
-      402,  120,  294,  256,  120,  256,  256,  256,  256,  256,
-      256,  256,  257,  400,  294,  120,  310,  310,  311,  311,
-      312,  312,  257,  316,  257,  257,  257,  257,  257,  257,
-      257,  259,  259,  259,  259,  259,  259,  259,  260,  287,
-      287,  287,  287,  287,  287,  287,  313,  313,  260,  387,
-      260,  260,  260,  260,  260,  260,  260,  370,  370,  390,
-      288,  372,  372,  256,  343,  343,  343,  343,  303,  292,
-      288,  256,  288,  288,  288,  288,  288,  288,  288,  292,
-      303,  388,  400,  292,  344,  344,  344,  344,  292,  310,
-
-      345,  345,  345,  345,  312,  303,  386,  391,  292,  346,
-      346,  346,  346,  347,  347,  347,  347,  347,  347,  347,
-      348,  348,  348,  348,  348,  348,  369,  369,  369,  369,
-      347,  376,  376,  376,  376,  376,  376,  378,  389,  392,
-      394,  395,  396,  398,  399,  401,  428,  821,  388,  378,
-      378,  378,  378,  378,  378,  378,  410,  369,  486,  428,
-      369,  410,  347,  484,  379,  369,  378,  386,  391,  369,
-      405,  427,  410,  442,  442,  369,  379,  379,  379,  379,
-      379,  379,  405,  405,  405,  405,  405,  405,  405,  431,
-      427,  443,  443,  431,  487,  389,  492,  489,  378,  405,
-
-      490,  399,  498,  396,  392,  394,  401,  445,  445,  445,
-      445,  493,  542,  495,  446,  395,  446,  542,  398,  446,
-      446,  446,  446,  446,  446,  446,  464,  464,  464,  464,
-      473,  405,  494,  486,  442,  565,  484,  465,  465,  465,
-      465,  820,  473,  473,  473,  473,  473,  473,  533,  533,
-      621,  621,  819,  492,  782,  598,  566,  464,  818,  624,
-      464,  782,  563,  498,  567,  464,  489,  564,  465,  464,
-      487,  465,  490,  570,  465,  464,  465,  598,  568,  465,
-      465,  495,  476,  493,  476,  571,  465,  476,  476,  476,
-      476,  476,  476,  476,  817,  500,  816,  500,  565,  494,
-
-      500,  500,  500,  500,  500,  500,  500,  534,  534,  534,
-      534,  534,  534,  534,  535,  535,  535,  535,  535,  535,
-      535,  557,  557,  557,  557,  557,  557,  557,  558,  563,
-      566,  567,  564,  624,  570,  625,  567,  630,  631,  633,
-      558,  558,  558,  558,  558,  558,  558,  568,  574,  679,
-      571,  573,  573,  573,  573,  573,  573,  573,  673,  673,
-      574,  574,  574,  574,  574,  574,  574,  599,  599,  599,
-      599,  599,  599,  599,  656,  656,  656,  656,  656,  656,
-      656,  675,  675,  680,  681,  682,  717,  765,  694,  778,
-      778,  843,  861,  843,  861,  631,  630,  694,  694,  843,
-
-      861,  872,  872,  778,  625,  830,  815,  812,  633,  811,
-      810,  809,  679,  829,  829,  829,  829,  829,  829,  829,
-      830,  830,  830,  830,  830,  830,  830,  869,  875,  869,
-      875,  808,  807,  806,  805,  869,  875,  804,  803,  802,
-      800,  799,  798,  681,  680,  797,  795,  717,  682,  794,
-      792,  791,  790,  789,  788,  786,  785,  784,  783,  781,
-      765,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-
-      837,  838,  838,  838,  838,  838,  838,  838,  838,  838,
-      838,  838,  838,  838,  838,  838,  838,  838,  838,  838,
-      838,  839,  839,  839,  839,  839,  839,  839,  839,  839,
-      839,  839,  839,  839,  839,  839,  839,  839,  839,  839,
-      839,  840,  840,  840,  840,  840,  840,  840,  840,  840,
-      840,  840,  840,  840,  840,  840,  840,  840,  840,  840,
-      840,  841,  841,  841,  841,  841,  841,  841,  841,  841,
-      841,  841,  777,  841,  841,  841,  841,  841,  841,  842,
-      842,  842,  842,  842,  842,  844,  844,  844,  776,  775,
-      772,  844,  769,  768,  767,  844,  845,  845,  845,  845,
-
-      845,  845,  845,  845,  845,  845,  845,  766,  845,  845,
-      845,  845,  845,  845,  846,  846,  846,  846,  846,  846,
-      846,  846,  846,  846,  846,  764,  846,  846,  846,  846,
-      846,  846,  847,  763,  847,  761,  847,  847,  760,  759,
-      847,  752,  847,  847,  848,  848,  750,  749,  848,  748,
-      848,  848,  849,  849,  849,  849,  849,  849,  849,  747,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      745,  849,  850,  850,  850,  850,  850,  850,  850,  850,
-      850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
-      744,  850,  851,  851,  851,  851,  851,  851,  851,  851,
-
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  852,  852,  852,  852,  852,  852,  852,  852,  852,
-      852,  852,  742,  852,  852,  852,  852,  852,  852,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      741,  853,  853,  853,  853,  853,  853,  854,  740,  854,
-      739,  854,  736,  854,  854,  735,  734,  854,  733,  854,
-      854,  855,  855,  732,  731,  730,  855,  855,  855,  856,
-      856,  856,  856,  728,  856,  856,  856,  856,  856,  856,
-      727,  856,  856,  856,  856,  856,  856,  857,  857,  857,
-      726,  857,  725,  857,  857,  722,  720,  857,  719,  857,
-
-      857,  858,  858,  858,  858,  858,  858,  858,  858,  858,
-      858,  858,  718,  858,  858,  858,  858,  858,  858,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      716,  859,  859,  859,  859,  859,  859,  860,  860,  860,
-      860,  860,  860,  860,  860,  860,  860,  860,  860,  860,
-      860,  860,  860,  860,  860,  860,  860,  862,  715,  862,
-      714,  862,  862,  713,  712,  862,  711,  862,  862,  863,
-      710,  863,  709,  863,  863,  708,  707,  863,  706,  863,
-      863,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-
-      864,  865,  865,  865,  865,  865,  865,  865,  704,  865,
-      865,  865,  865,  865,  865,  865,  865,  865,  865,  701,
-      865,  866,  866,  866,  866,  866,  866,  866,  700,  866,
-      866,  866,  866,  866,  866,  866,  866,  866,  866,  867,
-      867,  867,  867,  867,  867,  867,  698,  867,  867,  867,
-      867,  867,  867,  867,  867,  867,  867,  868,  868,  868,
-      868,  868,  868,  868,  868,  868,  868,  868,  696,  868,
-      868,  868,  868,  868,  868,  870,  695,  870,  693,  870,
-      692,  870,  870,  691,  690,  870,  689,  870,  870,  871,
-      871,  871,  871,  871,  871,  688,  871,  871,  871,  871,
-
-      871,  871,  871,  871,  871,  871,  871,  871,  871,  873,
-      873,  873,  687,  873,  686,  873,  873,  685,  684,  873,
-      683,  873,  873,  874,  874,  874,  874,  874,  874,  874,
-      874,  874,  874,  874,  678,  874,  874,  874,  874,  874,
-      874,  876,  677,  876,  676,  876,  876,  672,  671,  876,
-      670,  876,  876,  877,  877,  877,  877,  877,  877,  877,
-      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
-      877,  877,  877,  878,  669,  878,  878,  878,  878,  878,
-      878,  878,  878,  878,  878,  878,  878,  878,  878,  878,
-      878,  878,  878,  668,  667,  666,  665,  664,  663,  662,
-
-      660,  658,  657,  654,  653,  651,  649,  648,  646,  645,
-      644,  643,  641,  639,  638,  637,  636,  635,  634,  632,
-      629,  628,  627,  626,  623,  622,  620,  619,  618,  617,
-      616,  615,  614,  613,  611,  610,  605,  604,  603,  602,
-      601,  600,  597,  596,  595,  594,  593,  592,  590,  589,
-      588,  587,  586,  585,  584,  583,  582,  581,  580,  578,
-      577,  575,  572,  562,  560,  559,  555,  554,  553,  552,
-      551,  550,  549,  548,  546,  545,  544,  543,  541,  540,
-      539,  538,  531,  530,  529,  528,  527,  526,  525,  524,
-      523,  522,  521,  520,  518,  516,  515,  514,  513,  512,
-
-      511,  509,  508,  507,  506,  505,  504,  503,  502,  497,
-      496,  488,  485,  483,  482,  480,  479,  475,  474,  471,
-      470,  469,  468,  467,  466,  463,  460,  459,  458,  457,
-      456,  455,  454,  452,  451,  449,  447,  440,  439,  437,
-      436,  435,  433,  432,  430,  425,  424,  423,  421,  419,
-      418,  417,  416,  415,  414,  412,  411,  409,  408,  404,
-      403,  397,  385,  384,  383,  382,  381,  380,  375,  373,
-      368,  367,  366,  365,  364,  362,  361,  360,  359,  358,
-      357,  356,  355,  354,  353,  352,  351,  341,  318,  317,
-      315,  307,  306,  302,  301,  298,  297,  296,  295,  291,
-
-      290,  289,  286,  285,  282,  279,  274,  266,  264,  255,
-      254,  253,  252,  248,  245,  243,  242,  241,  239,  238,
-      236,  235,  233,  231,  230,  228,  227,  226,  225,  224,
-      210,  208,  200,  199,  198,  196,  193,  192,  185,  184,
-      183,  181,  180,  177,  175,  174,  171,  170,  169,  157,
-      156,  154,  152,  151,  150,  144,  142,  138,  137,  136,
-      134,  131,  130,  129,  128,  126,  104,  102,   98,   97,
-       89,   88,   86,   85,   84,   83,   81,   80,   70,   69,
-       67,   64,   58,   57,   43,   42,   40,   38,   37,   36,
-       30,   25,   24,   21,   12,    8,  835,  835,  835,  835,
-
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835
+       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
+       19,   19,   19,   19,   19,   19,   19,   19,  100,  136,
+      136,  136,  279,  279,  224,  136,  136,  101,  100,  733,
+      100,  100,  100,  100,  100,  100,  100,  101,  107,  101,
+
+      101,  101,  101,  101,  101,  101,  281,  281,  107,  220,
+      107,  107,  107,  107,  107,  107,  107,  143,  167,  167,
+      167,  167,  227,  143,  143,  225,  732,  219,  143,  143,
+      230,  324,  231,  143,  152,  152,  152,  152,  152,  152,
+      161,  161,  161,  161,  161,  161,  161,  731,  100,  192,
+      192,  192,  192,  192,  192,  218,  100,  108,  224,  108,
+      194,  194,  194,  194,  200,  200,  200,  200,  223,  220,
+      108,  203,  203,  203,  203,  203,  203,  203,  205,  205,
+      205,  205,  205,  205,  108,  225,  108,  108,  324,  108,
+      326,  227,  108,  231,  108,  108,  108,  108,  108,  108,
+
+      219,  230,  108,  108,  108,  204,  108,  204,  204,  204,
+      204,  204,  204,  204,  108,  329,  275,  218,  108,  282,
+      282,  108,  280,  280,  283,  283,  286,  218,  275,  322,
+      223,  730,  108,  245,  248,  248,  248,  248,  248,  248,
+      248,  223,  223,  245,  246,  245,  245,  245,  245,  245,
+      245,  245,  323,  249,  246,  326,  246,  246,  246,  246,
+      246,  246,  246,  249,  331,  249,  249,  249,  249,  249,
+      249,  249,  250,  250,  250,  250,  250,  250,  257,  257,
+      257,  257,  257,  257,  257,  329,  729,  269,  269,  334,
+      322,  328,  258,  282,  336,  280,  327,  330,  325,  286,
+
+      332,  335,  258,  245,  258,  258,  258,  258,  258,  258,
+      258,  245,  262,  269,  313,  313,  313,  313,  314,  314,
+      314,  314,  262,  337,  338,  323,  262,  315,  315,  315,
+      315,  262,  316,  316,  316,  316,  340,  340,  331,  342,
+      342,  262,  317,  317,  317,  317,  317,  317,  317,  318,
+      318,  318,  318,  318,  318,  325,  328,  327,  335,  317,
+      402,  332,  330,  336,  334,  348,  339,  339,  339,  339,
+      346,  346,  346,  346,  346,  346,  380,  348,  348,  348,
+      348,  348,  348,  348,  337,  363,  395,  395,  384,  404,
+      363,  317,  384,  405,  348,  380,  338,  339,  396,  396,
+
+      339,  363,  407,  408,  349,  339,  409,  411,  410,  339,
+      398,  398,  398,  398,  412,  339,  349,  349,  349,  349,
+      349,  349,  358,  413,  416,  448,  348,  448,  482,  417,
+      417,  417,  417,  402,  358,  358,  358,  358,  358,  358,
+      358,  419,  419,  419,  419,  471,  471,  395,  399,  476,
+      399,  358,  477,  399,  399,  399,  399,  399,  399,  399,
+      417,  484,  728,  417,  404,  410,  478,  479,  417,  405,
+      727,  407,  417,  419,  481,  408,  726,  480,  417,  411,
+      725,  412,  724,  358,  409,  416,  420,  420,  420,  420,
+      482,  413,  421,  421,  421,  421,  422,  422,  422,  422,
+
+      423,  423,  423,  423,  424,  424,  424,  424,  427,  472,
+      472,  472,  472,  472,  472,  472,  476,  477,  483,  537,
+      427,  427,  427,  427,  427,  427,  484,  421,  430,  478,
+      430,  423,  723,  430,  430,  430,  430,  430,  430,  430,
+      422,  479,  722,  481,  480,  531,  438,  719,  438,  480,
+      424,  438,  438,  438,  438,  438,  438,  438,  473,  473,
+      473,  473,  473,  473,  473,  486,  486,  486,  486,  487,
+      487,  487,  487,  488,  488,  488,  488,  718,  537,  483,
+      489,  489,  489,  489,  490,  490,  490,  490,  491,  491,
+      491,  491,  492,  492,  492,  492,  495,  495,  495,  495,
+
+      495,  495,  495,  486,  532,  538,  525,  540,  487,  500,
+      500,  500,  500,  500,  500,  500,  489,  496,  579,  531,
+      548,  548,  488,  581,  501,  491,  490,  492,  525,  496,
+      496,  496,  496,  496,  496,  496,  501,  501,  501,  501,
+      501,  501,  501,  526,  526,  526,  526,  526,  526,  526,
+      541,  541,  541,  541,  542,  542,  542,  542,  543,  543,
+      543,  543,  538,  580,  544,  544,  544,  544,  545,  545,
+      545,  545,  582,  532,  590,  590,  540,  546,  546,  546,
+      546,  579,  581,  541,  547,  547,  547,  547,  573,  573,
+      573,  573,  573,  573,  573,  592,  592,  716,  542,  583,
+
+      583,  583,  583,  584,  584,  584,  584,  545,  543,  544,
+      585,  585,  585,  585,  616,  715,  546,  547,  586,  586,
+      586,  586,  685,  685,  580,  587,  587,  587,  587,  588,
+      588,  588,  588,  713,  606,  582,  685,  712,  584,  589,
+      589,  589,  589,  606,  606,  618,  618,  618,  618,  619,
+      619,  619,  619,  620,  620,  620,  620,  672,  585,  710,
+      583,  693,  588,  777,  777,  701,  586,  693,  709,  587,
+      621,  621,  621,  621,  693,  616,  705,  704,  589,  622,
+      622,  622,  622,  701,  620,  623,  623,  623,  623,  699,
+      701,  618,  624,  624,  624,  624,  647,  647,  647,  647,
+
+      649,  649,  649,  649,  698,  621,  650,  650,  650,  650,
+      651,  651,  651,  651,  622,  652,  652,  652,  652,  653,
+      653,  653,  653,  624,  703,  670,  670,  670,  670,  695,
+      672,  703,  692,  649,  673,  673,  673,  673,  674,  674,
+      674,  674,  691,  690,  647,  683,  623,  675,  675,  675,
+      675,  676,  676,  676,  676,  650,  670,  684,  684,  684,
+      684,  653,  686,  686,  686,  686,  652,  687,  687,  687,
+      687,  688,  688,  688,  688,  689,  689,  689,  689,  697,
+      706,  696,  702,  707,  673,  696,  682,  711,  674,  702,
+      676,  675,  696,  697,  684,  720,  702,  711,  707,  717,
+
+      697,  714,  720,  679,  711,  707,  714,  688,  750,  671,
+      750,  717,  767,  714,  767,  774,  750,  774,  717,  668,
+      767,  667,  666,  774,  689,  659,  706,  737,  657,  656,
+      655,  689,  648,  706,  736,  736,  736,  736,  736,  736,
+      736,  646,  737,  737,  737,  737,  737,  737,  737,  743,
+      743,  743,  743,  743,  743,  743,  743,  743,  743,  743,
+      743,  743,  743,  743,  743,  743,  743,  743,  743,  743,
+      743,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  745,  745,  745,  745,  745,  745,  745,
+
+      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
+      745,  745,  745,  745,  745,  746,  746,  746,  746,  746,
+      746,  746,  746,  746,  746,  746,  746,  746,  746,  746,
+      746,  746,  746,  746,  746,  746,  746,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  644,  748,  748,  748,  748,  748,  748,  749,  749,
+      749,  749,  749,  749,  751,  643,  751,  751,  642,  641,
+      640,  751,  639,  638,  636,  751,  752,  752,  752,  752,
+
+      752,  752,  752,  752,  752,  752,  752,  752,  635,  752,
+      752,  752,  752,  752,  752,  753,  753,  753,  753,  753,
+      753,  753,  753,  753,  753,  753,  753,  634,  753,  753,
+      753,  753,  753,  753,  754,  781,  754,  781,  754,  633,
+      754,  754,  630,  781,  754,  628,  754,  754,  755,  755,
+      627,  626,  755,  625,  755,  755,  756,  756,  756,  756,
+      756,  756,  756,  756,  756,  617,  756,  756,  756,  756,
+      756,  756,  756,  756,  756,  756,  615,  756,  757,  757,
+      757,  757,  757,  757,  757,  757,  757,  757,  757,  757,
+      757,  757,  757,  757,  757,  757,  757,  757,  614,  757,
+
+      758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
+      758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
+      758,  759,  759,  759,  759,  759,  759,  759,  759,  759,
+      759,  759,  759,  613,  759,  759,  759,  759,  759,  759,
+      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
+      760,  760,  612,  760,  760,  760,  760,  760,  760,  761,
+      761,  610,  608,  607,  761,  761,  761,  762,  762,  762,
+      762,  762,  605,  762,  762,  762,  762,  762,  762,  604,
+      762,  762,  762,  762,  762,  762,  763,  763,  763,  603,
+      763,  602,  763,  763,  601,  600,  763,  599,  763,  763,
+
+      764,  764,  764,  764,  764,  764,  764,  764,  764,  764,
+      764,  764,  598,  764,  764,  764,  764,  764,  764,  765,
+      765,  765,  765,  765,  765,  765,  765,  765,  765,  765,
+      765,  597,  765,  765,  765,  765,  765,  765,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      768,  596,  768,  595,  768,  768,  594,  593,  768,  578,
+      768,  768,  769,  769,  769,  769,  769,  769,  769,  769,
+      769,  769,  769,  769,  769,  769,  769,  769,  769,  769,
+      769,  769,  769,  769,  770,  770,  770,  770,  770,  770,
+
+      770,  770,  770,  577,  770,  770,  770,  770,  770,  770,
+      770,  770,  770,  770,  575,  770,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  574,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  771,  772,  772,  772,  772,
+      772,  772,  772,  772,  772,  571,  772,  772,  772,  772,
+      772,  772,  772,  772,  772,  772,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  570,  773,
+      773,  773,  773,  773,  773,  775,  568,  775,  566,  775,
+      565,  775,  775,  563,  562,  775,  561,  775,  775,  776,
+      776,  776,  776,  776,  776,  776,  776,  560,  776,  776,
+
+      776,  776,  776,  776,  776,  776,  776,  776,  776,  776,
+      776,  778,  778,  778,  558,  778,  556,  778,  778,  555,
+      554,  778,  553,  778,  778,  779,  779,  779,  779,  779,
+      779,  779,  779,  779,  779,  779,  779,  552,  779,  779,
+      779,  779,  779,  779,  780,  780,  780,  551,  550,  549,
+      539,  536,  535,  534,  533,  780,  780,  530,  529,  780,
+      782,  528,  782,  527,  782,  782,  524,  523,  782,  522,
+      782,  782,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  783,  784,  784,  521,  784,  784,  784,
+
+      784,  784,  784,  784,  784,  784,  784,  784,  784,  784,
+      784,  784,  784,  784,  784,  784,  520,  519,  517,  516,
+      515,  514,  513,  512,  511,  510,  509,  508,  507,  505,
+      504,  502,  498,  497,  493,  485,  475,  469,  468,  467,
+      466,  465,  464,  463,  462,  461,  460,  459,  458,  456,
+      454,  453,  452,  451,  450,  449,  447,  446,  445,  444,
+      443,  442,  441,  440,  436,  434,  433,  429,  428,  425,
+      415,  414,  406,  403,  401,  400,  393,  392,  390,  389,
+      388,  386,  385,  383,  378,  377,  376,  374,  372,  371,
+      370,  369,  368,  367,  365,  364,  362,  361,  357,  356,
+
+      355,  354,  353,  352,  351,  350,  345,  343,  333,  321,
+      311,  288,  287,  285,  277,  276,  272,  271,  268,  267,
+      266,  265,  261,  260,  259,  256,  255,  253,  244,  243,
+      242,  241,  237,  234,  232,  229,  226,  221,  214,  213,
+      211,  198,  196,  188,  187,  186,  184,  181,  180,  173,
+      172,  171,  169,  168,  165,  163,  162,  159,  158,  157,
+      145,  144,  142,  140,  139,  138,  132,  130,  126,  125,
+      124,  122,  119,  118,  117,  116,  114,  103,   98,   97,
+       89,   72,   70,   69,   67,   64,   58,   57,   43,   42,
+       40,   38,   37,   36,   30,   25,   24,   21,    8,  742,
+
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742
+
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1623,13 +1619,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 836 )
+                               if ( yy_current_state >= 743 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 2197 );
+               while ( yy_base[yy_current_state] != 2300 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1956,6 +1952,18 @@ YY_RULE_SETUP
 case 52:
 YY_RULE_SETUP
 #line 390 "yaccParser/hslexer.flex"
+{
+                             fprintf(stderr, "Warning: \"%s\", line %d: Unrecognised pragma '",
+                               input_filename, hsplineno);
+                             format_string(stderr, (unsigned char *) yytext, yyleng);
+                             fputs("'\n", stderr);
+                             nested_comments = 1;
+                             PUSH_STATE(Comment);
+                           }
+       YY_BREAK
+case 53:
+YY_RULE_SETUP
+#line 398 "yaccParser/hslexer.flex"
 { POP_STATE; RETURN(END_UPRAGMA); }
        YY_BREAK
 
@@ -1964,149 +1972,149 @@ YY_RULE_SETUP
      * intentionally accepted as a keyword even for normal <Code>.
      */
 
-case 53:
+case 54:
 YY_RULE_SETUP
-#line 399 "yaccParser/hslexer.flex"
+#line 407 "yaccParser/hslexer.flex"
 { RETURN(CASE); }
        YY_BREAK
-case 54:
+case 55:
 YY_RULE_SETUP
-#line 400 "yaccParser/hslexer.flex"
+#line 408 "yaccParser/hslexer.flex"
 { RETURN(CLASS); }
        YY_BREAK
-case 55:
+case 56:
 YY_RULE_SETUP
-#line 401 "yaccParser/hslexer.flex"
+#line 409 "yaccParser/hslexer.flex"
 { RETURN(DATA); }
        YY_BREAK
-case 56:
+case 57:
 YY_RULE_SETUP
-#line 402 "yaccParser/hslexer.flex"
+#line 410 "yaccParser/hslexer.flex"
 { RETURN(DEFAULT); }
        YY_BREAK
-case 57:
+case 58:
 YY_RULE_SETUP
-#line 403 "yaccParser/hslexer.flex"
+#line 411 "yaccParser/hslexer.flex"
 { RETURN(DERIVING); }
        YY_BREAK
-case 58:
+case 59:
 YY_RULE_SETUP
-#line 404 "yaccParser/hslexer.flex"
+#line 412 "yaccParser/hslexer.flex"
 { RETURN(ELSE); }
        YY_BREAK
-case 59:
+case 60:
 YY_RULE_SETUP
-#line 405 "yaccParser/hslexer.flex"
+#line 413 "yaccParser/hslexer.flex"
 { RETURN(HIDING); }
        YY_BREAK
-case 60:
+case 61:
 YY_RULE_SETUP
-#line 406 "yaccParser/hslexer.flex"
+#line 414 "yaccParser/hslexer.flex"
 { RETURN(IF); }
        YY_BREAK
-case 61:
+case 62:
 YY_RULE_SETUP
-#line 407 "yaccParser/hslexer.flex"
+#line 415 "yaccParser/hslexer.flex"
 { RETURN(IMPORT); }
        YY_BREAK
-case 62:
+case 63:
 YY_RULE_SETUP
-#line 408 "yaccParser/hslexer.flex"
+#line 416 "yaccParser/hslexer.flex"
 { RETURN(INFIX); }
        YY_BREAK
-case 63:
+case 64:
 YY_RULE_SETUP
-#line 409 "yaccParser/hslexer.flex"
+#line 417 "yaccParser/hslexer.flex"
 { RETURN(INFIXL); }
        YY_BREAK
-case 64:
+case 65:
 YY_RULE_SETUP
-#line 410 "yaccParser/hslexer.flex"
+#line 418 "yaccParser/hslexer.flex"
 { RETURN(INFIXR); }
        YY_BREAK
-case 65:
+case 66:
 YY_RULE_SETUP
-#line 411 "yaccParser/hslexer.flex"
+#line 419 "yaccParser/hslexer.flex"
 { RETURN(INSTANCE); }
        YY_BREAK
-case 66:
+case 67:
 YY_RULE_SETUP
-#line 412 "yaccParser/hslexer.flex"
+#line 420 "yaccParser/hslexer.flex"
 { RETURN(INTERFACE); }
        YY_BREAK
-case 67:
+case 68:
 YY_RULE_SETUP
-#line 413 "yaccParser/hslexer.flex"
+#line 421 "yaccParser/hslexer.flex"
 { RETURN(MODULE); }
        YY_BREAK
-case 68:
+case 69:
 YY_RULE_SETUP
-#line 414 "yaccParser/hslexer.flex"
+#line 422 "yaccParser/hslexer.flex"
 { RETURN(OF); }
        YY_BREAK
-case 69:
+case 70:
 YY_RULE_SETUP
-#line 415 "yaccParser/hslexer.flex"
+#line 423 "yaccParser/hslexer.flex"
 { RETURN(RENAMING); }
        YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 416 "yaccParser/hslexer.flex"
+#line 424 "yaccParser/hslexer.flex"
 { RETURN(THEN); }
        YY_BREAK
-case 71:
+case 72:
 YY_RULE_SETUP
-#line 417 "yaccParser/hslexer.flex"
+#line 425 "yaccParser/hslexer.flex"
 { RETURN(TO); }
        YY_BREAK
-case 72:
+case 73:
 YY_RULE_SETUP
-#line 418 "yaccParser/hslexer.flex"
+#line 426 "yaccParser/hslexer.flex"
 { RETURN(TYPE); }
        YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 419 "yaccParser/hslexer.flex"
+#line 427 "yaccParser/hslexer.flex"
 { RETURN(WHERE); }
        YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 420 "yaccParser/hslexer.flex"
+#line 428 "yaccParser/hslexer.flex"
 { RETURN(IN); }
        YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 421 "yaccParser/hslexer.flex"
+#line 429 "yaccParser/hslexer.flex"
 { RETURN(LET); }
        YY_BREAK
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 422 "yaccParser/hslexer.flex"
+#line 430 "yaccParser/hslexer.flex"
 { RETURN(CCALL); }
        YY_BREAK
-case 77:
+case 78:
 YY_RULE_SETUP
-#line 423 "yaccParser/hslexer.flex"
+#line 431 "yaccParser/hslexer.flex"
 { RETURN(CCALL_GC); }
        YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 424 "yaccParser/hslexer.flex"
+#line 432 "yaccParser/hslexer.flex"
 { RETURN(CASM); }
        YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 425 "yaccParser/hslexer.flex"
+#line 433 "yaccParser/hslexer.flex"
 { RETURN(CASM_GC); }
        YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 426 "yaccParser/hslexer.flex"
+#line 434 "yaccParser/hslexer.flex"
 { RETURN(SCC); }
        YY_BREAK
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 427 "yaccParser/hslexer.flex"
+#line 435 "yaccParser/hslexer.flex"
 { RETURN(FORALL); }
        YY_BREAK
 
@@ -2114,119 +2122,119 @@ YY_RULE_SETUP
      * Haskell operators.  Nothing special about these.
      */
 
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 435 "yaccParser/hslexer.flex"
+#line 443 "yaccParser/hslexer.flex"
 { RETURN(DOTDOT); }
        YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 436 "yaccParser/hslexer.flex"
+#line 444 "yaccParser/hslexer.flex"
 { RETURN(SEMI); }
        YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 437 "yaccParser/hslexer.flex"
+#line 445 "yaccParser/hslexer.flex"
 { RETURN(COMMA); }
        YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 438 "yaccParser/hslexer.flex"
+#line 446 "yaccParser/hslexer.flex"
 { RETURN(VBAR); }
        YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 439 "yaccParser/hslexer.flex"
+#line 447 "yaccParser/hslexer.flex"
 { RETURN(EQUAL); }
        YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 440 "yaccParser/hslexer.flex"
+#line 448 "yaccParser/hslexer.flex"
 { RETURN(LARROW); }
        YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 441 "yaccParser/hslexer.flex"
+#line 449 "yaccParser/hslexer.flex"
 { RETURN(RARROW); }
        YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 442 "yaccParser/hslexer.flex"
+#line 450 "yaccParser/hslexer.flex"
 { RETURN(DARROW); }
        YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 443 "yaccParser/hslexer.flex"
+#line 451 "yaccParser/hslexer.flex"
 { RETURN(DCOLON); }
        YY_BREAK
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 444 "yaccParser/hslexer.flex"
+#line 452 "yaccParser/hslexer.flex"
 { RETURN(OPAREN); }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 445 "yaccParser/hslexer.flex"
+#line 453 "yaccParser/hslexer.flex"
 { RETURN(CPAREN); }
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 446 "yaccParser/hslexer.flex"
+#line 454 "yaccParser/hslexer.flex"
 { RETURN(OBRACK); }
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 447 "yaccParser/hslexer.flex"
+#line 455 "yaccParser/hslexer.flex"
 { RETURN(CBRACK); }
        YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 448 "yaccParser/hslexer.flex"
+#line 456 "yaccParser/hslexer.flex"
 { RETURN(OCURLY); }
        YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 449 "yaccParser/hslexer.flex"
+#line 457 "yaccParser/hslexer.flex"
 { RETURN(CCURLY); }
        YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 450 "yaccParser/hslexer.flex"
+#line 458 "yaccParser/hslexer.flex"
 { RETURN(PLUS); }
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 451 "yaccParser/hslexer.flex"
+#line 459 "yaccParser/hslexer.flex"
 { RETURN(AT); }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 452 "yaccParser/hslexer.flex"
+#line 460 "yaccParser/hslexer.flex"
 { RETURN(LAMBDA); }
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 453 "yaccParser/hslexer.flex"
+#line 461 "yaccParser/hslexer.flex"
 { RETURN(TYLAMBDA); }
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 454 "yaccParser/hslexer.flex"
+#line 462 "yaccParser/hslexer.flex"
 { RETURN(WILDCARD); }
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 455 "yaccParser/hslexer.flex"
+#line 463 "yaccParser/hslexer.flex"
 { RETURN(BQUOTE); }
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 456 "yaccParser/hslexer.flex"
+#line 464 "yaccParser/hslexer.flex"
 { RETURN(LAZY); }
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 457 "yaccParser/hslexer.flex"
+#line 465 "yaccParser/hslexer.flex"
 { RETURN(MINUS); }
        YY_BREAK
 
@@ -2236,49 +2244,49 @@ YY_RULE_SETUP
      * arbitrary precision numbers.
      */
 
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 467 "yaccParser/hslexer.flex"
+#line 475 "yaccParser/hslexer.flex"
 { /* octal */
                         yylval.uid = xstrndup(yytext, yyleng - 1);
                         RETURN(INTPRIM);
                        }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 471 "yaccParser/hslexer.flex"
+#line 479 "yaccParser/hslexer.flex"
 { /* octal */
                         yylval.uid = xstrndup(yytext, yyleng);
                         RETURN(INTEGER);
                        }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 475 "yaccParser/hslexer.flex"
+#line 483 "yaccParser/hslexer.flex"
 { /* hexadecimal */
                         yylval.uid = xstrndup(yytext, yyleng - 1);
                         RETURN(INTPRIM);
                        }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 479 "yaccParser/hslexer.flex"
+#line 487 "yaccParser/hslexer.flex"
 { /* hexadecimal */
                         yylval.uid = xstrndup(yytext, yyleng);
                         RETURN(INTEGER);
                        }
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 483 "yaccParser/hslexer.flex"
+#line 491 "yaccParser/hslexer.flex"
 {
                         yylval.uid = xstrndup(yytext, yyleng - 1);
                         RETURN(INTPRIM);
                        }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 487 "yaccParser/hslexer.flex"
+#line 495 "yaccParser/hslexer.flex"
 {
                         yylval.uid = xstrndup(yytext, yyleng);
                         RETURN(INTEGER);
@@ -2289,25 +2297,25 @@ YY_RULE_SETUP
      * Floats and (for Glasgow extensions) primitive floats/doubles.
      */
 
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 498 "yaccParser/hslexer.flex"
+#line 506 "yaccParser/hslexer.flex"
 {
                         yylval.uid = xstrndup(yytext, yyleng - 2);
                         RETURN(DOUBLEPRIM);
                        }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 502 "yaccParser/hslexer.flex"
+#line 510 "yaccParser/hslexer.flex"
 {
                         yylval.uid = xstrndup(yytext, yyleng - 1);
                         RETURN(FLOATPRIM);
                        }
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 506 "yaccParser/hslexer.flex"
+#line 514 "yaccParser/hslexer.flex"
 {
                         yylval.uid = xstrndup(yytext, yyleng);
                         RETURN(FLOAT);
@@ -2318,9 +2326,9 @@ YY_RULE_SETUP
      * Funky ``foo'' style C literals for Glasgow extensions
      */
 
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 517 "yaccParser/hslexer.flex"
+#line 525 "yaccParser/hslexer.flex"
 {
                         hsnewid(yytext + 2, yyleng - 4);
                         RETURN(CLITLIT);
@@ -2332,35 +2340,40 @@ YY_RULE_SETUP
      * for Glasgow extensions.
      */
 
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 529 "yaccParser/hslexer.flex"
+#line 537 "yaccParser/hslexer.flex"
 { hsnewid(yytext, yyleng); RETURN(CONID); }
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 530 "yaccParser/hslexer.flex"
+#line 538 "yaccParser/hslexer.flex"
 { hsnewid(yytext, yyleng); RETURN(CONID); }
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 531 "yaccParser/hslexer.flex"
+#line 539 "yaccParser/hslexer.flex"
 { hsnewid(yytext, yyleng); RETURN(TYVAR_TEMPLATE_ID); }
        YY_BREAK
-case 118:
+
+/* These SHOULDNAE work in "Code" (sigh) */
+
+case 119:
 YY_RULE_SETUP
-#line 533 "yaccParser/hslexer.flex"
+#line 544 "yaccParser/hslexer.flex"
 { 
+                        if (! (nonstandardFlag || in_interface)) {
+                           char errbuf[ERR_BUF_SIZE];
+                           sprintf(errbuf, "Non-standard identifier (trailing `#'): %s\n", yytext);
+                           hsperror(errbuf);
+                        }
                         hsnewid(yytext, yyleng);
                         RETURN(_isconstr(yytext) ? CONID : VARID);
                        }
        YY_BREAK
-
-/* This SHOULDNAE work in "Code" (sigh) */
-
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 540 "yaccParser/hslexer.flex"
+#line 553 "yaccParser/hslexer.flex"
 { 
                         if (! (nonstandardFlag || in_interface)) {
                            char errbuf[ERR_BUF_SIZE];
@@ -2372,17 +2385,17 @@ YY_RULE_SETUP
                         /* NB: ^^^^^^^^ : not the macro! */
                        }
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 550 "yaccParser/hslexer.flex"
+#line 563 "yaccParser/hslexer.flex"
 {
                         hsnewid(yytext, yyleng);
                         RETURN(_isconstr(yytext) ? CONID : VARID);
                        }
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 554 "yaccParser/hslexer.flex"
+#line 567 "yaccParser/hslexer.flex"
 {
                         hsnewid(yytext, yyleng);
                         RETURN(_isconstr(yytext) ? CONSYM : VARSYM);
@@ -2397,9 +2410,9 @@ YY_RULE_SETUP
        la-la land constructs as `{-a 900-line comment-} foo`.  (WDP 94/12)
     */
 
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 569 "yaccParser/hslexer.flex"
+#line 582 "yaccParser/hslexer.flex"
 {      
                         hsnewid(yytext + 1, yyleng - 2);
                         RETURN(_isconstr(yytext+1) ? CONSYM : VARSYM);
@@ -2418,33 +2431,33 @@ YY_RULE_SETUP
      * are ignored with a warning.
      */
 
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 588 "yaccParser/hslexer.flex"
+#line 601 "yaccParser/hslexer.flex"
 {
                         yylval.uhstring = installHstring(1, yytext+1);
                         RETURN(CHARPRIM);
                        }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 592 "yaccParser/hslexer.flex"
+#line 605 "yaccParser/hslexer.flex"
 {
                         yylval.uhstring = installHstring(1, yytext+1);
                         RETURN(CHAR);
                        }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 596 "yaccParser/hslexer.flex"
+#line 609 "yaccParser/hslexer.flex"
 {char errbuf[ERR_BUF_SIZE];
                         sprintf(errbuf, "'' is not a valid character (or string) literal\n");
                         hsperror(errbuf);
                        }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 600 "yaccParser/hslexer.flex"
+#line 613 "yaccParser/hslexer.flex"
 {
                         hsmlcolno = hspcolno;
                         cleartext();
@@ -2452,9 +2465,9 @@ YY_RULE_SETUP
                         PUSH_STATE(Char);
                        }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 606 "yaccParser/hslexer.flex"
+#line 619 "yaccParser/hslexer.flex"
 {
                         unsigned length;
                         char *text;
@@ -2481,9 +2494,9 @@ YY_RULE_SETUP
                         RETURN(CHARPRIM); 
                        }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 631 "yaccParser/hslexer.flex"
+#line 644 "yaccParser/hslexer.flex"
 {
                         unsigned length;
                         char *text;
@@ -2504,9 +2517,9 @@ YY_RULE_SETUP
                         RETURN(CHAR); 
                        }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 650 "yaccParser/hslexer.flex"
+#line 663 "yaccParser/hslexer.flex"
 { addtext(yytext, yyleng); }
        YY_BREAK
 
@@ -2523,26 +2536,26 @@ YY_RULE_SETUP
      * of normal characters and the close ".
      */
 
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 668 "yaccParser/hslexer.flex"
+#line 681 "yaccParser/hslexer.flex"
 {
                         yylval.uhstring = installHstring(yyleng-3, yytext+1);
                            /* the -3 accounts for the " on front, "# on the end */
                         RETURN(STRINGPRIM); 
                        }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 673 "yaccParser/hslexer.flex"
+#line 686 "yaccParser/hslexer.flex"
 {
                         yylval.uhstring = installHstring(yyleng-2, yytext+1);
                         RETURN(STRING); 
                        }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 677 "yaccParser/hslexer.flex"
+#line 690 "yaccParser/hslexer.flex"
 {
                         hsmlcolno = hspcolno;
                         cleartext();
@@ -2550,9 +2563,9 @@ YY_RULE_SETUP
                         PUSH_STATE(String);
                        }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 683 "yaccParser/hslexer.flex"
+#line 696 "yaccParser/hslexer.flex"
 {
                         unsigned length;
                         char *text;
@@ -2572,9 +2585,9 @@ YY_RULE_SETUP
                         RETURN(STRINGPRIM);
                        }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 701 "yaccParser/hslexer.flex"
+#line 714 "yaccParser/hslexer.flex"
 {
                         unsigned length;
                         char *text;
@@ -2588,9 +2601,9 @@ YY_RULE_SETUP
                         RETURN(STRING); 
                        }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 713 "yaccParser/hslexer.flex"
+#line 726 "yaccParser/hslexer.flex"
 { addtext(yytext, yyleng); }
        YY_BREAK
 
@@ -2608,228 +2621,228 @@ YY_RULE_SETUP
      * also needs to be able to escape the escape character ('\\').  Sigh.
      */
 
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 731 "yaccParser/hslexer.flex"
+#line 744 "yaccParser/hslexer.flex"
 { PUSH_STATE(CharEsc); }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 732 "yaccParser/hslexer.flex"
+#line 745 "yaccParser/hslexer.flex"
 /* Ignore */ ;
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 733 "yaccParser/hslexer.flex"
+#line 746 "yaccParser/hslexer.flex"
 { PUSH_STATE(StringEsc); noGap = TRUE; }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 735 "yaccParser/hslexer.flex"
+#line 748 "yaccParser/hslexer.flex"
 { addchar(*yytext); POP_STATE; }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 736 "yaccParser/hslexer.flex"
+#line 749 "yaccParser/hslexer.flex"
 { if (noGap) { addchar(*yytext); } POP_STATE; }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 738 "yaccParser/hslexer.flex"
+#line 751 "yaccParser/hslexer.flex"
 { addchar(*yytext); POP_STATE; }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 739 "yaccParser/hslexer.flex"
+#line 752 "yaccParser/hslexer.flex"
 { addchar('\000'); POP_STATE; }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 740 "yaccParser/hslexer.flex"
+#line 753 "yaccParser/hslexer.flex"
 { addchar('\001'); POP_STATE; }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 741 "yaccParser/hslexer.flex"
+#line 754 "yaccParser/hslexer.flex"
 { addchar('\002'); POP_STATE; }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 742 "yaccParser/hslexer.flex"
+#line 755 "yaccParser/hslexer.flex"
 { addchar('\003'); POP_STATE; }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 743 "yaccParser/hslexer.flex"
+#line 756 "yaccParser/hslexer.flex"
 { addchar('\004'); POP_STATE; }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 744 "yaccParser/hslexer.flex"
+#line 757 "yaccParser/hslexer.flex"
 { addchar('\005'); POP_STATE; }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 745 "yaccParser/hslexer.flex"
+#line 758 "yaccParser/hslexer.flex"
 { addchar('\006'); POP_STATE; }
        YY_BREAK
-case 149:
-#line 747 "yaccParser/hslexer.flex"
 case 150:
+#line 760 "yaccParser/hslexer.flex"
+case 151:
 YY_RULE_SETUP
-#line 747 "yaccParser/hslexer.flex"
+#line 760 "yaccParser/hslexer.flex"
 { addchar('\007'); POP_STATE; }
        YY_BREAK
-case 151:
-#line 749 "yaccParser/hslexer.flex"
 case 152:
+#line 762 "yaccParser/hslexer.flex"
+case 153:
 YY_RULE_SETUP
-#line 749 "yaccParser/hslexer.flex"
+#line 762 "yaccParser/hslexer.flex"
 { addchar('\010'); POP_STATE; }
        YY_BREAK
-case 153:
-#line 751 "yaccParser/hslexer.flex"
 case 154:
+#line 764 "yaccParser/hslexer.flex"
+case 155:
 YY_RULE_SETUP
-#line 751 "yaccParser/hslexer.flex"
+#line 764 "yaccParser/hslexer.flex"
 { addchar('\011'); POP_STATE; }
        YY_BREAK
-case 155:
-#line 753 "yaccParser/hslexer.flex"
 case 156:
+#line 766 "yaccParser/hslexer.flex"
+case 157:
 YY_RULE_SETUP
-#line 753 "yaccParser/hslexer.flex"
+#line 766 "yaccParser/hslexer.flex"
 { addchar('\012'); POP_STATE; }
        YY_BREAK
-case 157:
-#line 755 "yaccParser/hslexer.flex"
 case 158:
+#line 768 "yaccParser/hslexer.flex"
+case 159:
 YY_RULE_SETUP
-#line 755 "yaccParser/hslexer.flex"
+#line 768 "yaccParser/hslexer.flex"
 { addchar('\013'); POP_STATE; }
        YY_BREAK
-case 159:
-#line 757 "yaccParser/hslexer.flex"
 case 160:
+#line 770 "yaccParser/hslexer.flex"
+case 161:
 YY_RULE_SETUP
-#line 757 "yaccParser/hslexer.flex"
+#line 770 "yaccParser/hslexer.flex"
 { addchar('\014'); POP_STATE; }
        YY_BREAK
-case 161:
-#line 759 "yaccParser/hslexer.flex"
 case 162:
+#line 772 "yaccParser/hslexer.flex"
+case 163:
 YY_RULE_SETUP
-#line 759 "yaccParser/hslexer.flex"
+#line 772 "yaccParser/hslexer.flex"
 { addchar('\015'); POP_STATE; }
        YY_BREAK
-case 163:
+case 164:
 YY_RULE_SETUP
-#line 760 "yaccParser/hslexer.flex"
+#line 773 "yaccParser/hslexer.flex"
 { addchar('\016'); POP_STATE; }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 761 "yaccParser/hslexer.flex"
+#line 774 "yaccParser/hslexer.flex"
 { addchar('\017'); POP_STATE; }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 762 "yaccParser/hslexer.flex"
+#line 775 "yaccParser/hslexer.flex"
 { addchar('\020'); POP_STATE; }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 763 "yaccParser/hslexer.flex"
+#line 776 "yaccParser/hslexer.flex"
 { addchar('\021'); POP_STATE; }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 764 "yaccParser/hslexer.flex"
+#line 777 "yaccParser/hslexer.flex"
 { addchar('\022'); POP_STATE; }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 765 "yaccParser/hslexer.flex"
+#line 778 "yaccParser/hslexer.flex"
 { addchar('\023'); POP_STATE; }
        YY_BREAK
-case 169:
+case 170:
 YY_RULE_SETUP
-#line 766 "yaccParser/hslexer.flex"
+#line 779 "yaccParser/hslexer.flex"
 { addchar('\024'); POP_STATE; }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 767 "yaccParser/hslexer.flex"
+#line 780 "yaccParser/hslexer.flex"
 { addchar('\025'); POP_STATE; }
        YY_BREAK
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 768 "yaccParser/hslexer.flex"
+#line 781 "yaccParser/hslexer.flex"
 { addchar('\026'); POP_STATE; }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 769 "yaccParser/hslexer.flex"
+#line 782 "yaccParser/hslexer.flex"
 { addchar('\027'); POP_STATE; }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 770 "yaccParser/hslexer.flex"
+#line 783 "yaccParser/hslexer.flex"
 { addchar('\030'); POP_STATE; }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 771 "yaccParser/hslexer.flex"
+#line 784 "yaccParser/hslexer.flex"
 { addchar('\031'); POP_STATE; }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 772 "yaccParser/hslexer.flex"
+#line 785 "yaccParser/hslexer.flex"
 { addchar('\032'); POP_STATE; }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 773 "yaccParser/hslexer.flex"
+#line 786 "yaccParser/hslexer.flex"
 { addchar('\033'); POP_STATE; }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 774 "yaccParser/hslexer.flex"
+#line 787 "yaccParser/hslexer.flex"
 { addchar('\034'); POP_STATE; }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 775 "yaccParser/hslexer.flex"
+#line 788 "yaccParser/hslexer.flex"
 { addchar('\035'); POP_STATE; }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 776 "yaccParser/hslexer.flex"
+#line 789 "yaccParser/hslexer.flex"
 { addchar('\036'); POP_STATE; }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 777 "yaccParser/hslexer.flex"
+#line 790 "yaccParser/hslexer.flex"
 { addchar('\037'); POP_STATE; }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 778 "yaccParser/hslexer.flex"
+#line 791 "yaccParser/hslexer.flex"
 { addchar('\040'); POP_STATE; }
        YY_BREAK
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 779 "yaccParser/hslexer.flex"
+#line 792 "yaccParser/hslexer.flex"
 { addchar('\177'); POP_STATE; }
        YY_BREAK
-case 183:
+case 184:
 YY_RULE_SETUP
-#line 780 "yaccParser/hslexer.flex"
+#line 793 "yaccParser/hslexer.flex"
 { char c = yytext[1] - '@'; addchar(c); POP_STATE; }
        YY_BREAK
-case 184:
+case 185:
 YY_RULE_SETUP
-#line 781 "yaccParser/hslexer.flex"
+#line 794 "yaccParser/hslexer.flex"
 {
                          int i = strtol(yytext, NULL, 10);
                          if (i < NCHARS) {
@@ -2843,9 +2856,9 @@ YY_RULE_SETUP
                          POP_STATE;
                        }
        YY_BREAK
-case 185:
+case 186:
 YY_RULE_SETUP
-#line 793 "yaccParser/hslexer.flex"
+#line 806 "yaccParser/hslexer.flex"
 {
                          int i = strtol(yytext + 1, NULL, 8);
                          if (i < NCHARS) {
@@ -2859,9 +2872,9 @@ YY_RULE_SETUP
                          POP_STATE;
                        }
        YY_BREAK
-case 186:
+case 187:
 YY_RULE_SETUP
-#line 805 "yaccParser/hslexer.flex"
+#line 818 "yaccParser/hslexer.flex"
 {
                          int i = strtol(yytext + 1, NULL, 16);
                          if (i < NCHARS) {
@@ -2886,11 +2899,11 @@ YY_RULE_SETUP
      * to do.  Reported by Rajiv Mirani.  (WDP 95/08)
      */
 
-case 187:
-#line 831 "yaccParser/hslexer.flex"
 case 188:
+#line 844 "yaccParser/hslexer.flex"
+case 189:
 YY_RULE_SETUP
-#line 831 "yaccParser/hslexer.flex"
+#line 844 "yaccParser/hslexer.flex"
 { noGap = FALSE; }
        YY_BREAK
 
@@ -2900,35 +2913,35 @@ YY_RULE_SETUP
      * That's why the rules look so bizarre.
      */
 
-case 189:
+case 190:
 YY_RULE_SETUP
-#line 841 "yaccParser/hslexer.flex"
+#line 854 "yaccParser/hslexer.flex"
 { 
                          noGap = FALSE; nested_comments = 1; PUSH_STATE(Comment); 
                        }
        YY_BREAK
-case 190:
-#line 846 "yaccParser/hslexer.flex"
 case 191:
-#line 847 "yaccParser/hslexer.flex"
+#line 859 "yaccParser/hslexer.flex"
 case 192:
+#line 860 "yaccParser/hslexer.flex"
+case 193:
 YY_RULE_SETUP
-#line 847 "yaccParser/hslexer.flex"
+#line 860 "yaccParser/hslexer.flex"
 ;
        YY_BREAK
-case 193:
+case 194:
 YY_RULE_SETUP
-#line 848 "yaccParser/hslexer.flex"
+#line 861 "yaccParser/hslexer.flex"
 { nested_comments++; }
        YY_BREAK
-case 194:
+case 195:
 YY_RULE_SETUP
-#line 849 "yaccParser/hslexer.flex"
+#line 862 "yaccParser/hslexer.flex"
 { if (--nested_comments == 0) POP_STATE; }
        YY_BREAK
-case 195:
+case 196:
 YY_RULE_SETUP
-#line 850 "yaccParser/hslexer.flex"
+#line 863 "yaccParser/hslexer.flex"
 ;
        YY_BREAK
 
@@ -2938,9 +2951,9 @@ YY_RULE_SETUP
      * the error message.
      */
 
-case 196:
+case 197:
 YY_RULE_SETUP
-#line 860 "yaccParser/hslexer.flex"
+#line 873 "yaccParser/hslexer.flex"
 { 
                         fprintf(stderr, "\"%s\", line %d, column %d: Illegal character: `", 
                            input_filename, hsplineno, hspcolno + 1); 
@@ -2949,9 +2962,9 @@ YY_RULE_SETUP
                         hsperror("");
                        }
        YY_BREAK
-case 197:
+case 198:
 YY_RULE_SETUP
-#line 867 "yaccParser/hslexer.flex"
+#line 880 "yaccParser/hslexer.flex"
 { 
                         fprintf(stderr, "\"%s\", line %d, column %d: Illegal character: `",
                            input_filename, hsplineno, hspcolno + 1); 
@@ -2960,9 +2973,9 @@ YY_RULE_SETUP
                         hsperror("");
                        }
        YY_BREAK
-case 198:
+case 199:
 YY_RULE_SETUP
-#line 874 "yaccParser/hslexer.flex"
+#line 887 "yaccParser/hslexer.flex"
 {
                         fprintf(stderr, "\"%s\", line %d, column %d: Illegal character escape: `\\",
                            input_filename, hsplineno, hspcolno + 1); 
@@ -2971,9 +2984,9 @@ YY_RULE_SETUP
                         hsperror("");
                        }
        YY_BREAK
-case 199:
+case 200:
 YY_RULE_SETUP
-#line 881 "yaccParser/hslexer.flex"
+#line 894 "yaccParser/hslexer.flex"
 { if (nonstandardFlag) {
                              addtext(yytext, yyleng);
                           } else { 
@@ -2985,9 +2998,9 @@ YY_RULE_SETUP
                          }
                        }
        YY_BREAK
-case 200:
+case 201:
 YY_RULE_SETUP
-#line 891 "yaccParser/hslexer.flex"
+#line 904 "yaccParser/hslexer.flex"
 {
                         if (noGap) {
                             fprintf(stderr, "\"%s\", line %d, column %d: Illegal string escape: `\\", 
@@ -3018,14 +3031,14 @@ YY_RULE_SETUP
 
 case YY_STATE_EOF(Char):
 case YY_STATE_EOF(CharEsc):
-#line 920 "yaccParser/hslexer.flex"
+#line 933 "yaccParser/hslexer.flex"
 { 
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated character literal");
                        }
        YY_BREAK
 case YY_STATE_EOF(Comment):
-#line 924 "yaccParser/hslexer.flex"
+#line 937 "yaccParser/hslexer.flex"
 { 
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated comment"); 
@@ -3033,21 +3046,21 @@ case YY_STATE_EOF(Comment):
        YY_BREAK
 case YY_STATE_EOF(String):
 case YY_STATE_EOF(StringEsc):
-#line 928 "yaccParser/hslexer.flex"
+#line 941 "yaccParser/hslexer.flex"
 { 
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated string literal"); 
                        }
        YY_BREAK
 case YY_STATE_EOF(GhcPragma):
-#line 932 "yaccParser/hslexer.flex"
+#line 945 "yaccParser/hslexer.flex"
 {
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated interface pragma"); 
                        }
        YY_BREAK
 case YY_STATE_EOF(UserPragma):
-#line 936 "yaccParser/hslexer.flex"
+#line 949 "yaccParser/hslexer.flex"
 {
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated user-specified pragma"); 
@@ -3055,12 +3068,12 @@ case YY_STATE_EOF(UserPragma):
        YY_BREAK
 case YY_STATE_EOF(Code):
 case YY_STATE_EOF(GlaExt):
-#line 940 "yaccParser/hslexer.flex"
+#line 953 "yaccParser/hslexer.flex"
 { hsplineno = hslineno; hspcolno = hscolno; return(EOF); }
        YY_BREAK
-case 201:
+case 202:
 YY_RULE_SETUP
-#line 942 "yaccParser/hslexer.flex"
+#line 955 "yaccParser/hslexer.flex"
 YY_FATAL_ERROR( "flex scanner jammed" );
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
@@ -3352,7 +3365,7 @@ static yy_state_type yy_get_previous_state()
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 836 )
+                       if ( yy_current_state >= 743 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3387,11 +3400,11 @@ yy_state_type yy_current_state;
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 836 )
+               if ( yy_current_state >= 743 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 835);
+       yy_is_jam = (yy_current_state == 742);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
@@ -3924,7 +3937,7 @@ int main()
        return 0;
        }
 #endif
-#line 942 "yaccParser/hslexer.flex"
+#line 955 "yaccParser/hslexer.flex"
 
 
 /**********************************************************************