diff -Naurd ../nethack-3.3.1/util/lev_comp.l ./util/lev_comp.l
--- ../nethack-3.3.1/util/lev_comp.l Tue May 9 22:08:32 2000
+++ ./util/lev_comp.l Fri Mar 22 14:40:55 2002
@@ -116,7 +88,7 @@
 		  map_cnt = 0;
 		  return MAP_ID;
 		}
-<MAPC>[-|}{+ABCISHKPLWTF\\#. ]*\n	{
+<MAPC>[-|}{+ABCISHKPLWTF\\#. 0123456789]*\n	{
 		  line_number++;
 		  (void) strncpy(map + map_cnt, yytext, yyleng);
 		  map_cnt += yyleng;
@@ -231,6 +203,7 @@
 		  return STRING; }
 \n		{ line_number++; }
 [ \t]+		;
+'\\.'		{ yylval.i = yytext[2]; return CHAR; }
 '.'		{ yylval.i = yytext[1]; return CHAR; }
 .		{ return yytext[0]; }
 %%
diff -Naurd ../nethack-3.3.1/util/lev_main.c ./util/lev_main.c
--- ../nethack-3.3.1/util/lev_main.c Sun Aug 6 17:46:36 2000
+++ ./util/lev_main.c Fri Mar 22 14:40:55 2002
@@ -142,6 +148,9 @@
 	{ "zoo",	 ZOO },
 	{ "delphi",	 DELPHI },
 	{ "temple",	 TEMPLE },
+	{ "anthole",	 ANTHOLE },
+	{ "cocknest",	 COCKNEST },
+	{ "leprehall",	 LEPREHALL },
 	{ "shop",	 SHOPBASE },
 	{ "armor shop",	 ARMORSHOP },
 	{ "scroll shop", SCROLLSHOP },
@@ -507,8 +516,13 @@
 	int max_hig = 0;
 	char msg[256];
 
-	/* First : find the max width of the map */
+	/* First, strip out digits 0-9 (line numbering) */
+	for (s1 = s2 = map; *s1; s1++)
+	    if (*s1 < '0' || *s1 > '9')
+		*s2++ = *s1;
+	*s2 = '\0';
 
+	/* Second, find the max width of the map */
 	s1 = map;
 	while (s1 && *s1) {
 		s2 = index(s1, NEWLINE);
@@ -523,7 +537,6 @@
 	}
 
 	/* Then parse it now */
-
 	while (map && *map) {
 		tmpmap[max_hig] = (char *) alloc(max_len);
 		s1 = index(map, NEWLINE);
@@ -1150,8 +1167,19 @@
 	    Write(fd, &(pt->ysize), sizeof(pt->ysize));
 	    for(j=0;j<pt->ysize;j++) {
 		if(!maze->init_lev.init_present ||
-		   pt->xsize > 1 || pt->ysize > 1)
-		    Write(fd, pt->map[j], pt->xsize * sizeof *pt->map[j]);
+		   pt->xsize > 1 || pt->ysize > 1) {
+#if !defined(_MSC_VER) && !defined(__BORLANDC__)
+			Write(fd, pt->map[j], pt->xsize * sizeof *pt->map[j]);
+#else
+			/*
+			 * On MSVC and Borland C compilers the Write macro above caused:
+			 * warning '!=' : signed/unsigned mismatch
+			 */
+			unsigned reslt, sz = pt->xsize * sizeof *pt->map[j];
+			reslt = write(fd, (genericptr_t)(pt->map[j]), sz);
+			if (reslt != sz) return FALSE;
+#endif
+		}
 		Free(pt->map[j]);
 	    }
 	    Free(pt->map);
@@ -1300,7 +1328,7 @@
 		    return FALSE;
 
 	    /* The gold piles */
-	    Write(fd, &(pt->ngold), sizeof(pt->naltar));
+	    Write(fd, &(pt->ngold), sizeof(pt->ngold));
 	    for(j=0;j<pt->ngold;j++) {
 		    Write(fd, pt->golds[j], sizeof(gold));
 		    Free(pt->golds[j]);
diff -Naurd ../nethack-3.3.1/util/makedefs.c ./util/makedefs.c
--- ../nethack-3.3.1/util/makedefs.c Sat Jul 22 02:38:01 2000
+++ ./util/makedefs.c Fri Mar 22 14:41:12 2002
@@ -49,14 +49,16 @@
 #endif
 
 #if defined(UNIX) && !defined(LINT) && !defined(GCC_WARN)
-static	const char	SCCS_Id[] = "@(#)makedefs.c\t3.3\t1999/08/16";
+static	const char	SCCS_Id[] = "@(#)makedefs.c\t3.4\t2002/02/03";
 #endif
 
 	/* names of files to be generated */
 #define DATE_FILE	"date.h"
 #define MONST_FILE	"pm.h"
 #define ONAME_FILE	"onames.h"
+#ifndef OPTIONS_FILE
 #define OPTIONS_FILE	"options"
+#endif
 #define ORACLE_FILE	"oracles"
 #define DATA_FILE	"data"
 #define RUMOR_FILE	"rumors"
@@ -536,7 +542,7 @@
 		perror(filename);
 		exit(EXIT_FAILURE);
 	}
-	Fprintf(ofp,"/*\tSCCS Id: @(#)date.h\t3.3\t1996/05/17 */\n\n");
+	Fprintf(ofp,"/*\tSCCS Id: @(#)date.h\t3.4\t2002/02/03 */\n\n");
 	Fprintf(ofp,Dont_Edit_Code);
 
 #ifdef KR1ED
@@ -575,7 +581,7 @@
 	Fprintf(ofp,"#define AMIGA_VERSION_STRING ");
 	Fprintf(ofp,"\"\\0$VER: NetHack %d.%d.%d (%d.%d.%d)\"\n",
 		VERSION_MAJOR, VERSION_MINOR, PATCHLEVEL,
-		tm->tm_mday, tm->tm_mon+1, tm->tm_year);
+		tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900);
 	}
 #endif
 	Fclose(ofp);
@@ -1332,7 +1334,7 @@
 		perror(filename);
 		exit(EXIT_FAILURE);
 	}
-	Fprintf(ofp,"/*\tSCCS Id: @(#)pm.h\t3.3\t1994/09/10 */\n\n");
+	Fprintf(ofp,"/*\tSCCS Id: @(#)pm.h\t3.4\t2002/02/03 */\n\n");
 	Fprintf(ofp,Dont_Edit_Code);
 	Fprintf(ofp,"#ifndef PM_H\n#define PM_H\n");
 
@@ -1645,7 +1647,7 @@
 		perror(filename);
 		exit(EXIT_FAILURE);
 	}
-	Fprintf(ofp,"/*\tSCCS Id: @(#)onames.h\t3.3\t1994/09/10 */\n\n");
+	Fprintf(ofp,"/*\tSCCS Id: @(#)onames.h\t3.4\t2002/02/03 */\n\n");
 	Fprintf(ofp,Dont_Edit_Code);
 	Fprintf(ofp,"#ifndef ONAMES_H\n#define ONAMES_H\n\n");
 
diff -Naurd ../nethack-3.3.1/sys/share/lev_lex.c ./sys/share/lev_lex.c
--- ../nethack-3.3.1/sys/share/lev_lex.c Tue May 16 14:48:54 2000
+++ ./sys/share/lev_lex.c Fri Mar 22 14:40:55 2002
@@ -208,18 +208,18 @@
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 111
-#define YY_END_OF_BUFFER 112
-static yyconst short int yy_accept[627] =
+#define YY_NUM_RULES 112
+#define YY_END_OF_BUFFER 113
+static yyconst short int yy_accept[633] =
     {   0,
-        0,    0,    0,    0,  112,  110,  108,  107,  110,  110,
-      110,  105,    4,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-        2,  108,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  108,    0,  106,    0,
-      105,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  113,  111,  108,  107,  111,  111,
+      111,  105,    4,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+        2,  108,  111,  111,  105,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  108,    0,  106,
+        0,    0,  105,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
@@ -227,60 +227,61 @@
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   87,    0,    0,    3,    0,
-        2,  108,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    2,    0,  109,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   87,    0,    0,
+        3,    0,    2,  108,    0,  105,    0,    0,    0,    0,
+        0,    0,    0,    0,    2,    0,  110,    0,  110,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   72,    0,    0,   67,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   65,
+        0,    0,    0,    0,    0,    0,    0,   72,    0,    0,
+       67,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   17,    0,    0,
-        0,    0,    0,   40,    0,    0,    0,    6,    0,    0,
-       42,    0,    0,    0,   33,    0,    0,    0,   36,   32,
-        0,    0,    0,   16,    0,    0,  104,    0,    0,    0,
+        0,    0,    0,    0,   65,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  109,    0,    0,
+        0,    0,    0,   17,    0,    0,    0,    0,    0,   40,
+        0,    0,    0,    6,    0,    0,   42,    0,    0,    0,
+       33,    0,    0,    0,   36,   32,    0,    0,    0,   16,
 
-        0,    0,    0,    0,    0,   93,    0,    0,    0,    0,
-        0,    0,   88,   91,   51,    0,    0,    0,    0,    0,
-        0,   60,    0,    0,    0,    0,    0,   94,    0,    0,
-        0,    0,    0,    0,   55,    0,    0,    0,   45,    0,
-        0,    0,    0,    0,    0,    0,    0,   90,    0,    0,
-        0,   53,   12,    0,    0,    0,    0,   25,    0,    0,
-        0,    0,    0,    0,   10,    0,    0,    0,    0,    8,
-        0,    0,    0,    7,    0,    0,    0,    0,    0,    0,
-       27,    0,    0,    0,   59,   86,    0,    0,   80,    0,
-        0,    0,    0,   74,    0,    0,    0,    0,    0,   89,
+        0,    0,  104,    0,    0,    0,    0,    0,    0,    0,
+        0,   93,    0,    0,    0,    0,    0,    0,   88,   91,
+       51,    0,    0,    0,    0,    0,    0,   60,    0,    0,
+        0,    0,    0,   94,    0,    0,    0,    0,    0,    0,
+       55,    0,    0,    0,   45,    0,    0,    0,    0,    0,
+        0,    0,    0,   90,    0,    0,    0,   53,   12,    0,
+        0,    0,    0,   25,    0,    0,    0,    0,    0,    0,
+       10,    0,    0,    0,    0,    8,    0,    0,    0,    7,
+        0,    0,    0,    0,    0,    0,   27,    0,    0,    0,
+       59,   86,    0,    0,   80,    0,    0,    0,    0,   74,
 
+        0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   50,    0,    0,    0,   58,
-        0,   64,    0,    0,    0,   52,    0,    0,   68,    0,
-        0,   30,   43,    0,    0,    0,    0,    0,    0,    0,
-       26,    0,    0,    0,    0,    0,   13,   28,    0,   21,
-        0,    0,    0,    0,   79,    0,   66,   49,   62,   46,
-        0,    0,   97,    0,   69,    0,    0,    0,    0,    0,
-       47,    0,    0,    0,    0,    0,    0,   48,  101,    0,
-        0,   56,    0,   54,    0,    0,   85,    0,    0,    1,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    5,
+        0,   50,    0,    0,    0,   58,    0,   64,    0,    0,
+        0,   52,    0,    0,   68,    0,    0,   30,   43,    0,
+        0,    0,    0,    0,    0,    0,   26,    0,    0,    0,
+        0,    0,   13,   28,    0,   21,    0,    0,    0,    0,
+       79,    0,   66,   49,   62,   46,    0,    0,   97,    0,
+       69,    0,    0,    0,    0,    0,   47,    0,    0,    0,
+        0,    0,    0,   48,  101,    0,    0,   56,    0,   54,
+        0,    0,   85,    0,    0,    1,    0,    0,    0,    0,
 
-       15,    0,    0,    0,   37,    0,   20,    0,   95,    0,
-        0,   92,    0,    0,    0,   78,    0,    0,    0,    0,
-       57,   73,   71,    0,    0,    0,   84,    0,    0,    0,
-        0,   39,    0,    0,   31,   11,    9,   19,    0,    0,
-        0,    0,    0,    0,    0,  102,    0,    0,    0,    0,
-        0,    0,    0,    0,   83,    0,    0,   77,    0,   96,
-       70,   14,    0,   41,    0,    0,    0,    0,    0,    0,
-        0,   75,   98,   61,    0,  100,   44,   81,   82,    0,
-        0,    0,   18,    0,    0,    0,    0,    0,    0,    0,
-       63,    0,   99,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    5,   15,    0,    0,    0,
+       37,    0,   20,    0,   95,    0,    0,   92,    0,    0,
+        0,   78,    0,    0,    0,    0,   57,   73,   71,    0,
+        0,    0,   84,    0,    0,    0,    0,   39,    0,    0,
+       31,   11,    9,   19,    0,    0,    0,    0,    0,    0,
+        0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
+       83,    0,    0,   77,    0,   96,   70,   14,    0,   41,
+        0,    0,    0,    0,    0,    0,    0,   75,   98,   61,
+        0,  100,   44,   81,   82,    0,    0,    0,   18,    0,
+        0,    0,    0,    0,    0,    0,   63,    0,   99,    0,
 
-        0,    0,    0,   34,   35,    0,    0,    0,    0,    0,
-       76,  103,    0,    0,    0,   24,    0,    0,    0,   22,
-        0,    0,   23,   29,   38,    0
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   34,
+       35,    0,    0,    0,    0,    0,   76,  103,    0,    0,
+        0,   24,    0,    0,    0,   22,    0,    0,   23,   29,
+       38,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -294,10 +295,10 @@
         1,    1,    1,    1,   14,   15,   16,   17,   18,   19,
        20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
         1,   30,   31,   32,   33,   34,   35,    1,   36,   37,
-       38,   11,   39,    1,   40,    1,   41,   42,   43,   44,
+       38,   39,   40,    1,   41,    1,   42,   43,   44,   45,
 
-       45,   46,   47,   48,   49,   50,   51,   52,   53,   54,
-       55,   56,    1,   57,   58,   59,   60,   61,   62,    1,
+       46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
+       56,   57,    1,   58,   59,   60,   61,   62,   63,    1,
         1,    1,   11,   11,   11,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -315,258 +316,263 @@
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[63] =
+static yyconst int yy_meta[64] =
     {   0,
         1,    2,    3,    2,    1,    2,    1,    1,    2,    2,
-        2,    1,    1,    2,    2,    2,    1,    1,    2,    1,
+        2,    2,    1,    2,    2,    2,    1,    1,    2,    1,
         2,    2,    1,    2,    2,    1,    1,    1,    2,    1,
-        2,    2,    1,    1,    2,    1,    1,    1,    1,    1,
+        2,    2,    1,    1,    2,    1,    1,    1,    2,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1
+        1,    1,    1
     } ;
 
-static yyconst short int yy_base[631] =
+static yyconst short int yy_base[638] =
     {   0,
-        0,   57,   81,   60,  756,  757,   63,  757,  750,    0,
-      742,  741,  757,  727,  721,   43,   40,  723,   44,   60,
-      722,   59,   61,   66,  733,  719,   90,   87,   63,  732,
-       70,   65,   69,   80,   76,   57,   66,   89,   92,   98,
-       97,   92,   98,  105,  108,  100,  104,  700,  741,  147,
-      757,  164,  167,  169,  171,  174,  177,  716,  157,  162,
-      173,  165,  178,  189,  170,  217,  160,  737,  757,  733,
-      728,  707,  724,  723,  165,  708,  721,  714,  719,  699,
-      703,  705,  707,  711,  693,  689,  694,  697,  697,  182,
-      699,  184,  694,  700,  691,  691,  703,  701,  690,  700,
+        0,   58,   82,   61,  781,  782,   64,  782,  775,  740,
+      766,  765,  782,  751,  745,   44,   41,  747,   45,   61,
+      746,   60,   62,   67,  757,  743,   91,   90,   90,  756,
+       71,   71,   75,   86,   21,   60,   68,   84,   95,  102,
+       92,  103,  103,  111,  108,   69,   97,  723,  765,  141,
+      782,  163,  160,  168,  170,  172,  174,  181,  740,  183,
+      176,  187,  185,  190,  196,  192,  224,  213,  761,  782,
+      757,  756,  751,  730,  747,  746,  180,  731,  744,  737,
+      742,  722,  726,  728,  730,  734,  716,  712,  717,  720,
+      720,  192,  722,  201,  717,  723,  714,  714,  726,  724,
 
-      688,  147,  190,  166,  670,  659,  669,  664,  649,  652,
-      649,  651,  663,  648,   60,  645,  639,  642,  641,  651,
-      645,  644,  161,  637,  632,  176,  634,  649,  198,  634,
-      636,  629,  206,  638,  642,  645,  644,  630,  636,  628,
-      188,  621,  624,  619,  212,  757,  620,  674,  757,  187,
-      757,  264,  227,  254,  255,  254,  258,  261,  263,  266,
-      269,  757,    0,  757,  662,  648,  647,  641,  642,  641,
-      635,  639,  648,  640,  640,  648,  632,  646,  644,  643,
-      629,  628,  640,  643,  616,  637,  629,  621,  635,  629,
-      624,  625,  626,  617,  628,  616,  619,  231,  596,  601,
+      713,  723,  711,  212,  184,  182,  692,  681,  691,  686,
+      671,  674,  671,  673,  685,  670,  126,  667,  661,  664,
+      663,  673,  667,  666,  167,  659,  654,  190,  656,  671,
+      204,  656,  658,  651,  212,  660,  664,  667,  666,  652,
+      658,  650,  206,  643,  646,  641,  197,  782,  642,  697,
+      782,  232,  782,  271,  274,  276,  278,  280,  248,  282,
+      284,  287,  289,  295,  782,    0,  782,  691,  690,  683,
+      669,  668,  662,  663,  662,  656,  660,  669,  661,  661,
+      669,  653,  667,  665,  664,  650,  649,  661,  664,  636,
+      658,  650,  642,  656,  650,  645,  646,  647,  638,  649,
 
-      586,  595,  588,  580,  578,  585,  581,  575,  578,  574,
-      579,  571,  571,  574,  568,  567,  568,  566,  571,  576,
-      577,  561,  757,  560,  561,  757,  566,  571,  560,  572,
-      562,  554,  552,  558,  554,  555,  246,  548,  561,  560,
-      550,  560,  559,  557,  552,  556,  541,  548,  537,  757,
-      550,  534,  544,  543,  532,  587,  274,  279,  563,  281,
-      282,  284,  558,  571,  570,  571,  562,  757,  568,  568,
-      550,  548,  561,  757,  538,  559,  551,  540,  560,  541,
-      757,  543,  286,  555,  757,  556,  541,  540,  757,  757,
-      537,  538,  536,  757,  542,  278,  757,  509,  505,  504,
+      637,  640,  267,  616,  621,  606,  615,  608,  600,  598,
+      605,  601,  595,  598,  594,  599,  591,  591,  594,  588,
+      587,  588,  586,  591,  596,  597,  581,  782,  580,  581,
+      782,  586,  591,  580,  592,  582,  574,  572,  578,  574,
+      575,  249,  568,  581,  580,  570,  580,  579,  577,  572,
+      576,  561,  568,  557,  782,  570,  554,  564,  563,  552,
+      608,  297,  302,  584,  306,  310,  313,  782,  579,  592,
+      591,  592,  583,  782,  589,  589,  571,  569,  582,  782,
+      558,  580,  572,  561,  581,  562,  782,  564,  289,  576,
+      782,  577,  562,  561,  782,  782,  558,  559,  557,  782,
 
-      515,  514,  500,  502,  511,  757,  510,  496,  508,  503,
-      510,  505,  757,  757,  757,  508,  503,  502,  536,  499,
-      495,  757,  498,  497,  500,  486,  489,  757,  479,  480,
-      487,  480,  493,  478,  757,  484,  479,  487,  757,  484,
-      483,  472,  467,  466,  465,  469,  474,  757,  464,  468,
-      460,  757,  757,  293,  504,  294,  296,  757,  496,  498,
-      493,  497,  483,  478,  757,  497,  478,  483,  478,  757,
-      493,  486,  487,  757,  482,  489,  470,  476,  474,  472,
-      757,  470,  469,  477,  757,  757,  450,  438,  757,  448,
-      439,  437,  433,  757,  445,  441,  438,  442,  424,  757,
+      563,  313,  782,  529,  525,  524,  535,  534,  520,  522,
+      531,  782,  530,  516,  528,  523,  530,  525,  782,  782,
+      782,  528,  523,  522,  557,  519,  515,  782,  518,  517,
+      520,  506,  509,  782,  499,  500,  507,  500,  513,  498,
+      782,  504,  499,  507,  782,  504,  503,  492,  487,  486,
+      485,  489,  494,  782,  484,  488,  480,  782,  782,  319,
+      525,  321,  325,  782,  517,  519,  514,  518,  504,  499,
+      782,  518,  499,  504,  499,  782,  514,  507,  508,  782,
+      503,  510,  491,  497,  495,  493,  782,  491,  490,  498,
+      782,  782,  470,  458,  782,  468,  459,  457,  453,  782,
 
-      440,  264,  431,  430,  434,  436,  420,  420,  432,  431,
-      434,  427,  416,  416,  430,  757,  425,  410,  422,  757,
-      414,  757,  406,  407,  419,  757,  405,  410,  757,  432,
-      308,  757,  757,  433,  431,  436,  435,  434,  425,  440,
-      757,  428,  434,  421,  430,  418,  757,  757,  408,  757,
-      421,  416,  409,  403,  757,  399,  757,  757,  757,  757,
-      388,  387,  757,  395,  757,  394,  389,  382,  391,  386,
-      757,  374,  374,  389,  374,  378,  375,  757,  757,  376,
-      371,  757,  366,  757,  372,  375,  757,  378,  377,  757,
-      311,  403,  390,  402,  391,  390,  380,  386,  390,  757,
+      465,  461,  458,  462,  444,  782,  460,  272,  451,  450,
+      454,  456,  440,  440,  452,  451,  454,  447,  436,  436,
+      450,  782,  445,  430,  442,  782,  434,  782,  426,  427,
+      439,  782,  425,  430,  782,  453,  331,  782,  782,  454,
+      452,  457,  456,  455,  446,  461,  782,  449,  455,  442,
+      451,  439,  782,  782,  428,  782,  442,  437,  430,  423,
+      782,  419,  782,  782,  782,  782,  408,  407,  782,  415,
+      782,  414,  409,  402,  411,  406,  782,  394,  394,  409,
+      394,  398,  395,  782,  782,  396,  391,  782,  386,  782,
+      392,  395,  782,  398,  397,  782,  333,  424,  411,  423,
 
-      757,  393,  381,  304,  757,  379,  757,  358,  757,  364,
-      363,  757,  361,  359,  350,  757,  349,  346,  357,  342,
-      757,  757,  757,  351,  344,  346,  757,  350,  352,  351,
-      364,  757,  373,  372,  757,  757,  757,  757,  377,  355,
-      361,  360,  372,  361,  345,  757,  340,  339,  323,  333,
-      323,  325,  333,  320,  757,  329,  318,  757,  326,  757,
-      757,  757,  355,  757,  357,  357,  340,  342,  345,  353,
-      336,  757,  757,  757,  306,  757,  757,  757,  757,  310,
-      304,  303,  757,  336,  335,  329,  327,  328,  329,  326,
-      757,  298,  757,  297,  323,  315,  317,  306,  321,  318,
+      412,  411,  401,  407,  411,  782,  782,  414,  402,  315,
+      782,  400,  782,  378,  782,  384,  383,  782,  381,  379,
+      370,  782,  369,  366,  377,  362,  782,  782,  782,  371,
+      364,  366,  782,  370,  372,  371,  385,  782,  394,  393,
+      782,  782,  782,  782,  398,  376,  382,  381,  393,  382,
+      365,  782,  360,  359,  343,  353,  343,  345,  353,  340,
+      782,  349,  338,  782,  346,  782,  782,  782,  376,  782,
+      378,  378,  361,  363,  366,  374,  357,  782,  782,  782,
+      326,  782,  782,  782,  782,  330,  324,  323,  782,  357,
+      343,  337,  335,  347,  348,  345,  782,  316,  782,  315,
 
-      315,  290,  287,  757,  757,  311,  301,  281,  274,  263,
-      757,  757,  234,  231,  223,  757,  212,  204,  186,  757,
-      118,   45,  757,  757,  757,  757,  347,  350,  352,  354
+      342,  334,  336,  325,  340,  337,  334,  307,  303,  782,
+      782,  329,  327,  310,  309,  317,  782,  782,  309,  289,
+      271,  782,  219,  191,  169,  782,   89,   68,  782,  782,
+      782,  782,  369,  372,  374,  376,  379
     } ;
 
-static yyconst short int yy_def[631] =
+static yyconst short int yy_def[638] =
     {   0,
-      626,    1,    1,    3,  626,  626,  626,  626,  627,  628,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  629,  626,
-      626,  630,  630,  630,  630,  630,  630,  626,   57,   57,
-       57,   57,   57,   61,   61,  629,  626,  627,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
+      632,    1,    1,    3,  632,  632,  632,  632,  633,  634,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  635,  632,
+      632,  636,  636,  636,  636,  636,  636,  636,  632,  636,
+      636,  636,  636,  636,  636,  636,  635,  632,  633,  632,
+      632,  637,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
 
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  629,  626,  626,
-      626,  630,  630,  630,   61,  626,   61,   61,   61,   61,
-       61,  626,   66,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  635,
+      632,  632,  632,  636,  636,  636,  636,  636,  632,  636,
+      636,  636,  636,  636,  632,   67,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
 
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,   61,   61,  626,   61,
-       61,   61,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  636,  636,  632,  636,  636,  636,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
 
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,   61,  626,   61,   61,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  636,
+      632,  636,  636,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
 
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-       61,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-       61,  626,  626,  626,  626,  626,  626,  626,  626,  626,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  636,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  636,  632,  632,  632,
 
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
 
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,    0,  626,  626,  626,  626
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,    0,  632,  632,  632,  632,  632
     } ;
 
-static yyconst short int yy_nxt[820] =
+static yyconst short int yy_nxt[846] =
     {   0,
         6,    7,    8,    7,    9,    6,    6,   10,   11,   11,
         6,   12,   13,   14,   15,   16,   17,   18,   19,   20,
         6,   21,    6,    6,   22,   23,   24,   25,   26,   27,
        28,   29,    6,    6,   30,    6,    6,   31,    6,    6,
-       32,   33,   34,   35,   36,   37,    6,   38,    6,    6,
-        6,   39,   40,   41,   42,   43,   44,   45,   46,   47,
-        6,   48,   49,   74,   67,   66,   67,   76,   79,   77,
-       75,   80,   84,  102,   86,  625,   85,   81,   87,   89,
-       99,  103,   50,   51,   52,   50,   53,   82,   88,   54,
-       54,   53,  100,   90,   55,   56,   57,  119,   58,   59,
+        6,   32,   33,   34,   35,   36,   37,    6,   38,    6,
+        6,    6,   39,   40,   41,   42,   43,   44,   45,   46,
+       47,    6,   48,   49,   76,   68,   67,   68,   78,   81,
+       79,   77,   82,   86,  104,   88,  119,   87,   83,   89,
+       91,  120,  105,   50,   51,   52,   50,   53,   84,   90,
+       54,   54,   53,   55,   92,   56,   57,   58,  631,   59,
 
-      211,   53,   60,   93,   53,   61,  121,   94,   96,   62,
-      120,   63,   64,  212,  122,   65,  104,   95,   97,   98,
-      108,  105,  106,  109,  112,  110,  107,  113,  111,  123,
-      117,  114,  125,  134,  115,  118,  126,  129,  130,  116,
-      127,  132,  136,  124,  624,  138,  128,  135,  140,  137,
-      102,  133,  131,  139,  143,  141,  144,  145,  103,  146,
-      150,   67,  142,   67,   87,   67,  151,  152,  626,  151,
-      626,  151,  626,  151,   88,  626,  151,  153,  626,  151,
-       71,  157,  153,  161,   80,  153,  158,  626,   83,  626,
-       85,  168,   92,  153,  169,  154,  198,  155,  153,  159,
+       60,  121,   53,   61,   95,   53,   62,  101,   96,  123,
+       63,   98,   64,   65,  122,  630,   66,  124,   97,  102,
+       53,   99,  100,  106,  145,  125,  146,  110,  107,  108,
+      111,  114,  112,  109,  115,  113,  127,  134,  116,  126,
+      128,  117,  131,  132,  129,  136,  118,  135,  138,  142,
+      130,  147,  140,  148,  152,  139,  143,  133,   89,  137,
+      141,  632,  153,  144,   68,  153,  154,  216,   90,  632,
+      153,  632,  153,  632,  153,  632,  153,  632,  153,  156,
+      217,  156,  632,  153,  632,  153,  632,  153,  632,  153,
+      203,  632,  153,  632,  153,  105,  157,  632,  153,  629,
 
-      626,  103,  153,   73,   75,  626,   99,  184,  185,  160,
-       98,  187,  220,  188,  199,  256,  623,  221,  100,  162,
-      163,  224,  163,  180,  200,  163,  163,  163,  626,  151,
-      163,  163,  163,  622,  296,  163,  225,  163,  163,  621,
-      163,  163,  247,  228,  248,  163,  234,  163,  163,  235,
-      229,  163,  230,  620,  252,  626,  151,  253,  236,  237,
-      619,  618,  238,  254,  239,   67,  151,  152,  258,  297,
-      259,  260,  626,  172,  153,  626,  153,  178,  626,  261,
-      626,  296,  153,  626,  617,  257,  626,  354,  334,  192,
-      335,  626,  153,  262,  153,  153,  626,  153,  626,  626,
+      161,  158,   85,   75,   87,  164,  173,  160,   77,  174,
+       82,  162,   94,  101,   68,  104,   68,  189,  190,  225,
+      628,  163,  100,  105,  226,  102,  165,  166,  192,  166,
+      193,  204,  166,  166,  166,  166,  229,  166,  166,  166,
+      257,  205,  166,  258,  166,  166,  627,  166,  166,  259,
+      233,  230,  166,  239,  166,  166,  240,  234,  166,  235,
+      261,  252,  166,  253,  264,  241,  242,  177,  185,  243,
+      302,  244,   68,  153,  154,  632,  153,  632,  153,  632,
+      153,  632,  153,  632,  153,  632,  153,  156,  632,  153,
+      632,  153,  340,  263,  341,  265,  632,  153,  632,  153,
 
-      271,  626,  375,  356,  616,  265,  153,  153,  357,  153,
-      626,  626,  615,  626,  376,  466,  297,  431,  614,  541,
-      467,  153,  358,  381,  153,  626,  491,  613,  626,  542,
-      612,  543,  544,  611,  610,  609,  608,  607,  606,  605,
-      604,  603,  602,  601,  600,  599,  507,   68,   68,   68,
-       70,   70,  148,  148,  148,  153,  153,  598,  597,  596,
-      595,  594,  593,  592,  591,  590,  589,  588,  587,  586,
-      585,  584,  583,  582,  581,  580,  579,  578,  577,  576,
-      575,  574,  573,  572,  571,  570,  569,  568,  567,  566,
-      565,  564,  563,  562,  561,  560,  559,  558,  557,  556,
+      183,  626,  266,  632,  153,  381,  303,  632,  153,  262,
+      360,  632,  153,  197,  632,  153,  302,  382,  625,  267,
+      632,  153,  632,  153,  472,  277,  632,  153,  271,  473,
+      547,  362,  632,  153,  632,  153,  624,  363,  623,  622,
+      548,  621,  549,  550,  620,  619,  437,  618,  364,  497,
+      387,  617,  303,  616,  615,  614,  613,  612,  611,  610,
+      609,  608,  607,  606,  605,  604,  603,  602,  513,   69,
+       69,   69,   71,   71,  150,  150,  150,  155,  155,  168,
+      168,  601,  600,  599,  598,  597,  596,  595,  594,  593,
+      592,  591,  590,  589,  588,  587,  586,  585,  584,  583,
 
-      555,  554,  553,  552,  551,  550,  549,  548,  547,  546,
-      545,  540,  539,  538,  537,  536,  535,  534,  533,  532,
-      531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
-      521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
-      511,  510,  509,  508,  507,  506,  505,  504,  503,  502,
-      501,  500,  499,  498,  497,  496,  495,  494,  493,  492,
-      490,  489,  488,  487,  486,  485,  484,  483,  482,  481,
-      480,  479,  478,  477,  476,  475,  474,  473,  472,  471,
-      470,  469,  468,  465,  464,  463,  462,  461,  460,  459,
-      458,  457,  456,  455,  454,  453,  452,  451,  450,  449,
+      582,  581,  580,  579,  578,  577,  576,  575,  574,  573,
+      572,  571,  570,  569,  568,  567,  566,  565,  564,  563,
+      562,  561,  560,  559,  558,  557,  556,  555,  554,  553,
+      552,  551,  546,  545,  544,  543,  542,  541,  540,  539,
+      538,  537,  536,  535,  534,  533,  532,  531,  530,  529,
+      528,  527,  526,  525,  524,  523,  522,  521,  520,  519,
+      518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
+      508,  507,  506,  505,  504,  503,  502,  501,  500,  499,
+      498,  496,  495,  494,  493,  492,  491,  490,  489,  488,
+      487,  486,  485,  484,  483,  482,  481,  480,  479,  478,
 
-      448,  447,  446,  445,  444,  443,  442,  441,  440,  439,
-      438,  437,  436,  435,  434,  433,  432,  430,  429,  428,
-      427,  426,  425,  424,  423,  422,  421,  420,  419,  418,
-      417,  416,  415,  414,  413,  412,  411,  410,  409,  408,
-      407,  406,  405,  404,  403,  402,  401,  400,  399,  398,
-      397,  396,  395,  394,  393,  392,  391,  390,  389,  388,
-      387,  386,  385,  384,  383,  382,  381,  380,  379,  378,
-      377,  374,  373,  372,  371,  370,  369,  368,  367,  366,
-      365,  364,  363,  362,  361,  360,  359,  358,  355,  353,
-      352,  351,  350,  349,  348,  347,  346,  345,  344,  343,
+      477,  476,  475,  474,  471,  470,  469,  468,  467,  466,
+      465,  464,  463,  462,  461,  460,  459,  458,  457,  456,
+      455,  454,  453,  452,  451,  450,  449,  448,  447,  446,
+      445,  444,  443,  442,  441,  440,  439,  438,  436,  435,
+      434,  433,  432,  431,  430,  429,  428,  427,  426,  425,
+      424,  423,  422,  421,  420,  419,  418,  417,  416,  415,
+      414,  413,  412,  411,  410,  409,  408,  407,  406,  405,
+      404,  403,  402,  401,  400,  399,  398,  397,  396,  395,
+      394,  393,  392,  391,  390,  389,  388,  387,  386,  385,
+      384,  383,  380,  379,  378,  377,  376,  375,  374,  373,
 
-      342,  341,  340,  339,  338,  337,  336,  333,  332,  331,
-      330,  329,  328,  327,  326,  325,  324,  323,  322,  321,
-      320,  319,  318,  317,  316,  315,  314,  313,  312,  311,
-      310,  309,  308,  307,  306,  305,  304,  303,  302,  301,
-      300,  299,  298,  295,  294,  293,  292,  291,  290,  289,
-      288,  287,  286,  285,  284,  283,  282,  281,  280,  279,
-      278,  277,  276,  275,  274,  273,  272,  271,  270,  269,
-      268,  267,  266,  265,  264,  263,  149,  255,  251,  250,
-      249,  246,  245,  244,  243,  242,  241,  240,  233,  232,
-      231,  227,  226,  223,  222,  219,  218,  217,  216,  215,
+      372,  371,  370,  369,  368,  367,  366,  365,  364,  361,
+      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
+      349,  348,  347,  346,  345,  344,  343,  342,  339,  338,
+      337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
+      327,  326,  325,  324,  323,  322,  321,  320,  319,  318,
+      317,  316,  315,  314,  313,  312,  311,  310,  309,  308,
+      307,  306,  305,  304,  301,  300,  299,  298,  297,  296,
+      295,  294,  293,  292,  291,  290,  289,  288,  287,  286,
+      285,  284,  283,  282,  281,  280,  279,  278,  277,  276,
+      275,  274,  273,  272,  271,  270,  269,  268,  268,  151,
 
-      214,  213,  210,  209,  208,  207,  206,  205,  204,  203,
-      202,  201,  197,  196,  195,  194,  193,  192,  191,  190,
-      189,  186,  183,  182,  181,  180,  179,  178,  177,  176,
-      175,  174,  173,  172,  171,  170,  167,  166,  165,   71,
-      164,   69,  156,  149,  147,  101,   92,   91,   83,   78,
-       73,   72,   71,   71,   69,  626,    5,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
+      260,  256,  255,  254,  251,  250,  249,  248,  247,  246,
+      245,  238,  237,  236,  232,  231,  228,  227,  224,  223,
+      222,  221,  220,  219,  218,  215,  214,  213,  212,  211,
+      210,  209,  208,  207,  206,  202,  201,  200,  199,  198,
+      197,  196,  195,  194,  191,  188,  187,  186,  185,  184,
+      183,  182,  181,  180,  179,  178,  177,  176,  175,  172,
+      171,  170,   73,  169,  167,   70,  159,  151,  149,  103,
+       94,   93,   85,   80,   75,   74,   73,   73,   72,   70,
+      632,    5,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
 
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632
     } ;
 
-static yyconst short int yy_chk[820] =
+static yyconst short int yy_chk[846] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -574,90 +580,93 @@
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    2,   16,    7,    4,    7,   17,   19,   17,
-       16,   19,   22,   31,   23,  622,   22,   20,   23,   24,
-       29,   31,    2,    3,    3,    4,    3,   20,   23,    3,
-        3,    3,   29,   24,    3,    3,    3,   36,    3,    3,
+        1,    1,    1,    2,   16,    7,    4,    7,   17,   19,
+       17,   16,   19,   22,   31,   23,   35,   22,   20,   23,
+       24,   35,   31,    2,    3,    3,    4,    3,   20,   23,
+        3,    3,    3,    3,   24,    3,    3,    3,  628,    3,
 
-      115,    3,    3,   27,    3,    3,   37,   27,   28,    3,
-       36,    3,    3,  115,   37,    3,   32,   27,   28,   28,
-       33,   32,   32,   33,   34,   33,   32,   34,   33,   38,
-       35,   34,   39,   42,   34,   35,   39,   40,   40,   34,
-       39,   41,   43,   38,  621,   44,   39,   42,   45,   43,
-      102,   41,   40,   44,   46,   45,   46,   47,  102,   47,
-       50,   67,   45,   67,   50,   52,   52,   52,   53,   53,
-       54,   54,   55,   55,   50,   56,   56,   59,   57,   57,
-       54,   59,   60,   65,   59,   62,   61,   65,   60,   60,
-       61,   75,   62,   61,   75,   55,  103,   57,   63,   63,
+        3,   36,    3,    3,   27,    3,    3,   29,   27,   37,
+        3,   28,    3,    3,   36,  627,    3,   37,   27,   29,
+        3,   28,   28,   32,   46,   38,   46,   33,   32,   32,
+       33,   34,   33,   32,   34,   33,   39,   41,   34,   38,
+       39,   34,   40,   40,   39,   42,   34,   41,   43,   45,
+       39,   47,   44,   47,   50,   43,   45,   40,   50,   42,
+       44,   53,   53,   45,   52,   52,   52,  117,   50,   54,
+       54,   55,   55,   56,   56,   57,   57,   61,   61,   54,
+      117,   55,   58,   58,   60,   60,   63,   63,   62,   62,
+      105,   64,   64,   66,   66,  105,   56,   65,   65,  625,
 
-       61,  103,   64,   56,   57,   63,   64,   90,   90,   63,
-       63,   92,  123,   92,  104,  150,  619,  123,   64,   66,
-       66,  126,   66,  150,  104,   66,   66,   66,  153,  153,
-       66,   66,   66,  618,  198,   66,  126,   66,   66,  617,
-       66,   66,  141,  129,  141,   66,  133,   66,   66,  133,
-      129,   66,  129,  615,  145,  154,  154,  145,  133,  133,
-      614,  613,  133,  145,  133,  152,  152,  152,  155,  198,
-      156,  157,  155,  156,  158,  157,  159,  158,  158,  160,
-      159,  296,  161,  160,  610,  154,  161,  257,  237,  159,
-      237,  257,  258,  161,  260,  261,  258,  262,  260,  261,
+       62,   58,   61,   57,   62,   66,   77,   60,   58,   77,
+       60,   64,   63,   65,   68,  104,   68,   92,   92,  125,
+      624,   64,   64,  104,  125,   65,   67,   67,   94,   67,
+       94,  106,   67,   67,   67,   67,  128,   67,   67,   67,
+      147,  106,   67,  147,   67,   67,  623,   67,   67,  147,
+      131,  128,   67,  135,   67,   67,  135,  131,   67,  131,
+      152,  143,   67,  143,  159,  135,  135,  159,  152,  135,
+      203,  135,  154,  154,  154,  155,  155,  156,  156,  157,
+      157,  158,  158,  160,  160,  161,  161,  156,  162,  162,
+      163,  163,  242,  158,  242,  160,  164,  164,  262,  262,
 
-      260,  262,  283,  261,  609,  258,  354,  356,  262,  357,
-      354,  356,  608,  357,  283,  402,  296,  357,  607,  504,
-      402,  431,  354,  356,  491,  431,  431,  606,  491,  504,
-      603,  504,  504,  602,  601,  600,  599,  598,  597,  596,
-      595,  594,  592,  590,  589,  588,  491,  627,  627,  627,
-      628,  628,  629,  629,  629,  630,  630,  587,  586,  585,
-      584,  582,  581,  580,  575,  571,  570,  569,  568,  567,
-      566,  565,  563,  559,  557,  556,  554,  553,  552,  551,
-      550,  549,  548,  547,  545,  544,  543,  542,  541,  540,
-      539,  534,  533,  531,  530,  529,  528,  526,  525,  524,
+      161,  621,  163,  263,  263,  289,  203,  265,  265,  157,
+      262,  266,  266,  162,  267,  267,  302,  289,  620,  164,
+      360,  360,  362,  362,  408,  265,  363,  363,  263,  408,
+      510,  266,  437,  437,  497,  497,  619,  267,  616,  615,
+      510,  614,  510,  510,  613,  612,  363,  609,  360,  437,
+      362,  608,  302,  607,  606,  605,  604,  603,  602,  601,
+      600,  598,  596,  595,  594,  593,  592,  591,  497,  633,
+      633,  633,  634,  634,  635,  635,  635,  636,  636,  637,
+      637,  590,  588,  587,  586,  581,  577,  576,  575,  574,
+      573,  572,  571,  569,  565,  563,  562,  560,  559,  558,
 
-      520,  519,  518,  517,  515,  514,  513,  511,  510,  508,
-      506,  503,  502,  499,  498,  497,  496,  495,  494,  493,
-      492,  489,  488,  486,  485,  483,  481,  480,  477,  476,
-      475,  474,  473,  472,  470,  469,  468,  467,  466,  464,
-      462,  461,  456,  454,  453,  452,  451,  449,  446,  445,
-      444,  443,  442,  440,  439,  438,  437,  436,  435,  434,
-      430,  428,  427,  425,  424,  423,  421,  419,  418,  417,
-      415,  414,  413,  412,  411,  410,  409,  408,  407,  406,
-      405,  404,  403,  401,  399,  398,  397,  396,  395,  393,
-      392,  391,  390,  388,  387,  384,  383,  382,  380,  379,
+      557,  556,  555,  554,  553,  551,  550,  549,  548,  547,
+      546,  545,  540,  539,  537,  536,  535,  534,  532,  531,
+      530,  526,  525,  524,  523,  521,  520,  519,  517,  516,
+      514,  512,  509,  508,  505,  504,  503,  502,  501,  500,
+      499,  498,  495,  494,  492,  491,  489,  487,  486,  483,
+      482,  481,  480,  479,  478,  476,  475,  474,  473,  472,
+      470,  468,  467,  462,  460,  459,  458,  457,  455,  452,
+      451,  450,  449,  448,  446,  445,  444,  443,  442,  441,
+      440,  436,  434,  433,  431,  430,  429,  427,  425,  424,
+      423,  421,  420,  419,  418,  417,  416,  415,  414,  413,
 
-      378,  377,  376,  375,  373,  372,  371,  369,  368,  367,
-      366,  364,  363,  362,  361,  360,  359,  355,  351,  350,
-      349,  347,  346,  345,  344,  343,  342,  341,  340,  338,
-      337,  336,  334,  333,  332,  331,  330,  329,  327,  326,
-      325,  324,  323,  321,  320,  319,  318,  317,  316,  312,
-      311,  310,  309,  308,  307,  305,  304,  303,  302,  301,
-      300,  299,  298,  295,  293,  292,  291,  288,  287,  286,
-      284,  282,  280,  279,  278,  277,  276,  275,  273,  272,
-      271,  270,  269,  267,  266,  265,  264,  263,  259,  256,
-      255,  254,  253,  252,  251,  249,  248,  247,  246,  245,
+      412,  411,  410,  409,  407,  405,  404,  403,  402,  401,
+      399,  398,  397,  396,  394,  393,  390,  389,  388,  386,
+      385,  384,  383,  382,  381,  379,  378,  377,  375,  374,
+      373,  372,  370,  369,  368,  367,  366,  365,  361,  357,
+      356,  355,  353,  352,  351,  350,  349,  348,  347,  346,
+      344,  343,  342,  340,  339,  338,  337,  336,  335,  333,
+      332,  331,  330,  329,  327,  326,  325,  324,  323,  322,
+      318,  317,  316,  315,  314,  313,  311,  310,  309,  308,
+      307,  306,  305,  304,  301,  299,  298,  297,  294,  293,
+      292,  290,  288,  286,  285,  284,  283,  282,  281,  279,
 
-      244,  243,  242,  241,  240,  239,  238,  236,  235,  234,
-      233,  232,  231,  230,  229,  228,  227,  225,  224,  222,
-      221,  220,  219,  218,  217,  216,  215,  214,  213,  212,
-      211,  210,  209,  208,  207,  206,  205,  204,  203,  202,
-      201,  200,  199,  197,  196,  195,  194,  193,  192,  191,
-      190,  189,  188,  187,  186,  185,  184,  183,  182,  181,
-      180,  179,  178,  177,  176,  175,  174,  173,  172,  171,
-      170,  169,  168,  167,  166,  165,  148,  147,  144,  143,
-      142,  140,  139,  138,  137,  136,  135,  134,  132,  131,
-      130,  128,  127,  125,  124,  122,  121,  120,  119,  118,
+      278,  277,  276,  275,  273,  272,  271,  270,  269,  264,
+      261,  260,  259,  258,  257,  256,  254,  253,  252,  251,
+      250,  249,  248,  247,  246,  245,  244,  243,  241,  240,
+      239,  238,  237,  236,  235,  234,  233,  232,  230,  229,
+      227,  226,  225,  224,  223,  222,  221,  220,  219,  218,
+      217,  216,  215,  214,  213,  212,  211,  210,  209,  208,
+      207,  206,  205,  204,  202,  201,  200,  199,  198,  197,
+      196,  195,  194,  193,  192,  191,  190,  189,  188,  187,
+      186,  185,  184,  183,  182,  181,  180,  179,  178,  177,
+      176,  175,  174,  173,  172,  171,  170,  169,  168,  150,
 
-      117,  116,  114,  113,  112,  111,  110,  109,  108,  107,
-      106,  105,  101,  100,   99,   98,   97,   96,   95,   94,
-       93,   91,   89,   88,   87,   86,   85,   84,   83,   82,
-       81,   80,   79,   78,   77,   76,   74,   73,   72,   71,
-       70,   68,   58,   49,   48,   30,   26,   25,   21,   18,
-       15,   14,   12,   11,    9,    5,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
+      149,  146,  145,  144,  142,  141,  140,  139,  138,  137,
+      136,  134,  133,  132,  130,  129,  127,  126,  124,  123,
+      122,  121,  120,  119,  118,  116,  115,  114,  113,  112,
+      111,  110,  109,  108,  107,  103,  102,  101,  100,   99,
+       98,   97,   96,   95,   93,   91,   90,   89,   88,   87,
+       86,   85,   84,   83,   82,   81,   80,   79,   78,   76,
+       75,   74,   73,   72,   71,   69,   59,   49,   48,   30,
+       26,   25,   21,   18,   15,   14,   12,   11,   10,    9,
+        5,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
 
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
+      632,  632,  632,  632,  632
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -671,7 +680,7 @@
 #define YY_MORE_ADJ 0
 char *yytext;
 #define INITIAL 0
-/*	SCCS Id: @(#)lev_lex.c	3.3	96/05/16	*/
+/*	SCCS Id: @(#)lev_lex.c	3.4	2000/12/22	*/
 /*	Copyright (c) 1989 by Jean-Christophe Collet */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -746,34 +755,6 @@
 static char map[4096];
 static int map_cnt = 0;
 
-/*
- *	This is a hack required by Michael Hamel to get things
- *	working on the Mac.
- */
-#if defined(applec) && !defined(FLEX_SCANNER) && !defined(FLEXHACK_SCANNER)
-#undef input
-#undef unput
-#define unput(c) { yytchar = (c); if (yytchar == 10) yylineno--; *yysptr++ = yytchar; }
-# ifndef YYNEWLINE
-# define YYNEWLINE 10
-# endif
-
-char
-input()		/* Under MPW \n is chr(13)! Compensate for this. */
-{
-	if (yysptr > yysbuf) return(*--yysptr);
-	else {
-		yytchar = getc(yyin);
-		if (yytchar == '\n') {
-		    yylineno++;
-		    return(YYNEWLINE);
-		}
-		if (yytchar == EOF) return(0);
-		else		    return(yytchar);
-	}
-}
-#endif	/* applec && !FLEX_SCANNER && !FLEXHACK_SCANNER */
-
 #define MAPC 1
 
 
@@ -928,13 +909,13 @@
 			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 >= 627 )
+				if ( yy_current_state >= 633 )
 					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] != 757 );
+		while ( yy_base[yy_current_state] != 782 );
 
 yy_find_action:
 		yy_act = yy_accept[yy_current_state];
@@ -1409,14 +1390,18 @@
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-{ yylval.i = yytext[1]; return CHAR; }
+{ yylval.i = yytext[2]; return CHAR; }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-{ return yytext[0]; }
+{ yylval.i = yytext[1]; return CHAR; }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
+{ return yytext[0]; }
+	YY_BREAK
+case 112:
+YY_RULE_SETUP
 ECHO;
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
@@ -1710,7 +1695,7 @@
 		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 >= 627 )
+			if ( yy_current_state >= 633 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1741,11 +1726,11 @@
 	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 >= 627 )
+		if ( yy_current_state >= 633 )
 			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 == 626);
+	yy_is_jam = (yy_current_state == 632);
 
 	return yy_is_jam ? 0 : yy_current_state;
 	}

