[MLton-commit] r4244

Matthew Fluet MLton@mlton.org
Sat, 19 Nov 2005 11:03:34 -0800


Updated SML/NJ Library and CKit Library from SML/NJ 110.57; they fixed some outstanding Basis Library deviations, which yields a smaller patch.
----------------------------------------------------------------------

U   mlton/trunk/doc/changelog
U   mlton/trunk/lib/ckit-lib/Makefile
U   mlton/trunk/lib/ckit-lib/ckit.patch
U   mlton/trunk/lib/ckit-lib/ckit.tgz
U   mlton/trunk/lib/smlnj-lib/Makefile
U   mlton/trunk/lib/smlnj-lib/smlnj-lib.patch
U   mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz

----------------------------------------------------------------------

Modified: mlton/trunk/doc/changelog
===================================================================
--- mlton/trunk/doc/changelog	2005-11-19 18:48:43 UTC (rev 4243)
+++ mlton/trunk/doc/changelog	2005-11-19 19:03:27 UTC (rev 4244)
@@ -1,5 +1,8 @@
 Here are the changes since version 20041109.
 
+* 2005-11-19
+  - Updated SML/NJ Library and CKit Library from SML/NJ 110.57.
+
 * 2005-11-15
   - Fixed a bug in MLton.ProcEnv.setgroups.
 

Modified: mlton/trunk/lib/ckit-lib/Makefile
===================================================================
--- mlton/trunk/lib/ckit-lib/Makefile	2005-11-19 18:48:43 UTC (rev 4243)
+++ mlton/trunk/lib/ckit-lib/Makefile	2005-11-19 19:03:27 UTC (rev 4244)
@@ -11,7 +11,6 @@
 ckit/README.mlton: ckit.tgz ckit.patch
 	gzip -dc ckit.tgz | tar xf -
 	patch -p0 < ckit.patch
-	chmod a-x ckit/src/ast/simplify-assign-ops.sml
 
 .PHONY: clean
 clean:

Modified: mlton/trunk/lib/ckit-lib/ckit.patch
===================================================================
--- mlton/trunk/lib/ckit-lib/ckit.patch	2005-11-19 18:48:43 UTC (rev 4243)
+++ mlton/trunk/lib/ckit-lib/ckit.patch	2005-11-19 19:03:27 UTC (rev 4244)
@@ -1,11 +1,11 @@
 diff -Naur ckit/ckit-lib.mlb ckit-mlton/ckit-lib.mlb
 --- ckit/ckit-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/ckit-lib.mlb	2005-08-18 12:21:04.000000000 -0400
++++ ckit-mlton/ckit-lib.mlb	2005-08-18 09:31:14.000000000 -0400
 @@ -0,0 +1 @@
 +src/ckit-lib.mlb
 diff -Naur ckit/README.mlton ckit-mlton/README.mlton
 --- ckit/README.mlton	1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/README.mlton	2005-08-18 12:21:04.000000000 -0400
++++ ckit-mlton/README.mlton	2005-08-17 19:41:36.000000000 -0400
 @@ -0,0 +1,13 @@
 +The following changes were made to the ckit Library, in addition to
 +deriving the {{{.mlb}}} file from the {{{.cm}}} files:
@@ -22,7 +22,7 @@
 + * {{{ast/build-ast.sml}}} (modified): Rewrote use of ''or-patterns''.
 diff -Naur ckit/src/ast/ast-sig.sml ckit-mlton/src/ast/ast-sig.sml
 --- ckit/src/ast/ast-sig.sml	2001-10-31 15:22:41.000000000 -0500
-+++ ckit-mlton/src/ast/ast-sig.sml	2005-08-18 12:21:04.000000000 -0400
++++ ckit-mlton/src/ast/ast-sig.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -67,7 +67,12 @@
    datatype declaration
      = TypeDecl of {shadow: {strct:bool} option, tid:tid}
@@ -99,7 +99,7 @@
       location : SourceMap.location,
 diff -Naur ckit/src/ast/build-ast.sml ckit-mlton/src/ast/build-ast.sml
 --- ckit/src/ast/build-ast.sml	2003-08-28 17:58:39.000000000 -0400
-+++ ckit-mlton/src/ast/build-ast.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ast/build-ast.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -290,7 +290,8 @@
  	of SOME{ntype=NONE,...} => true
  	 | _ => false
@@ -225,7 +225,7 @@
  					       else if repeated_declarations_ok
 diff -Naur ckit/src/ast/initializer-normalizer.sml ckit-mlton/src/ast/initializer-normalizer.sml
 --- ckit/src/ast/initializer-normalizer.sml	2003-08-28 17:58:39.000000000 -0400
-+++ ckit-mlton/src/ast/initializer-normalizer.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ast/initializer-normalizer.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -156,7 +156,13 @@
  		   feed (unionNorm (ctype, fields), inits)
  		| SOME _ => fail "Incomplete type for union ref"
@@ -243,7 +243,7 @@
  	 | Ast.Ellipses => fail "Cannot initialize ellipses"
 diff -Naur ckit/src/ast/pp/pp-ast-adornment-sig.sml ckit-mlton/src/ast/pp/pp-ast-adornment-sig.sml
 --- ckit/src/ast/pp/pp-ast-adornment-sig.sml	2000-04-05 14:34:56.000000000 -0400
-+++ ckit-mlton/src/ast/pp/pp-ast-adornment-sig.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ast/pp/pp-ast-adornment-sig.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -1,14 +1,14 @@
  (* Copyright (c) 1998 by Lucent Technologies *)
  
@@ -264,7 +264,7 @@
 +(* end *)
 diff -Naur ckit/src/ast/pp/pp-ast-ext-sig.sml ckit-mlton/src/ast/pp/pp-ast-ext-sig.sml
 --- ckit/src/ast/pp/pp-ast-ext-sig.sml	2000-04-05 14:34:56.000000000 -0400
-+++ ckit-mlton/src/ast/pp/pp-ast-ext-sig.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ast/pp/pp-ast-ext-sig.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -1,13 +1,13 @@
  (* Copyright (c) 1998 by Lucent Technologies *)
  
@@ -289,7 +289,7 @@
 +(* end *)
 diff -Naur ckit/src/ast/pp/pp-lib.sml ckit-mlton/src/ast/pp/pp-lib.sml
 --- ckit/src/ast/pp/pp-lib.sml	2000-04-05 14:34:57.000000000 -0400
-+++ ckit-mlton/src/ast/pp/pp-lib.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ast/pp/pp-lib.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -115,7 +115,10 @@
  
    fun ppId pps ({name,uid,kind,stClass,global,...}: Ast.id) = 
@@ -304,7 +304,7 @@
  	 | _ => ppSymbol pps (name,uid)
 diff -Naur ckit/src/ast/sizeof.sml ckit-mlton/src/ast/sizeof.sml
 --- ckit/src/ast/sizeof.sml	2000-04-05 14:34:55.000000000 -0400
-+++ ckit-mlton/src/ast/sizeof.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ast/sizeof.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -321,7 +321,9 @@
    and process (sizesErrWarnBug as {sizes, err, warn, bug}) tidtab ty =
        case ty
@@ -318,7 +318,7 @@
  	     let val {bits,align} = #int sizes
 diff -Naur ckit/src/ast/type-util-sig.sml ckit-mlton/src/ast/type-util-sig.sml
 --- ckit/src/ast/type-util-sig.sml	2001-10-31 15:22:41.000000000 -0500
-+++ ckit-mlton/src/ast/type-util-sig.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ast/type-util-sig.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -1,10 +1,10 @@
  (* Copyright (c) 1998 by Lucent Technologies *)
  
@@ -340,7 +340,7 @@
 +(* end (* local *) *)
 diff -Naur ckit/src/ast/type-util.sml ckit-mlton/src/ast/type-util.sml
 --- ckit/src/ast/type-util.sml	2001-10-31 15:22:41.000000000 -0500
-+++ ckit-mlton/src/ast/type-util.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ast/type-util.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -282,7 +282,8 @@
    fun isStructOrUnion tidtab ty =
      case reduceTypedef tidtab ty
@@ -393,7 +393,7 @@
  				  )
 diff -Naur ckit/src/ckit-lib.mlb ckit-mlton/src/ckit-lib.mlb
 --- ckit/src/ckit-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/ckit-lib.mlb	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/ckit-lib.mlb	2005-11-19 13:53:37.000000000 -0500
 @@ -0,0 +1,876 @@
 +
 +ann
@@ -1273,7 +1273,7 @@
 +end
 diff -Naur ckit/src/parser/grammar/c.grm.desc ckit-mlton/src/parser/grammar/c.grm.desc
 --- ckit/src/parser/grammar/c.grm.desc	1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/parser/grammar/c.grm.desc	2005-08-18 12:23:58.000000000 -0400
++++ ckit-mlton/src/parser/grammar/c.grm.desc	2005-11-19 13:53:36.000000000 -0500
 @@ -0,0 +1,10001 @@
 +1 shift/reduce conflict
 +
@@ -11278,7 +11278,7 @@
 +712 goto table entries
 diff -Naur ckit/src/parser/grammar/c.grm.sig ckit-mlton/src/parser/grammar/c.grm.sig
 --- ckit/src/parser/grammar/c.grm.sig	1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/parser/grammar/c.grm.sig	2005-08-18 12:23:58.000000000 -0400
++++ ckit-mlton/src/parser/grammar/c.grm.sig	2005-11-19 13:53:36.000000000 -0500
 @@ -0,0 +1,101 @@
 +signature C_TOKENS =
 +sig
@@ -11383,7 +11383,7 @@
 +end
 diff -Naur ckit/src/parser/grammar/c.grm.sml ckit-mlton/src/parser/grammar/c.grm.sml
 --- ckit/src/parser/grammar/c.grm.sml	1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/parser/grammar/c.grm.sml	2005-08-18 12:23:58.000000000 -0400
++++ ckit-mlton/src/parser/grammar/c.grm.sml	2005-11-19 13:53:36.000000000 -0500
 @@ -0,0 +1,3866 @@
 +functor LrValsFun(structure Token : TOKEN 
 +			    ) = 
@@ -15253,7 +15253,7 @@
 +end
 diff -Naur ckit/src/parser/grammar/c.lex.sml ckit-mlton/src/parser/grammar/c.lex.sml
 --- ckit/src/parser/grammar/c.lex.sml	1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/parser/grammar/c.lex.sml	2005-08-18 12:23:55.000000000 -0400
++++ ckit-mlton/src/parser/grammar/c.lex.sml	2005-11-19 13:53:36.000000000 -0500
 @@ -0,0 +1,1053 @@
 +type int = Int.int
 +functor CLexFun(structure Tokens : C_TOKENS 
@@ -16310,7 +16310,7 @@
 +end
 diff -Naur ckit/src/parser/parse-tree-sig.sml ckit-mlton/src/parser/parse-tree-sig.sml
 --- ckit/src/parser/parse-tree-sig.sml	2000-04-05 14:35:01.000000000 -0400
-+++ ckit-mlton/src/parser/parse-tree-sig.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/parser/parse-tree-sig.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -27,8 +27,10 @@
      | ModAssign | XorAssign | OrAssign | AndAssign
      | LshiftAssign | RshiftAssign 
@@ -16469,7 +16469,7 @@
    and declarationExt = 
 diff -Naur ckit/src/parser/parse-tree.sml ckit-mlton/src/parser/parse-tree.sml
 --- ckit/src/parser/parse-tree.sml	2000-04-05 14:35:01.000000000 -0400
-+++ ckit-mlton/src/parser/parse-tree.sml	2005-08-18 12:21:05.000000000 -0400
++++ ckit-mlton/src/parser/parse-tree.sml	2005-08-17 19:41:36.000000000 -0400
 @@ -23,8 +23,10 @@
      | ModAssign | XorAssign | OrAssign | AndAssign
      | LshiftAssign | RshiftAssign 

Modified: mlton/trunk/lib/ckit-lib/ckit.tgz
===================================================================
(Binary files differ)

Modified: mlton/trunk/lib/smlnj-lib/Makefile
===================================================================
--- mlton/trunk/lib/smlnj-lib/Makefile	2005-11-19 18:48:43 UTC (rev 4243)
+++ mlton/trunk/lib/smlnj-lib/Makefile	2005-11-19 19:03:27 UTC (rev 4244)
@@ -11,7 +11,6 @@
 smlnj-lib/README.mlton: smlnj-lib.tgz smlnj-lib.patch
 	gzip -dc smlnj-lib.tgz | tar xf -
 	patch -p0 < smlnj-lib.patch
-	rm smlnj-lib/HTML/.cvsignore
 	mv smlnj-lib/LICENSE ../../doc/license/SMLNJ-LIB-LICENSE
 
 .PHONY: clean

Modified: mlton/trunk/lib/smlnj-lib/smlnj-lib.patch
===================================================================
--- mlton/trunk/lib/smlnj-lib/smlnj-lib.patch	2005-11-19 18:48:43 UTC (rev 4243)
+++ mlton/trunk/lib/smlnj-lib/smlnj-lib.patch	2005-11-19 19:03:27 UTC (rev 4244)
@@ -1,6 +1,6 @@
 diff -Naur smlnj-lib/Controls/controls-lib.mlb smlnj-lib-mlton/Controls/controls-lib.mlb
 --- smlnj-lib/Controls/controls-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Controls/controls-lib.mlb	2005-08-18 12:18:11.000000000 -0400
++++ smlnj-lib-mlton/Controls/controls-lib.mlb	2005-11-19 13:58:31.000000000 -0500
 @@ -0,0 +1,170 @@
 +
 +ann
@@ -174,7 +174,7 @@
 +end
 diff -Naur smlnj-lib/HashCons/hash-cons-lib.mlb smlnj-lib-mlton/HashCons/hash-cons-lib.mlb
 --- smlnj-lib/HashCons/hash-cons-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HashCons/hash-cons-lib.mlb	2005-08-18 12:18:12.000000000 -0400
++++ smlnj-lib-mlton/HashCons/hash-cons-lib.mlb	2005-11-19 13:58:31.000000000 -0500
 @@ -0,0 +1,144 @@
 +
 +ann
@@ -320,22 +320,9 @@
 +end
 +
 +end
-diff -Naur smlnj-lib/HTML/deviations.sml smlnj-lib-mlton/HTML/deviations.sml
---- smlnj-lib/HTML/deviations.sml	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/deviations.sml	2005-08-17 20:23:34.000000000 -0400
-@@ -0,0 +1,9 @@
-+structure Substring : 
-+   sig 
-+      include SUBSTRING
-+      val all : string -> substring
-+   end =
-+   struct
-+      open Substring
-+      val all = full
-+   end
 diff -Naur smlnj-lib/HTML/html-attrs-fn.sml smlnj-lib-mlton/HTML/html-attrs-fn.sml
---- smlnj-lib/HTML/html-attrs-fn.sml	2003-05-22 18:46:30.000000000 -0400
-+++ smlnj-lib-mlton/HTML/html-attrs-fn.sml	2005-08-17 20:23:34.000000000 -0400
+--- smlnj-lib/HTML/html-attrs-fn.sml	2004-11-20 10:28:05.000000000 -0500
++++ smlnj-lib-mlton/HTML/html-attrs-fn.sml	2005-08-17 20:13:04.000000000 -0400
 @@ -89,19 +89,24 @@
  		fun error () = (
  		      Err.badAttrVal ctx (attrName, attrValToString attrVal);
@@ -435,7 +422,7 @@
  	  end
 diff -Naur smlnj-lib/HTML/html-cons-lib.mlb smlnj-lib-mlton/HTML/html-cons-lib.mlb
 --- smlnj-lib/HTML/html-cons-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-cons-lib.mlb	2005-08-17 20:23:34.000000000 -0400
++++ smlnj-lib-mlton/HTML/html-cons-lib.mlb	2005-08-17 20:13:04.000000000 -0400
 @@ -0,0 +1,9 @@
 +
 +ann
@@ -447,8 +434,8 @@
 +
 +end
 diff -Naur smlnj-lib/HTML/html-elements-fn.sml smlnj-lib-mlton/HTML/html-elements-fn.sml
---- smlnj-lib/HTML/html-elements-fn.sml	2000-06-01 14:33:54.000000000 -0400
-+++ smlnj-lib-mlton/HTML/html-elements-fn.sml	2005-08-17 20:23:34.000000000 -0400
+--- smlnj-lib/HTML/html-elements-fn.sml	2005-11-17 15:53:08.000000000 -0500
++++ smlnj-lib-mlton/HTML/html-elements-fn.sml	2005-11-17 15:55:26.000000000 -0500
 @@ -144,7 +144,8 @@
     *   3) a string literal enclosed in ''
     *)
@@ -459,9370 +446,377 @@
  	    | isNameChar c = (Char.isAlphaNum c)
  	  in
  	    case SS.getc ss
-diff -Naur smlnj-lib/HTML/html-gram.desc smlnj-lib-mlton/HTML/html-gram.desc
---- smlnj-lib/HTML/html-gram.desc	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-gram.desc	2005-08-18 12:09:03.000000000 -0400
-@@ -0,0 +1,6055 @@
-+
-+state 0:
-+
-+	Document : . StartHTML Head Body EndHTML 
-+
-+	START_HTML	shift 2
-+
-+	Document	goto 282
-+	StartHTML	goto 1
-+
-+	.	reduce by rule 1
-+
-+
-+state 1:
-+
-+	Document : StartHTML . Head Body EndHTML 
-+
-+	START_HEAD	shift 5
-+
-+	Head	goto 4
-+	StartHEAD	goto 3
-+
-+	.	reduce by rule 6
-+
-+
-+state 2:
-+
-+	StartHTML : START_HTML .  (reduce by rule 2)
-+
-+
-+
-+	.	reduce by rule 2
-+
-+
-+state 3:
-+
-+	Head : StartHEAD . HeadContents EndHEAD 
-+
-+	TAG_BASE	shift 14
-+	TAG_ISINDEX	shift 13
-+	TAG_LINK	shift 12
-+	TAG_META	shift 11
-+	START_SCRIPT	shift 10
-+	START_STYLE	shift 9
-+
-+	HeadContents	goto 8
-+	HeadElements	goto 7
-+	HeadElement	goto 6
-+
-+	.	reduce by rule 11
-+
-+
-+state 4:
-+
-+	Document : StartHTML Head . Body EndHTML 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	START_BODY	shift 73
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	Body	goto 27
-+	BodyContent0	goto 26
-+	BodyElement	goto 25
-+	BlockWOIndex	goto 24
-+	Paragraph	goto 23
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 20
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	error
-+
-+
-+state 5:
-+
-+	StartHEAD : START_HEAD .  (reduce by rule 7)
-+
-+
-+
-+	.	reduce by rule 7
-+
-+
-+state 6:
-+
-+	HeadElements : HeadElement . HeadElements 
-+
-+	TAG_BASE	shift 14
-+	TAG_ISINDEX	shift 13
-+	TAG_LINK	shift 12
-+	TAG_META	shift 11
-+	START_SCRIPT	shift 10
-+	START_STYLE	shift 9
-+
-+	HeadElements	goto 80
-+	HeadElement	goto 6
-+
-+	.	reduce by rule 11
-+
-+
-+state 7:
-+
-+	HeadContents : HeadElements . START_TITLE PCData END_TITLE HeadElements 
-+
-+	START_TITLE	shift 81
-+
-+
-+	.	error
-+
-+
-+state 8:
-+
-+	Head : StartHEAD HeadContents . EndHEAD 
-+
-+	END_HEAD	shift 83
-+
-+	EndHEAD	goto 82
-+
-+	.	reduce by rule 8
-+
-+
-+state 9:
-+
-+	HeadElement : START_STYLE . PCData END_STYLE 
-+
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	PCData	goto 86
-+	PCDataList	goto 85
-+	PCDataElem	goto 84
-+
-+	.	reduce by rule 150
-+
-+
-+state 10:
-+
-+	HeadElement : START_SCRIPT . PCData END_SCRIPT 
-+
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	PCData	goto 87
-+	PCDataList	goto 85
-+	PCDataElem	goto 84
-+
-+	.	reduce by rule 150
-+
-+
-+state 11:
-+
-+	HeadElement : TAG_META .  (reduce by rule 13)
-+
-+
-+
-+	.	reduce by rule 13
-+
-+
-+state 12:
-+
-+	HeadElement : TAG_LINK .  (reduce by rule 14)
-+
-+
-+
-+	.	reduce by rule 14
-+
-+
-+state 13:
-+
-+	HeadElement : TAG_ISINDEX .  (reduce by rule 15)
-+
-+
-+
-+	.	reduce by rule 15
-+
-+
-+state 14:
-+
-+	HeadElement : TAG_BASE .  (reduce by rule 16)
-+
-+
-+
-+	.	reduce by rule 16
-+
-+
-+state 15:
-+
-+	TextWOScript : PCDataElem .  (reduce by rule 108)
-+
-+
-+
-+	.	reduce by rule 108
-+
-+
-+state 16:
-+
-+	TextWOScript : Form .  (reduce by rule 112)
-+
-+
-+
-+	.	reduce by rule 112
-+
-+
-+state 17:
-+
-+	TextWOScript : Special .  (reduce by rule 111)
-+
-+
-+
-+	.	reduce by rule 111
-+
-+
-+state 18:
-+
-+	TextWOScript : Phrase .  (reduce by rule 110)
-+
-+
-+
-+	.	reduce by rule 110
-+
-+
-+state 19:
-+
-+	TextWOScript : Font .  (reduce by rule 109)
-+
-+
-+
-+	.	reduce by rule 109
-+
-+
-+state 20:
-+
-+	BodyContent0 : TextWOScript . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 94
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 21:
-+
-+	BlockWOIndex : Preformatted .  (reduce by rule 55)
-+
-+
-+
-+	.	reduce by rule 55
-+
-+
-+state 22:
-+
-+	BlockWOIndex : List .  (reduce by rule 54)
-+
-+
-+
-+	.	reduce by rule 54
-+
-+
-+state 23:
-+
-+	BodyContent0 : Paragraph . END_P BodyContent1 
-+	BodyContent0 : Paragraph . BodyContent2 
-+
-+	START_ADDRESS	shift 78
-+	START_BLOCKQUOTE	shift 74
-+	START_CENTER	shift 71
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	TAG_ISINDEX	shift 96
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	END_P	shift 101
-+	START_PRE	shift 44
-+	START_TABLE	shift 36
-+	START_UL	shift 32
-+
-+	BodyContent2	goto 100
-+	BodyElement	goto 99
-+	BlockWOIndex	goto 92
-+	Block	goto 98
-+	Paragraph	goto 97
-+	List	goto 22
-+	Preformatted	goto 21
-+
-+	.	reduce by rule 35
-+
-+
-+state 24:
-+
-+	BodyContent0 : BlockWOIndex . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 102
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 25:
-+
-+	BodyContent0 : BodyElement . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 103
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 26:
-+
-+	Body : BodyContent0 . EndBODY 
-+
-+	END_BODY	shift 105
-+
-+	EndBODY	goto 104
-+
-+	.	reduce by rule 20
-+
-+
-+state 27:
-+
-+	Document : StartHTML Head Body . EndHTML 
-+
-+	END_HTML	shift 107
-+
-+	EndHTML	goto 106
-+
-+	.	reduce by rule 3
-+
-+
-+state 28:
-+
-+	PCDataElem : ENTITY_REF .  (reduce by rule 154)
-+
-+
-+
-+	.	reduce by rule 154
-+
-+
-+state 29:
-+
-+	PCDataElem : CHAR_REF .  (reduce by rule 153)
-+
-+
-+
-+	.	reduce by rule 153
-+
-+
-+state 30:
-+
-+	PCDataElem : PCDATA .  (reduce by rule 152)
-+
-+
-+
-+	.	reduce by rule 152
-+
-+
-+state 31:
-+
-+	Phrase : START_VAR . TextList END_VAR 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 110
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 32:
-+
-+	List : START_UL . ListItemList END_UL 
-+
-+	START_LI	shift 113
-+
-+	ListItemList	goto 112
-+	ListItem	goto 111
-+
-+	.	reduce by rule 70
-+
-+
-+state 33:
-+
-+	Font : START_U . TextList END_U 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 114
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 34:
-+
-+	Font : START_TT . TextList END_TT 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 115
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 35:
-+
-+	Form : START_TEXTAREA . PCData END_TEXTAREA 
-+
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	PCData	goto 116
-+	PCDataList	goto 85
-+	PCDataElem	goto 84
-+
-+	.	reduce by rule 150
-+
-+
-+state 36:
-+
-+	BlockWOIndex : START_TABLE . optCaption TableRowList END_TABLE 
-+
-+	START_CAPTION	shift 118
-+
-+	optCaption	goto 117
-+
-+	.	reduce by rule 93
-+
-+
-+state 37:
-+
-+	Font : START_SUP . TextList END_SUP 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 119
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 38:
-+
-+	Font : START_SUB . TextList END_SUB 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 120
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 39:
-+
-+	Phrase : START_STRONG . TextList END_STRONG 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 121
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 40:
-+
-+	Font : START_STRIKE . TextList END_STRIKE 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 122
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 41:
-+
-+	Font : START_SMALL . TextList END_SMALL 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 123
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 42:
-+
-+	Form : START_SELECT . OptionList END_SELECT 
-+
-+	START_OPTION	shift 125
-+
-+	OptionList	goto 124
-+
-+	.	reduce by rule 145
-+
-+
-+state 43:
-+
-+	Phrase : START_SAMP . TextList END_SAMP 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 126
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 44:
-+
-+	Preformatted : START_PRE . TextList END_PRE 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 127
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 45:
-+
-+	Special : TAG_PARAM .  (reduce by rule 139)
-+
-+
-+
-+	.	reduce by rule 139
-+
-+
-+state 46:
-+
-+	Paragraph : START_P . TextList 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 128
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 47:
-+
-+	List : START_OL . ListItemList END_OL 
-+
-+	START_LI	shift 113
-+
-+	ListItemList	goto 129
-+	ListItem	goto 111
-+
-+	.	reduce by rule 70
-+
-+
-+state 48:
-+
-+	List : START_MENU . ListItemList END_MENU 
-+
-+	START_LI	shift 113
-+
-+	ListItemList	goto 130
-+	ListItem	goto 111
-+
-+	.	reduce by rule 70
-+
-+
-+state 49:
-+
-+	Special : START_MAP . AreaList END_MAP 
-+
-+	TAG_AREA	shift 132
-+
-+	AreaList	goto 131
-+
-+	.	reduce by rule 140
-+
-+
-+state 50:
-+
-+	Phrase : START_KBD . TextList END_KBD 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 133
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 51:
-+
-+	Form : TAG_INPUT .  (reduce by rule 142)
-+
-+
-+
-+	.	reduce by rule 142
-+
-+
-+state 52:
-+
-+	Special : TAG_IMG .  (reduce by rule 133)
-+
-+
-+
-+	.	reduce by rule 133
-+
-+
-+state 53:
-+
-+	Font : START_I . TextList END_I 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 134
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 54:
-+
-+	BlockWOIndex : TAG_HR .  (reduce by rule 60)
-+
-+
-+
-+	.	reduce by rule 60
-+
-+
-+state 55:
-+
-+	BodyElement : START_H6 . TextList END_H6 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 135
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 56:
-+
-+	BodyElement : START_H5 . TextList END_H5 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 136
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 57:
-+
-+	BodyElement : START_H4 . TextList END_H4 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 137
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 58:
-+
-+	BodyElement : START_H3 . TextList END_H3 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 138
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 59:
-+
-+	BodyElement : START_H2 . TextList END_H2 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 139
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 60:
-+
-+	BodyElement : START_H1 . TextList END_H1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 140
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 61:
-+
-+	BlockWOIndex : START_FORM . BodyContent END_FORM 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent	goto 142
-+	BodyContent1	goto 141
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 62:
-+
-+	Special : START_BASEFONT . TextList END_BASEFONT 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 143
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 63:
-+
-+	Special : START_FONT . TextList END_FONT 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 144
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 64:
-+
-+	Phrase : START_EM . TextList END_EM 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 145
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 65:
-+
-+	List : START_DL . DLItemList END_DL 
-+
-+	START_DD	shift 149
-+	START_DT	shift 148
-+
-+	DLItemList	goto 147
-+	DLItem	goto 146
-+
-+	.	reduce by rule 73
-+
-+
-+state 66:
-+
-+	BlockWOIndex : START_DIV . BodyContent END_DIV 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent	goto 150
-+	BodyContent1	goto 141
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 67:
-+
-+	List : START_DIR . ListItemList END_DIR 
-+
-+	START_LI	shift 113
-+
-+	ListItemList	goto 151
-+	ListItem	goto 111
-+
-+	.	reduce by rule 70
-+
-+
-+state 68:
-+
-+	Phrase : START_DFN . TextList END_DFN 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 152
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 69:
-+
-+	Phrase : START_CODE . TextList END_CODE 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 153
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 70:
-+
-+	Phrase : START_CITE . TextList END_CITE 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 154
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 71:
-+
-+	BlockWOIndex : START_CENTER . BodyContent END_CENTER 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent	goto 155
-+	BodyContent1	goto 141
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 72:
-+
-+	Special : TAG_BR .  (reduce by rule 137)
-+
-+
-+
-+	.	reduce by rule 137
-+
-+
-+state 73:
-+
-+	BodyContent0 : START_BODY . BodyContent 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent	goto 156
-+	BodyContent1	goto 141
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 74:
-+
-+	BlockWOIndex : START_BLOCKQUOTE . BodyContent END_BLOCKQUOTE 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent	goto 157
-+	BodyContent1	goto 141
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 75:
-+
-+	Font : START_BIG . TextList END_BIG 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 158
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 76:
-+
-+	Font : START_B . TextList END_B 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 159
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 77:
-+
-+	Special : START_APPLET . TextList END_APPLET 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 160
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 78:
-+
-+	BodyElement : START_ADDRESS . AddressContent1 END_ADDRESS 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	AddressContent1	goto 163
-+	Paragraph	goto 162
-+	TextWOScript	goto 89
-+	Text	goto 161
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 47
-+
-+
-+state 79:
-+
-+	Special : START_A . TextList END_A 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 164
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 80:
-+
-+	HeadElements : HeadElement HeadElements .  (reduce by rule 12)
-+
-+
-+
-+	.	reduce by rule 12
-+
-+
-+state 81:
-+
-+	HeadContents : HeadElements START_TITLE . PCData END_TITLE HeadElements 
-+
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	PCData	goto 165
-+	PCDataList	goto 85
-+	PCDataElem	goto 84
-+
-+	.	reduce by rule 150
-+
-+
-+state 82:
-+
-+	Head : StartHEAD HeadContents EndHEAD .  (reduce by rule 5)
-+
-+
-+
-+	.	reduce by rule 5
-+
-+
-+state 83:
-+
-+	EndHEAD : END_HEAD .  (reduce by rule 9)
-+
-+
-+
-+	.	reduce by rule 9
-+
-+
-+state 84:
-+
-+	PCDataList : PCDataElem . PCDataList 
-+
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	PCDataList	goto 166
-+	PCDataElem	goto 84
-+
-+	.	reduce by rule 150
-+
-+
-+state 85:
-+
-+	PCData : PCDataList .  (reduce by rule 149)
-+
-+
-+
-+	.	reduce by rule 149
-+
-+
-+state 86:
-+
-+	HeadElement : START_STYLE PCData . END_STYLE 
-+
-+	END_STYLE	shift 167
-+
-+
-+	.	error
-+
-+
-+state 87:
-+
-+	HeadElement : START_SCRIPT PCData . END_SCRIPT 
-+
-+	END_SCRIPT	shift 168
-+
-+
-+	.	error
-+
-+
-+state 88:
-+
-+	BodyContent1 : Text . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 169
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 89:
-+
-+	Text : TextWOScript .  (reduce by rule 113)
-+
-+
-+
-+	.	reduce by rule 113
-+
-+
-+state 90:
-+
-+	BodyContent1 : Paragraph . END_P BodyContent1 
-+	BodyContent1 : Paragraph . BodyContent2 
-+
-+	START_ADDRESS	shift 78
-+	START_BLOCKQUOTE	shift 74
-+	START_CENTER	shift 71
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	TAG_ISINDEX	shift 96
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	END_P	shift 171
-+	START_PRE	shift 44
-+	START_TABLE	shift 36
-+	START_UL	shift 32
-+
-+	BodyContent2	goto 170
-+	BodyElement	goto 99
-+	BlockWOIndex	goto 92
-+	Block	goto 98
-+	Paragraph	goto 97
-+	List	goto 22
-+	Preformatted	goto 21
-+
-+	.	reduce by rule 35
-+
-+
-+state 91:
-+
-+	BodyContent1 : Block . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 172
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 92:
-+
-+	Block : BlockWOIndex .  (reduce by rule 62)
-+
-+
-+
-+	.	reduce by rule 62
-+
-+
-+state 93:
-+
-+	BodyContent1 : BodyElement . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 173
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 94:
-+
-+	BodyContent0 : TextWOScript BodyContent1 .  (reduce by rule 24)
-+
-+
-+
-+	.	reduce by rule 24
-+
-+
-+state 95:
-+
-+	Text : START_SCRIPT . PCData END_SCRIPT 
-+
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	PCData	goto 174
-+	PCDataList	goto 85
-+	PCDataElem	goto 84
-+
-+	.	reduce by rule 150
-+
-+
-+state 96:
-+
-+	Block : TAG_ISINDEX .  (reduce by rule 63)
-+
-+
-+
-+	.	reduce by rule 63
-+
-+
-+state 97:
-+
-+	BodyContent2 : Paragraph . END_P BodyContent1 
-+	BodyContent2 : Paragraph . BodyContent2 
-+
-+	START_ADDRESS	shift 78
-+	START_BLOCKQUOTE	shift 74
-+	START_CENTER	shift 71
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	TAG_ISINDEX	shift 96
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	END_P	shift 176
-+	START_PRE	shift 44
-+	START_TABLE	shift 36
-+	START_UL	shift 32
-+
-+	BodyContent2	goto 175
-+	BodyElement	goto 99
-+	BlockWOIndex	goto 92
-+	Block	goto 98
-+	Paragraph	goto 97
-+	List	goto 22
-+	Preformatted	goto 21
-+
-+	.	reduce by rule 35
-+
-+
-+state 98:
-+
-+	BodyContent2 : Block . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 177
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 99:
-+
-+	BodyContent2 : BodyElement . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 178
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 100:
-+
-+	BodyContent0 : Paragraph BodyContent2 .  (reduce by rule 28)
-+
-+
-+
-+	.	reduce by rule 28
-+
-+
-+state 101:
-+
-+	BodyContent0 : Paragraph END_P . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 179
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 102:
-+
-+	BodyContent0 : BlockWOIndex BodyContent1 .  (reduce by rule 26)
-+
-+
-+
-+	.	reduce by rule 26
-+
-+
-+state 103:
-+
-+	BodyContent0 : BodyElement BodyContent1 .  (reduce by rule 25)
-+
-+
-+
-+	.	reduce by rule 25
-+
-+
-+state 104:
-+
-+	Body : BodyContent0 EndBODY .  (reduce by rule 19)
-+
-+
-+
-+	.	reduce by rule 19
-+
-+
-+state 105:
-+
-+	EndBODY : END_BODY .  (reduce by rule 21)
-+
-+
-+
-+	.	reduce by rule 21
-+
-+
-+state 106:
-+
-+	Document : StartHTML Head Body EndHTML .  (reduce by rule 0)
-+
-+
-+
-+	.	reduce by rule 0
-+
-+
-+state 107:
-+
-+	EndHTML : END_HTML .  (reduce by rule 4)
-+
-+
-+
-+	.	reduce by rule 4
-+
-+
-+state 108:
-+
-+	TextList' : Text . TextList' 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList'	goto 180
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 109:
-+
-+	TextList : TextList' .  (reduce by rule 105)
-+
-+
-+
-+	.	reduce by rule 105
-+
-+
-+state 110:
-+
-+	Phrase : START_VAR TextList . END_VAR 
-+
-+	END_VAR	shift 181
-+
-+
-+	.	error
-+
-+
-+state 111:
-+
-+	ListItemList : ListItem . ListItemList 
-+
-+	START_LI	shift 113
-+
-+	ListItemList	goto 182
-+	ListItem	goto 111
-+
-+	.	reduce by rule 70
-+
-+
-+state 112:
-+
-+	List : START_UL ListItemList . END_UL 
-+
-+	END_UL	shift 183
-+
-+
-+	.	error
-+
-+
-+state 113:
-+
-+	ListItem : START_LI . Flow1 EndLI 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 187
-+	Paragraph	goto 186
-+	List	goto 22
-+	Flow1	goto 185
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 184
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 77
-+
-+
-+state 114:
-+
-+	Font : START_U TextList . END_U 
-+
-+	END_U	shift 188
-+
-+
-+	.	error
-+
-+
-+state 115:
-+
-+	Font : START_TT TextList . END_TT 
-+
-+	END_TT	shift 189
-+
-+
-+	.	error
-+
-+
-+state 116:
-+
-+	Form : START_TEXTAREA PCData . END_TEXTAREA 
-+
-+	END_TEXTAREA	shift 190
-+
-+
-+	.	error
-+
-+
-+state 117:
-+
-+	BlockWOIndex : START_TABLE optCaption . TableRowList END_TABLE 
-+
-+	START_TR	shift 193
-+
-+	TableRowList	goto 192
-+	TableRow	goto 191
-+
-+	.	error
-+
-+
-+state 118:
-+
-+	optCaption : START_CAPTION . TextList END_CAPTION 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 194
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 119:
-+
-+	Font : START_SUP TextList . END_SUP 
-+
-+	END_SUP	shift 195
-+
-+
-+	.	error
-+
-+
-+state 120:
-+
-+	Font : START_SUB TextList . END_SUB 
-+
-+	END_SUB	shift 196
-+
-+
-+	.	error
-+
-+
-+state 121:
-+
-+	Phrase : START_STRONG TextList . END_STRONG 
-+
-+	END_STRONG	shift 197
-+
-+
-+	.	error
-+
-+
-+state 122:
-+
-+	Font : START_STRIKE TextList . END_STRIKE 
-+
-+	END_STRIKE	shift 198
-+
-+
-+	.	error
-+
-+
-+state 123:
-+
-+	Font : START_SMALL TextList . END_SMALL 
-+
-+	END_SMALL	shift 199
-+
-+
-+	.	error
-+
-+
-+state 124:
-+
-+	Form : START_SELECT OptionList . END_SELECT 
-+
-+	END_SELECT	shift 200
-+
-+
-+	.	error
-+
-+
-+state 125:
-+
-+	OptionList : START_OPTION . PCData EndOPTION OptionList 
-+
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	PCData	goto 201
-+	PCDataList	goto 85
-+	PCDataElem	goto 84
-+
-+	.	reduce by rule 150
-+
-+
-+state 126:
-+
-+	Phrase : START_SAMP TextList . END_SAMP 
-+
-+	END_SAMP	shift 202
-+
-+
-+	.	error
-+
-+
-+state 127:
-+
-+	Preformatted : START_PRE TextList . END_PRE 
-+
-+	END_PRE	shift 203
-+
-+
-+	.	error
-+
-+
-+state 128:
-+
-+	Paragraph : START_P TextList .  (reduce by rule 64)
-+
-+
-+
-+	.	reduce by rule 64
-+
-+
-+state 129:
-+
-+	List : START_OL ListItemList . END_OL 
-+
-+	END_OL	shift 204
-+
-+
-+	.	error
-+
-+
-+state 130:
-+
-+	List : START_MENU ListItemList . END_MENU 
-+
-+	END_MENU	shift 205
-+
-+
-+	.	error
-+
-+
-+state 131:
-+
-+	Special : START_MAP AreaList . END_MAP 
-+
-+	END_MAP	shift 206
-+
-+
-+	.	error
-+
-+
-+state 132:
-+
-+	AreaList : TAG_AREA . AreaList 
-+
-+	TAG_AREA	shift 132
-+
-+	AreaList	goto 207
-+
-+	.	reduce by rule 140
-+
-+
-+state 133:
-+
-+	Phrase : START_KBD TextList . END_KBD 
-+
-+	END_KBD	shift 208
-+
-+
-+	.	error
-+
-+
-+state 134:
-+
-+	Font : START_I TextList . END_I 
-+
-+	END_I	shift 209
-+
-+
-+	.	error
-+
-+
-+state 135:
-+
-+	BodyElement : START_H6 TextList . END_H6 
-+
-+	END_H6	shift 210
-+
-+
-+	.	error
-+
-+
-+state 136:
-+
-+	BodyElement : START_H5 TextList . END_H5 
-+
-+	END_H5	shift 211
-+
-+
-+	.	error
-+
-+
-+state 137:
-+
-+	BodyElement : START_H4 TextList . END_H4 
-+
-+	END_H4	shift 212
-+
-+
-+	.	error
-+
-+
-+state 138:
-+
-+	BodyElement : START_H3 TextList . END_H3 
-+
-+	END_H3	shift 213
-+
-+
-+	.	error
-+
-+
-+state 139:
-+
-+	BodyElement : START_H2 TextList . END_H2 
-+
-+	END_H2	shift 214
-+
-+
-+	.	error
-+
-+
-+state 140:
-+
-+	BodyElement : START_H1 TextList . END_H1 
-+
-+	END_H1	shift 215
-+
-+
-+	.	error
-+
-+
-+state 141:
-+
-+	BodyContent : BodyContent1 .  (reduce by rule 22)
-+
-+
-+
-+	.	reduce by rule 22
-+
-+
-+state 142:
-+
-+	BlockWOIndex : START_FORM BodyContent . END_FORM 
-+
-+	END_FORM	shift 216
-+
-+
-+	.	error
-+
-+
-+state 143:
-+
-+	Special : START_BASEFONT TextList . END_BASEFONT 
-+
-+	END_BASEFONT	shift 217
-+
-+
-+	.	error
-+
-+
-+state 144:
-+
-+	Special : START_FONT TextList . END_FONT 
-+
-+	END_FONT	shift 218
-+
-+
-+	.	error
-+
-+
-+state 145:
-+
-+	Phrase : START_EM TextList . END_EM 
-+
-+	END_EM	shift 219
-+
-+
-+	.	error
-+
-+
-+state 146:
-+
-+	DLItemList : DLItem . DLItemList 
-+
-+	START_DD	shift 149
-+	START_DT	shift 148
-+
-+	DLItemList	goto 220
-+	DLItem	goto 146
-+
-+	.	reduce by rule 73
-+
-+
-+state 147:
-+
-+	List : START_DL DLItemList . END_DL 
-+
-+	END_DL	shift 221
-+
-+
-+	.	error
-+
-+
-+state 148:
-+
-+	DLItem : START_DT . TextList EndDT 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	TextList	goto 222
-+	TextList'	goto 109
-+	TextWOScript	goto 89
-+	Text	goto 108
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 106
-+
-+
-+state 149:
-+
-+	DLItem : START_DD . Flow1 EndDD 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 187
-+	Paragraph	goto 186
-+	List	goto 22
-+	Flow1	goto 223
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 184
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 77
-+
-+
-+state 150:
-+
-+	BlockWOIndex : START_DIV BodyContent . END_DIV 
-+
-+	END_DIV	shift 224
-+
-+
-+	.	error
-+
-+
-+state 151:
-+
-+	List : START_DIR ListItemList . END_DIR 
-+
-+	END_DIR	shift 225
-+
-+
-+	.	error
-+
-+
-+state 152:
-+
-+	Phrase : START_DFN TextList . END_DFN 
-+
-+	END_DFN	shift 226
-+
-+
-+	.	error
-+
-+
-+state 153:
-+
-+	Phrase : START_CODE TextList . END_CODE 
-+
-+	END_CODE	shift 227
-+
-+
-+	.	error
-+
-+
-+state 154:
-+
-+	Phrase : START_CITE TextList . END_CITE 
-+
-+	END_CITE	shift 228
-+
-+
-+	.	error
-+
-+
-+state 155:
-+
-+	BlockWOIndex : START_CENTER BodyContent . END_CENTER 
-+
-+	END_CENTER	shift 229
-+
-+
-+	.	error
-+
-+
-+state 156:
-+
-+	BodyContent0 : START_BODY BodyContent .  (reduce by rule 23)
-+
-+
-+
-+	.	reduce by rule 23
-+
-+
-+state 157:
-+
-+	BlockWOIndex : START_BLOCKQUOTE BodyContent . END_BLOCKQUOTE 
-+
-+	END_BLOCKQUOTE	shift 230
-+
-+
-+	.	error
-+
-+
-+state 158:
-+
-+	Font : START_BIG TextList . END_BIG 
-+
-+	END_BIG	shift 231
-+
-+
-+	.	error
-+
-+
-+state 159:
-+
-+	Font : START_B TextList . END_B 
-+
-+	END_B	shift 232
-+
-+
-+	.	error
-+
-+
-+state 160:
-+
-+	Special : START_APPLET TextList . END_APPLET 
-+
-+	END_APPLET	shift 233
-+
-+
-+	.	error
-+
-+
-+state 161:
-+
-+	AddressContent1 : Text . AddressContent1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	AddressContent1	goto 234
-+	Paragraph	goto 162
-+	TextWOScript	goto 89
-+	Text	goto 161
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 47
-+
-+
-+state 162:
-+
-+	AddressContent1 : Paragraph . END_P AddressContent1 
-+	AddressContent1 : Paragraph . AddressContent2 
-+
-+	START_P	shift 46
-+	END_P	shift 237
-+
-+	AddressContent2	goto 236
-+	Paragraph	goto 235
-+
-+	.	reduce by rule 51
-+
-+
-+state 163:
-+
-+	BodyElement : START_ADDRESS AddressContent1 . END_ADDRESS 
-+
-+	END_ADDRESS	shift 238
-+
-+
-+	.	error
-+
-+
-+state 164:
-+
-+	Special : START_A TextList . END_A 
-+
-+	END_A	shift 239
-+
-+
-+	.	error
-+
-+
-+state 165:
-+
-+	HeadContents : HeadElements START_TITLE PCData . END_TITLE HeadElements 
-+
-+	END_TITLE	shift 240
-+
-+
-+	.	error
-+
-+
-+state 166:
-+
-+	PCDataList : PCDataElem PCDataList .  (reduce by rule 151)
-+
-+
-+
-+	.	reduce by rule 151
-+
-+
-+state 167:
-+
-+	HeadElement : START_STYLE PCData END_STYLE .  (reduce by rule 17)
-+
-+
-+
-+	.	reduce by rule 17
-+
-+
-+state 168:
-+
-+	HeadElement : START_SCRIPT PCData END_SCRIPT .  (reduce by rule 18)
-+
-+
-+
-+	.	reduce by rule 18
-+
-+
-+state 169:
-+
-+	BodyContent1 : Text BodyContent1 .  (reduce by rule 30)
-+
-+
-+
-+	.	reduce by rule 30
-+
-+
-+state 170:
-+
-+	BodyContent1 : Paragraph BodyContent2 .  (reduce by rule 34)
-+
-+
-+
-+	.	reduce by rule 34
-+
-+
-+state 171:
-+
-+	BodyContent1 : Paragraph END_P . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 241
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 172:
-+
-+	BodyContent1 : Block BodyContent1 .  (reduce by rule 32)
-+
-+
-+
-+	.	reduce by rule 32
-+
-+
-+state 173:
-+
-+	BodyContent1 : BodyElement BodyContent1 .  (reduce by rule 31)
-+
-+
-+
-+	.	reduce by rule 31
-+
-+
-+state 174:
-+
-+	Text : START_SCRIPT PCData . END_SCRIPT 
-+
-+	END_SCRIPT	shift 242
-+
-+
-+	.	error
-+
-+
-+state 175:
-+
-+	BodyContent2 : Paragraph BodyContent2 .  (reduce by rule 39)
-+
-+
-+
-+	.	reduce by rule 39
-+
-+
-+state 176:
-+
-+	BodyContent2 : Paragraph END_P . BodyContent1 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent1	goto 243
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 177:
-+
-+	BodyContent2 : Block BodyContent1 .  (reduce by rule 37)
-+
-+
-+
-+	.	reduce by rule 37
-+
-+
-+state 178:
-+
-+	BodyContent2 : BodyElement BodyContent1 .  (reduce by rule 36)
-+
-+
-+
-+	.	reduce by rule 36
-+
-+
-+state 179:
-+
-+	BodyContent0 : Paragraph END_P BodyContent1 .  (reduce by rule 27)
-+
-+
-+
-+	.	reduce by rule 27
-+
-+
-+state 180:
-+
-+	TextList' : Text TextList' .  (reduce by rule 107)
-+
-+
-+
-+	.	reduce by rule 107
-+
-+
-+state 181:
-+
-+	Phrase : START_VAR TextList END_VAR .  (reduce by rule 130)
-+
-+
-+
-+	.	reduce by rule 130
-+
-+
-+state 182:
-+
-+	ListItemList : ListItem ListItemList .  (reduce by rule 71)
-+
-+
-+
-+	.	reduce by rule 71
-+
-+
-+state 183:
-+
-+	List : START_UL ListItemList END_UL .  (reduce by rule 65)
-+
-+
-+
-+	.	reduce by rule 65
-+
-+
-+state 184:
-+
-+	Flow1 : Text . Flow1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 187
-+	Paragraph	goto 186
-+	List	goto 22
-+	Flow1	goto 244
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 184
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 77
-+
-+
-+state 185:
-+
-+	ListItem : START_LI Flow1 . EndLI 
-+
-+	END_LI	shift 246
-+
-+	EndLI	goto 245
-+
-+	.	reduce by rule 86
-+
-+
-+state 186:
-+
-+	Flow1 : Paragraph . END_P Flow1 
-+	Flow1 : Paragraph . Flow2 
-+
-+	START_BLOCKQUOTE	shift 74
-+	START_CENTER	shift 71
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	TAG_ISINDEX	shift 96
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	END_P	shift 250
-+	START_PRE	shift 44
-+	START_TABLE	shift 36
-+	START_UL	shift 32
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 249
-+	Paragraph	goto 248
-+	List	goto 22
-+	Flow2	goto 247
-+	Preformatted	goto 21
-+
-+	.	reduce by rule 82
-+
-+
-+state 187:
-+
-+	Flow1 : Block . Flow1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 187
-+	Paragraph	goto 186
-+	List	goto 22
-+	Flow1	goto 251
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 184
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 77
-+
-+
-+state 188:
-+
-+	Font : START_U TextList END_U .  (reduce by rule 118)
-+
-+
-+
-+	.	reduce by rule 118
-+
-+
-+state 189:
-+
-+	Font : START_TT TextList END_TT .  (reduce by rule 115)
-+
-+
-+
-+	.	reduce by rule 115
-+
-+
-+state 190:
-+
-+	Form : START_TEXTAREA PCData END_TEXTAREA .  (reduce by rule 144)
-+
-+
-+
-+	.	reduce by rule 144
-+
-+
-+state 191:
-+
-+	TableRowList : TableRow .  (reduce by rule 95)
-+	TableRowList : TableRow . TableRowList 
-+
-+	START_TR	shift 193
-+
-+	TableRowList	goto 252
-+	TableRow	goto 191
-+
-+	.	reduce by rule 95
-+
-+
-+state 192:
-+
-+	BlockWOIndex : START_TABLE optCaption TableRowList . END_TABLE 
-+
-+	END_TABLE	shift 253
-+
-+
-+	.	error
-+
-+
-+state 193:
-+
-+	TableRow : START_TR . TableCellList 
-+	TableRow : START_TR . TableCellList END_TR 
-+
-+	START_TD	shift 257
-+	START_TH	shift 256
-+
-+	TableCellList	goto 255
-+	TableCell	goto 254
-+
-+	.	error
-+
-+
-+state 194:
-+
-+	optCaption : START_CAPTION TextList . END_CAPTION 
-+
-+	END_CAPTION	shift 258
-+
-+
-+	.	error
-+
-+
-+state 195:
-+
-+	Font : START_SUP TextList END_SUP .  (reduce by rule 123)
-+
-+
-+
-+	.	reduce by rule 123
-+
-+
-+state 196:
-+
-+	Font : START_SUB TextList END_SUB .  (reduce by rule 122)
-+
-+
-+
-+	.	reduce by rule 122
-+
-+
-+state 197:
-+
-+	Phrase : START_STRONG TextList END_STRONG .  (reduce by rule 125)
-+
-+
-+
-+	.	reduce by rule 125
-+
-+
-+state 198:
-+
-+	Font : START_STRIKE TextList END_STRIKE .  (reduce by rule 119)
-+
-+
-+
-+	.	reduce by rule 119
-+
-+
-+state 199:
-+
-+	Font : START_SMALL TextList END_SMALL .  (reduce by rule 121)
-+
-+
-+
-+	.	reduce by rule 121
-+
-+
-+state 200:
-+
-+	Form : START_SELECT OptionList END_SELECT .  (reduce by rule 143)
-+
-+
-+
-+	.	reduce by rule 143
-+
-+
-+state 201:
-+
-+	OptionList : START_OPTION PCData . EndOPTION OptionList 
-+
-+	END_OPTION	shift 260
-+
-+	EndOPTION	goto 259
-+
-+	.	reduce by rule 147
-+
-+
-+state 202:
-+
-+	Phrase : START_SAMP TextList END_SAMP .  (reduce by rule 128)
-+
-+
-+
-+	.	reduce by rule 128
-+
-+
-+state 203:
-+
-+	Preformatted : START_PRE TextList END_PRE .  (reduce by rule 92)
-+
-+
-+
-+	.	reduce by rule 92
-+
-+
-+state 204:
-+
-+	List : START_OL ListItemList END_OL .  (reduce by rule 66)
-+
-+
-+
-+	.	reduce by rule 66
-+
-+
-+state 205:
-+
-+	List : START_MENU ListItemList END_MENU .  (reduce by rule 68)
-+
-+
-+
-+	.	reduce by rule 68
-+
-+
-+state 206:
-+
-+	Special : START_MAP AreaList END_MAP .  (reduce by rule 138)
-+
-+
-+
-+	.	reduce by rule 138
-+
-+
-+state 207:
-+
-+	AreaList : TAG_AREA AreaList .  (reduce by rule 141)
-+
-+
-+
-+	.	reduce by rule 141
-+
-+
-+state 208:
-+
-+	Phrase : START_KBD TextList END_KBD .  (reduce by rule 129)
-+
-+
-+
-+	.	reduce by rule 129
-+
-+
-+state 209:
-+
-+	Font : START_I TextList END_I .  (reduce by rule 116)
-+
-+
-+
-+	.	reduce by rule 116
-+
-+
-+state 210:
-+
-+	BodyElement : START_H6 TextList END_H6 .  (reduce by rule 45)
-+
-+
-+
-+	.	reduce by rule 45
-+
-+
-+state 211:
-+
-+	BodyElement : START_H5 TextList END_H5 .  (reduce by rule 44)
-+
-+
-+
-+	.	reduce by rule 44
-+
-+
-+state 212:
-+
-+	BodyElement : START_H4 TextList END_H4 .  (reduce by rule 43)
-+
-+
-+
-+	.	reduce by rule 43
-+
-+
-+state 213:
-+
-+	BodyElement : START_H3 TextList END_H3 .  (reduce by rule 42)
-+
-+
-+
-+	.	reduce by rule 42
-+
-+
-+state 214:
-+
-+	BodyElement : START_H2 TextList END_H2 .  (reduce by rule 41)
-+
-+
-+
-+	.	reduce by rule 41
-+
-+
-+state 215:
-+
-+	BodyElement : START_H1 TextList END_H1 .  (reduce by rule 40)
-+
-+
-+
-+	.	reduce by rule 40
-+
-+
-+state 216:
-+
-+	BlockWOIndex : START_FORM BodyContent END_FORM .  (reduce by rule 59)
-+
-+
-+
-+	.	reduce by rule 59
-+
-+
-+state 217:
-+
-+	Special : START_BASEFONT TextList END_BASEFONT .  (reduce by rule 136)
-+
-+
-+
-+	.	reduce by rule 136
-+
-+
-+state 218:
-+
-+	Special : START_FONT TextList END_FONT .  (reduce by rule 135)
-+
-+
-+
-+	.	reduce by rule 135
-+
-+
-+state 219:
-+
-+	Phrase : START_EM TextList END_EM .  (reduce by rule 124)
-+
-+
-+
-+	.	reduce by rule 124
-+
-+
-+state 220:
-+
-+	DLItemList : DLItem DLItemList .  (reduce by rule 74)
-+
-+
-+
-+	.	reduce by rule 74
-+
-+
-+state 221:
-+
-+	List : START_DL DLItemList END_DL .  (reduce by rule 69)
-+
-+
-+
-+	.	reduce by rule 69
-+
-+
-+state 222:
-+
-+	DLItem : START_DT TextList . EndDT 
-+
-+	END_DT	shift 262
-+
-+	EndDT	goto 261
-+
-+	.	reduce by rule 88
-+
-+
-+state 223:
-+
-+	DLItem : START_DD Flow1 . EndDD 
-+
-+	END_DD	shift 264
-+
-+	EndDD	goto 263
-+
-+	.	reduce by rule 90
-+
-+
-+state 224:
-+
-+	BlockWOIndex : START_DIV BodyContent END_DIV .  (reduce by rule 56)
-+
-+
-+
-+	.	reduce by rule 56
-+
-+
-+state 225:
-+
-+	List : START_DIR ListItemList END_DIR .  (reduce by rule 67)
-+
-+
-+
-+	.	reduce by rule 67
-+
-+
-+state 226:
-+
-+	Phrase : START_DFN TextList END_DFN .  (reduce by rule 127)
-+
-+
-+
-+	.	reduce by rule 127
-+
-+
-+state 227:
-+
-+	Phrase : START_CODE TextList END_CODE .  (reduce by rule 126)
-+
-+
-+
-+	.	reduce by rule 126
-+
-+
-+state 228:
-+
-+	Phrase : START_CITE TextList END_CITE .  (reduce by rule 131)
-+
-+
-+
-+	.	reduce by rule 131
-+
-+
-+state 229:
-+
-+	BlockWOIndex : START_CENTER BodyContent END_CENTER .  (reduce by rule 57)
-+
-+
-+
-+	.	reduce by rule 57
-+
-+
-+state 230:
-+
-+	BlockWOIndex : START_BLOCKQUOTE BodyContent END_BLOCKQUOTE .  (reduce by rule 58)
-+
-+
-+
-+	.	reduce by rule 58
-+
-+
-+state 231:
-+
-+	Font : START_BIG TextList END_BIG .  (reduce by rule 120)
-+
-+
-+
-+	.	reduce by rule 120
-+
-+
-+state 232:
-+
-+	Font : START_B TextList END_B .  (reduce by rule 117)
-+
-+
-+
-+	.	reduce by rule 117
-+
-+
-+state 233:
-+
-+	Special : START_APPLET TextList END_APPLET .  (reduce by rule 134)
-+
-+
-+
-+	.	reduce by rule 134
-+
-+
-+state 234:
-+
-+	AddressContent1 : Text AddressContent1 .  (reduce by rule 48)
-+
-+
-+
-+	.	reduce by rule 48
-+
-+
-+state 235:
-+
-+	AddressContent2 : Paragraph . END_P AddressContent1 
-+	AddressContent2 : Paragraph . AddressContent2 
-+
-+	START_P	shift 46
-+	END_P	shift 266
-+
-+	AddressContent2	goto 265
-+	Paragraph	goto 235
-+
-+	.	reduce by rule 51
-+
-+
-+state 236:
-+
-+	AddressContent1 : Paragraph AddressContent2 .  (reduce by rule 50)
-+
-+
-+
-+	.	reduce by rule 50
-+
-+
-+state 237:
-+
-+	AddressContent1 : Paragraph END_P . AddressContent1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	AddressContent1	goto 267
-+	Paragraph	goto 162
-+	TextWOScript	goto 89
-+	Text	goto 161
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 47
-+
-+
-+state 238:
-+
-+	BodyElement : START_ADDRESS AddressContent1 END_ADDRESS .  (reduce by rule 46)
-+
-+
-+
-+	.	reduce by rule 46
-+
-+
-+state 239:
-+
-+	Special : START_A TextList END_A .  (reduce by rule 132)
-+
-+
-+
-+	.	reduce by rule 132
-+
-+
-+state 240:
-+
-+	HeadContents : HeadElements START_TITLE PCData END_TITLE . HeadElements 
-+
-+	TAG_BASE	shift 14
-+	TAG_ISINDEX	shift 13
-+	TAG_LINK	shift 12
-+	TAG_META	shift 11
-+	START_SCRIPT	shift 10
-+	START_STYLE	shift 9
-+
-+	HeadElements	goto 268
-+	HeadElement	goto 6
-+
-+	.	reduce by rule 11
-+
-+
-+state 241:
-+
-+	BodyContent1 : Paragraph END_P BodyContent1 .  (reduce by rule 33)
-+
-+
-+
-+	.	reduce by rule 33
-+
-+
-+state 242:
-+
-+	Text : START_SCRIPT PCData END_SCRIPT .  (reduce by rule 114)
-+
-+
-+
-+	.	reduce by rule 114
-+
-+
-+state 243:
-+
-+	BodyContent2 : Paragraph END_P BodyContent1 .  (reduce by rule 38)
-+
-+
-+
-+	.	reduce by rule 38
-+
-+
-+state 244:
-+
-+	Flow1 : Text Flow1 .  (reduce by rule 78)
-+
-+
-+
-+	.	reduce by rule 78
-+
-+
-+state 245:
-+
-+	ListItem : START_LI Flow1 EndLI .  (reduce by rule 72)
-+
-+
-+
-+	.	reduce by rule 72
-+
-+
-+state 246:
-+
-+	EndLI : END_LI .  (reduce by rule 87)
-+
-+
-+
-+	.	reduce by rule 87
-+
-+
-+state 247:
-+
-+	Flow1 : Paragraph Flow2 .  (reduce by rule 81)
-+
-+
-+
-+	.	reduce by rule 81
-+
-+
-+state 248:
-+
-+	Flow2 : Paragraph . END_P Flow1 
-+	Flow2 : Paragraph . Flow2 
-+
-+	START_BLOCKQUOTE	shift 74
-+	START_CENTER	shift 71
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	TAG_ISINDEX	shift 96
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	END_P	shift 270
-+	START_PRE	shift 44
-+	START_TABLE	shift 36
-+	START_UL	shift 32
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 249
-+	Paragraph	goto 248
-+	List	goto 22
-+	Flow2	goto 269
-+	Preformatted	goto 21
-+
-+	.	reduce by rule 82
-+
-+
-+state 249:
-+
-+	Flow2 : Block . Flow1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 187
-+	Paragraph	goto 186
-+	List	goto 22
-+	Flow1	goto 271
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 184
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 77
-+
-+
-+state 250:
-+
-+	Flow1 : Paragraph END_P . Flow1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 187
-+	Paragraph	goto 186
-+	List	goto 22
-+	Flow1	goto 272
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 184
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 77
-+
-+
-+state 251:
-+
-+	Flow1 : Block Flow1 .  (reduce by rule 79)
-+
-+
-+
-+	.	reduce by rule 79
-+
-+
-+state 252:
-+
-+	TableRowList : TableRow TableRowList .  (reduce by rule 96)
-+
-+
-+
-+	.	reduce by rule 96
-+
-+
-+state 253:
-+
-+	BlockWOIndex : START_TABLE optCaption TableRowList END_TABLE .  (reduce by rule 61)
-+
-+
-+
-+	.	reduce by rule 61
-+
-+
-+state 254:
-+
-+	TableCellList : TableCell .  (reduce by rule 99)
-+	TableCellList : TableCell . TableCellList 
-+
-+	START_TD	shift 257
-+	START_TH	shift 256
-+
-+	TableCellList	goto 273
-+	TableCell	goto 254
-+
-+	.	reduce by rule 99
-+
-+
-+state 255:
-+
-+	TableRow : START_TR TableCellList .  (reduce by rule 97)
-+	TableRow : START_TR TableCellList . END_TR 
-+
-+	END_TR	shift 274
-+
-+
-+	.	reduce by rule 97
-+
-+
-+state 256:
-+
-+	TableCell : START_TH . BodyContent END_TH 
-+	TableCell : START_TH . BodyContent 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent	goto 275
-+	BodyContent1	goto 141
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 257:
-+
-+	TableCell : START_TD . BodyContent END_TD 
-+	TableCell : START_TD . BodyContent 
-+
-+	START_A	shift 79
-+	START_ADDRESS	shift 78
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	START_H1	shift 60
-+	START_H2	shift 59
-+	START_H3	shift 58
-+	START_H4	shift 57
-+	START_H5	shift 56
-+	START_H6	shift 55
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BodyContent	goto 276
-+	BodyContent1	goto 141
-+	BodyElement	goto 93
-+	BlockWOIndex	goto 92
-+	Block	goto 91
-+	Paragraph	goto 90
-+	List	goto 22
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 88
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 29
-+
-+
-+state 258:
-+
-+	optCaption : START_CAPTION TextList END_CAPTION .  (reduce by rule 94)
-+
-+
-+
-+	.	reduce by rule 94
-+
-+
-+state 259:
-+
-+	OptionList : START_OPTION PCData EndOPTION . OptionList 
-+
-+	START_OPTION	shift 125
-+
-+	OptionList	goto 277
-+
-+	.	reduce by rule 145
-+
-+
-+state 260:
-+
-+	EndOPTION : END_OPTION .  (reduce by rule 148)
-+
-+
-+
-+	.	reduce by rule 148
-+
-+
-+state 261:
-+
-+	DLItem : START_DT TextList EndDT .  (reduce by rule 75)
-+
-+
-+
-+	.	reduce by rule 75
-+
-+
-+state 262:
-+
-+	EndDT : END_DT .  (reduce by rule 89)
-+
-+
-+
-+	.	reduce by rule 89
-+
-+
-+state 263:
-+
-+	DLItem : START_DD Flow1 EndDD .  (reduce by rule 76)
-+
-+
-+
-+	.	reduce by rule 76
-+
-+
-+state 264:
-+
-+	EndDD : END_DD .  (reduce by rule 91)
-+
-+
-+
-+	.	reduce by rule 91
-+
-+
-+state 265:
-+
-+	AddressContent2 : Paragraph AddressContent2 .  (reduce by rule 53)
-+
-+
-+
-+	.	reduce by rule 53
-+
-+
-+state 266:
-+
-+	AddressContent2 : Paragraph END_P . AddressContent1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	TAG_BR	shift 72
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	AddressContent1	goto 278
-+	Paragraph	goto 162
-+	TextWOScript	goto 89
-+	Text	goto 161
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 47
-+
-+
-+state 267:
-+
-+	AddressContent1 : Paragraph END_P AddressContent1 .  (reduce by rule 49)
-+
-+
-+
-+	.	reduce by rule 49
-+
-+
-+state 268:
-+
-+	HeadContents : HeadElements START_TITLE PCData END_TITLE HeadElements .  (reduce by rule 10)
-+
-+
-+
-+	.	reduce by rule 10
-+
-+
-+state 269:
-+
-+	Flow2 : Paragraph Flow2 .  (reduce by rule 85)
-+
-+
-+
-+	.	reduce by rule 85
-+
-+
-+state 270:
-+
-+	Flow2 : Paragraph END_P . Flow1 
-+
-+	START_A	shift 79
-+	START_APPLET	shift 77
-+	START_B	shift 76
-+	START_BIG	shift 75
-+	START_BLOCKQUOTE	shift 74
-+	TAG_BR	shift 72
-+	START_CENTER	shift 71
-+	START_CITE	shift 70
-+	START_CODE	shift 69
-+	START_DFN	shift 68
-+	START_DIR	shift 67
-+	START_DIV	shift 66
-+	START_DL	shift 65
-+	START_EM	shift 64
-+	START_FONT	shift 63
-+	START_BASEFONT	shift 62
-+	START_FORM	shift 61
-+	TAG_HR	shift 54
-+	START_I	shift 53
-+	TAG_IMG	shift 52
-+	TAG_INPUT	shift 51
-+	TAG_ISINDEX	shift 96
-+	START_KBD	shift 50
-+	START_MAP	shift 49
-+	START_MENU	shift 48
-+	START_OL	shift 47
-+	START_P	shift 46
-+	TAG_PARAM	shift 45
-+	START_PRE	shift 44
-+	START_SAMP	shift 43
-+	START_SCRIPT	shift 95
-+	START_SELECT	shift 42
-+	START_SMALL	shift 41
-+	START_STRIKE	shift 40
-+	START_STRONG	shift 39
-+	START_SUB	shift 38
-+	START_SUP	shift 37
-+	START_TABLE	shift 36
-+	START_TEXTAREA	shift 35
-+	START_TT	shift 34
-+	START_U	shift 33
-+	START_UL	shift 32
-+	START_VAR	shift 31
-+	PCDATA	shift 30
-+	CHAR_REF	shift 29
-+	ENTITY_REF	shift 28
-+
-+	BlockWOIndex	goto 92
-+	Block	goto 187
-+	Paragraph	goto 186
-+	List	goto 22
-+	Flow1	goto 279
-+	Preformatted	goto 21
-+	TextWOScript	goto 89
-+	Text	goto 184
-+	Font	goto 19
-+	Phrase	goto 18
-+	Special	goto 17
-+	Form	goto 16
-+	PCDataElem	goto 15
-+
-+	.	reduce by rule 77
-+
-+
-+state 271:
-+
-+	Flow2 : Block Flow1 .  (reduce by rule 83)
-+
-+
-+
-+	.	reduce by rule 83
-+
-+
-+state 272:
-+
-+	Flow1 : Paragraph END_P Flow1 .  (reduce by rule 80)
-+
-+
-+
-+	.	reduce by rule 80
-+
-+
-+state 273:
-+
-+	TableCellList : TableCell TableCellList .  (reduce by rule 100)
-+
-+
-+
-+	.	reduce by rule 100
-+
-+
-+state 274:
-+
-+	TableRow : START_TR TableCellList END_TR .  (reduce by rule 98)
-+
-+
-+
-+	.	reduce by rule 98
-+
-+
-+state 275:
-+
-+	TableCell : START_TH BodyContent . END_TH 
-+	TableCell : START_TH BodyContent .  (reduce by rule 102)
-+
-+	END_TH	shift 280
-+
-+
-+	.	reduce by rule 102
-+
-+
-+state 276:
-+
-+	TableCell : START_TD BodyContent . END_TD 
-+	TableCell : START_TD BodyContent .  (reduce by rule 104)
-+
-+	END_TD	shift 281
-+
-+
-+	.	reduce by rule 104
-+
-+
-+state 277:
-+
-+	OptionList : START_OPTION PCData EndOPTION OptionList .  (reduce by rule 146)
-+
-+
-+
-+	.	reduce by rule 146
-+
-+
-+state 278:
-+
-+	AddressContent2 : Paragraph END_P AddressContent1 .  (reduce by rule 52)
-+
-+
-+
-+	.	reduce by rule 52
-+
-+
-+state 279:
-+
-+	Flow2 : Paragraph END_P Flow1 .  (reduce by rule 84)
-+
-+
-+
-+	.	reduce by rule 84
-+
-+
-+state 280:
-+
-+	TableCell : START_TH BodyContent END_TH .  (reduce by rule 101)
-+
-+
-+
-+	.	reduce by rule 101
-+
-+
-+state 281:
-+
-+	TableCell : START_TD BodyContent END_TD .  (reduce by rule 103)
-+
-+
-+
-+	.	reduce by rule 103
-+
-+
-+state 282:
-+
-+
-+	EOF	accept
-+
-+
-+	.	error
-+
-+398 of 2987 action table entries left after compaction
-+788 goto table entries
-diff -Naur smlnj-lib/HTML/html-gram.sig smlnj-lib-mlton/HTML/html-gram.sig
---- smlnj-lib/HTML/html-gram.sig	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-gram.sig	2005-08-18 12:09:03.000000000 -0400
-@@ -0,0 +1,140 @@
-+signature HTML_TOKENS =
-+sig
-+type ('a,'b) token
-+type svalue
-+val ENTITY_REF: (string) *  'a * 'a -> (svalue,'a) token
-+val CHAR_REF: (string) *  'a * 'a -> (svalue,'a) token
-+val PCDATA: (string) *  'a * 'a -> (svalue,'a) token
-+val END_VAR:  'a * 'a -> (svalue,'a) token
-+val START_VAR:  'a * 'a -> (svalue,'a) token
-+val END_UL:  'a * 'a -> (svalue,'a) token
-+val START_UL: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_U:  'a * 'a -> (svalue,'a) token
-+val START_U:  'a * 'a -> (svalue,'a) token
-+val END_TT:  'a * 'a -> (svalue,'a) token
-+val START_TT:  'a * 'a -> (svalue,'a) token
-+val END_TR:  'a * 'a -> (svalue,'a) token
-+val START_TR: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_TITLE:  'a * 'a -> (svalue,'a) token
-+val START_TITLE:  'a * 'a -> (svalue,'a) token
-+val END_TH:  'a * 'a -> (svalue,'a) token
-+val START_TH: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_TEXTAREA:  'a * 'a -> (svalue,'a) token
-+val START_TEXTAREA: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_TD:  'a * 'a -> (svalue,'a) token
-+val START_TD: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_TABLE:  'a * 'a -> (svalue,'a) token
-+val START_TABLE: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_SUP:  'a * 'a -> (svalue,'a) token
-+val START_SUP:  'a * 'a -> (svalue,'a) token
-+val END_SUB:  'a * 'a -> (svalue,'a) token
-+val START_SUB:  'a * 'a -> (svalue,'a) token
-+val END_STYLE:  'a * 'a -> (svalue,'a) token
-+val START_STYLE:  'a * 'a -> (svalue,'a) token
-+val END_STRONG:  'a * 'a -> (svalue,'a) token
-+val START_STRONG:  'a * 'a -> (svalue,'a) token
-+val END_STRIKE:  'a * 'a -> (svalue,'a) token
-+val START_STRIKE:  'a * 'a -> (svalue,'a) token
-+val END_SMALL:  'a * 'a -> (svalue,'a) token
-+val START_SMALL:  'a * 'a -> (svalue,'a) token
-+val END_SELECT:  'a * 'a -> (svalue,'a) token
-+val START_SELECT: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_SCRIPT:  'a * 'a -> (svalue,'a) token
-+val START_SCRIPT:  'a * 'a -> (svalue,'a) token
-+val END_SAMP:  'a * 'a -> (svalue,'a) token
-+val START_SAMP:  'a * 'a -> (svalue,'a) token
-+val END_PRE:  'a * 'a -> (svalue,'a) token
-+val START_PRE: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val TAG_PARAM: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_P:  'a * 'a -> (svalue,'a) token
-+val START_P: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_OPTION:  'a * 'a -> (svalue,'a) token
-+val START_OPTION: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_OL:  'a * 'a -> (svalue,'a) token
-+val START_OL: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val TAG_META: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_MENU:  'a * 'a -> (svalue,'a) token
-+val START_MENU: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_MAP:  'a * 'a -> (svalue,'a) token
-+val START_MAP: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val TAG_LINK: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_LI:  'a * 'a -> (svalue,'a) token
-+val START_LI: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_KBD:  'a * 'a -> (svalue,'a) token
-+val START_KBD:  'a * 'a -> (svalue,'a) token
-+val TAG_ISINDEX: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val TAG_INPUT: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val TAG_IMG: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_I:  'a * 'a -> (svalue,'a) token
-+val START_I:  'a * 'a -> (svalue,'a) token
-+val END_HTML:  'a * 'a -> (svalue,'a) token
-+val START_HTML:  'a * 'a -> (svalue,'a) token
-+val TAG_HR: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_HEAD:  'a * 'a -> (svalue,'a) token
-+val START_HEAD:  'a * 'a -> (svalue,'a) token
-+val END_H6:  'a * 'a -> (svalue,'a) token
-+val START_H6: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_H5:  'a * 'a -> (svalue,'a) token
-+val START_H5: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_H4:  'a * 'a -> (svalue,'a) token
-+val START_H4: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_H3:  'a * 'a -> (svalue,'a) token
-+val START_H3: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_H2:  'a * 'a -> (svalue,'a) token
-+val START_H2: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_H1:  'a * 'a -> (svalue,'a) token
-+val START_H1: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_FORM:  'a * 'a -> (svalue,'a) token
-+val START_FORM: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_BASEFONT:  'a * 'a -> (svalue,'a) token
-+val START_BASEFONT: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_FONT:  'a * 'a -> (svalue,'a) token
-+val START_FONT: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_EM:  'a * 'a -> (svalue,'a) token
-+val START_EM:  'a * 'a -> (svalue,'a) token
-+val END_DT:  'a * 'a -> (svalue,'a) token
-+val START_DT:  'a * 'a -> (svalue,'a) token
-+val END_DL:  'a * 'a -> (svalue,'a) token
-+val START_DL: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_DIV:  'a * 'a -> (svalue,'a) token
-+val START_DIV: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_DIR:  'a * 'a -> (svalue,'a) token
-+val START_DIR: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_DFN:  'a * 'a -> (svalue,'a) token
-+val START_DFN:  'a * 'a -> (svalue,'a) token
-+val END_DD:  'a * 'a -> (svalue,'a) token
-+val START_DD:  'a * 'a -> (svalue,'a) token
-+val END_CODE:  'a * 'a -> (svalue,'a) token
-+val START_CODE:  'a * 'a -> (svalue,'a) token
-+val END_CITE:  'a * 'a -> (svalue,'a) token
-+val START_CITE:  'a * 'a -> (svalue,'a) token
-+val END_CENTER:  'a * 'a -> (svalue,'a) token
-+val START_CENTER:  'a * 'a -> (svalue,'a) token
-+val END_CAPTION:  'a * 'a -> (svalue,'a) token
-+val START_CAPTION: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val TAG_BR: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_BODY:  'a * 'a -> (svalue,'a) token
-+val START_BODY: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_BLOCKQUOTE:  'a * 'a -> (svalue,'a) token
-+val START_BLOCKQUOTE:  'a * 'a -> (svalue,'a) token
-+val END_BIG:  'a * 'a -> (svalue,'a) token
-+val START_BIG:  'a * 'a -> (svalue,'a) token
-+val TAG_BASE: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_B:  'a * 'a -> (svalue,'a) token
-+val START_B:  'a * 'a -> (svalue,'a) token
-+val TAG_AREA: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_APPLET:  'a * 'a -> (svalue,'a) token
-+val START_APPLET: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val END_ADDRESS:  'a * 'a -> (svalue,'a) token
-+val START_ADDRESS:  'a * 'a -> (svalue,'a) token
-+val END_A:  'a * 'a -> (svalue,'a) token
-+val START_A: (HTMLAttrVals.attrs) *  'a * 'a -> (svalue,'a) token
-+val EOF:  'a * 'a -> (svalue,'a) token
-+end
-+signature HTML_LRVALS=
-+sig
-+structure Tokens : HTML_TOKENS
-+structure ParserData:PARSER_DATA
-+sharing type ParserData.Token.token = Tokens.token
-+sharing type ParserData.svalue = Tokens.svalue
-+end
-diff -Naur smlnj-lib/HTML/html-gram.sml smlnj-lib-mlton/HTML/html-gram.sml
---- smlnj-lib/HTML/html-gram.sml	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-gram.sml	2005-08-18 12:09:03.000000000 -0400
-@@ -0,0 +1,2478 @@
-+
-+
-+  functor HTMLLrValsFn (
-+    structure Token : TOKEN
-+    structure HTMLAttrs : HTML_ATTRS) = 
-+struct
-+structure ParserData=
-+struct
-+structure Header = 
-+struct
-+(* html-gram
+diff -Naur smlnj-lib/HTML/.#html-elements-fn.sml.1.2 smlnj-lib-mlton/HTML/.#html-elements-fn.sml.1.2
+--- smlnj-lib/HTML/.#html-elements-fn.sml.1.2	1969-12-31 19:00:00.000000000 -0500
++++ smlnj-lib-mlton/HTML/.#html-elements-fn.sml.1.2	2005-08-17 20:13:04.000000000 -0400
+@@ -0,0 +1,250 @@
++(* html-elements-fn.sml
 + *
-+ * COPYRIGHT (c) 1996 AT&T Research.
++ * COPYRIGHT (c) 1996 AT&T REsearch.
 + *
-+ * This grammar parses HTML 3.2.  Note that it does not enforce exclusions
-+ * (for the content of FORM, PRE, etc).  Exclusions should be enforced as
-+ * a second pass over the parse tree.
++ * This module builds element tags for the lexer.
 + *)
 +
-+fun textList [text] = text
-+  | textList l = HTML.TextList l
++functor HTMLElementsFn (
++    structure Tokens : HTML_TOKENS
++    structure Err : HTML_ERROR
++    structure HTMLAttrs : HTML_ATTRS
++  ) : sig
 +
-+fun blockList [blk] = blk
-+  | blockList l = HTML.BlockList l
++    structure T : HTML_TOKENS
 +
-+fun textBlock l = HTML.TextBlock(textList l)
-+    
-+(* The elements of a definition list (<DL>) are tags (<DT>) and items (<DD>).
-+ * To avoid shift/reduce problems, we parse them and then group them.
-+ *)
-+datatype deflist_item
-+  = DL_tag of HTML.text
-+  | DL_item of HTML.block
++    type pos = int
 +
-+fun groupDefListContents [] = []
-+  | groupDefListContents (h :: t) = let
-+      fun gdlc (DL_tag tag, []) = ({dt=[tag], dd=HTML.BlockList[]}, [])
-+	| gdlc (DL_tag tag, h :: t) = let
-+	    val ({dt, dd}, r) = gdlc (h, t)
-+	    in
-+	      ({dt = tag :: dt, dd = dd}, r)
-+	    end
-+	| gdlc (DL_item blk, r) = ({dt=[],dd=blk}, groupDefListContents r)
-+      in
-+	op :: (gdlc (h, t))
-+      end
++    val startTag : string option
++	  -> (string * pos * pos) -> (T.svalue, pos) T.token option
++    val endTag : string option
++	  -> (string * pos * pos) -> (T.svalue, pos) T.token option
 +
-+(* A list of Text, paragraphs and blocks requires grouping the Text items and
-+ * making an implicit paragraph.  We cannot directly use TextList because of
-+ * conflicts.
-+ *)
-+datatype blklist_item
-+  = BL_text of HTML.text list
-+  | BL_block of HTML.block list
++  end = struct
 +
-+fun consText (txt, BL_text tl :: r) = BL_text(txt::tl) :: r
-+  | consText (txt, l) = BL_text[txt] :: l
++    structure T = Tokens
++    structure A = HTMLAttrs
 +
-+fun consBlock (blk, BL_block bl :: r) = BL_block(blk::bl) :: r
-+  | consBlock (blk, l) = BL_block[blk] :: l
++    type pos = int
 +
-+fun mkBlock blks = let
-+      fun f (BL_text tl) = textBlock tl
-+	| f (BL_block bl) = blockList bl
-+      in
-+	blockList(List.map f blks)
-+      end
++    datatype start_tag
++      = WAttrs of ((A.attrs * pos * pos) -> (T.svalue, pos) T.token)
++      | WOAttrs of ((pos * pos) -> (T.svalue, pos) T.token) 
++    datatype end_tag
++      = End of ((pos * pos) -> (T.svalue, pos) T.token)
++      | Empty
 +
-+fun mkBody blks = HTML.BODY{
-+	background = NONE,
-+	bgcolor = NONE,
-+	text = NONE,
-+	link = NONE,
-+	vlink = NONE,
-+	alink = NONE,
-+	content = mkBlock blks
-+      }
++    val tokenData = [
++	    ("A",		WAttrs T.START_A,		End T.END_A),
++	    ("ADDRESS",		WOAttrs T.START_ADDRESS,	End T.END_ADDRESS),
++	    ("APPLET",		WAttrs T.START_APPLET,		End T.END_APPLET),
++	    ("AREA",		WAttrs T.TAG_AREA,		Empty),
++	    ("B",		WOAttrs T.START_B,		End T.END_B),
++	    ("BASE",		WAttrs T.TAG_BASE,		Empty),
++	    ("BASEFONT",	WAttrs T.START_BASEFONT,	End T.END_BASEFONT),
++	    ("BIG",		WOAttrs T.START_BIG,		End T.END_BIG),
++	    ("BLOCKQUOTE",	WOAttrs T.START_BLOCKQUOTE,	End T.END_BLOCKQUOTE),
++	    ("BODY",		WAttrs T.START_BODY,		End T.END_BODY),
++	    ("BR",		WAttrs T.TAG_BR,		Empty),
++	    ("CAPTION",		WAttrs T.START_CAPTION,		End T.END_CAPTION),
++	    ("CENTER",		WOAttrs T.START_CENTER,		End T.END_CENTER),
++	    ("CITE",		WOAttrs T.START_CITE,		End T.END_CITE),
++	    ("CODE",		WOAttrs T.START_CODE,		End T.END_CODE),
++	    ("DD",		WOAttrs T.START_DD,		End T.END_DD),
++	    ("DFN",		WOAttrs T.START_DFN,		End T.END_DFN),
++	    ("DIR",		WAttrs T.START_DIR,		End T.END_DIR),
++	    ("DIV",		WAttrs T.START_DIV,		End T.END_DIV),
++	    ("DL",		WAttrs T.START_DL,		End T.END_DL),
++	    ("DT",		WOAttrs T.START_DT,		End T.END_DT),
++	    ("EM",		WOAttrs T.START_EM,		End T.END_EM),
++	    ("FONT",		WAttrs T.START_FONT,		End T.END_FONT),
++	    ("FORM",		WAttrs T.START_FORM,		End T.END_FORM),
++	    ("H1",		WAttrs T.START_H1,		End T.END_H1),
++	    ("H2",		WAttrs T.START_H2,		End T.END_H2),
++	    ("H3",		WAttrs T.START_H3,		End T.END_H3),
++	    ("H4",		WAttrs T.START_H4,		End T.END_H4),
++	    ("H5",		WAttrs T.START_H5,		End T.END_H5),
++	    ("H6",		WAttrs T.START_H6,		End T.END_H6),
++	    ("HEAD",		WOAttrs T.START_HEAD,		End T.END_HEAD),
++	    ("HR",		WAttrs T.TAG_HR,		Empty),
++	    ("HTML",		WOAttrs T.START_HTML,		End T.END_HTML),
++	    ("I",		WOAttrs T.START_I,		End T.END_I),
++	    ("IMG",		WAttrs T.TAG_IMG,		Empty),
++	    ("INPUT",		WAttrs T.TAG_INPUT,		Empty),
++	    ("ISINDEX",		WAttrs T.TAG_ISINDEX,		Empty),
++	    ("KBD",		WOAttrs T.START_KBD,		End T.END_KBD),
++	    ("LI",		WAttrs T.START_LI,		End T.END_LI),
++	    ("LINK",		WAttrs T.TAG_LINK,		Empty),
++	    ("MAP",		WAttrs T.START_MAP,		End T.END_MAP),
++	    ("MENU",		WAttrs T.START_MENU,		End T.END_MENU),
++	    ("META",		WAttrs T.TAG_META,		Empty),
++	    ("OL",		WAttrs T.START_OL,		End T.END_OL),
++	    ("OPTION",		WAttrs T.START_OPTION,		End T.END_OPTION),
++	    ("P",		WAttrs T.START_P,		End T.END_P),
++	    ("PARAM",		WAttrs T.TAG_PARAM,		Empty),
++	    ("PRE",		WAttrs T.START_PRE,		End T.END_PRE),
++	    ("SAMP",		WOAttrs T.START_SAMP,		End T.END_SAMP),
++	    ("SCRIPT",		WOAttrs T.START_SCRIPT,		End T.END_SCRIPT),
++	    ("SELECT",		WAttrs T.START_SELECT,		End T.END_SELECT),
++	    ("SMALL",		WOAttrs T.START_SMALL,		End T.END_SMALL),
++	    ("STRIKE",		WOAttrs T.START_STRIKE,		End T.END_STRIKE),
++	    ("STRONG",		WOAttrs T.START_STRONG,		End T.END_STRONG),
++	    ("STYLE",		WOAttrs T.START_STYLE,		End T.END_STYLE),
++	    ("SUB",		WOAttrs T.START_SUB,		End T.END_SUB),
++	    ("SUP",		WOAttrs T.START_SUP,		End T.END_SUP),
++	    ("TABLE",		WAttrs T.START_TABLE,		End T.END_TABLE),
++	    ("TD",		WAttrs T.START_TD,		End T.END_TD),
++	    ("TEXTAREA",	WAttrs T.START_TEXTAREA,	End T.END_TEXTAREA),
++	    ("TH",		WAttrs T.START_TH,		End T.END_TH),
++	    ("TITLE",		WOAttrs T.START_TITLE,		End T.END_TITLE),
++	    ("TR",		WAttrs T.START_TR,		End T.END_TR),
++	    ("TT",		WOAttrs T.START_TT,		End T.END_TT),
++	    ("U",		WOAttrs T.START_U,		End T.END_U),
++	    ("UL",		WAttrs T.START_UL,		End T.END_UL),
++	    ("VAR",		WOAttrs T.START_VAR,		End T.END_VAR)
++	  ]
 +
++    structure HTbl = HashTableFn (struct
++	type hash_key = string
++	val hashVal = HashString.hashString
++	val sameKey = (op = : (string * string) -> bool)
++      end)
 +
-+end
-+structure LrTable = Token.LrTable
-+structure Token = Token
-+local open LrTable in 
-+val table=let val actionRows =
-+"\
-+\\001\000\001\000\000\000\000\000\
-+\\001\000\002\000\081\000\004\000\080\000\006\000\079\000\009\000\078\000\
-+\\012\000\077\000\014\000\076\000\016\000\075\000\018\000\074\000\
-+\\021\000\073\000\023\000\072\000\025\000\071\000\029\000\070\000\
-+\\031\000\069\000\033\000\068\000\035\000\067\000\039\000\066\000\
-+\\041\000\065\000\043\000\064\000\045\000\063\000\047\000\062\000\
-+\\049\000\061\000\051\000\060\000\053\000\059\000\055\000\058\000\
-+\\057\000\057\000\061\000\056\000\064\000\055\000\066\000\054\000\
-+\\067\000\053\000\069\000\052\000\074\000\051\000\076\000\050\000\
-+\\079\000\049\000\083\000\048\000\085\000\047\000\086\000\046\000\
-+\\088\000\045\000\092\000\044\000\094\000\043\000\096\000\042\000\
-+\\098\000\041\000\102\000\040\000\104\000\039\000\106\000\038\000\
-+\\110\000\037\000\118\000\036\000\120\000\035\000\122\000\034\000\
-+\\124\000\033\000\126\000\032\000\127\000\031\000\128\000\030\000\000\000\
-+\\001\000\003\000\241\000\000\000\
-+\\001\000\005\000\240\000\000\000\
-+\\001\000\007\000\235\000\000\000\
-+\\001\000\010\000\234\000\000\000\
-+\\001\000\013\000\233\000\000\000\
-+\\001\000\015\000\232\000\000\000\
-+\\001\000\020\000\004\001\000\000\
-+\\001\000\022\000\231\000\000\000\
-+\\001\000\024\000\230\000\000\000\
-+\\001\000\026\000\229\000\000\000\
-+\\001\000\030\000\228\000\000\000\
-+\\001\000\032\000\227\000\000\000\
-+\\001\000\034\000\226\000\000\000\
-+\\001\000\036\000\223\000\000\000\
-+\\001\000\040\000\221\000\000\000\
-+\\001\000\042\000\220\000\000\000\
-+\\001\000\044\000\219\000\000\000\
-+\\001\000\046\000\218\000\000\000\
-+\\001\000\048\000\217\000\000\000\
-+\\001\000\050\000\216\000\000\000\
-+\\001\000\052\000\215\000\000\000\
-+\\001\000\054\000\214\000\000\000\
-+\\001\000\056\000\213\000\000\000\
-+\\001\000\058\000\212\000\000\000\
-+\\001\000\065\000\211\000\000\000\
-+\\001\000\070\000\210\000\000\000\
-+\\001\000\075\000\208\000\000\000\
-+\\001\000\077\000\207\000\000\000\
-+\\001\000\080\000\206\000\000\000\
-+\\001\000\087\000\205\000\000\000\
-+\\001\000\089\000\204\000\000\000\
-+\\001\000\091\000\170\000\000\000\
-+\\001\000\091\000\244\000\000\000\
-+\\001\000\093\000\202\000\000\000\
-+\\001\000\095\000\201\000\000\000\
-+\\001\000\097\000\200\000\000\000\
-+\\001\000\099\000\199\000\000\000\
-+\\001\000\101\000\169\000\000\000\
-+\\001\000\103\000\198\000\000\000\
-+\\001\000\105\000\197\000\000\000\
-+\\001\000\107\000\255\000\000\000\
-+\\001\000\108\000\003\001\112\000\002\001\000\000\
-+\\001\000\111\000\192\000\000\000\
-+\\001\000\114\000\083\000\000\000\
-+\\001\000\115\000\242\000\000\000\
-+\\001\000\116\000\195\000\000\000\
-+\\001\000\119\000\191\000\000\000\
-+\\001\000\121\000\190\000\000\000\
-+\\001\000\123\000\185\000\000\000\
-+\\001\000\125\000\183\000\000\000\
-+\\029\001\000\000\
-+\\030\001\062\000\004\000\000\000\
-+\\031\001\000\000\
-+\\032\001\063\000\109\000\000\000\
-+\\033\001\000\000\
-+\\034\001\000\000\
-+\\035\001\059\000\007\000\000\000\
-+\\036\001\000\000\
-+\\037\001\060\000\085\000\000\000\
-+\\038\001\000\000\
-+\\039\001\000\000\
-+\\040\001\011\000\016\000\068\000\015\000\073\000\014\000\078\000\013\000\
-+\\090\000\012\000\100\000\011\000\000\000\
-+\\041\001\000\000\
-+\\042\001\000\000\
-+\\043\001\000\000\
-+\\044\001\000\000\
-+\\045\001\000\000\
-+\\046\001\000\000\
-+\\047\001\000\000\
-+\\048\001\000\000\
-+\\049\001\017\000\107\000\000\000\
-+\\050\001\000\000\
-+\\051\001\000\000\
-+\\052\001\000\000\
-+\\053\001\000\000\
-+\\054\001\000\000\
-+\\055\001\000\000\
-+\\056\001\000\000\
-+\\057\001\000\000\
-+\\058\001\002\000\081\000\004\000\080\000\006\000\079\000\009\000\078\000\
-+\\012\000\077\000\014\000\076\000\018\000\074\000\021\000\073\000\
-+\\023\000\072\000\025\000\071\000\029\000\070\000\031\000\069\000\
-+\\033\000\068\000\035\000\067\000\039\000\066\000\041\000\065\000\
-+\\043\000\064\000\045\000\063\000\047\000\062\000\049\000\061\000\
-+\\051\000\060\000\053\000\059\000\055\000\058\000\057\000\057\000\
-+\\061\000\056\000\064\000\055\000\066\000\054\000\067\000\053\000\
-+\\068\000\098\000\069\000\052\000\074\000\051\000\076\000\050\000\
-+\\079\000\049\000\083\000\048\000\085\000\047\000\086\000\046\000\
-+\\088\000\045\000\090\000\097\000\092\000\044\000\094\000\043\000\
-+\\096\000\042\000\098\000\041\000\102\000\040\000\104\000\039\000\
-+\\106\000\038\000\110\000\037\000\118\000\036\000\120\000\035\000\
-+\\122\000\034\000\124\000\033\000\126\000\032\000\127\000\031\000\
-+\\128\000\030\000\000\000\
-+\\059\001\000\000\
-+\\060\001\000\000\
-+\\061\001\000\000\
-+\\062\001\000\000\
-+\\063\001\000\000\
-+\\064\001\004\000\080\000\014\000\076\000\021\000\073\000\031\000\069\000\
-+\\033\000\068\000\035\000\067\000\045\000\063\000\047\000\062\000\
-+\\049\000\061\000\051\000\060\000\053\000\059\000\055\000\058\000\
-+\\057\000\057\000\061\000\056\000\068\000\098\000\076\000\050\000\
-+\\079\000\049\000\083\000\048\000\084\000\103\000\086\000\046\000\
-+\\106\000\038\000\122\000\034\000\000\000\
-+\\064\001\004\000\080\000\014\000\076\000\021\000\073\000\031\000\069\000\
-+\\033\000\068\000\035\000\067\000\045\000\063\000\047\000\062\000\
-+\\049\000\061\000\051\000\060\000\053\000\059\000\055\000\058\000\
-+\\057\000\057\000\061\000\056\000\068\000\098\000\076\000\050\000\
-+\\079\000\049\000\083\000\048\000\084\000\173\000\086\000\046\000\
-+\\106\000\038\000\122\000\034\000\000\000\
-+\\064\001\004\000\080\000\014\000\076\000\021\000\073\000\031\000\069\000\
-+\\033\000\068\000\035\000\067\000\045\000\063\000\047\000\062\000\
-+\\049\000\061\000\051\000\060\000\053\000\059\000\055\000\058\000\
-+\\057\000\057\000\061\000\056\000\068\000\098\000\076\000\050\000\
-+\\079\000\049\000\083\000\048\000\084\000\178\000\086\000\046\000\
-+\\106\000\038\000\122\000\034\000\000\000\
-+\\065\001\000\000\
-+\\066\001\000\000\
-+\\067\001\000\000\
-+\\068\001\000\000\
-+\\069\001\000\000\
-+\\070\001\000\000\
-+\\071\001\000\000\
-+\\072\001\000\000\
-+\\073\001\000\000\
-+\\074\001\000\000\
-+\\075\001\000\000\
-+\\076\001\002\000\081\000\006\000\079\000\009\000\078\000\012\000\077\000\
-+\\018\000\074\000\023\000\072\000\025\000\071\000\029\000\070\000\
-+\\039\000\066\000\041\000\065\000\043\000\064\000\064\000\055\000\
-+\\066\000\054\000\067\000\053\000\069\000\052\000\074\000\051\000\
-+\\083\000\048\000\085\000\047\000\088\000\045\000\090\000\097\000\
-+\\092\000\044\000\094\000\043\000\096\000\042\000\098\000\041\000\
-+\\102\000\040\000\104\000\039\000\110\000\037\000\118\000\036\000\
-+\\120\000\035\000\124\000\033\000\126\000\032\000\127\000\031\000\
-+\\128\000\030\000\000\000\
-+\\077\001\000\000\
-+\\078\001\000\000\
-+\\079\001\000\000\
-+\\080\001\083\000\048\000\084\000\239\000\000\000\
-+\\080\001\083\000\048\000\084\000\012\001\000\000\
-+\\081\001\000\000\
-+\\082\001\000\000\
-+\\083\001\000\000\
-+\\084\001\000\000\
-+\\085\001\000\000\
-+\\086\001\000\000\
-+\\087\001\000\000\
-+\\088\001\000\000\
-+\\089\001\000\000\
-+\\090\001\000\000\
-+\\091\001\000\000\
-+\\092\001\000\000\
-+\\093\001\000\000\
-+\\094\001\000\000\
-+\\095\001\000\000\
-+\\096\001\000\000\
-+\\097\001\000\000\
-+\\098\001\000\000\
-+\\099\001\071\000\115\000\000\000\
-+\\100\001\000\000\
-+\\101\001\000\000\
-+\\102\001\027\000\151\000\037\000\150\000\000\000\
-+\\103\001\000\000\
-+\\104\001\000\000\
-+\\105\001\000\000\
-+\\106\001\002\000\081\000\006\000\079\000\009\000\078\000\012\000\077\000\
-+\\014\000\076\000\018\000\074\000\021\000\073\000\023\000\072\000\
-+\\025\000\071\000\029\000\070\000\031\000\069\000\033\000\068\000\
-+\\035\000\067\000\039\000\066\000\041\000\065\000\043\000\064\000\
-+\\045\000\063\000\061\000\056\000\064\000\055\000\066\000\054\000\
-+\\067\000\053\000\068\000\098\000\069\000\052\000\074\000\051\000\
-+\\076\000\050\000\079\000\049\000\083\000\048\000\085\000\047\000\
-+\\086\000\046\000\088\000\045\000\090\000\097\000\092\000\044\000\
-+\\094\000\043\000\096\000\042\000\098\000\041\000\102\000\040\000\
-+\\104\000\039\000\106\000\038\000\110\000\037\000\118\000\036\000\
-+\\120\000\035\000\122\000\034\000\124\000\033\000\126\000\032\000\
-+\\127\000\031\000\128\000\030\000\000\000\
-+\\107\001\000\000\
-+\\108\001\000\000\
-+\\109\001\000\000\
-+\\110\001\000\000\
-+\\111\001\014\000\076\000\021\000\073\000\031\000\069\000\033\000\068\000\
-+\\035\000\067\000\045\000\063\000\061\000\056\000\068\000\098\000\
-+\\076\000\050\000\079\000\049\000\083\000\048\000\084\000\252\000\
-+\\086\000\046\000\106\000\038\000\122\000\034\000\000\000\
-+\\111\001\014\000\076\000\021\000\073\000\031\000\069\000\033\000\068\000\
-+\\035\000\067\000\045\000\063\000\061\000\056\000\068\000\098\000\
-+\\076\000\050\000\079\000\049\000\083\000\048\000\084\000\016\001\
-+\\086\000\046\000\106\000\038\000\122\000\034\000\000\000\
-+\\112\001\000\000\
-+\\113\001\000\000\
-+\\114\001\000\000\
-+\\115\001\072\000\248\000\000\000\
-+\\116\001\000\000\
-+\\117\001\038\000\008\001\000\000\
-+\\118\001\000\000\
-+\\119\001\028\000\010\001\000\000\
-+\\120\001\000\000\
-+\\121\001\000\000\
-+\\122\001\019\000\120\000\000\000\
-+\\123\001\000\000\
-+\\124\001\116\000\195\000\000\000\
-+\\125\001\000\000\
-+\\126\001\117\000\020\001\000\000\
-+\\127\001\000\000\
-+\\128\001\108\000\003\001\112\000\002\001\000\000\
-+\\129\001\000\000\
-+\\130\001\000\000\
-+\\131\001\113\000\026\001\000\000\
-+\\132\001\000\000\
-+\\133\001\109\000\027\001\000\000\
-+\\134\001\000\000\
-+\\135\001\002\000\081\000\006\000\079\000\009\000\078\000\012\000\077\000\
-+\\018\000\074\000\023\000\072\000\025\000\071\000\029\000\070\000\
-+\\039\000\066\000\041\000\065\000\043\000\064\000\064\000\055\000\
-+\\066\000\054\000\067\000\053\000\069\000\052\000\074\000\051\000\
-+\\085\000\047\000\088\000\045\000\090\000\097\000\092\000\044\000\
-+\\094\000\043\000\096\000\042\000\098\000\041\000\102\000\040\000\
-+\\104\000\039\000\110\000\037\000\118\000\036\000\120\000\035\000\
-+\\124\000\033\000\126\000\032\000\127\000\031\000\128\000\030\000\000\000\
-+\\136\001\000\000\
-+\\137\001\000\000\
-+\\138\001\000\000\
-+\\139\001\000\000\
-+\\140\001\000\000\
-+\\141\001\000\000\
-+\\142\001\000\000\
-+\\143\001\000\000\
-+\\144\001\000\000\
-+\\145\001\000\000\
-+\\146\001\000\000\
-+\\147\001\000\000\
-+\\148\001\000\000\
-+\\149\001\000\000\
-+\\150\001\000\000\
-+\\151\001\000\000\
-+\\152\001\000\000\
-+\\153\001\000\000\
-+\\154\001\000\000\
-+\\155\001\000\000\
-+\\156\001\000\000\
-+\\157\001\000\000\
-+\\158\001\000\000\
-+\\159\001\000\000\
-+\\160\001\000\000\
-+\\161\001\000\000\
-+\\162\001\000\000\
-+\\163\001\000\000\
-+\\164\001\000\000\
-+\\165\001\000\000\
-+\\166\001\000\000\
-+\\167\001\000\000\
-+\\168\001\000\000\
-+\\169\001\008\000\134\000\000\000\
-+\\170\001\000\000\
-+\\171\001\000\000\
-+\\172\001\000\000\
-+\\173\001\000\000\
-+\\174\001\081\000\127\000\000\000\
-+\\175\001\000\000\
-+\\176\001\082\000\006\001\000\000\
-+\\177\001\000\000\
-+\\178\001\000\000\
-+\\179\001\126\000\032\000\127\000\031\000\128\000\030\000\000\000\
-+\\180\001\000\000\
-+\\181\001\000\000\
-+\\182\001\000\000\
-+\\183\001\000\000\
-+\"
-+val actionRowNumbers =
-+"\053\000\058\000\054\000\063\000\
-+\\001\000\059\000\063\000\045\000\
-+\\060\000\206\000\206\000\065\000\
-+\\066\000\067\000\068\000\164\000\
-+\\168\000\167\000\166\000\165\000\
-+\\081\000\110\000\109\000\087\000\
-+\\081\000\081\000\072\000\055\000\
-+\\210\000\209\000\208\000\162\000\
-+\\125\000\162\000\162\000\206\000\
-+\\149\000\162\000\162\000\162\000\
-+\\162\000\162\000\201\000\162\000\
-+\\162\000\195\000\162\000\125\000\
-+\\125\000\196\000\162\000\198\000\
-+\\189\000\162\000\115\000\162\000\
-+\\162\000\162\000\162\000\162\000\
-+\\162\000\081\000\162\000\162\000\
-+\\162\000\128\000\081\000\125\000\
-+\\162\000\162\000\162\000\081\000\
-+\\193\000\081\000\081\000\162\000\
-+\\162\000\162\000\101\000\162\000\
-+\\064\000\206\000\057\000\061\000\
-+\\206\000\205\000\039\000\033\000\
-+\\081\000\169\000\088\000\081\000\
-+\\117\000\081\000\076\000\206\000\
-+\\118\000\089\000\081\000\081\000\
-+\\080\000\081\000\078\000\077\000\
-+\\071\000\073\000\052\000\056\000\
-+\\162\000\161\000\051\000\125\000\
-+\\050\000\132\000\049\000\048\000\
-+\\044\000\047\000\162\000\041\000\
-+\\040\000\038\000\037\000\036\000\
-+\\035\000\206\000\032\000\031\000\
-+\\119\000\030\000\029\000\028\000\
-+\\196\000\027\000\026\000\025\000\
-+\\024\000\023\000\022\000\021\000\
-+\\020\000\074\000\019\000\018\000\
-+\\017\000\016\000\128\000\015\000\
-+\\162\000\132\000\014\000\013\000\
-+\\012\000\011\000\010\000\009\000\
-+\\075\000\007\000\006\000\005\000\
-+\\004\000\101\000\105\000\003\000\
-+\\002\000\046\000\207\000\069\000\
-+\\070\000\082\000\086\000\081\000\
-+\\084\000\083\000\034\000\093\000\
-+\\081\000\091\000\090\000\079\000\
-+\\163\000\186\000\126\000\120\000\
-+\\132\000\142\000\137\000\132\000\
-+\\174\000\171\000\200\000\151\000\
-+\\042\000\043\000\008\000\179\000\
-+\\178\000\181\000\175\000\177\000\
-+\\199\000\203\000\184\000\148\000\
-+\\121\000\123\000\194\000\197\000\
-+\\185\000\172\000\099\000\098\000\
-+\\097\000\096\000\095\000\094\000\
-+\\114\000\192\000\191\000\180\000\
-+\\129\000\124\000\144\000\146\000\
-+\\111\000\122\000\183\000\182\000\
-+\\187\000\112\000\113\000\176\000\
-+\\173\000\190\000\102\000\106\000\
-+\\104\000\101\000\100\000\188\000\
-+\\063\000\085\000\170\000\092\000\
-+\\133\000\127\000\143\000\136\000\
-+\\138\000\132\000\132\000\134\000\
-+\\152\000\116\000\155\000\153\000\
-+\\081\000\081\000\150\000\201\000\
-+\\204\000\130\000\145\000\131\000\
-+\\147\000\108\000\101\000\103\000\
-+\\062\000\141\000\132\000\139\000\
-+\\135\000\156\000\154\000\158\000\
-+\\160\000\202\000\107\000\140\000\
-+\\157\000\159\000\000\000"
-+val gotoT =
-+"\
-+\\001\000\026\001\002\000\001\000\000\000\
-+\\004\000\004\000\005\000\003\000\000\000\
-+\\000\000\
-+\\007\000\008\000\008\000\007\000\009\000\006\000\000\000\
-+\\010\000\027\000\014\000\026\000\017\000\025\000\020\000\024\000\
-+\\022\000\023\000\023\000\022\000\033\000\021\000\041\000\020\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\008\000\080\000\009\000\006\000\000\000\
-+\\000\000\
-+\\006\000\082\000\000\000\
-+\\050\000\086\000\051\000\085\000\052\000\084\000\000\000\
-+\\050\000\087\000\051\000\085\000\052\000\084\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\015\000\094\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\016\000\100\000\017\000\099\000\020\000\092\000\021\000\098\000\
-+\\022\000\097\000\023\000\022\000\033\000\021\000\000\000\
-+\\015\000\102\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\015\000\103\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\012\000\104\000\000\000\
-+\\003\000\106\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\039\000\110\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\024\000\112\000\025\000\111\000\000\000\
-+\\039\000\114\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\115\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\050\000\116\000\051\000\085\000\052\000\084\000\000\000\
-+\\034\000\117\000\000\000\
-+\\039\000\119\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\120\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\121\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\122\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\123\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\048\000\124\000\000\000\
-+\\039\000\126\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\127\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\039\000\128\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\024\000\129\000\025\000\111\000\000\000\
-+\\024\000\130\000\025\000\111\000\000\000\
-+\\046\000\131\000\000\000\
-+\\039\000\133\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\039\000\134\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\039\000\135\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\136\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\137\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\138\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\139\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\140\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\013\000\142\000\015\000\141\000\017\000\093\000\020\000\092\000\
-+\\021\000\091\000\022\000\090\000\023\000\022\000\033\000\021\000\
-+\\041\000\089\000\042\000\088\000\043\000\019\000\044\000\018\000\
-+\\045\000\017\000\047\000\016\000\052\000\015\000\000\000\
-+\\039\000\143\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\144\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\145\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\026\000\147\000\027\000\146\000\000\000\
-+\\013\000\150\000\015\000\141\000\017\000\093\000\020\000\092\000\
-+\\021\000\091\000\022\000\090\000\023\000\022\000\033\000\021\000\
-+\\041\000\089\000\042\000\088\000\043\000\019\000\044\000\018\000\
-+\\045\000\017\000\047\000\016\000\052\000\015\000\000\000\
-+\\024\000\151\000\025\000\111\000\000\000\
-+\\039\000\152\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\153\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\154\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\013\000\155\000\015\000\141\000\017\000\093\000\020\000\092\000\
-+\\021\000\091\000\022\000\090\000\023\000\022\000\033\000\021\000\
-+\\041\000\089\000\042\000\088\000\043\000\019\000\044\000\018\000\
-+\\045\000\017\000\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\013\000\156\000\015\000\141\000\017\000\093\000\020\000\092\000\
-+\\021\000\091\000\022\000\090\000\023\000\022\000\033\000\021\000\
-+\\041\000\089\000\042\000\088\000\043\000\019\000\044\000\018\000\
-+\\045\000\017\000\047\000\016\000\052\000\015\000\000\000\
-+\\013\000\157\000\015\000\141\000\017\000\093\000\020\000\092\000\
-+\\021\000\091\000\022\000\090\000\023\000\022\000\033\000\021\000\
-+\\041\000\089\000\042\000\088\000\043\000\019\000\044\000\018\000\
-+\\045\000\017\000\047\000\016\000\052\000\015\000\000\000\
-+\\039\000\158\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\159\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\160\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\018\000\163\000\022\000\162\000\041\000\089\000\042\000\161\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\039\000\164\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\050\000\165\000\051\000\085\000\052\000\084\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\051\000\166\000\052\000\084\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\015\000\169\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\016\000\170\000\017\000\099\000\020\000\092\000\021\000\098\000\
-+\\022\000\097\000\023\000\022\000\033\000\021\000\000\000\
-+\\015\000\172\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\015\000\173\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\050\000\174\000\051\000\085\000\052\000\084\000\000\000\
-+\\000\000\
-+\\016\000\175\000\017\000\099\000\020\000\092\000\021\000\098\000\
-+\\022\000\097\000\023\000\022\000\033\000\021\000\000\000\
-+\\015\000\177\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\015\000\178\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\015\000\179\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\040\000\180\000\041\000\089\000\042\000\108\000\043\000\019\000\
-+\\044\000\018\000\045\000\017\000\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\024\000\182\000\025\000\111\000\000\000\
-+\\000\000\
-+\\020\000\092\000\021\000\187\000\022\000\186\000\023\000\022\000\
-+\\028\000\185\000\033\000\021\000\041\000\089\000\042\000\184\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\035\000\192\000\036\000\191\000\000\000\
-+\\039\000\194\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\050\000\201\000\051\000\085\000\052\000\084\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\046\000\207\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\026\000\220\000\027\000\146\000\000\000\
-+\\000\000\
-+\\039\000\222\000\040\000\109\000\041\000\089\000\042\000\108\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\020\000\092\000\021\000\187\000\022\000\186\000\023\000\022\000\
-+\\028\000\223\000\033\000\021\000\041\000\089\000\042\000\184\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\018\000\234\000\022\000\162\000\041\000\089\000\042\000\161\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\019\000\236\000\022\000\235\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\015\000\241\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\015\000\243\000\017\000\093\000\020\000\092\000\021\000\091\000\
-+\\022\000\090\000\023\000\022\000\033\000\021\000\041\000\089\000\
-+\\042\000\088\000\043\000\019\000\044\000\018\000\045\000\017\000\
-+\\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\020\000\092\000\021\000\187\000\022\000\186\000\023\000\022\000\
-+\\028\000\244\000\033\000\021\000\041\000\089\000\042\000\184\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\030\000\245\000\000\000\
-+\\020\000\092\000\021\000\249\000\022\000\248\000\023\000\022\000\
-+\\029\000\247\000\033\000\021\000\000\000\
-+\\020\000\092\000\021\000\187\000\022\000\186\000\023\000\022\000\
-+\\028\000\251\000\033\000\021\000\041\000\089\000\042\000\184\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\035\000\252\000\036\000\191\000\000\000\
-+\\000\000\
-+\\037\000\255\000\038\000\254\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\049\000\003\001\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\031\000\005\001\000\000\
-+\\032\000\007\001\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\019\000\009\001\022\000\235\000\000\000\
-+\\000\000\
-+\\018\000\011\001\022\000\162\000\041\000\089\000\042\000\161\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\008\000\012\001\009\000\006\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\020\000\092\000\021\000\249\000\022\000\248\000\023\000\022\000\
-+\\029\000\013\001\033\000\021\000\000\000\
-+\\020\000\092\000\021\000\187\000\022\000\186\000\023\000\022\000\
-+\\028\000\015\001\033\000\021\000\041\000\089\000\042\000\184\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\020\000\092\000\021\000\187\000\022\000\186\000\023\000\022\000\
-+\\028\000\016\001\033\000\021\000\041\000\089\000\042\000\184\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\037\000\017\001\038\000\254\000\000\000\
-+\\000\000\
-+\\013\000\019\001\015\000\141\000\017\000\093\000\020\000\092\000\
-+\\021\000\091\000\022\000\090\000\023\000\022\000\033\000\021\000\
-+\\041\000\089\000\042\000\088\000\043\000\019\000\044\000\018\000\
-+\\045\000\017\000\047\000\016\000\052\000\015\000\000\000\
-+\\013\000\020\001\015\000\141\000\017\000\093\000\020\000\092\000\
-+\\021\000\091\000\022\000\090\000\023\000\022\000\033\000\021\000\
-+\\041\000\089\000\042\000\088\000\043\000\019\000\044\000\018\000\
-+\\045\000\017\000\047\000\016\000\052\000\015\000\000\000\
-+\\000\000\
-+\\048\000\021\001\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\018\000\022\001\022\000\162\000\041\000\089\000\042\000\161\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\020\000\092\000\021\000\187\000\022\000\186\000\023\000\022\000\
-+\\028\000\023\001\033\000\021\000\041\000\089\000\042\000\184\000\
-+\\043\000\019\000\044\000\018\000\045\000\017\000\047\000\016\000\
-+\\052\000\015\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\"
-+val numstates = 283
-+val numrules = 155
-+val s = ref "" and index = ref 0
-+val string_to_int = fn () => 
-+let val i = !index
-+in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
-+end
-+val string_to_list = fn s' =>
-+    let val len = String.size s'
-+        fun f () =
-+           if !index < len then string_to_int() :: f()
-+           else nil
-+   in index := 0; s := s'; f ()
-+   end
-+val string_to_pairlist = fn (conv_key,conv_entry) =>
-+     let fun f () =
-+         case string_to_int()
-+         of 0 => EMPTY
-+          | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
-+     in f
-+     end
-+val string_to_pairlist_default = fn (conv_key,conv_entry) =>
-+    let val conv_row = string_to_pairlist(conv_key,conv_entry)
-+    in fn () =>
-+       let val default = conv_entry(string_to_int())
-+           val row = conv_row()
-+       in (row,default)
-+       end
-+   end
-+val string_to_table = fn (convert_row,s') =>
-+    let val len = String.size s'
-+        fun f ()=
-+           if !index < len then convert_row() :: f()
-+           else nil
-+     in (s := s'; index := 0; f ())
-+     end
-+local
-+  val memo = Array.array(numstates+numrules,ERROR)
-+  val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
-+       fun f i =
-+            if i=numstates then g i
-+            else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
-+          in f 0 handle Subscript => ()
-+          end
-+in
-+val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
-+end
-+val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
-+val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
-+val actionRowNumbers = string_to_list actionRowNumbers
-+val actionT = let val actionRowLookUp=
-+let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
-+in Array.fromList(map actionRowLookUp actionRowNumbers)
-+end
-+in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
-+numStates=numstates,initialState=STATE 0}
-+end
-+end
-+local open Header in
-+type pos = int
-+type arg = int -> HTMLAttrs.context
-+structure MlyValue = 
-+struct
-+datatype svalue = VOID | ntVOID of unit | ENTITY_REF of  (string)
-+ | CHAR_REF of  (string) | PCDATA of  (string)
-+ | START_UL of  (HTMLAttrVals.attrs)
-+ | START_TR of  (HTMLAttrVals.attrs)
-+ | START_TH of  (HTMLAttrVals.attrs)
-+ | START_TEXTAREA of  (HTMLAttrVals.attrs)
-+ | START_TD of  (HTMLAttrVals.attrs)
-+ | START_TABLE of  (HTMLAttrVals.attrs)
-+ | START_SELECT of  (HTMLAttrVals.attrs)
-+ | START_PRE of  (HTMLAttrVals.attrs)
-+ | TAG_PARAM of  (HTMLAttrVals.attrs)
-+ | START_P of  (HTMLAttrVals.attrs)
-+ | START_OPTION of  (HTMLAttrVals.attrs)
-+ | START_OL of  (HTMLAttrVals.attrs)
-+ | TAG_META of  (HTMLAttrVals.attrs)
-+ | START_MENU of  (HTMLAttrVals.attrs)
-+ | START_MAP of  (HTMLAttrVals.attrs)
-+ | TAG_LINK of  (HTMLAttrVals.attrs)
-+ | START_LI of  (HTMLAttrVals.attrs)
-+ | TAG_ISINDEX of  (HTMLAttrVals.attrs)
-+ | TAG_INPUT of  (HTMLAttrVals.attrs)
-+ | TAG_IMG of  (HTMLAttrVals.attrs) | TAG_HR of  (HTMLAttrVals.attrs)
-+ | START_H6 of  (HTMLAttrVals.attrs)
-+ | START_H5 of  (HTMLAttrVals.attrs)
-+ | START_H4 of  (HTMLAttrVals.attrs)
-+ | START_H3 of  (HTMLAttrVals.attrs)
-+ | START_H2 of  (HTMLAttrVals.attrs)
-+ | START_H1 of  (HTMLAttrVals.attrs)
-+ | START_FORM of  (HTMLAttrVals.attrs)
-+ | START_BASEFONT of  (HTMLAttrVals.attrs)
-+ | START_FONT of  (HTMLAttrVals.attrs)
-+ | START_DL of  (HTMLAttrVals.attrs)
-+ | START_DIV of  (HTMLAttrVals.attrs)
-+ | START_DIR of  (HTMLAttrVals.attrs)
-+ | START_CAPTION of  (HTMLAttrVals.attrs)
-+ | TAG_BR of  (HTMLAttrVals.attrs)
-+ | START_BODY of  (HTMLAttrVals.attrs)
-+ | TAG_BASE of  (HTMLAttrVals.attrs)
-+ | TAG_AREA of  (HTMLAttrVals.attrs)
-+ | START_APPLET of  (HTMLAttrVals.attrs)
-+ | START_A of  (HTMLAttrVals.attrs) | PCDataElem of  (HTML.pcdata)
-+ | PCDataList of  (HTML.pcdata list) | PCData of  (HTML.pcdata)
-+ | OptionList of  (HTML.select_option list) | Form of  (HTML.text)
-+ | AreaList of  (HTML.area list) | Special of  (HTML.text)
-+ | Phrase of  (HTML.text) | Font of  (HTML.text)
-+ | Text of  (HTML.text) | TextWOScript of  (HTML.text)
-+ | TextList' of  (HTML.text list) | TextList of  (HTML.text)
-+ | TableCell of  (HTML.table_cell)
-+ | TableCellList of  (HTML.table_cell list) | TableRow of  (HTML.tr)
-+ | TableRowList of  (HTML.tr list)
-+ | optCaption of  (HTML.caption option)
-+ | Preformatted of  (HTML.block) | Flow2 of  (blklist_item list)
-+ | Flow1 of  (blklist_item list) | DLItem of  (deflist_item)
-+ | DLItemList of  (deflist_item list) | ListItem of  (HTML.list_item)
-+ | ListItemList of  (HTML.list_item list) | List of  (HTML.block)
-+ | Paragraph of  (HTML.block) | Block of  (HTML.block)
-+ | BlockWOIndex of  (HTML.block)
-+ | AddressContent2 of  (blklist_item list)
-+ | AddressContent1 of  (blklist_item list)
-+ | BodyElement of  (HTML.block) | BodyContent2 of  (blklist_item list)
-+ | BodyContent1 of  (blklist_item list) | BodyContent0 of  (HTML.body)
-+ | BodyContent of  (HTML.block) | Body of  (HTML.body)
-+ | HeadElement of  (HTML.head_content)
-+ | HeadElements of  (HTML.head_content list)
-+ | HeadContents of  (HTML.head_content list)
-+ | Head of  (HTML.head_content list)
-+ | StartHTML of  (HTML.cdata option) | Document of  (HTML.html)
-+end
-+type svalue = MlyValue.svalue
-+type result = HTML.html
-+end
-+structure EC=
-+struct
-+open LrTable
-+infix 5 $$
-+fun x $$ y = y::x
-+val is_keyword =
-+fn _ => false
-+val preferred_change : (term list * term list) list = 
-+nil
-+val noShift = 
-+fn (T 0) => true | _ => false
-+val showTerminal =
-+fn (T 0) => "EOF"
-+  | (T 1) => "START_A"
-+  | (T 2) => "END_A"
-+  | (T 3) => "START_ADDRESS"
-+  | (T 4) => "END_ADDRESS"
-+  | (T 5) => "START_APPLET"
-+  | (T 6) => "END_APPLET"
-+  | (T 7) => "TAG_AREA"
-+  | (T 8) => "START_B"
-+  | (T 9) => "END_B"
-+  | (T 10) => "TAG_BASE"
-+  | (T 11) => "START_BIG"
-+  | (T 12) => "END_BIG"
-+  | (T 13) => "START_BLOCKQUOTE"
-+  | (T 14) => "END_BLOCKQUOTE"
-+  | (T 15) => "START_BODY"
-+  | (T 16) => "END_BODY"
-+  | (T 17) => "TAG_BR"
-+  | (T 18) => "START_CAPTION"
-+  | (T 19) => "END_CAPTION"
-+  | (T 20) => "START_CENTER"
-+  | (T 21) => "END_CENTER"
-+  | (T 22) => "START_CITE"
-+  | (T 23) => "END_CITE"
-+  | (T 24) => "START_CODE"
-+  | (T 25) => "END_CODE"
-+  | (T 26) => "START_DD"
-+  | (T 27) => "END_DD"
-+  | (T 28) => "START_DFN"
-+  | (T 29) => "END_DFN"
-+  | (T 30) => "START_DIR"
-+  | (T 31) => "END_DIR"
-+  | (T 32) => "START_DIV"
-+  | (T 33) => "END_DIV"
-+  | (T 34) => "START_DL"
-+  | (T 35) => "END_DL"
-+  | (T 36) => "START_DT"
-+  | (T 37) => "END_DT"
-+  | (T 38) => "START_EM"
-+  | (T 39) => "END_EM"
-+  | (T 40) => "START_FONT"
-+  | (T 41) => "END_FONT"
-+  | (T 42) => "START_BASEFONT"
-+  | (T 43) => "END_BASEFONT"
-+  | (T 44) => "START_FORM"
-+  | (T 45) => "END_FORM"
-+  | (T 46) => "START_H1"
-+  | (T 47) => "END_H1"
-+  | (T 48) => "START_H2"
-+  | (T 49) => "END_H2"
-+  | (T 50) => "START_H3"
-+  | (T 51) => "END_H3"
-+  | (T 52) => "START_H4"
-+  | (T 53) => "END_H4"
-+  | (T 54) => "START_H5"
-+  | (T 55) => "END_H5"
-+  | (T 56) => "START_H6"
-+  | (T 57) => "END_H6"
-+  | (T 58) => "START_HEAD"
-+  | (T 59) => "END_HEAD"
-+  | (T 60) => "TAG_HR"
-+  | (T 61) => "START_HTML"
-+  | (T 62) => "END_HTML"
-+  | (T 63) => "START_I"
-+  | (T 64) => "END_I"
-+  | (T 65) => "TAG_IMG"
-+  | (T 66) => "TAG_INPUT"
-+  | (T 67) => "TAG_ISINDEX"
-+  | (T 68) => "START_KBD"
-+  | (T 69) => "END_KBD"
-+  | (T 70) => "START_LI"
-+  | (T 71) => "END_LI"
-+  | (T 72) => "TAG_LINK"
-+  | (T 73) => "START_MAP"
-+  | (T 74) => "END_MAP"
-+  | (T 75) => "START_MENU"
-+  | (T 76) => "END_MENU"
-+  | (T 77) => "TAG_META"
-+  | (T 78) => "START_OL"
-+  | (T 79) => "END_OL"
-+  | (T 80) => "START_OPTION"
-+  | (T 81) => "END_OPTION"
-+  | (T 82) => "START_P"
-+  | (T 83) => "END_P"
-+  | (T 84) => "TAG_PARAM"
-+  | (T 85) => "START_PRE"
-+  | (T 86) => "END_PRE"
-+  | (T 87) => "START_SAMP"
-+  | (T 88) => "END_SAMP"
-+  | (T 89) => "START_SCRIPT"
-+  | (T 90) => "END_SCRIPT"
-+  | (T 91) => "START_SELECT"
-+  | (T 92) => "END_SELECT"
-+  | (T 93) => "START_SMALL"
-+  | (T 94) => "END_SMALL"
-+  | (T 95) => "START_STRIKE"
-+  | (T 96) => "END_STRIKE"
-+  | (T 97) => "START_STRONG"
-+  | (T 98) => "END_STRONG"
-+  | (T 99) => "START_STYLE"
-+  | (T 100) => "END_STYLE"
-+  | (T 101) => "START_SUB"
-+  | (T 102) => "END_SUB"
-+  | (T 103) => "START_SUP"
-+  | (T 104) => "END_SUP"
-+  | (T 105) => "START_TABLE"
-+  | (T 106) => "END_TABLE"
-+  | (T 107) => "START_TD"
-+  | (T 108) => "END_TD"
-+  | (T 109) => "START_TEXTAREA"
-+  | (T 110) => "END_TEXTAREA"
-+  | (T 111) => "START_TH"
-+  | (T 112) => "END_TH"
-+  | (T 113) => "START_TITLE"
-+  | (T 114) => "END_TITLE"
-+  | (T 115) => "START_TR"
-+  | (T 116) => "END_TR"
-+  | (T 117) => "START_TT"
-+  | (T 118) => "END_TT"
-+  | (T 119) => "START_U"
-+  | (T 120) => "END_U"
-+  | (T 121) => "START_UL"
-+  | (T 122) => "END_UL"
-+  | (T 123) => "START_VAR"
-+  | (T 124) => "END_VAR"
-+  | (T 125) => "PCDATA"
-+  | (T 126) => "CHAR_REF"
-+  | (T 127) => "ENTITY_REF"
-+  | _ => "bogus-term"
-+local open Header in
-+val errtermvalue=
-+fn (T 1) => MlyValue.START_A(([])) | 
-+(T 5) => MlyValue.START_APPLET((
-+[
-+    ("CODE", HTMLAttrs.NAME ""),
-+    ("WIDTH", HTMLAttrs.NAME ""),
-+    ("HEIGHT", HTMLAttrs.NAME "")
-+  ]
-+)) | 
-+(T 7) => MlyValue.TAG_AREA(([("ALT", HTMLAttrs.NAME "")])) | 
-+(T 10) => MlyValue.TAG_BASE(([("URL", HTMLAttrs.NAME "")])) | 
-+(T 15) => MlyValue.START_BODY(([])) | 
-+(T 17) => MlyValue.TAG_BR(([])) | 
-+(T 18) => MlyValue.START_CAPTION(([])) | 
-+(T 30) => MlyValue.START_DIR(([])) | 
-+(T 32) => MlyValue.START_DIV(([])) | 
-+(T 34) => MlyValue.START_DL(([])) | 
-+(T 40) => MlyValue.START_FONT(([])) | 
-+(T 42) => MlyValue.START_BASEFONT(([])) | 
-+(T 44) => MlyValue.START_FORM(([])) | 
-+(T 46) => MlyValue.START_H1(([])) | 
-+(T 48) => MlyValue.START_H2(([])) | 
-+(T 50) => MlyValue.START_H3(([])) | 
-+(T 52) => MlyValue.START_H4(([])) | 
-+(T 54) => MlyValue.START_H5(([])) | 
-+(T 56) => MlyValue.START_H6(([])) | 
-+(T 60) => MlyValue.TAG_HR(([])) | 
-+(T 65) => MlyValue.TAG_IMG(([("SRC", HTMLAttrs.NAME "")])) | 
-+(T 66) => MlyValue.TAG_INPUT(([])) | 
-+(T 67) => MlyValue.TAG_ISINDEX(([])) | 
-+(T 72) => MlyValue.TAG_LINK(([])) | 
-+(T 73) => MlyValue.START_MAP(([])) | 
-+(T 75) => MlyValue.START_MENU(([])) | 
-+(T 77) => MlyValue.TAG_META(([("CONTENT", HTMLAttrs.NAME "")])) | 
-+(T 78) => MlyValue.START_OL(([])) | 
-+(T 80) => MlyValue.START_OPTION(([])) | 
-+(T 82) => MlyValue.START_P(([])) | 
-+(T 84) => MlyValue.TAG_PARAM(([("NAME", HTMLAttrs.NAME "")])) | 
-+(T 85) => MlyValue.START_PRE(([])) | 
-+(T 91) => MlyValue.START_SELECT(([("NAME", HTMLAttrs.NAME "")])) | 
-+(T 105) => MlyValue.START_TABLE(([])) | 
-+(T 107) => MlyValue.START_TD(([])) | 
-+(T 109) => MlyValue.START_TEXTAREA((
-+[
-+    ("NAME", HTMLAttrs.NAME ""),
-+    ("ROWS", HTMLAttrs.NAME "0"),
-+    ("COLS", HTMLAttrs.NAME "0")
-+  ]
-+)) | 
-+(T 111) => MlyValue.START_TH(([])) | 
-+(T 115) => MlyValue.START_TR(([])) | 
-+(T 121) => MlyValue.START_UL(([])) | 
-+_ => MlyValue.VOID
-+end
-+val terms : term list = nil
-+ $$ (T 124) $$ (T 123) $$ (T 122) $$ (T 120) $$ (T 119) $$ (T 118) $$ 
-+(T 117) $$ (T 116) $$ (T 114) $$ (T 113) $$ (T 112) $$ (T 110) $$ (T 
-+108) $$ (T 106) $$ (T 104) $$ (T 103) $$ (T 102) $$ (T 101) $$ (T 100)
-+ $$ (T 99) $$ (T 98) $$ (T 97) $$ (T 96) $$ (T 95) $$ (T 94) $$ (T 93)
-+ $$ (T 92) $$ (T 90) $$ (T 89) $$ (T 88) $$ (T 87) $$ (T 86) $$ (T 83)
-+ $$ (T 81) $$ (T 79) $$ (T 76) $$ (T 74) $$ (T 71) $$ (T 69) $$ (T 68)
-+ $$ (T 64) $$ (T 63) $$ (T 62) $$ (T 61) $$ (T 59) $$ (T 58) $$ (T 57)
-+ $$ (T 55) $$ (T 53) $$ (T 51) $$ (T 49) $$ (T 47) $$ (T 45) $$ (T 43)
-+ $$ (T 41) $$ (T 39) $$ (T 38) $$ (T 37) $$ (T 36) $$ (T 35) $$ (T 33)
-+ $$ (T 31) $$ (T 29) $$ (T 28) $$ (T 27) $$ (T 26) $$ (T 25) $$ (T 24)
-+ $$ (T 23) $$ (T 22) $$ (T 21) $$ (T 20) $$ (T 19) $$ (T 16) $$ (T 14)
-+ $$ (T 13) $$ (T 12) $$ (T 11) $$ (T 9) $$ (T 8) $$ (T 6) $$ (T 4) $$ 
-+(T 3) $$ (T 2) $$ (T 0)end
-+structure Actions =
-+struct 
-+type int = Int.int
-+exception mlyAction of int
-+local open Header in
-+val actions = 
-+fn (i392:int,defaultPos,stack,
-+    (ctx):arg) =>
-+case (i392,stack)
-+of  ( 0, ( ( _, ( _, _, EndHTML1right)) :: ( _, ( MlyValue.Body Body,
-+ _, _)) :: ( _, ( MlyValue.Head Head, _, _)) :: ( _, ( 
-+MlyValue.StartHTML StartHTML, StartHTML1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Document (
-+HTML.HTML{version=StartHTML, head=Head, body=Body})
-+ in ( LrTable.NT 0, ( result, StartHTML1left, EndHTML1right), rest671)
++    val elemTbl = let
++	  val tbl = HTbl.mkTable (length tokenData, Fail "HTMLElements")
++	  fun ins (tag, startTok, endTok) =
++		HTbl.insert tbl (tag, {startT=startTok, endT=endTok})
++	  in
++	    List.app ins tokenData; tbl
++	  end
 +
-+end
-+|  ( 1, ( rest671)) => let val  result = MlyValue.StartHTML (NONE)
-+ in ( LrTable.NT 1, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 2, ( ( _, ( _, START_HTML1left, START_HTML1right)) :: rest671))
-+ => let val  result = MlyValue.StartHTML (NONE)
-+ in ( LrTable.NT 1, ( result, START_HTML1left, START_HTML1right), 
-+rest671)
-+end
-+|  ( 3, ( rest671)) => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 2, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 4, ( ( _, ( _, END_HTML1left, END_HTML1right)) :: rest671)) =>
-+ let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 2, ( result, END_HTML1left, END_HTML1right), rest671)
++    structure SS = Substring
 +
-+end
-+|  ( 5, ( ( _, ( _, _, EndHEAD1right)) :: ( _, ( MlyValue.HeadContents
-+ HeadContents, _, _)) :: ( _, ( _, StartHEAD1left, _)) :: rest671)) =>
-+ let val  result = MlyValue.Head (HeadContents)
-+ in ( LrTable.NT 3, ( result, StartHEAD1left, EndHEAD1right), rest671)
++    fun canonName name = SS.translate (String.str o Char.toUpper) name
 +
-+end
-+|  ( 6, ( rest671)) => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 4, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 7, ( ( _, ( _, START_HEAD1left, START_HEAD1right)) :: rest671))
-+ => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 4, ( result, START_HEAD1left, START_HEAD1right), 
-+rest671)
-+end
-+|  ( 8, ( rest671)) => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 5, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 9, ( ( _, ( _, END_HEAD1left, END_HEAD1right)) :: rest671)) =>
-+ let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 5, ( result, END_HEAD1left, END_HEAD1right), rest671)
++    fun find name = (HTbl.find elemTbl (canonName name))
 +
-+end
-+|  ( 10, ( ( _, ( MlyValue.HeadElements HeadElements2, _, 
-+HeadElements2right)) :: _ :: ( _, ( MlyValue.PCData PCData, _, _)) ::
-+ _ :: ( _, ( MlyValue.HeadElements HeadElements1, HeadElements1left, _
-+)) :: rest671)) => let val  result = MlyValue.HeadContents (
-+HeadElements1 @ (HTML.Head_TITLE PCData :: HeadElements2))
-+ in ( LrTable.NT 6, ( result, HeadElements1left, HeadElements2right), 
-+rest671)
-+end
-+|  ( 11, ( rest671)) => let val  result = MlyValue.HeadElements ([])
-+ in ( LrTable.NT 7, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 12, ( ( _, ( MlyValue.HeadElements HeadElements, _, 
-+HeadElements1right)) :: ( _, ( MlyValue.HeadElement HeadElement, 
-+HeadElement1left, _)) :: rest671)) => let val  result = 
-+MlyValue.HeadElements (HeadElement :: HeadElements)
-+ in ( LrTable.NT 7, ( result, HeadElement1left, HeadElements1right), 
-+rest671)
-+end
-+|  ( 13, ( ( _, ( MlyValue.TAG_META TAG_META, (TAG_METAleft as 
-+TAG_META1left), TAG_META1right)) :: rest671)) => let val  result = 
-+MlyValue.HeadElement (HTMLAttrs.mkMETA(ctx TAG_METAleft, TAG_META))
-+ in ( LrTable.NT 8, ( result, TAG_META1left, TAG_META1right), rest671)
++    val skipWS = SS.dropl Char.isSpace
 +
-+end
-+|  ( 14, ( ( _, ( MlyValue.TAG_LINK TAG_LINK, (TAG_LINKleft as 
-+TAG_LINK1left), TAG_LINK1right)) :: rest671)) => let val  result = 
-+MlyValue.HeadElement (HTMLAttrs.mkLINK(ctx TAG_LINKleft, TAG_LINK))
-+ in ( LrTable.NT 8, ( result, TAG_LINK1left, TAG_LINK1right), rest671)
++    fun scanStr (ctx, quoteChar, ss) = let
++	  val (str, rest) = SS.splitl (fn c => (c <> quoteChar)) ss
++	  in
++	    if (SS.isEmpty rest)
++	      then (
++		Err.lexError ctx "missing close quote for string";
++		(A.STRING(SS.string str), rest))
++	      else (A.STRING(SS.string str), SS.triml 1 rest)
++	  end
 +
-+end
-+|  ( 15, ( ( _, ( MlyValue.TAG_ISINDEX TAG_ISINDEX, (TAG_ISINDEXleft
-+ as TAG_ISINDEX1left), TAG_ISINDEX1right)) :: rest671)) => let val  
-+result = MlyValue.HeadElement (
-+let val stuff =
-+		    HTMLAttrs.mkISINDEX (ctx TAG_ISINDEXleft, TAG_ISINDEX)
-+		  in HTML.Head_ISINDEX stuff end
-+		
-+)
-+ in ( LrTable.NT 8, ( result, TAG_ISINDEX1left, TAG_ISINDEX1right), 
-+rest671)
-+end
-+|  ( 16, ( ( _, ( MlyValue.TAG_BASE TAG_BASE, (TAG_BASEleft as 
-+TAG_BASE1left), TAG_BASE1right)) :: rest671)) => let val  result = 
-+MlyValue.HeadElement (HTMLAttrs.mkBASE(ctx TAG_BASEleft, TAG_BASE))
-+ in ( LrTable.NT 8, ( result, TAG_BASE1left, TAG_BASE1right), rest671)
++  (* scan an attribute value from a substring, returning the value, and
++   * the rest of the substring.  Attribute values have one of the following
++   * forms:
++   *   1) a name token (a sequence of letters, digits, periods, or hyphens).
++   *   2) a string literal enclosed in ""
++   *   3) a string literal enclosed in ''
++   *)
++    fun scanAttrVal (ctx, attrName, ss) = let
++	  fun isNameChar #"." = true
++	    | isNameChar #"-" = true
++	    | isNameChar c = (Char.isAlphaNum c)
++	  in
++	    case SS.getc ss
++	     of NONE => (A.IMPLICIT, ss)
++	      | (SOME(#"\"", rest)) => scanStr (ctx, #"\"", rest)
++	      | (SOME(#"'", rest)) => scanStr (ctx, #"'", rest)
++	      | (SOME(c, _)) => let
++		(**
++		 * Unquoted attributes should be Names, but this is often not
++		 * the case, so we terminate them on whitespace or ">".
++		 *)
++		  val notNameChar = ref false
++		  fun isAttrChar c =
++			if ((Char.isSpace c) orelse (c = #">"))
++			  then false
++			else (
++			  if isNameChar c then () else notNameChar := true;
++			  true)
++		  val (value, rest) = SS.splitl isAttrChar ss
++		  in
++		    if (SS.isEmpty value)
++		      then (
++			Err.badAttrVal ctx (SS.string attrName, "");
++			(A.IMPLICIT, ss))
++		      else if (! notNameChar)
++			then (
++			  Err.unquotedAttrVal ctx (SS.string attrName);
++			  (A.STRING(SS.string value), rest))
++			else (A.NAME(SS.string value), rest)
++		  end
++	    (* end case *)
++	  end
 +
-+end
-+|  ( 17, ( ( _, ( _, _, END_STYLE1right)) :: ( _, ( MlyValue.PCData 
-+PCData, _, _)) :: ( _, ( _, START_STYLE1left, _)) :: rest671)) => let
-+ val  result = MlyValue.HeadElement (HTML.Head_STYLE(PCData))
-+ in ( LrTable.NT 8, ( result, START_STYLE1left, END_STYLE1right), 
-+rest671)
-+end
-+|  ( 18, ( ( _, ( _, _, END_SCRIPT1right)) :: ( _, ( MlyValue.PCData 
-+PCData, _, _)) :: ( _, ( _, START_SCRIPT1left, _)) :: rest671)) => let
-+ val  result = MlyValue.HeadElement (HTML.Head_SCRIPT(PCData))
-+ in ( LrTable.NT 8, ( result, START_SCRIPT1left, END_SCRIPT1right), 
-+rest671)
-+end
-+|  ( 19, ( ( _, ( _, _, EndBODY1right)) :: ( _, ( 
-+MlyValue.BodyContent0 BodyContent0, BodyContent01left, _)) :: rest671)
-+) => let val  result = MlyValue.Body (BodyContent0)
-+ in ( LrTable.NT 9, ( result, BodyContent01left, EndBODY1right), 
-+rest671)
-+end
-+|  ( 20, ( rest671)) => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 11, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 21, ( ( _, ( _, END_BODY1left, END_BODY1right)) :: rest671)) =>
-+ let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 11, ( result, END_BODY1left, END_BODY1right), rest671
-+)
-+end
-+|  ( 22, ( ( _, ( MlyValue.BodyContent1 BodyContent1, 
-+BodyContent11left, BodyContent11right)) :: rest671)) => let val  
-+result = MlyValue.BodyContent (mkBlock BodyContent1)
-+ in ( LrTable.NT 12, ( result, BodyContent11left, BodyContent11right),
-+ rest671)
-+end
-+|  ( 23, ( ( _, ( MlyValue.BodyContent BodyContent, _, 
-+BodyContent1right)) :: ( _, ( MlyValue.START_BODY START_BODY, (
-+START_BODYleft as START_BODY1left), _)) :: rest671)) => let val  
-+result = MlyValue.BodyContent0 (
-+HTMLAttrs.mkBODY(ctx START_BODYleft, START_BODY, BodyContent))
-+ in ( LrTable.NT 13, ( result, START_BODY1left, BodyContent1right), 
-+rest671)
-+end
-+|  ( 24, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: ( _, ( MlyValue.TextWOScript TextWOScript, 
-+TextWOScript1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent0 (mkBody(consText(TextWOScript, BodyContent1)))
-+ in ( LrTable.NT 13, ( result, TextWOScript1left, BodyContent11right),
-+ rest671)
-+end
-+|  ( 25, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: ( _, ( MlyValue.BodyElement BodyElement, 
-+BodyElement1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent0 (mkBody(consBlock(BodyElement, BodyContent1)))
-+ in ( LrTable.NT 13, ( result, BodyElement1left, BodyContent11right), 
-+rest671)
-+end
-+|  ( 26, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: ( _, ( MlyValue.BlockWOIndex BlockWOIndex, 
-+BlockWOIndex1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent0 (mkBody(consBlock(BlockWOIndex, BodyContent1)))
-+ in ( LrTable.NT 13, ( result, BlockWOIndex1left, BodyContent11right),
-+ rest671)
-+end
-+|  ( 27, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: _ :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent0 (mkBody(consBlock(Paragraph, BodyContent1)))
-+ in ( LrTable.NT 13, ( result, Paragraph1left, BodyContent11right), 
-+rest671)
-+end
-+|  ( 28, ( ( _, ( MlyValue.BodyContent2 BodyContent2, _, 
-+BodyContent21right)) :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent0 (mkBody(consBlock(Paragraph, BodyContent2)))
-+ in ( LrTable.NT 13, ( result, Paragraph1left, BodyContent21right), 
-+rest671)
-+end
-+|  ( 29, ( rest671)) => let val  result = MlyValue.BodyContent1 ([])
-+ in ( LrTable.NT 14, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 30, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: ( _, ( MlyValue.Text Text, Text1left, _)) :: 
-+rest671)) => let val  result = MlyValue.BodyContent1 (
-+consText(Text, BodyContent1))
-+ in ( LrTable.NT 14, ( result, Text1left, BodyContent11right), rest671
-+)
-+end
-+|  ( 31, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: ( _, ( MlyValue.BodyElement BodyElement, 
-+BodyElement1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent1 (consBlock(BodyElement, BodyContent1))
-+ in ( LrTable.NT 14, ( result, BodyElement1left, BodyContent11right), 
-+rest671)
-+end
-+|  ( 32, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: ( _, ( MlyValue.Block Block, Block1left, _))
-+ :: rest671)) => let val  result = MlyValue.BodyContent1 (
-+consBlock(Block, BodyContent1))
-+ in ( LrTable.NT 14, ( result, Block1left, BodyContent11right), 
-+rest671)
-+end
-+|  ( 33, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: _ :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent1 (consBlock(Paragraph, BodyContent1))
-+ in ( LrTable.NT 14, ( result, Paragraph1left, BodyContent11right), 
-+rest671)
-+end
-+|  ( 34, ( ( _, ( MlyValue.BodyContent2 BodyContent2, _, 
-+BodyContent21right)) :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent1 (consBlock(Paragraph, BodyContent2))
-+ in ( LrTable.NT 14, ( result, Paragraph1left, BodyContent21right), 
-+rest671)
-+end
-+|  ( 35, ( rest671)) => let val  result = MlyValue.BodyContent2 ([])
-+ in ( LrTable.NT 15, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 36, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: ( _, ( MlyValue.BodyElement BodyElement, 
-+BodyElement1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent2 (consBlock(BodyElement, BodyContent1))
-+ in ( LrTable.NT 15, ( result, BodyElement1left, BodyContent11right), 
-+rest671)
-+end
-+|  ( 37, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: ( _, ( MlyValue.Block Block, Block1left, _))
-+ :: rest671)) => let val  result = MlyValue.BodyContent2 (
-+consBlock(Block, BodyContent1))
-+ in ( LrTable.NT 15, ( result, Block1left, BodyContent11right), 
-+rest671)
-+end
-+|  ( 38, ( ( _, ( MlyValue.BodyContent1 BodyContent1, _, 
-+BodyContent11right)) :: _ :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent2 (consBlock(Paragraph, BodyContent1))
-+ in ( LrTable.NT 15, ( result, Paragraph1left, BodyContent11right), 
-+rest671)
-+end
-+|  ( 39, ( ( _, ( MlyValue.BodyContent2 BodyContent2, _, 
-+BodyContent21right)) :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyContent2 (consBlock(Paragraph, BodyContent2))
-+ in ( LrTable.NT 15, ( result, Paragraph1left, BodyContent21right), 
-+rest671)
-+end
-+|  ( 40, ( ( _, ( _, _, END_H11right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_H1 START_H1, (START_H1left
-+ as START_H11left), _)) :: rest671)) => let val  result = 
-+MlyValue.BodyElement (
-+HTMLAttrs.mkHn(1, ctx START_H1left, START_H1, TextList))
-+ in ( LrTable.NT 16, ( result, START_H11left, END_H11right), rest671)
++    fun scanStartTag (ctx, ss) = let
++	  val (name, rest) = SS.splitl (not o Char.isSpace) ss
++	  fun scanAttrs (rest, attrs) = let
++		val rest = skipWS rest
++		in
++		  case SS.getc rest
++		   of NONE => (name, List.rev attrs)
++		    | (SOME(#"\"", rest)) => (
++			Err.lexError ctx "bogus text in element";
++			scanAttrs (#2(scanStr (ctx, #"\"", rest)), attrs))
++		    | (SOME(#"'", rest)) => (
++			Err.lexError ctx "bogus text in element";
++			scanAttrs (#2(scanStr (ctx, #"'", rest)), attrs))
++		    | (SOME(c, rest')) =>
++			if Char.isAlpha c
++			  then let
++			    val (aName, rest) = SS.splitl Char.isAlphaNum rest
++			    val rest = skipWS rest
++			    in
++			      case (SS.getc rest)
++			       of (SOME(#"=", rest)) => let
++				  (* get the attribute value *)
++				    val (aVal, rest) =
++					  scanAttrVal (ctx, aName, skipWS rest)
++				    in
++				      scanAttrs (rest, (canonName aName, aVal)::attrs)
++				    end
++				| _ => scanAttrs (rest,
++				    (canonName aName, A.IMPLICIT)::attrs)
++			      (* end case *)
++			    end
++			  else (
++			    Err.lexError ctx "bogus character in element";
++			    scanAttrs (rest', attrs))
++		  (* end case *)
++		end
++	  in
++	    scanAttrs(rest, [])
++	  end
 +
-+end
-+|  ( 41, ( ( _, ( _, _, END_H21right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_H2 START_H2, (START_H2left
-+ as START_H21left), _)) :: rest671)) => let val  result = 
-+MlyValue.BodyElement (
-+HTMLAttrs.mkHn(2, ctx START_H2left, START_H2, TextList))
-+ in ( LrTable.NT 16, ( result, START_H21left, END_H21right), rest671)
++    fun startTag file (tag, p1, p2) = let
++	  val ctx = {file=file, line=p1}
++	  val tag' = SS.triml 1 (SS.trimr 1 (SS.all tag))
++	  val (name, attrs) = scanStartTag (ctx, tag')
++	  in
++	    case (find name, attrs)
++	     of (NONE, _) => (Err.badStartTag ctx (SS.string name); NONE)
++	      | (SOME{startT=WOAttrs _, ...}, _::_) => (
++		  List.app (Err.unknownAttr ctx o #1) attrs; NONE)
++	      | (SOME{startT=WOAttrs tag, ...}, []) =>
++		  SOME(tag (p1, p2))
++	      | (SOME{startT=WAttrs tag, ...}, attrs) =>
++		  SOME(tag (attrs, p1, p2))
++	    (* end case *)
++	  end
 +
-+end
-+|  ( 42, ( ( _, ( _, _, END_H31right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_H3 START_H3, (START_H3left
-+ as START_H31left), _)) :: rest671)) => let val  result = 
-+MlyValue.BodyElement (
-+HTMLAttrs.mkHn(3, ctx START_H3left, START_H3, TextList))
-+ in ( LrTable.NT 16, ( result, START_H31left, END_H31right), rest671)
++    fun endTag file (tag, p1, p2) = let
++	  val ctx = {file=file, line=p1}
++	  val name = SS.triml 2 (SS.trimr 1 (SS.all tag))
++	  in
++	    case (find name)
++	     of NONE => (Err.badEndTag ctx (SS.string name); NONE)
++	      | (SOME{endT=Empty, ...}) => (Err.badEndTag ctx (SS.string name); NONE)
++	      | (SOME{endT=End endTok, ...}) => SOME(endTok (p1, p2))
++	    (* end case *)
++	  end
 +
-+end
-+|  ( 43, ( ( _, ( _, _, END_H41right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_H4 START_H4, (START_H4left
-+ as START_H41left), _)) :: rest671)) => let val  result = 
-+MlyValue.BodyElement (
-+HTMLAttrs.mkHn(4, ctx START_H4left, START_H4, TextList))
-+ in ( LrTable.NT 16, ( result, START_H41left, END_H41right), rest671)
++  end
 +
-+end
-+|  ( 44, ( ( _, ( _, _, END_H51right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_H5 START_H5, (START_H5left
-+ as START_H51left), _)) :: rest671)) => let val  result = 
-+MlyValue.BodyElement (
-+HTMLAttrs.mkHn(5, ctx START_H5left, START_H5, TextList))
-+ in ( LrTable.NT 16, ( result, START_H51left, END_H51right), rest671)
-+
-+end
-+|  ( 45, ( ( _, ( _, _, END_H61right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_H6 START_H6, (START_H6left
-+ as START_H61left), _)) :: rest671)) => let val  result = 
-+MlyValue.BodyElement (
-+HTMLAttrs.mkHn(6, ctx START_H6left, START_H6, TextList))
-+ in ( LrTable.NT 16, ( result, START_H61left, END_H61right), rest671)
-+
-+end
-+|  ( 46, ( ( _, ( _, _, END_ADDRESS1right)) :: ( _, ( 
-+MlyValue.AddressContent1 AddressContent1, _, _)) :: ( _, ( _, 
-+START_ADDRESS1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BodyElement (HTML.ADDRESS(mkBlock AddressContent1))
-+ in ( LrTable.NT 16, ( result, START_ADDRESS1left, END_ADDRESS1right),
-+ rest671)
-+end
-+|  ( 47, ( rest671)) => let val  result = MlyValue.AddressContent1 ([]
-+)
-+ in ( LrTable.NT 17, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 48, ( ( _, ( MlyValue.AddressContent1 AddressContent1, _, 
-+AddressContent11right)) :: ( _, ( MlyValue.Text Text, Text1left, _))
-+ :: rest671)) => let val  result = MlyValue.AddressContent1 (
-+consText(Text, AddressContent1))
-+ in ( LrTable.NT 17, ( result, Text1left, AddressContent11right), 
-+rest671)
-+end
-+|  ( 49, ( ( _, ( MlyValue.AddressContent1 AddressContent1, _, 
-+AddressContent11right)) :: _ :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.AddressContent1 (consBlock(Paragraph, AddressContent1))
-+ in ( LrTable.NT 17, ( result, Paragraph1left, AddressContent11right),
-+ rest671)
-+end
-+|  ( 50, ( ( _, ( MlyValue.AddressContent2 AddressContent2, _, 
-+AddressContent21right)) :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.AddressContent1 (consBlock(Paragraph, AddressContent2))
-+ in ( LrTable.NT 17, ( result, Paragraph1left, AddressContent21right),
-+ rest671)
-+end
-+|  ( 51, ( rest671)) => let val  result = MlyValue.AddressContent2 ([]
-+)
-+ in ( LrTable.NT 18, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 52, ( ( _, ( MlyValue.AddressContent1 AddressContent1, _, 
-+AddressContent11right)) :: _ :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.AddressContent2 (consBlock(Paragraph, AddressContent1))
-+ in ( LrTable.NT 18, ( result, Paragraph1left, AddressContent11right),
-+ rest671)
-+end
-+|  ( 53, ( ( _, ( MlyValue.AddressContent2 AddressContent2, _, 
-+AddressContent21right)) :: ( _, ( MlyValue.Paragraph Paragraph, 
-+Paragraph1left, _)) :: rest671)) => let val  result = 
-+MlyValue.AddressContent2 (consBlock(Paragraph, AddressContent2))
-+ in ( LrTable.NT 18, ( result, Paragraph1left, AddressContent21right),
-+ rest671)
-+end
-+|  ( 54, ( ( _, ( MlyValue.List List, List1left, List1right)) :: 
-+rest671)) => let val  result = MlyValue.BlockWOIndex (List)
-+ in ( LrTable.NT 19, ( result, List1left, List1right), rest671)
-+end
-+|  ( 55, ( ( _, ( MlyValue.Preformatted Preformatted, 
-+Preformatted1left, Preformatted1right)) :: rest671)) => let val  
-+result = MlyValue.BlockWOIndex (Preformatted)
-+ in ( LrTable.NT 19, ( result, Preformatted1left, Preformatted1right),
-+ rest671)
-+end
-+|  ( 56, ( ( _, ( _, _, END_DIV1right)) :: ( _, ( MlyValue.BodyContent
-+ BodyContent, _, _)) :: ( _, ( MlyValue.START_DIV START_DIV, (
-+START_DIVleft as START_DIV1left), _)) :: rest671)) => let val  result
-+ = MlyValue.BlockWOIndex (
-+HTMLAttrs.mkDIV(ctx START_DIVleft, START_DIV, BodyContent))
-+ in ( LrTable.NT 19, ( result, START_DIV1left, END_DIV1right), rest671
-+)
-+end
-+|  ( 57, ( ( _, ( _, _, END_CENTER1right)) :: ( _, ( 
-+MlyValue.BodyContent BodyContent, _, _)) :: ( _, ( _, 
-+START_CENTER1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BlockWOIndex (HTML.CENTER BodyContent)
-+ in ( LrTable.NT 19, ( result, START_CENTER1left, END_CENTER1right), 
-+rest671)
-+end
-+|  ( 58, ( ( _, ( _, _, END_BLOCKQUOTE1right)) :: ( _, ( 
-+MlyValue.BodyContent BodyContent, _, _)) :: ( _, ( _, 
-+START_BLOCKQUOTE1left, _)) :: rest671)) => let val  result = 
-+MlyValue.BlockWOIndex (HTML.BLOCKQUOTE BodyContent)
-+ in ( LrTable.NT 19, ( result, START_BLOCKQUOTE1left, 
-+END_BLOCKQUOTE1right), rest671)
-+end
-+|  ( 59, ( ( _, ( _, _, END_FORM1right)) :: ( _, ( 
-+MlyValue.BodyContent BodyContent, _, _)) :: ( _, ( MlyValue.START_FORM
-+ START_FORM, (START_FORMleft as START_FORM1left), _)) :: rest671)) =>
-+ let val  result = MlyValue.BlockWOIndex (
-+HTMLAttrs.mkFORM(ctx START_FORMleft, START_FORM, BodyContent))
-+ in ( LrTable.NT 19, ( result, START_FORM1left, END_FORM1right), 
-+rest671)
-+end
-+|  ( 60, ( ( _, ( MlyValue.TAG_HR TAG_HR, (TAG_HRleft as TAG_HR1left),
-+ TAG_HR1right)) :: rest671)) => let val  result = 
-+MlyValue.BlockWOIndex (HTMLAttrs.mkHR(ctx TAG_HRleft, TAG_HR))
-+ in ( LrTable.NT 19, ( result, TAG_HR1left, TAG_HR1right), rest671)
-+
-+end
-+|  ( 61, ( ( _, ( _, _, END_TABLE1right)) :: ( _, ( 
-+MlyValue.TableRowList TableRowList, _, _)) :: ( _, ( 
-+MlyValue.optCaption optCaption, _, _)) :: ( _, ( MlyValue.START_TABLE 
-+START_TABLE, (START_TABLEleft as START_TABLE1left), _)) :: rest671))
-+ => let val  result = MlyValue.BlockWOIndex (
-+HTMLAttrs.mkTABLE(
-+		    ctx START_TABLEleft, START_TABLE,
-+		    {caption = optCaption, body = TableRowList})
-+		
-+)
-+ in ( LrTable.NT 19, ( result, START_TABLE1left, END_TABLE1right), 
-+rest671)
-+end
-+|  ( 62, ( ( _, ( MlyValue.BlockWOIndex BlockWOIndex, 
-+BlockWOIndex1left, BlockWOIndex1right)) :: rest671)) => let val  
-+result = MlyValue.Block (BlockWOIndex)
-+ in ( LrTable.NT 20, ( result, BlockWOIndex1left, BlockWOIndex1right),
-+ rest671)
-+end
-+|  ( 63, ( ( _, ( MlyValue.TAG_ISINDEX TAG_ISINDEX, (TAG_ISINDEXleft
-+ as TAG_ISINDEX1left), TAG_ISINDEX1right)) :: rest671)) => let val  
-+result = MlyValue.Block (
-+let val stuff =
-+		    HTMLAttrs.mkISINDEX (ctx TAG_ISINDEXleft, TAG_ISINDEX)
-+		  in HTML.ISINDEX stuff end
-+		
-+)
-+ in ( LrTable.NT 20, ( result, TAG_ISINDEX1left, TAG_ISINDEX1right), 
-+rest671)
-+end
-+|  ( 64, ( ( _, ( MlyValue.TextList TextList, _, TextList1right)) :: (
-+ _, ( MlyValue.START_P START_P, (START_Pleft as START_P1left), _)) :: 
-+rest671)) => let val  result = MlyValue.Paragraph (
-+HTMLAttrs.mkP(ctx START_Pleft, START_P, TextList))
-+ in ( LrTable.NT 21, ( result, START_P1left, TextList1right), rest671)
-+
-+end
-+|  ( 65, ( ( _, ( _, _, END_UL1right)) :: ( _, ( MlyValue.ListItemList
-+ ListItemList, _, _)) :: ( _, ( MlyValue.START_UL START_UL, (
-+START_ULleft as START_UL1left), _)) :: rest671)) => let val  result = 
-+MlyValue.List (
-+HTMLAttrs.mkUL(ctx START_ULleft, START_UL, ListItemList))
-+ in ( LrTable.NT 22, ( result, START_UL1left, END_UL1right), rest671)
-+
-+end
-+|  ( 66, ( ( _, ( _, _, END_OL1right)) :: ( _, ( MlyValue.ListItemList
-+ ListItemList, _, _)) :: ( _, ( MlyValue.START_OL START_OL, (
-+START_OLleft as START_OL1left), _)) :: rest671)) => let val  result = 
-+MlyValue.List (
-+HTMLAttrs.mkOL(ctx START_OLleft, START_OL, ListItemList))
-+ in ( LrTable.NT 22, ( result, START_OL1left, END_OL1right), rest671)
-+
-+end
-+|  ( 67, ( ( _, ( _, _, END_DIR1right)) :: ( _, ( 
-+MlyValue.ListItemList ListItemList, _, _)) :: ( _, ( 
-+MlyValue.START_DIR START_DIR, (START_DIRleft as START_DIR1left), _))
-+ :: rest671)) => let val  result = MlyValue.List (
-+HTMLAttrs.mkDIR(ctx START_DIRleft, START_DIR, ListItemList))
-+ in ( LrTable.NT 22, ( result, START_DIR1left, END_DIR1right), rest671
-+)
-+end
-+|  ( 68, ( ( _, ( _, _, END_MENU1right)) :: ( _, ( 
-+MlyValue.ListItemList ListItemList, _, _)) :: ( _, ( 
-+MlyValue.START_MENU START_MENU, (START_MENUleft as START_MENU1left), _
-+)) :: rest671)) => let val  result = MlyValue.List (
-+HTMLAttrs.mkMENU(ctx START_MENUleft, START_MENU, ListItemList))
-+ in ( LrTable.NT 22, ( result, START_MENU1left, END_MENU1right), 
-+rest671)
-+end
-+|  ( 69, ( ( _, ( _, _, END_DL1right)) :: ( _, ( MlyValue.DLItemList 
-+DLItemList, _, _)) :: ( _, ( MlyValue.START_DL START_DL, (START_DLleft
-+ as START_DL1left), _)) :: rest671)) => let val  result = 
-+MlyValue.List (
-+HTMLAttrs.mkDL(
-+		  ctx START_DLleft, START_DL,
-+		  groupDefListContents DLItemList)
-+		
-+)
-+ in ( LrTable.NT 22, ( result, START_DL1left, END_DL1right), rest671)
-+
-+end
-+|  ( 70, ( rest671)) => let val  result = MlyValue.ListItemList ([])
-+ in ( LrTable.NT 23, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 71, ( ( _, ( MlyValue.ListItemList ListItemList, _, 
-+ListItemList1right)) :: ( _, ( MlyValue.ListItem ListItem, 
-+ListItem1left, _)) :: rest671)) => let val  result = 
-+MlyValue.ListItemList (ListItem :: ListItemList)
-+ in ( LrTable.NT 23, ( result, ListItem1left, ListItemList1right), 
-+rest671)
-+end
-+|  ( 72, ( ( _, ( _, _, EndLI1right)) :: ( _, ( MlyValue.Flow1 Flow1,
-+ _, _)) :: ( _, ( MlyValue.START_LI START_LI, (START_LIleft as 
-+START_LI1left), _)) :: rest671)) => let val  result = 
-+MlyValue.ListItem (
-+HTMLAttrs.mkLI(ctx START_LIleft, START_LI, mkBlock Flow1))
-+ in ( LrTable.NT 24, ( result, START_LI1left, EndLI1right), rest671)
-+
-+end
-+|  ( 73, ( rest671)) => let val  result = MlyValue.DLItemList ([])
-+ in ( LrTable.NT 25, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 74, ( ( _, ( MlyValue.DLItemList DLItemList, _, DLItemList1right)
-+) :: ( _, ( MlyValue.DLItem DLItem, DLItem1left, _)) :: rest671)) =>
-+ let val  result = MlyValue.DLItemList (DLItem :: DLItemList)
-+ in ( LrTable.NT 25, ( result, DLItem1left, DLItemList1right), rest671
-+)
-+end
-+|  ( 75, ( ( _, ( _, _, EndDT1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_DT1left, _)) :: rest671)) => let
-+ val  result = MlyValue.DLItem (DL_tag TextList)
-+ in ( LrTable.NT 26, ( result, START_DT1left, EndDT1right), rest671)
-+
-+end
-+|  ( 76, ( ( _, ( _, _, EndDD1right)) :: ( _, ( MlyValue.Flow1 Flow1,
-+ _, _)) :: ( _, ( _, START_DD1left, _)) :: rest671)) => let val  
-+result = MlyValue.DLItem (DL_item(mkBlock Flow1))
-+ in ( LrTable.NT 26, ( result, START_DD1left, EndDD1right), rest671)
-+
-+end
-+|  ( 77, ( rest671)) => let val  result = MlyValue.Flow1 ([])
-+ in ( LrTable.NT 27, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 78, ( ( _, ( MlyValue.Flow1 Flow1, _, Flow11right)) :: ( _, ( 
-+MlyValue.Text Text, Text1left, _)) :: rest671)) => let val  result = 
-+MlyValue.Flow1 (consText(Text, Flow1))
-+ in ( LrTable.NT 27, ( result, Text1left, Flow11right), rest671)
-+end
-+|  ( 79, ( ( _, ( MlyValue.Flow1 Flow1, _, Flow11right)) :: ( _, ( 
-+MlyValue.Block Block, Block1left, _)) :: rest671)) => let val  result
-+ = MlyValue.Flow1 (consBlock(Block, Flow1))
-+ in ( LrTable.NT 27, ( result, Block1left, Flow11right), rest671)
-+end
-+|  ( 80, ( ( _, ( MlyValue.Flow1 Flow1, _, Flow11right)) :: _ :: ( _, 
-+( MlyValue.Paragraph Paragraph, Paragraph1left, _)) :: rest671)) =>
-+ let val  result = MlyValue.Flow1 (consBlock(Paragraph, Flow1))
-+ in ( LrTable.NT 27, ( result, Paragraph1left, Flow11right), rest671)
-+
-+end
-+|  ( 81, ( ( _, ( MlyValue.Flow2 Flow2, _, Flow21right)) :: ( _, ( 
-+MlyValue.Paragraph Paragraph, Paragraph1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Flow1 (consBlock(Paragraph, Flow2))
-+ in ( LrTable.NT 27, ( result, Paragraph1left, Flow21right), rest671)
-+
-+end
-+|  ( 82, ( rest671)) => let val  result = MlyValue.Flow2 ([])
-+ in ( LrTable.NT 28, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 83, ( ( _, ( MlyValue.Flow1 Flow1, _, Flow11right)) :: ( _, ( 
-+MlyValue.Block Block, Block1left, _)) :: rest671)) => let val  result
-+ = MlyValue.Flow2 (consBlock(Block, Flow1))
-+ in ( LrTable.NT 28, ( result, Block1left, Flow11right), rest671)
-+end
-+|  ( 84, ( ( _, ( MlyValue.Flow1 Flow1, _, Flow11right)) :: _ :: ( _, 
-+( MlyValue.Paragraph Paragraph, Paragraph1left, _)) :: rest671)) =>
-+ let val  result = MlyValue.Flow2 (consBlock(Paragraph, Flow1))
-+ in ( LrTable.NT 28, ( result, Paragraph1left, Flow11right), rest671)
-+
-+end
-+|  ( 85, ( ( _, ( MlyValue.Flow2 Flow2, _, Flow21right)) :: ( _, ( 
-+MlyValue.Paragraph Paragraph, Paragraph1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Flow2 (consBlock(Paragraph, Flow2))
-+ in ( LrTable.NT 28, ( result, Paragraph1left, Flow21right), rest671)
-+
-+end
-+|  ( 86, ( rest671)) => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 29, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 87, ( ( _, ( _, END_LI1left, END_LI1right)) :: rest671)) => let
-+ val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 29, ( result, END_LI1left, END_LI1right), rest671)
-+
-+end
-+|  ( 88, ( rest671)) => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 30, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 89, ( ( _, ( _, END_DT1left, END_DT1right)) :: rest671)) => let
-+ val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 30, ( result, END_DT1left, END_DT1right), rest671)
-+
-+end
-+|  ( 90, ( rest671)) => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 31, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 91, ( ( _, ( _, END_DD1left, END_DD1right)) :: rest671)) => let
-+ val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 31, ( result, END_DD1left, END_DD1right), rest671)
-+
-+end
-+|  ( 92, ( ( _, ( _, _, END_PRE1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_PRE START_PRE, (
-+START_PREleft as START_PRE1left), _)) :: rest671)) => let val  result
-+ = MlyValue.Preformatted (
-+HTMLAttrs.mkPRE(ctx START_PREleft, START_PRE, TextList))
-+ in ( LrTable.NT 32, ( result, START_PRE1left, END_PRE1right), rest671
-+)
-+end
-+|  ( 93, ( rest671)) => let val  result = MlyValue.optCaption (NONE)
-+ in ( LrTable.NT 33, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 94, ( ( _, ( _, _, END_CAPTION1right)) :: ( _, ( 
-+MlyValue.TextList TextList, _, _)) :: ( _, ( MlyValue.START_CAPTION 
-+START_CAPTION, (START_CAPTIONleft as START_CAPTION1left), _)) :: 
-+rest671)) => let val  result = MlyValue.optCaption (
-+SOME(HTMLAttrs.mkCAPTION(
-+		  ctx START_CAPTIONleft, START_CAPTION, TextList))
-+)
-+ in ( LrTable.NT 33, ( result, START_CAPTION1left, END_CAPTION1right),
-+ rest671)
-+end
-+|  ( 95, ( ( _, ( MlyValue.TableRow TableRow, TableRow1left, 
-+TableRow1right)) :: rest671)) => let val  result = 
-+MlyValue.TableRowList ([TableRow])
-+ in ( LrTable.NT 34, ( result, TableRow1left, TableRow1right), rest671
-+)
-+end
-+|  ( 96, ( ( _, ( MlyValue.TableRowList TableRowList, _, 
-+TableRowList1right)) :: ( _, ( MlyValue.TableRow TableRow, 
-+TableRow1left, _)) :: rest671)) => let val  result = 
-+MlyValue.TableRowList (TableRow :: TableRowList)
-+ in ( LrTable.NT 34, ( result, TableRow1left, TableRowList1right), 
-+rest671)
-+end
-+|  ( 97, ( ( _, ( MlyValue.TableCellList TableCellList, _, 
-+TableCellList1right)) :: ( _, ( MlyValue.START_TR START_TR, (
-+START_TRleft as START_TR1left), _)) :: rest671)) => let val  result = 
-+MlyValue.TableRow (
-+HTMLAttrs.mkTR(ctx START_TRleft, START_TR, TableCellList))
-+ in ( LrTable.NT 35, ( result, START_TR1left, TableCellList1right), 
-+rest671)
-+end
-+|  ( 98, ( ( _, ( _, _, END_TR1right)) :: ( _, ( 
-+MlyValue.TableCellList TableCellList, _, _)) :: ( _, ( 
-+MlyValue.START_TR START_TR, (START_TRleft as START_TR1left), _)) :: 
-+rest671)) => let val  result = MlyValue.TableRow (
-+HTMLAttrs.mkTR(ctx START_TRleft, START_TR, TableCellList))
-+ in ( LrTable.NT 35, ( result, START_TR1left, END_TR1right), rest671)
-+
-+end
-+|  ( 99, ( ( _, ( MlyValue.TableCell TableCell, TableCell1left, 
-+TableCell1right)) :: rest671)) => let val  result = 
-+MlyValue.TableCellList ([TableCell])
-+ in ( LrTable.NT 36, ( result, TableCell1left, TableCell1right), 
-+rest671)
-+end
-+|  ( 100, ( ( _, ( MlyValue.TableCellList TableCellList, _, 
-+TableCellList1right)) :: ( _, ( MlyValue.TableCell TableCell, 
-+TableCell1left, _)) :: rest671)) => let val  result = 
-+MlyValue.TableCellList (TableCell :: TableCellList)
-+ in ( LrTable.NT 36, ( result, TableCell1left, TableCellList1right), 
-+rest671)
-+end
-+|  ( 101, ( ( _, ( _, _, END_TH1right)) :: ( _, ( MlyValue.BodyContent
-+ BodyContent, _, _)) :: ( _, ( MlyValue.START_TH START_TH, (
-+START_THleft as START_TH1left), _)) :: rest671)) => let val  result = 
-+MlyValue.TableCell (
-+HTMLAttrs.mkTH(ctx START_THleft, START_TH, BodyContent))
-+ in ( LrTable.NT 37, ( result, START_TH1left, END_TH1right), rest671)
-+
-+end
-+|  ( 102, ( ( _, ( MlyValue.BodyContent BodyContent, _, 
-+BodyContent1right)) :: ( _, ( MlyValue.START_TH START_TH, (
-+START_THleft as START_TH1left), _)) :: rest671)) => let val  result = 
-+MlyValue.TableCell (
-+HTMLAttrs.mkTH(ctx START_THleft, START_TH, BodyContent))
-+ in ( LrTable.NT 37, ( result, START_TH1left, BodyContent1right), 
-+rest671)
-+end
-+|  ( 103, ( ( _, ( _, _, END_TD1right)) :: ( _, ( MlyValue.BodyContent
-+ BodyContent, _, _)) :: ( _, ( MlyValue.START_TD START_TD, (
-+START_TDleft as START_TD1left), _)) :: rest671)) => let val  result = 
-+MlyValue.TableCell (
-+HTMLAttrs.mkTD(ctx START_TDleft, START_TD, BodyContent))
-+ in ( LrTable.NT 37, ( result, START_TD1left, END_TD1right), rest671)
-+
-+end
-+|  ( 104, ( ( _, ( MlyValue.BodyContent BodyContent, _, 
-+BodyContent1right)) :: ( _, ( MlyValue.START_TD START_TD, (
-+START_TDleft as START_TD1left), _)) :: rest671)) => let val  result = 
-+MlyValue.TableCell (
-+HTMLAttrs.mkTD(ctx START_TDleft, START_TD, BodyContent))
-+ in ( LrTable.NT 37, ( result, START_TD1left, BodyContent1right), 
-+rest671)
-+end
-+|  ( 105, ( ( _, ( MlyValue.TextList' TextList', TextList'1left, 
-+TextList'1right)) :: rest671)) => let val  result = MlyValue.TextList
-+ (textList TextList')
-+ in ( LrTable.NT 38, ( result, TextList'1left, TextList'1right), 
-+rest671)
-+end
-+|  ( 106, ( rest671)) => let val  result = MlyValue.TextList' ([])
-+ in ( LrTable.NT 39, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 107, ( ( _, ( MlyValue.TextList' TextList', _, TextList'1right))
-+ :: ( _, ( MlyValue.Text Text, Text1left, _)) :: rest671)) => let val 
-+ result = MlyValue.TextList' (Text :: TextList')
-+ in ( LrTable.NT 39, ( result, Text1left, TextList'1right), rest671)
-+
-+end
-+|  ( 108, ( ( _, ( MlyValue.PCDataElem PCDataElem, PCDataElem1left, 
-+PCDataElem1right)) :: rest671)) => let val  result = 
-+MlyValue.TextWOScript (HTML.PCDATA PCDataElem)
-+ in ( LrTable.NT 40, ( result, PCDataElem1left, PCDataElem1right), 
-+rest671)
-+end
-+|  ( 109, ( ( _, ( MlyValue.Font Font, Font1left, Font1right)) :: 
-+rest671)) => let val  result = MlyValue.TextWOScript (Font)
-+ in ( LrTable.NT 40, ( result, Font1left, Font1right), rest671)
-+end
-+|  ( 110, ( ( _, ( MlyValue.Phrase Phrase, Phrase1left, Phrase1right))
-+ :: rest671)) => let val  result = MlyValue.TextWOScript (Phrase)
-+ in ( LrTable.NT 40, ( result, Phrase1left, Phrase1right), rest671)
-+
-+end
-+|  ( 111, ( ( _, ( MlyValue.Special Special, Special1left, 
-+Special1right)) :: rest671)) => let val  result = 
-+MlyValue.TextWOScript (Special)
-+ in ( LrTable.NT 40, ( result, Special1left, Special1right), rest671)
-+
-+end
-+|  ( 112, ( ( _, ( MlyValue.Form Form, Form1left, Form1right)) :: 
-+rest671)) => let val  result = MlyValue.TextWOScript (Form)
-+ in ( LrTable.NT 40, ( result, Form1left, Form1right), rest671)
-+end
-+|  ( 113, ( ( _, ( MlyValue.TextWOScript TextWOScript, 
-+TextWOScript1left, TextWOScript1right)) :: rest671)) => let val  
-+result = MlyValue.Text (TextWOScript)
-+ in ( LrTable.NT 41, ( result, TextWOScript1left, TextWOScript1right),
-+ rest671)
-+end
-+|  ( 114, ( ( _, ( _, _, END_SCRIPT1right)) :: ( _, ( MlyValue.PCData 
-+PCData, _, _)) :: ( _, ( _, START_SCRIPT1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Text (HTML.SCRIPT PCData)
-+ in ( LrTable.NT 41, ( result, START_SCRIPT1left, END_SCRIPT1right), 
-+rest671)
-+end
-+|  ( 115, ( ( _, ( _, _, END_TT1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_TT1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Font (HTML.TT(TextList))
-+ in ( LrTable.NT 42, ( result, START_TT1left, END_TT1right), rest671)
-+
-+end
-+|  ( 116, ( ( _, ( _, _, END_I1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_I1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Font (HTML.I(TextList))
-+ in ( LrTable.NT 42, ( result, START_I1left, END_I1right), rest671)
-+
-+end
-+|  ( 117, ( ( _, ( _, _, END_B1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_B1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Font (HTML.B(TextList))
-+ in ( LrTable.NT 42, ( result, START_B1left, END_B1right), rest671)
-+
-+end
-+|  ( 118, ( ( _, ( _, _, END_U1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_U1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Font (HTML.U(TextList))
-+ in ( LrTable.NT 42, ( result, START_U1left, END_U1right), rest671)
-+
-+end
-+|  ( 119, ( ( _, ( _, _, END_STRIKE1right)) :: ( _, ( 
-+MlyValue.TextList TextList, _, _)) :: ( _, ( _, START_STRIKE1left, _))
-+ :: rest671)) => let val  result = MlyValue.Font (
-+HTML.STRIKE(TextList))
-+ in ( LrTable.NT 42, ( result, START_STRIKE1left, END_STRIKE1right), 
-+rest671)
-+end
-+|  ( 120, ( ( _, ( _, _, END_BIG1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_BIG1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Font (HTML.BIG(TextList))
-+ in ( LrTable.NT 42, ( result, START_BIG1left, END_BIG1right), rest671
-+)
-+end
-+|  ( 121, ( ( _, ( _, _, END_SMALL1right)) :: ( _, ( MlyValue.TextList
-+ TextList, _, _)) :: ( _, ( _, START_SMALL1left, _)) :: rest671)) =>
-+ let val  result = MlyValue.Font (HTML.SMALL(TextList))
-+ in ( LrTable.NT 42, ( result, START_SMALL1left, END_SMALL1right), 
-+rest671)
-+end
-+|  ( 122, ( ( _, ( _, _, END_SUB1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_SUB1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Font (HTML.SUB(TextList))
-+ in ( LrTable.NT 42, ( result, START_SUB1left, END_SUB1right), rest671
-+)
-+end
-+|  ( 123, ( ( _, ( _, _, END_SUP1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_SUP1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Font (HTML.SUP(TextList))
-+ in ( LrTable.NT 42, ( result, START_SUP1left, END_SUP1right), rest671
-+)
-+end
-+|  ( 124, ( ( _, ( _, _, END_EM1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_EM1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Phrase (HTML.EM(TextList))
-+ in ( LrTable.NT 43, ( result, START_EM1left, END_EM1right), rest671)
-+
-+end
-+|  ( 125, ( ( _, ( _, _, END_STRONG1right)) :: ( _, ( 
-+MlyValue.TextList TextList, _, _)) :: ( _, ( _, START_STRONG1left, _))
-+ :: rest671)) => let val  result = MlyValue.Phrase (
-+HTML.STRONG(TextList))
-+ in ( LrTable.NT 43, ( result, START_STRONG1left, END_STRONG1right), 
-+rest671)
-+end
-+|  ( 126, ( ( _, ( _, _, END_CODE1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_CODE1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Phrase (HTML.CODE(TextList))
-+ in ( LrTable.NT 43, ( result, START_CODE1left, END_CODE1right), 
-+rest671)
-+end
-+|  ( 127, ( ( _, ( _, _, END_DFN1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_DFN1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Phrase (HTML.DFN(TextList))
-+ in ( LrTable.NT 43, ( result, START_DFN1left, END_DFN1right), rest671
-+)
-+end
-+|  ( 128, ( ( _, ( _, _, END_SAMP1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_SAMP1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Phrase (HTML.SAMP(TextList))
-+ in ( LrTable.NT 43, ( result, START_SAMP1left, END_SAMP1right), 
-+rest671)
-+end
-+|  ( 129, ( ( _, ( _, _, END_KBD1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_KBD1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Phrase (HTML.KBD(TextList))
-+ in ( LrTable.NT 43, ( result, START_KBD1left, END_KBD1right), rest671
-+)
-+end
-+|  ( 130, ( ( _, ( _, _, END_VAR1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_VAR1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Phrase (HTML.VAR(TextList))
-+ in ( LrTable.NT 43, ( result, START_VAR1left, END_VAR1right), rest671
-+)
-+end
-+|  ( 131, ( ( _, ( _, _, END_CITE1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( _, START_CITE1left, _)) :: rest671)) => let
-+ val  result = MlyValue.Phrase (HTML.CITE(TextList))
-+ in ( LrTable.NT 43, ( result, START_CITE1left, END_CITE1right), 
-+rest671)
-+end
-+|  ( 132, ( ( _, ( _, _, END_A1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_A START_A, (START_Aleft as 
-+START_A1left), _)) :: rest671)) => let val  result = MlyValue.Special
-+ (HTMLAttrs.mkA(ctx START_Aleft, START_A, TextList))
-+ in ( LrTable.NT 44, ( result, START_A1left, END_A1right), rest671)
-+
-+end
-+|  ( 133, ( ( _, ( MlyValue.TAG_IMG TAG_IMG, (TAG_IMGleft as 
-+TAG_IMG1left), TAG_IMG1right)) :: rest671)) => let val  result = 
-+MlyValue.Special (HTMLAttrs.mkIMG(ctx TAG_IMGleft, TAG_IMG))
-+ in ( LrTable.NT 44, ( result, TAG_IMG1left, TAG_IMG1right), rest671)
-+
-+end
-+|  ( 134, ( ( _, ( _, _, END_APPLET1right)) :: ( _, ( 
-+MlyValue.TextList TextList, _, _)) :: ( _, ( MlyValue.START_APPLET 
-+START_APPLET, (START_APPLETleft as START_APPLET1left), _)) :: rest671)
-+) => let val  result = MlyValue.Special (
-+HTMLAttrs.mkAPPLET(ctx START_APPLETleft, START_APPLET, TextList))
-+ in ( LrTable.NT 44, ( result, START_APPLET1left, END_APPLET1right), 
-+rest671)
-+end
-+|  ( 135, ( ( _, ( _, _, END_FONT1right)) :: ( _, ( MlyValue.TextList 
-+TextList, _, _)) :: ( _, ( MlyValue.START_FONT START_FONT, (
-+START_FONTleft as START_FONT1left), _)) :: rest671)) => let val  
-+result = MlyValue.Special (
-+HTMLAttrs.mkFONT(ctx START_FONTleft, START_FONT, TextList))
-+ in ( LrTable.NT 44, ( result, START_FONT1left, END_FONT1right), 
-+rest671)
-+end
-+|  ( 136, ( ( _, ( _, _, END_BASEFONT1right)) :: ( _, ( 
-+MlyValue.TextList TextList, _, _)) :: ( _, ( MlyValue.START_BASEFONT 
-+START_BASEFONT, (START_BASEFONTleft as START_BASEFONT1left), _)) :: 
-+rest671)) => let val  result = MlyValue.Special (
-+HTMLAttrs.mkBASEFONT(
-+		  ctx START_BASEFONTleft, START_BASEFONT, TextList)
-+		
-+)
-+ in ( LrTable.NT 44, ( result, START_BASEFONT1left, END_BASEFONT1right
-+), rest671)
-+end
-+|  ( 137, ( ( _, ( MlyValue.TAG_BR TAG_BR, (TAG_BRleft as TAG_BR1left)
-+, TAG_BR1right)) :: rest671)) => let val  result = MlyValue.Special (
-+HTMLAttrs.mkBR(ctx TAG_BRleft, TAG_BR))
-+ in ( LrTable.NT 44, ( result, TAG_BR1left, TAG_BR1right), rest671)
-+
-+end
-+|  ( 138, ( ( _, ( _, _, END_MAP1right)) :: ( _, ( MlyValue.AreaList 
-+AreaList, _, _)) :: ( _, ( MlyValue.START_MAP START_MAP, (
-+START_MAPleft as START_MAP1left), _)) :: rest671)) => let val  result
-+ = MlyValue.Special (
-+HTMLAttrs.mkMAP(ctx START_MAPleft, START_MAP, AreaList))
-+ in ( LrTable.NT 44, ( result, START_MAP1left, END_MAP1right), rest671
-+)
-+end
-+|  ( 139, ( ( _, ( MlyValue.TAG_PARAM TAG_PARAM, (TAG_PARAMleft as 
-+TAG_PARAM1left), TAG_PARAM1right)) :: rest671)) => let val  result = 
-+MlyValue.Special (HTMLAttrs.mkPARAM(ctx TAG_PARAMleft, TAG_PARAM))
-+ in ( LrTable.NT 44, ( result, TAG_PARAM1left, TAG_PARAM1right), 
-+rest671)
-+end
-+|  ( 140, ( rest671)) => let val  result = MlyValue.AreaList ([])
-+ in ( LrTable.NT 45, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 141, ( ( _, ( MlyValue.AreaList AreaList, _, AreaList1right)) :: 
-+( _, ( MlyValue.TAG_AREA TAG_AREA, (TAG_AREAleft as TAG_AREA1left), _)
-+) :: rest671)) => let val  result = MlyValue.AreaList (
-+HTMLAttrs.mkAREA(ctx TAG_AREAleft, TAG_AREA) :: AreaList)
-+ in ( LrTable.NT 45, ( result, TAG_AREA1left, AreaList1right), rest671
-+)
-+end
-+|  ( 142, ( ( _, ( MlyValue.TAG_INPUT TAG_INPUT, (TAG_INPUTleft as 
-+TAG_INPUT1left), TAG_INPUT1right)) :: rest671)) => let val  result = 
-+MlyValue.Form (HTMLAttrs.mkINPUT(ctx TAG_INPUTleft, TAG_INPUT))
-+ in ( LrTable.NT 46, ( result, TAG_INPUT1left, TAG_INPUT1right), 
-+rest671)
-+end
-+|  ( 143, ( ( _, ( _, _, END_SELECT1right)) :: ( _, ( 
-+MlyValue.OptionList OptionList, _, _)) :: ( _, ( MlyValue.START_SELECT
-+ START_SELECT, (START_SELECTleft as START_SELECT1left), _)) :: rest671
-+)) => let val  result = MlyValue.Form (
-+HTMLAttrs.mkSELECT(ctx START_SELECTleft, START_SELECT, OptionList))
-+ in ( LrTable.NT 46, ( result, START_SELECT1left, END_SELECT1right), 
-+rest671)
-+end
-+|  ( 144, ( ( _, ( _, _, END_TEXTAREA1right)) :: ( _, ( 
-+MlyValue.PCData PCData, _, _)) :: ( _, ( MlyValue.START_TEXTAREA 
-+START_TEXTAREA, (START_TEXTAREAleft as START_TEXTAREA1left), _)) :: 
-+rest671)) => let val  result = MlyValue.Form (
-+HTMLAttrs.mkTEXTAREA(
-+		  ctx START_TEXTAREAleft, START_TEXTAREA,
-+		  PCData)
-+		
-+)
-+ in ( LrTable.NT 46, ( result, START_TEXTAREA1left, END_TEXTAREA1right
-+), rest671)
-+end
-+|  ( 145, ( rest671)) => let val  result = MlyValue.OptionList ([])
-+ in ( LrTable.NT 47, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 146, ( ( _, ( MlyValue.OptionList OptionList, _, OptionList1right
-+)) :: _ :: ( _, ( MlyValue.PCData PCData, _, _)) :: ( _, ( 
-+MlyValue.START_OPTION START_OPTION, (START_OPTIONleft as 
-+START_OPTION1left), _)) :: rest671)) => let val  result = 
-+MlyValue.OptionList (
-+HTMLAttrs.mkOPTION(ctx START_OPTIONleft, START_OPTION, PCData)
-+		  :: OptionList
-+		
-+)
-+ in ( LrTable.NT 47, ( result, START_OPTION1left, OptionList1right), 
-+rest671)
-+end
-+|  ( 147, ( rest671)) => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 48, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 148, ( ( _, ( _, END_OPTION1left, END_OPTION1right)) :: rest671))
-+ => let val  result = MlyValue.ntVOID ()
-+ in ( LrTable.NT 48, ( result, END_OPTION1left, END_OPTION1right), 
-+rest671)
-+end
-+|  ( 149, ( ( _, ( MlyValue.PCDataList PCDataList, PCDataList1left, 
-+PCDataList1right)) :: rest671)) => let val  result = MlyValue.PCData (
-+concat PCDataList)
-+ in ( LrTable.NT 49, ( result, PCDataList1left, PCDataList1right), 
-+rest671)
-+end
-+|  ( 150, ( rest671)) => let val  result = MlyValue.PCDataList ([])
-+ in ( LrTable.NT 50, ( result, defaultPos, defaultPos), rest671)
-+end
-+|  ( 151, ( ( _, ( MlyValue.PCDataList PCDataList, _, PCDataList1right
-+)) :: ( _, ( MlyValue.PCDataElem PCDataElem, PCDataElem1left, _)) :: 
-+rest671)) => let val  result = MlyValue.PCDataList (
-+PCDataElem :: PCDataList)
-+ in ( LrTable.NT 50, ( result, PCDataElem1left, PCDataList1right), 
-+rest671)
-+end
-+|  ( 152, ( ( _, ( MlyValue.PCDATA PCDATA, PCDATA1left, PCDATA1right))
-+ :: rest671)) => let val  result = MlyValue.PCDataElem (PCDATA)
-+ in ( LrTable.NT 51, ( result, PCDATA1left, PCDATA1right), rest671)
-+
-+end
-+|  ( 153, ( ( _, ( MlyValue.CHAR_REF CHAR_REF, CHAR_REF1left, 
-+CHAR_REF1right)) :: rest671)) => let val  result = MlyValue.PCDataElem
-+ (CHAR_REF)
-+ in ( LrTable.NT 51, ( result, CHAR_REF1left, CHAR_REF1right), rest671
-+)
-+end
-+|  ( 154, ( ( _, ( MlyValue.ENTITY_REF ENTITY_REF, ENTITY_REF1left, 
-+ENTITY_REF1right)) :: rest671)) => let val  result = 
-+MlyValue.PCDataElem (ENTITY_REF)
-+ in ( LrTable.NT 51, ( result, ENTITY_REF1left, ENTITY_REF1right), 
-+rest671)
-+end
-+| _ => raise (mlyAction i392)
-+end
-+val void = MlyValue.VOID
-+val extract = fn a => (fn MlyValue.Document x => x
-+| _ => let exception ParseInternal
-+	in raise ParseInternal end) a 
-+end
-+end
-+structure Tokens : HTML_TOKENS =
-+struct
-+type svalue = ParserData.svalue
-+type ('a,'b) token = ('a,'b) Token.token
-+fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_A (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(
-+ParserData.MlyValue.START_A i,p1,p2))
-+fun END_A (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_ADDRESS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_ADDRESS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_APPLET (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(
-+ParserData.MlyValue.START_APPLET i,p1,p2))
-+fun END_APPLET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun TAG_AREA (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(
-+ParserData.MlyValue.TAG_AREA i,p1,p2))
-+fun START_B (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_B (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun TAG_BASE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(
-+ParserData.MlyValue.TAG_BASE i,p1,p2))
-+fun START_BIG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_BIG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_BLOCKQUOTE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_BLOCKQUOTE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_BODY (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(
-+ParserData.MlyValue.START_BODY i,p1,p2))
-+fun END_BODY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun TAG_BR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(
-+ParserData.MlyValue.TAG_BR i,p1,p2))
-+fun START_CAPTION (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(
-+ParserData.MlyValue.START_CAPTION i,p1,p2))
-+fun END_CAPTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_CENTER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_CENTER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_CITE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_CITE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_CODE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_CODE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_DD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_DD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_DFN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_DFN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_DIR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(
-+ParserData.MlyValue.START_DIR i,p1,p2))
-+fun END_DIR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_DIV (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(
-+ParserData.MlyValue.START_DIV i,p1,p2))
-+fun END_DIV (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_DL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(
-+ParserData.MlyValue.START_DL i,p1,p2))
-+fun END_DL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_DT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_DT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_EM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_EM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_FONT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(
-+ParserData.MlyValue.START_FONT i,p1,p2))
-+fun END_FONT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_BASEFONT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,(
-+ParserData.MlyValue.START_BASEFONT i,p1,p2))
-+fun END_BASEFONT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_FORM (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,(
-+ParserData.MlyValue.START_FORM i,p1,p2))
-+fun END_FORM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_H1 (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 46,(
-+ParserData.MlyValue.START_H1 i,p1,p2))
-+fun END_H1 (p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_H2 (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,(
-+ParserData.MlyValue.START_H2 i,p1,p2))
-+fun END_H2 (p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_H3 (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,(
-+ParserData.MlyValue.START_H3 i,p1,p2))
-+fun END_H3 (p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_H4 (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,(
-+ParserData.MlyValue.START_H4 i,p1,p2))
-+fun END_H4 (p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_H5 (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,(
-+ParserData.MlyValue.START_H5 i,p1,p2))
-+fun END_H5 (p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_H6 (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,(
-+ParserData.MlyValue.START_H6 i,p1,p2))
-+fun END_H6 (p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_HEAD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_HEAD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun TAG_HR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,(
-+ParserData.MlyValue.TAG_HR i,p1,p2))
-+fun START_HTML (p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_HTML (p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_I (p1,p2) = Token.TOKEN (ParserData.LrTable.T 63,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_I (p1,p2) = Token.TOKEN (ParserData.LrTable.T 64,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun TAG_IMG (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,(
-+ParserData.MlyValue.TAG_IMG i,p1,p2))
-+fun TAG_INPUT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,(
-+ParserData.MlyValue.TAG_INPUT i,p1,p2))
-+fun TAG_ISINDEX (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,(
-+ParserData.MlyValue.TAG_ISINDEX i,p1,p2))
-+fun START_KBD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_KBD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 69,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_LI (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 70,(
-+ParserData.MlyValue.START_LI i,p1,p2))
-+fun END_LI (p1,p2) = Token.TOKEN (ParserData.LrTable.T 71,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun TAG_LINK (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 72,(
-+ParserData.MlyValue.TAG_LINK i,p1,p2))
-+fun START_MAP (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 73,(
-+ParserData.MlyValue.START_MAP i,p1,p2))
-+fun END_MAP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 74,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_MENU (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 75,(
-+ParserData.MlyValue.START_MENU i,p1,p2))
-+fun END_MENU (p1,p2) = Token.TOKEN (ParserData.LrTable.T 76,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun TAG_META (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 77,(
-+ParserData.MlyValue.TAG_META i,p1,p2))
-+fun START_OL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 78,(
-+ParserData.MlyValue.START_OL i,p1,p2))
-+fun END_OL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 79,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_OPTION (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 80,(
-+ParserData.MlyValue.START_OPTION i,p1,p2))
-+fun END_OPTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 81,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_P (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 82,(
-+ParserData.MlyValue.START_P i,p1,p2))
-+fun END_P (p1,p2) = Token.TOKEN (ParserData.LrTable.T 83,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun TAG_PARAM (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 84,(
-+ParserData.MlyValue.TAG_PARAM i,p1,p2))
-+fun START_PRE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 85,(
-+ParserData.MlyValue.START_PRE i,p1,p2))
-+fun END_PRE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 86,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_SAMP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 87,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_SAMP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 88,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_SCRIPT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 89,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_SCRIPT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 90,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_SELECT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 91,(
-+ParserData.MlyValue.START_SELECT i,p1,p2))
-+fun END_SELECT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 92,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_SMALL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 93,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_SMALL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 94,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_STRIKE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 95,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_STRIKE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 96,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_STRONG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 97,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_STRONG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 98,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_STYLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 99,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_STYLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 100,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_SUB (p1,p2) = Token.TOKEN (ParserData.LrTable.T 101,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_SUB (p1,p2) = Token.TOKEN (ParserData.LrTable.T 102,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_SUP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 103,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_SUP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 104,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_TABLE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 105,(
-+ParserData.MlyValue.START_TABLE i,p1,p2))
-+fun END_TABLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 106,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_TD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 107,(
-+ParserData.MlyValue.START_TD i,p1,p2))
-+fun END_TD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 108,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_TEXTAREA (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 109,(
-+ParserData.MlyValue.START_TEXTAREA i,p1,p2))
-+fun END_TEXTAREA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 110,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_TH (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 111,(
-+ParserData.MlyValue.START_TH i,p1,p2))
-+fun END_TH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 112,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_TITLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 113,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_TITLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 114,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_TR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 115,(
-+ParserData.MlyValue.START_TR i,p1,p2))
-+fun END_TR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 116,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_TT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 117,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_TT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 118,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_U (p1,p2) = Token.TOKEN (ParserData.LrTable.T 119,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_U (p1,p2) = Token.TOKEN (ParserData.LrTable.T 120,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_UL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 121,(
-+ParserData.MlyValue.START_UL i,p1,p2))
-+fun END_UL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 122,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun START_VAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 123,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun END_VAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 124,(
-+ParserData.MlyValue.VOID,p1,p2))
-+fun PCDATA (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 125,(
-+ParserData.MlyValue.PCDATA i,p1,p2))
-+fun CHAR_REF (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 126,(
-+ParserData.MlyValue.CHAR_REF i,p1,p2))
-+fun ENTITY_REF (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 127,(
-+ParserData.MlyValue.ENTITY_REF i,p1,p2))
-+end
-+end
+diff -Naur smlnj-lib/HTML/html-gram.sml smlnj-lib-mlton/HTML/html-gram.sml
+--- smlnj-lib/HTML/html-gram.sml	2005-11-19 12:16:57.000000000 -0500
++++ smlnj-lib-mlton/HTML/html-gram.sml	2005-11-19 13:58:31.000000000 -0500
+@@ -1226,10 +1226,11 @@
+ (T 3) $$ (T 2) $$ (T 0)end
+ structure Actions =
+ struct 
++type int = Int.int
+ exception mlyAction of int
+ local open Header in
+ val actions = 
+-fn (i392,defaultPos,stack,
++fn (i392:int,defaultPos,stack,
+     (ctx):arg) =>
+ case (i392,stack)
+ of  ( 0, ( ( _, ( _, _, EndHTML1right)) :: ( _, ( MlyValue.Body Body,
 diff -Naur smlnj-lib/HTML/html-lex.sml smlnj-lib-mlton/HTML/html-lex.sml
---- smlnj-lib/HTML/html-lex.sml	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-lex.sml	2005-08-18 12:09:08.000000000 -0400
-@@ -0,0 +1,672 @@
+--- smlnj-lib/HTML/html-lex.sml	2005-11-19 12:16:57.000000000 -0500
++++ smlnj-lib-mlton/HTML/html-lex.sml	2005-11-19 13:58:31.000000000 -0500
+@@ -1,3 +1,4 @@
 +type int = Int.int
-+functor HTMLLexFn (
-+  structure Tokens : HTML_TOKENS
-+  structure Err : HTML_ERROR
-+  structure HTMLAttrs : HTML_ATTRS)=
-+   struct
-+    structure UserDeclarations =
-+      struct
-+(* html-lex
-+ *
-+ * COPYRIGHT (c) 1995 AT&T Bell Laboratories.
-+ * COPYRIGHT (c) 1996 AT&T Research.
-+ *
-+ * A scanner for HTML.
-+ *
-+ * TODO:
-+ *    Recognize the DOCTYPE element
-+ *	<!DOCTYPE HTML PUBLIC "...">
-+ *    Clean-up the scanning of start tags (do we need Err?).
-+ *    Whitespace in PRE elements should be preserved, but how?
-+ *)
-+
-+structure T = Tokens
-+structure Elems = HTMLElementsFn (
-+  structure Tokens = Tokens
-+  structure Err = Err
-+  structure HTMLAttrs = HTMLAttrs)
-+
-+type pos = int
-+type svalue = T.svalue
-+type arg = (((string * int * int) -> unit) * string option)
-+type ('a, 'b) token = ('a, 'b) T.token
-+type lexresult= (svalue, pos) token
-+
-+fun eof _ = Tokens.EOF(0, 0)
-+
-+(* a buffer for collecting a string piecewise *)
-+val buffer = ref ([] : string list)
-+fun addStr s = (buffer := s :: !buffer)
-+fun getStr () = (String.concat(List.rev(! buffer)) before (buffer := []))
-+
-+end (* end of user routines *)
-+exception LexError (* raised if illegal leaf action tried *)
-+structure Internal =
-+	struct
-+
-+datatype yyfinstate = N of int
-+type statedata = {fin : yyfinstate list, trans: string}
-+(* transition & final state table *)
-+val tab = let
-+val s = [ 
-+ (0, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (1, 
-+"\009\009\009\009\009\009\009\009\009\028\029\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\028\009\009\009\009\009\020\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\011\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\
-+\\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009"
-+),
-+ (3, 
-+"\030\030\030\030\030\030\030\030\030\030\033\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\031\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
-+\\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030"
-+),
-+ (5, 
-+"\034\034\034\034\034\034\034\034\034\038\039\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\038\034\034\034\034\034\034\034\034\034\034\034\034\036\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\035\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\
-+\\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034\034"
-+),
-+ (7, 
-+"\040\040\040\040\040\040\040\040\040\051\053\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\
-+\\051\040\048\040\040\040\040\045\040\040\040\040\040\041\041\040\
-+\\041\041\041\041\041\041\041\041\041\041\040\040\040\044\043\040\
-+\\040\041\041\041\041\041\041\041\041\041\041\041\041\041\041\041\
-+\\041\041\041\041\041\041\041\041\041\041\041\040\040\040\040\040\
-+\\040\041\041\041\041\041\041\041\041\041\041\041\041\041\041\041\
-+\\041\041\041\041\041\041\041\041\041\041\041\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\
-+\\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"
-+),
-+ (9, 
-+"\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\000\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010"
-+),
-+ (11, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\017\000\000\000\000\000\000\000\000\000\000\000\000\000\013\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\
-+\\012\012\012\012\012\012\012\012\012\012\012\000\000\000\000\000\
-+\\000\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\
-+\\012\012\012\012\012\012\012\012\012\012\012\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (12, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\012\012\000\
-+\\012\012\012\012\012\012\012\012\012\012\000\000\000\000\000\000\
-+\\000\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\
-+\\012\012\012\012\012\012\012\012\012\012\012\000\000\000\000\000\
-+\\000\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\
-+\\012\012\012\012\012\012\012\012\012\012\012\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (13, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\014\014\014\014\014\014\014\014\014\014\014\014\014\014\014\
-+\\014\014\014\014\014\014\014\014\014\014\014\000\000\000\000\000\
-+\\000\014\014\014\014\014\014\014\014\014\014\014\014\014\014\014\
-+\\014\014\014\014\014\014\014\014\014\014\014\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (14, 
-+"\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\016\000\000\000\000\000\000\000\000\000\000\000\000\014\014\000\
-+\\014\014\014\014\014\014\014\014\014\014\000\000\000\000\015\000\
-+\\000\014\014\014\014\014\014\014\014\014\014\014\014\014\014\014\
-+\\014\014\014\014\014\014\014\014\014\014\014\000\000\000\000\000\
-+\\000\014\014\014\014\014\014\014\014\014\014\014\014\014\014\014\
-+\\014\014\014\014\014\014\014\014\014\014\014\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (16, 
-+"\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (17, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (18, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\019\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (20, 
-+"\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\023\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\000\010\010\010\
-+\\010\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
-+\\021\021\021\021\021\021\021\021\021\021\021\010\010\010\010\010\
-+\\010\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
-+\\021\021\021\021\021\021\021\021\021\021\021\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010"
-+),
-+ (21, 
-+"\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\021\021\010\
-+\\021\021\021\021\021\021\021\021\021\021\010\022\000\010\010\010\
-+\\010\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
-+\\021\021\021\021\021\021\021\021\021\021\021\010\010\010\010\010\
-+\\010\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
-+\\021\021\021\021\021\021\021\021\021\021\021\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010"
-+),
-+ (23, 
-+"\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\026\026\026\026\026\026\026\026\026\026\010\010\000\010\010\010\
-+\\010\024\024\024\024\024\024\024\024\024\024\024\024\024\024\024\
-+\\024\024\024\024\024\024\024\024\024\024\024\010\010\010\010\010\
-+\\010\024\024\024\024\024\024\024\024\024\024\024\024\024\024\024\
-+\\024\024\024\024\024\024\024\024\024\024\024\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010"
-+),
-+ (24, 
-+"\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\025\000\010\010\010\
-+\\010\024\024\024\024\024\024\024\024\024\024\024\024\024\024\024\
-+\\024\024\024\024\024\024\024\024\024\024\024\010\010\010\010\010\
-+\\010\024\024\024\024\024\024\024\024\024\024\024\024\024\024\024\
-+\\024\024\024\024\024\024\024\024\024\024\024\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010"
-+),
-+ (26, 
-+"\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\026\026\026\026\026\026\026\026\026\026\010\027\000\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\
-+\\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010\010"
-+),
-+ (31, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\032\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (36, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\037\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (41, 
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\042\042\000\
-+\\042\042\042\042\042\042\042\042\042\042\000\000\000\000\000\000\
-+\\000\042\042\042\042\042\042\042\042\042\042\042\042\042\042\042\
-+\\042\042\042\042\042\042\042\042\042\042\042\000\000\000\000\000\
-+\\000\042\042\042\042\042\042\042\042\042\042\042\042\042\042\042\
-+\\042\042\042\042\042\042\042\042\042\042\042\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+ (45, 
-+"\046\046\046\046\046\046\046\046\046\046\000\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\047\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\
-+\\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046\046"
-+),
-+ (48, 
-+"\049\049\049\049\049\049\049\049\049\049\000\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\050\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
-+\\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049"
-+),
-+ (51, 
-+"\000\000\000\000\000\000\000\000\000\052\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\052\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
-+),
-+(0, "")]
-+fun f x = x 
-+val s = map f (rev (tl (rev s))) 
-+exception LexHackingError 
+ functor HTMLLexFn (
+   structure Tokens : HTML_TOKENS
+   structure Err : HTML_ERROR
+@@ -484,7 +485,7 @@
+ fun f x = x 
+ val s = map f (rev (tl (rev s))) 
+ exception LexHackingError 
+-fun look ((j,x)::r, i: int) = if i = j then x else look(r, i) 
 +fun look ((j,x)::r, i) = if i = j then x else look(r, i) 
-+  | look ([], i) = raise LexHackingError
-+fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} 
-+in Vector.fromList(map g 
-+[{fin = [], trans = 0},
-+{fin = [], trans = 1},
-+{fin = [], trans = 1},
-+{fin = [], trans = 3},
-+{fin = [], trans = 3},
-+{fin = [], trans = 5},
-+{fin = [], trans = 5},
-+{fin = [], trans = 7},
-+{fin = [], trans = 7},
-+{fin = [(N 79),(N 81)], trans = 9},
-+{fin = [(N 79)], trans = 9},
-+{fin = [(N 81)], trans = 11},
-+{fin = [(N 3)], trans = 12},
-+{fin = [], trans = 13},
-+{fin = [], trans = 14},
-+{fin = [(N 32)], trans = 0},
-+{fin = [], trans = 16},
-+{fin = [], trans = 17},
-+{fin = [], trans = 18},
-+{fin = [(N 37)], trans = 0},
-+{fin = [(N 79),(N 81)], trans = 20},
-+{fin = [(N 79)], trans = 21},
-+{fin = [(N 72),(N 79)], trans = 9},
-+{fin = [(N 79)], trans = 23},
-+{fin = [(N 79)], trans = 24},
-+{fin = [(N 61),(N 79)], trans = 9},
-+{fin = [(N 79)], trans = 26},
-+{fin = [(N 67),(N 79)], trans = 9},
-+{fin = [(N 76),(N 79),(N 81)], trans = 9},
-+{fin = [(N 74),(N 79)], trans = 9},
-+{fin = [(N 44)], trans = 0},
-+{fin = [(N 44)], trans = 31},
-+{fin = [(N 40)], trans = 0},
-+{fin = [(N 42)], trans = 0},
-+{fin = [(N 55)], trans = 0},
-+{fin = [(N 49),(N 55)], trans = 0},
-+{fin = [(N 55)], trans = 36},
-+{fin = [(N 47)], trans = 0},
-+{fin = [(N 53),(N 55)], trans = 0},
-+{fin = [(N 51)], trans = 0},
-+{fin = [(N 25)], trans = 0},
-+{fin = [(N 13),(N 25)], trans = 41},
-+{fin = [(N 13)], trans = 41},
-+{fin = [(N 5),(N 25)], trans = 0},
-+{fin = [(N 15),(N 25)], trans = 0},
-+{fin = [(N 25)], trans = 45},
-+{fin = [], trans = 45},
-+{fin = [(N 23)], trans = 0},
-+{fin = [(N 25)], trans = 48},
-+{fin = [], trans = 48},
-+{fin = [(N 19)], trans = 0},
-+{fin = [(N 10),(N 25)], trans = 51},
-+{fin = [(N 10)], trans = 51},
-+{fin = [(N 7)], trans = 0}])
-+end
-+structure StartStates =
-+	struct
-+	datatype yystartstate = STARTSTATE of int
-+
-+(* start state definitions *)
-+
-+val COM1 = STARTSTATE 3;
-+val COM2 = STARTSTATE 5;
-+val INITIAL = STARTSTATE 1;
-+val STAG = STARTSTATE 7;
-+
-+end
-+type result = UserDeclarations.lexresult
-+	exception LexerError (* raised if illegal leaf action tried *)
-+end
-+
+   | look ([], i) = raise LexHackingError
+ fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} 
+ in Vector.fromList(map g 
+@@ -559,30 +560,31 @@
+ 	exception LexerError (* raised if illegal leaf action tried *)
+ end
+ 
+-fun makeLexer yyinput =
+-let	val yygone0=1
+-	val yylineno = ref 0
 +type int = Int.int
 +fun makeLexer (yyinput: int -> string) =
 +let	val yygone0:int= ~1
 +	val yylineno: int ref = ref 0
-+
-+	val yyb = ref "\n" 		(* buffer *)
+ 
+ 	val yyb = ref "\n" 		(* buffer *)
+-	val yybl = ref 1		(*buffer length *)
+-	val yybufpos = ref 1		(* location of next character to use *)
+-	val yygone = ref yygone0	(* position in file of beginning of buffer *)
 +	val yybl: int ref = ref 1		(*buffer length *)
 +	val yybufpos: int ref = ref 1		(* location of next character to use *)
 +	val yygone: int ref = ref yygone0	(* position in file of beginning of buffer *)
-+	val yydone = ref false		(* eof found yet? *)
+ 	val yydone = ref false		(* eof found yet? *)
+-	val yybegin = ref 1		(*Current 'start state' for lexer *)
 +	val yybegin: int ref = ref 1		(*Current 'start state' for lexer *)
-+
-+	val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
-+		 yybegin := x
-+
-+fun lex (yyarg as (errorFn, file)) =
-+let fun continue() : Internal.result = 
+ 
+ 	val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
+ 		 yybegin := x
+ 
+ fun lex (yyarg as (errorFn, file)) =
+ let fun continue() : Internal.result = 
+-  let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0) =
+-	let fun action (i,nil) = raise LexError
 +  let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0: int) =
 +	let fun action (i: int,nil) = raise LexError
-+	| action (i,nil::l) = action (i-1,l)
-+	| action (i,(node::acts)::l) =
-+		case node of
-+		    Internal.N yyk => 
+ 	| action (i,nil::l) = action (i-1,l)
+ 	| action (i,(node::acts)::l) =
+ 		case node of
+ 		    Internal.N yyk => 
+-			(let fun yymktext() = substring(!yyb,i0,i-i0)
+-			     val yypos = i0+ !yygone
 +			(let fun yymktext() = String.substring(!yyb,i0,i-i0)
 +			     val yypos: int = i0+ !yygone
-+			val _ = yylineno := CharVectorSlice.foldli
-+				(fn (_,#"\n", n) => n+1 | (_,_, n) => n) (!yylineno) (CharVectorSlice.slice (!yyb,i0,SOME(i-i0)))
-+			open UserDeclarations Internal.StartStates
-+ in (yybufpos := i; case yyk of 
-+
-+			(* Application actions *)
-+
-+  10 => let val yytext=yymktext() in addStr yytext; continue() end
-+| 13 => let val yytext=yymktext() in addStr yytext; continue() end
-+| 15 => let val yytext=yymktext() in addStr yytext; continue() end
-+| 19 => let val yytext=yymktext() in addStr yytext; continue() end
-+| 23 => let val yytext=yymktext() in addStr yytext; continue() end
-+| 25 => let val yytext=yymktext() in addStr yytext; continue() end
-+| 3 => let val yytext=yymktext() in addStr yytext; YYBEGIN STAG; continue() end
-+| 32 => let val yytext=yymktext() in case Elems.endTag file (yytext, !yylineno, !yylineno)
-+	     of NONE => continue()
-+	      | (SOME tag) => tag
-+	    (* end case *) end
-+| 37 => (YYBEGIN COM1; continue())
-+| 40 => (YYBEGIN COM2; continue())
-+| 42 => (continue())
-+| 44 => (continue())
-+| 47 => (YYBEGIN COM1; continue())
-+| 49 => (YYBEGIN INITIAL; continue())
-+| 5 => let val yytext=yymktext() in addStr yytext;
-+	    YYBEGIN INITIAL;
-+	    case Elems.startTag file (getStr(), !yylineno, !yylineno)
-+	     of NONE => continue()
-+	      | (SOME tag) => tag
-+	    (* end case *) end
-+| 51 => (continue())
-+| 53 => (continue())
-+| 55 => (errorFn("bad comment syntax", !yylineno, !yylineno+1);
-+	    YYBEGIN INITIAL;
-+	    continue())
-+| 61 => (
-+(** At some point, we should support &#SPACE; and &#TAB; **)
-+	    continue())
-+| 67 => let val yytext=yymktext() in T.CHAR_REF(yytext, !yylineno, !yylineno) end
-+| 7 => (addStr " "; continue())
-+| 72 => let val yytext=yymktext() in T.ENTITY_REF(yytext, !yylineno, !yylineno) end
-+| 74 => (continue())
-+| 76 => (continue())
-+| 79 => let val yytext=yymktext() in T.PCDATA(yytext, !yylineno, !yylineno) end
-+| 81 => let val yytext=yymktext() in errorFn(concat[
-+		"bogus character #\"", Char.toString(String.sub(yytext, 0)),
-+		"\" in PCDATA\n"
-+	      ], !yylineno, !yylineno+1);
-+	    continue() end
-+| _ => raise Internal.LexerError
-+
-+		) end )
-+
+ 			val _ = yylineno := CharVectorSlice.foldli
+ 				(fn (_,#"\n", n) => n+1 | (_,_, n) => n) (!yylineno) (CharVectorSlice.slice (!yyb,i0,SOME(i-i0)))
+ 			open UserDeclarations Internal.StartStates
+@@ -636,30 +638,30 @@
+ 
+ 		) end )
+ 
+-	val {fin,trans} = Unsafe.Vector.sub(Internal.tab, s)
 +	val {fin,trans} = Vector.sub (Internal.tab, s)
-+	val NewAcceptingLeaves = fin::AcceptingLeaves
-+	in if l = !yybl then
-+	     if trans = #trans(Vector.sub(Internal.tab,0))
-+	       then action(l,NewAcceptingLeaves
-+) else	    let val newchars= if !yydone then "" else yyinput 1024
+ 	val NewAcceptingLeaves = fin::AcceptingLeaves
+ 	in if l = !yybl then
+ 	     if trans = #trans(Vector.sub(Internal.tab,0))
+ 	       then action(l,NewAcceptingLeaves
+ ) else	    let val newchars= if !yydone then "" else yyinput 1024
+-	    in if (size newchars)=0
 +	    in if (String.size newchars)=0
-+		  then (yydone := true;
-+		        if (l=i0) then UserDeclarations.eof yyarg
-+		                  else action(l,NewAcceptingLeaves))
-+		  else (if i0=l then yyb := newchars
+ 		  then (yydone := true;
+ 		        if (l=i0) then UserDeclarations.eof yyarg
+ 		                  else action(l,NewAcceptingLeaves))
+ 		  else (if i0=l then yyb := newchars
+-		     else yyb := substring(!yyb,i0,l-i0)^newchars;
 +		     else yyb := String.substring(!yyb,i0,l-i0)^newchars;
-+		     yygone := !yygone+i0;
+ 		     yygone := !yygone+i0;
+-		     yybl := size (!yyb);
 +		     yybl := String.size (!yyb);
-+		     scan (s,AcceptingLeaves,l-i0,0))
-+	    end
+ 		     scan (s,AcceptingLeaves,l-i0,0))
+ 	    end
+-	  else let val NewChar = Char.ord(Unsafe.CharVector.sub(!yyb,l))
+-		val NewState = Char.ord(Unsafe.CharVector.sub(trans,NewChar))
 +	  else let val NewChar = Char.ord (CharVector.sub (!yyb,l))
 +		val NewState = Char.ord (CharVector.sub (trans,NewChar))
-+		in if NewState=0 then action(l,NewAcceptingLeaves)
-+		else scan(NewState,NewAcceptingLeaves,l+1,i0)
-+	end
-+	end
-+(*
+ 		in if NewState=0 then action(l,NewAcceptingLeaves)
+ 		else scan(NewState,NewAcceptingLeaves,l+1,i0)
+ 	end
+ 	end
+ (*
+-	val start= if substring(!yyb,!yybufpos-1,1)="\n"
 +	val start= if String.substring(!yyb,!yybufpos-1,1)="\n"
-+then !yybegin+1 else !yybegin
-+*)
-+	in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos)
-+    end
-+in continue end
-+  in lex
-+  end
-+end
+ then !yybegin+1 else !yybegin
+ *)
+ 	in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos)
 diff -Naur smlnj-lib/HTML/html-lib.mlb smlnj-lib-mlton/HTML/html-lib.mlb
 --- smlnj-lib/HTML/html-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-lib.mlb	2005-08-18 12:18:13.000000000 -0400
++++ smlnj-lib-mlton/HTML/html-lib.mlb	2005-11-19 13:58:32.000000000 -0500
 @@ -0,0 +1,300 @@
 +
 +ann
@@ -9834,7 +828,7 @@
 +local
 +  basis l5 = 
 +    bas
-+      (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb deviations.sml
++      (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb 
 +    end
 +  basis l46 = 
 +    bas
@@ -10126,7 +1120,7 @@
 +end
 diff -Naur smlnj-lib/INet/inet-lib.mlb smlnj-lib-mlton/INet/inet-lib.mlb
 --- smlnj-lib/INet/inet-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/INet/inet-lib.mlb	2005-08-18 12:18:13.000000000 -0400
++++ smlnj-lib-mlton/INet/inet-lib.mlb	2005-11-19 13:58:32.000000000 -0500
 @@ -0,0 +1,144 @@
 +
 +ann
@@ -10274,8 +1268,8 @@
 +end
 diff -Naur smlnj-lib/PP/pp-lib.mlb smlnj-lib-mlton/PP/pp-lib.mlb
 --- smlnj-lib/PP/pp-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/PP/pp-lib.mlb	2005-08-18 12:18:14.000000000 -0400
-@@ -0,0 +1,158 @@
++++ smlnj-lib-mlton/PP/pp-lib.mlb	2005-11-19 13:58:32.000000000 -0500
+@@ -0,0 +1,212 @@
 +
 +ann
 +  "nonexhaustiveMatch warn" "redundantMatch warn"
@@ -10292,7 +1286,7 @@
 +    bas
 +      (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb
 +    end
-+  basis l63 = 
++  basis l83 = 
 +    bas
 +      (* $/html-lib.cm ====> *) $(SML_LIB)/smlnj-lib/HTML/html-lib.mlb
 +    end
@@ -10385,58 +1379,112 @@
 +      functor gs_13 = PPStreamFn
 +   end
 +   local
++      signature PP_STREAM = gs_1
++      src/pp-desc-sig.sml
++   in
++      signature gs_14 = PP_DESC
++   end
++   local
++      signature PP_DESC = gs_14
++      signature PP_STREAM = gs_1
++      src/pp-desc-fn.sml
++   in
++      functor gs_15 = PPDescFn
++   end
++   local
 +      signature PP_TOKEN = gs_12
 +      structure String = gs_9
 +      devices/string-token.sml
 +   in
-+      structure gs_14 = StringToken
++      structure gs_16 = StringToken
 +   end
 +   local
 +      functor PPStreamFn = gs_13
 +      signature PP_STREAM = gs_1
 +      structure SimpleTextIODev = gs_5
-+      structure StringToken = gs_14
++      structure StringToken = gs_16
 +      structure TextIO = gs_0
 +      devices/textio-pp.sml
 +   in
-+      structure gs_15 = TextIOPP
++      structure gs_17 = TextIOPP
 +   end
 +   local
++      open l26
++   in
++      structure gs_18 = ANSITerm
++   end
++   local
 +      open l4
 +   in
-+      structure gs_16 = List
++      structure gs_19 = TextPrimIO
 +   end
 +   local
-+      open l63
++      open l4
 +   in
-+      structure gs_17 = HTML
++      structure gs_20 = OS
 +   end
 +   local
-+      structure HTML = gs_17
-+      structure List = gs_16
++      structure ANSITerm = gs_18
++      structure OS = gs_20
 +      signature PP_DEVICE = gs_3
++      structure StringCvt = gs_4
++      structure TextIO = gs_0
++      structure TextPrimIO = gs_19
++      devices/ansi-term-dev.sml
++   in
++      structure gs_21 = ANSITermDev
++   end
++   local
++      open l4
++   in
++      structure gs_22 = List
++   end
++   local
++      open l83
++   in
++      structure gs_23 = HTML
++   end
++   local
++      structure HTML = gs_23
++      structure List = gs_22
++      signature PP_DEVICE = gs_3
 +      structure String = gs_9
 +      devices/html-dev.sml
 +   in
-+      structure gs_18 = HTMLDev
++      structure gs_24 = HTMLDev
 +   end
++   local
++      structure ANSITermDev = gs_21
++      functor PPStreamFn = gs_13
++      signature PP_STREAM = gs_1
++      signature PP_TOKEN = gs_12
++      structure String = gs_9
++      structure TextIO = gs_0
++      devices/ansi-term-pp.sml
++   in
++      structure gs_25 = ANSITermPP
++   end
 +in
-+   structure HTMLDev = gs_18
++   structure ANSITermDev = gs_21
++   structure ANSITermPP = gs_25
++   structure HTMLDev = gs_24
 +   functor PPDebugFn = gs_2
++   functor PPDescFn = gs_15
 +   functor PPStreamFn = gs_13
++   signature PP_DESC = gs_14
 +   signature PP_DEVICE = gs_3
 +   signature PP_STREAM = gs_1
 +   signature PP_TOKEN = gs_12
 +   structure SimpleTextIODev = gs_5
-+   structure StringToken = gs_14
-+   structure TextIOPP = gs_15
++   structure StringToken = gs_16
++   structure TextIOPP = gs_17
 +end
 +end
 +
 +end
 diff -Naur smlnj-lib/Reactive/reactive-lib.mlb smlnj-lib-mlton/Reactive/reactive-lib.mlb
 --- smlnj-lib/Reactive/reactive-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Reactive/reactive-lib.mlb	2005-08-18 12:18:14.000000000 -0400
++++ smlnj-lib-mlton/Reactive/reactive-lib.mlb	2005-11-19 13:58:33.000000000 -0500
 @@ -0,0 +1,70 @@
 +
 +ann
@@ -10510,14 +1558,13 @@
 +end
 diff -Naur smlnj-lib/README.mlton smlnj-lib-mlton/README.mlton
 --- smlnj-lib/README.mlton	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/README.mlton	2005-08-17 20:24:05.000000000 -0400
-@@ -0,0 +1,18 @@
++++ smlnj-lib-mlton/README.mlton	2005-11-17 15:56:55.000000000 -0500
+@@ -0,0 +1,15 @@
 +The following changes were made to the SML/NJ Library, in addition to
 +deriving the {{{.mlb}}} files from the {{{.cm}}} files:
-+ * {{{Util/deviations.sml}}} (added): Accomodate [:SMLNJDeviations: SML/NJ's deviations] from the [http://www.standardml.org/Basis Basis Library specification].
 + * {{{Util/redblack-set-fn.sml}}} (modified): Rewrote use of {{{where}}} structure specification.
 + * {{{Util/redblack-map-fn.sml}}} (modified): Rewrote use of {{{where}}} structure specification.
-+ * {{{Util/graph-scc.sml}}} (modified): Rewrote use of {{{where}}} structure specification.
++ * {{{Util/graph-scc-fn.sml}}} (modified): Rewrote use of {{{where}}} structure specification.
 + * {{{Util/bit-array.sml}}} (modified): The computation of the {{{maxLen}}} is given by: {{{
 +val maxLen = 8*Word8Array.maxLen
 +}}} This is fine in SML/NJ where {{{Word8Array.maxLen}}} is 16777215, but in MLton, {{{Word8Array.maxLen}}} is equal to {{{valOf(Int.maxInt)}}}, so the computation overflows. To accomodate both SML/NJ and MLton, the computation is replaced by {{{
@@ -10526,13 +1573,11 @@
 + * {{{Util/engine.mlton.sml}}} (added, not exported): Implements {{{structure Engine}}}, providing time-limited, resumable computations using ["MLtonThread"], ["MLtonSignal"], and ["MLtonItimer"].
 + * {{{Util/time-limit.mlton.sml}}} (added): Implements {{{structure TimeLimit}}} using {{{structure Engine}}}.  The SML/NJ implementation of {{{structure TimeLimit}}} uses SML/NJ's first-class continuations, signals, and interval timer.
 + * {{{Util/time-limit.mlb}}} (added): Exports {{{structure TimeLimit}}}, which is ''not'' exported by {{{smlnj-lib.mlb}}}.  Since MLton is very conservative in the presence of threads and signals, program performance may be adversely affected by unecessarily including {{{structure TimeLimit}}}.
-+ * {{{Unix/deviations.sml}}} (added, not exported): Accomodate [:SMLNJDeviations: SML/NJ's deviations] from the [http://www.standardml.org/Basis Basis Library specification].
-+ * {{{HTML/deviations.sml}}} (added, not exported): Accomodate [:SMLNJDeviations: SML/NJ's deviations] from the [http://www.standardml.org/Basis Basis Library specification].
 + * {{{HTML/html-elements-fn.sml}}} (modified): Rewrote use of ''or-patterns''.
 + * {{{HTML/html-attrs-fn.sml}}} (modified): Rewrote use of ''or-patterns''.
 diff -Naur smlnj-lib/RegExp/regexp-lib.mlb smlnj-lib-mlton/RegExp/regexp-lib.mlb
 --- smlnj-lib/RegExp/regexp-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/RegExp/regexp-lib.mlb	2005-08-18 12:18:15.000000000 -0400
++++ smlnj-lib-mlton/RegExp/regexp-lib.mlb	2005-11-19 13:58:33.000000000 -0500
 @@ -0,0 +1,214 @@
 +
 +ann
@@ -10750,7 +1795,7 @@
 +end
 diff -Naur smlnj-lib/smlnj-lib.mlb smlnj-lib-mlton/smlnj-lib.mlb
 --- smlnj-lib/smlnj-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/smlnj-lib.mlb	2005-08-17 20:23:34.000000000 -0400
++++ smlnj-lib-mlton/smlnj-lib.mlb	2005-08-17 20:13:05.000000000 -0400
 @@ -0,0 +1,13 @@
 +local
 +   Controls/controls-lib.mlb
@@ -10765,22 +1810,9 @@
 +   Util/time-limit.mlb
 +in 
 +end
-diff -Naur smlnj-lib/Unix/deviations.sml smlnj-lib-mlton/Unix/deviations.sml
---- smlnj-lib/Unix/deviations.sml	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Unix/deviations.sml	2005-08-17 20:23:34.000000000 -0400
-@@ -0,0 +1,9 @@
-+structure Substring : 
-+   sig 
-+      include SUBSTRING
-+      val all : string -> substring
-+   end =
-+   struct
-+      open Substring
-+      val all = full
-+   end
 diff -Naur smlnj-lib/Unix/unix-lib.mlb smlnj-lib-mlton/Unix/unix-lib.mlb
 --- smlnj-lib/Unix/unix-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Unix/unix-lib.mlb	2005-08-18 12:18:15.000000000 -0400
++++ smlnj-lib-mlton/Unix/unix-lib.mlb	2005-11-19 13:58:33.000000000 -0500
 @@ -0,0 +1,45 @@
 +
 +ann
@@ -10792,7 +1824,7 @@
 +local
 +  basis l4 = 
 +    bas
-+      (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb deviations.sml
++      (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb 
 +    end
 +in
 +local
@@ -10828,8 +1860,8 @@
 +
 +end
 diff -Naur smlnj-lib/Util/bit-array.sml smlnj-lib-mlton/Util/bit-array.sml
---- smlnj-lib/Util/bit-array.sml	2003-09-05 17:34:26.000000000 -0400
-+++ smlnj-lib-mlton/Util/bit-array.sml	2005-08-17 20:23:34.000000000 -0400
+--- smlnj-lib/Util/bit-array.sml	2004-11-20 10:28:05.000000000 -0500
++++ smlnj-lib-mlton/Util/bit-array.sml	2005-08-17 20:13:05.000000000 -0400
 @@ -47,7 +47,9 @@
           * We maintain the invariant that all bits >= nbits are 0.
           *)
@@ -10841,24 +1873,9 @@
            datatype vector = BA of {nbits : int, bits : W8A.array}
        
            fun array (0,init) = BA{nbits=0,bits=W8A.array(0,0w0)}
-diff -Naur smlnj-lib/Util/deviations.sml smlnj-lib-mlton/Util/deviations.sml
---- smlnj-lib/Util/deviations.sml	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Util/deviations.sml	2005-08-17 20:23:34.000000000 -0400
-@@ -0,0 +1,11 @@
-+structure Substring : 
-+   sig 
-+      include SUBSTRING
-+      val all : string -> substring
-+   end =
-+   struct
-+      open Substring
-+      val all = full
-+   end
-+
-+structure Pack32Big = PackWord32Big
 diff -Naur smlnj-lib/Util/engine.mlton.sml smlnj-lib-mlton/Util/engine.mlton.sml
 --- smlnj-lib/Util/engine.mlton.sml	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Util/engine.mlton.sml	2005-08-17 20:23:34.000000000 -0400
++++ smlnj-lib-mlton/Util/engine.mlton.sml	2005-08-17 20:13:05.000000000 -0400
 @@ -0,0 +1,99 @@
 +(* Copyright (C) 1999-2004 Henry Cejtin, Matthew Fluet, Suresh
 + *    Jagannathan, and Stephen Weeks.
@@ -10959,9 +1976,9 @@
 +   end
 +
 +end
-diff -Naur smlnj-lib/Util/graph-scc.sml smlnj-lib-mlton/Util/graph-scc.sml
---- smlnj-lib/Util/graph-scc.sml	2001-05-04 12:37:36.000000000 -0400
-+++ smlnj-lib-mlton/Util/graph-scc.sml	2005-08-17 20:23:49.000000000 -0400
+diff -Naur smlnj-lib/Util/graph-scc-fn.sml smlnj-lib-mlton/Util/graph-scc-fn.sml
+--- smlnj-lib/Util/graph-scc-fn.sml	2005-08-04 22:26:29.000000000 -0400
++++ smlnj-lib-mlton/Util/graph-scc-fn.sml	2005-08-17 20:13:05.000000000 -0400
 @@ -8,7 +8,7 @@
   * author: Matthias Blume
   *) 
@@ -10972,8 +1989,8 @@
      structure Nd = Nd
  
 diff -Naur smlnj-lib/Util/redblack-map-fn.sml smlnj-lib-mlton/Util/redblack-map-fn.sml
---- smlnj-lib/Util/redblack-map-fn.sml	2002-05-16 14:44:04.000000000 -0400
-+++ smlnj-lib-mlton/Util/redblack-map-fn.sml	2005-08-17 20:23:49.000000000 -0400
+--- smlnj-lib/Util/redblack-map-fn.sml	2004-11-20 10:28:05.000000000 -0500
++++ smlnj-lib-mlton/Util/redblack-map-fn.sml	2005-08-17 20:13:05.000000000 -0400
 @@ -20,7 +20,7 @@
   * its child will be a red leaf.
   *)
@@ -10984,8 +2001,8 @@
  
      structure Key = K
 diff -Naur smlnj-lib/Util/redblack-set-fn.sml smlnj-lib-mlton/Util/redblack-set-fn.sml
---- smlnj-lib/Util/redblack-set-fn.sml	2001-05-04 12:37:36.000000000 -0400
-+++ smlnj-lib-mlton/Util/redblack-set-fn.sml	2005-08-17 20:23:49.000000000 -0400
+--- smlnj-lib/Util/redblack-set-fn.sml	2004-11-20 10:28:05.000000000 -0500
++++ smlnj-lib-mlton/Util/redblack-set-fn.sml	2005-08-17 20:13:05.000000000 -0400
 @@ -20,7 +20,7 @@
   * its child will be a red leaf.
   *)
@@ -10997,8 +2014,8 @@
      structure Key = K
 diff -Naur smlnj-lib/Util/smlnj-lib.mlb smlnj-lib-mlton/Util/smlnj-lib.mlb
 --- smlnj-lib/Util/smlnj-lib.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Util/smlnj-lib.mlb	2005-08-18 12:18:18.000000000 -0400
-@@ -0,0 +1,1077 @@
++++ smlnj-lib-mlton/Util/smlnj-lib.mlb	2005-11-19 13:58:35.000000000 -0500
+@@ -0,0 +1,1099 @@
 +
 +ann
 +  "nonexhaustiveMatch warn" "redundantMatch warn"
@@ -11009,7 +2026,7 @@
 +local
 +  basis l4 = 
 +    bas
-+      (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb $(SML_LIB)/basis/unsafe.mlb $(SML_LIB)/basis/sml-nj.mlb deviations.sml
++      (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb $(SML_LIB)/basis/unsafe.mlb $(SML_LIB)/basis/sml-nj.mlb
 +    end
 +in
 +local
@@ -11225,88 +2242,99 @@
 +      structure gs_32 = GetOpt
 +   end
 +   local
++      interval-domain-sig.sml
++   in
++      signature gs_33 = INTERVAL_DOMAIN
++   end
++   local
++      signature INTERVAL_DOMAIN = gs_33
++      interval-set-sig.sml
++   in
++      signature gs_34 = INTERVAL_SET
++   end
++   local
 +      structure StringCvt = gs_29
 +      parser-comb-sig.sml
 +   in
-+      signature gs_33 = PARSER_COMB
++      signature gs_35 = PARSER_COMB
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_34 = Word8
++      structure gs_36 = Word8
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_35 = CharVector
++      structure gs_37 = CharVector
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_36 = LargeWord
++      structure gs_38 = LargeWord
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_37 = LargeInt
++      structure gs_39 = LargeInt
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_38 = Word
++      structure gs_40 = Word
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_39 = Real
++      structure gs_41 = Real
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_40 = LargeReal
++      structure gs_42 = LargeReal
 +   end
 +   local
 +      atom-sig.sml
 +   in
-+      signature gs_41 = ATOM
++      signature gs_43 = ATOM
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_42 = Unsafe
++      structure gs_44 = Unsafe
 +   end
 +   local
 +      structure Char = gs_30
 +      structure Substring = gs_28
-+      structure Unsafe = gs_42
-+      structure Word = gs_38
++      structure Unsafe = gs_44
++      structure Word = gs_40
 +      hash-string.sml
 +   in
-+      structure gs_43 = HashString
++      structure gs_45 = HashString
 +   end
 +   local
-+      signature ATOM = gs_41
++      signature ATOM = gs_43
 +      structure Array = gs_12
-+      structure HashString = gs_43
++      structure HashString = gs_45
 +      structure String = gs_27
 +      structure Substring = gs_28
-+      structure Word = gs_38
++      structure Word = gs_40
 +      atom.sml
 +   in
-+      structure gs_44 = Atom
++      structure gs_46 = Atom
 +   end
 +   local
-+      structure Atom = gs_44
++      structure Atom = gs_46
 +      structure Int = gs_3
-+      structure LargeInt = gs_37
-+      structure LargeReal = gs_40
-+      structure LargeWord = gs_36
-+      structure Real = gs_39
-+      structure Word = gs_38
-+      structure Word8 = gs_34
++      structure LargeInt = gs_39
++      structure LargeReal = gs_42
++      structure LargeWord = gs_38
++      structure Real = gs_41
++      structure Word = gs_40
++      structure Word8 = gs_36
 +      format-sig.sml
 +   in
-+      signature gs_45 = FORMAT
++      signature gs_47 = FORMAT
 +   end
 +   local
 +      structure Int = gs_3
@@ -11314,86 +2342,86 @@
 +      structure StringCvt = gs_29
 +      real-format.sml
 +   in
-+      structure gs_46 = RealFormat
++      structure gs_48 = RealFormat
 +   end
 +   local
-+      structure Atom = gs_44
++      structure Atom = gs_46
 +      structure Char = gs_30
 +      structure Int = gs_3
-+      structure LargeInt = gs_37
-+      structure LargeReal = gs_40
-+      structure LargeWord = gs_36
-+      structure Real = gs_39
++      structure LargeInt = gs_39
++      structure LargeReal = gs_42
++      structure LargeWord = gs_38
++      structure Real = gs_41
 +      structure StringCvt = gs_29
 +      structure Substring = gs_28
-+      structure Word = gs_38
-+      structure Word8 = gs_34
++      structure Word = gs_40
++      structure Word8 = gs_36
 +      fmt-fields.sml
 +   in
-+      structure gs_47 = FmtFields
++      structure gs_49 = FmtFields
 +   end
 +   local
-+      structure Atom = gs_44
++      structure Atom = gs_46
 +      structure Char = gs_30
-+      structure CharVector = gs_35
-+      signature FORMAT = gs_45
-+      structure FmtFields = gs_47
++      structure CharVector = gs_37
++      signature FORMAT = gs_47
++      structure FmtFields = gs_49
 +      structure Int = gs_3
-+      structure LargeInt = gs_37
-+      structure LargeWord = gs_36
-+      structure Real = gs_39
-+      structure RealFormat = gs_46
++      structure LargeInt = gs_39
++      structure LargeWord = gs_38
++      structure Real = gs_41
++      structure RealFormat = gs_48
 +      structure String = gs_27
 +      structure StringCvt = gs_29
 +      structure Substring = gs_28
-+      structure Word = gs_38
-+      structure Word8 = gs_34
++      structure Word = gs_40
++      structure Word8 = gs_36
 +      format.sml
 +   in
-+      structure gs_48 = Format
++      structure gs_50 = Format
 +   end
 +   local
 +      priority-sig.sml
 +   in
-+      signature gs_49 = PRIORITY
++      signature gs_51 = PRIORITY
 +   end
 +   local
 +      hash-key-sig.sml
 +   in
-+      signature gs_50 = HASH_KEY
++      signature gs_52 = HASH_KEY
 +   end
 +   local
-+      signature HASH_KEY = gs_50
++      signature HASH_KEY = gs_52
 +      mono-hash-table-sig.sml
 +   in
-+      signature gs_51 = MONO_HASH_TABLE
++      signature gs_53 = MONO_HASH_TABLE
 +   end
 +   local
 +      structure Array = gs_12
-+      structure Word = gs_38
++      structure Word = gs_40
 +      hash-table-rep.sml
 +   in
-+      structure gs_52 = HashTableRep
++      structure gs_54 = HashTableRep
 +   end
 +   local
 +      structure Array = gs_12
-+      structure HashTableRep = gs_52
-+      signature MONO_HASH_TABLE = gs_51
-+      structure Word = gs_38
++      structure HashTableRep = gs_54
++      signature MONO_HASH_TABLE = gs_53
++      structure Word = gs_40
 +      int-hash-table.sml
 +   in
-+      structure gs_53 = IntHashTable
++      structure gs_55 = IntHashTable
 +   end
 +   local
 +      open l4
 +   in
-+      signature gs_54 = MONO_ARRAY
++      signature gs_56 = MONO_ARRAY
 +   end
 +   local
-+      signature MONO_ARRAY = gs_54
++      signature MONO_ARRAY = gs_56
 +      bit-array-sig.sml
 +   in
-+      signature gs_55 = BIT_ARRAY
++      signature gs_57 = BIT_ARRAY
 +   end
 +   local
 +      structure LibBase = gs_5
@@ -11401,20 +2429,20 @@
 +      signature ORD_SET = gs_2
 +      redblack-set-fn.sml
 +   in
-+      functor gs_56 = RedBlackSetFn
++      functor gs_58 = RedBlackSetFn
 +   end
 +   local
-+      structure Atom = gs_44
-+      functor RedBlackSetFn = gs_56
++      structure Atom = gs_46
++      functor RedBlackSetFn = gs_58
 +      atom-redblack-set.sml
 +   in
-+      structure gs_57 = AtomRedBlackSet
++      structure gs_59 = AtomRedBlackSet
 +   end
 +   local
-+      structure AtomRedBlackSet = gs_57
++      structure AtomRedBlackSet = gs_59
 +      atom-set.sml
 +   in
-+      structure gs_58 = AtomSet
++      structure gs_60 = AtomSet
 +   end
 +   local
 +      structure LibBase = gs_5
@@ -11422,139 +2450,147 @@
 +      signature ORD_MAP = gs_7
 +      redblack-map-fn.sml
 +   in
-+      functor gs_59 = RedBlackMapFn
++      functor gs_61 = RedBlackMapFn
 +   end
 +   local
-+      structure Atom = gs_44
-+      functor RedBlackMapFn = gs_59
++      structure Atom = gs_46
++      functor RedBlackMapFn = gs_61
 +      atom-redblack-map.sml
 +   in
-+      structure gs_60 = AtomRedBlackMap
++      structure gs_62 = AtomRedBlackMap
 +   end
 +   local
-+      structure AtomRedBlackMap = gs_60
++      structure AtomRedBlackMap = gs_62
 +      atom-map.sml
 +   in
-+      structure gs_61 = AtomMap
++      structure gs_63 = AtomMap
 +   end
 +   local
 +      structure List = gs_0
 +      signature PROP_LIST = gs_26
 +      plist.sml
 +   in
-+      structure gs_62 = PropList
++      structure gs_64 = PropList
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_63 = Vector
++      structure gs_65 = Vector
 +   end
 +   local
 +      char-map-sig.sml
 +   in
-+      signature gs_64 = CHAR_MAP
++      signature gs_66 = CHAR_MAP
 +   end
 +   local
 +      structure Array = gs_12
-+      signature CHAR_MAP = gs_64
++      signature CHAR_MAP = gs_66
 +      structure Char = gs_30
 +      structure String = gs_27
-+      structure Vector = gs_63
++      structure Vector = gs_65
 +      char-map.sml
 +   in
-+      structure gs_65 = CharMap
++      structure gs_67 = CharMap
 +   end
 +   local
 +      list-xprod-sig.sml
 +   in
-+      signature gs_66 = LIST_XPROD
++      signature gs_68 = LIST_XPROD
 +   end
 +   local
 +      signature ORD_KEY = gs_1
 +      graph-scc-sig.sml
 +   in
-+      signature gs_67 = GRAPH_SCC
++      signature gs_69 = GRAPH_SCC
 +   end
 +   local
-+      signature GRAPH_SCC = gs_67
++      signature GRAPH_SCC = gs_69
 +      structure List = gs_0
 +      signature ORD_KEY = gs_1
-+      functor RedBlackMapFn = gs_59
-+      graph-scc.sml
++      functor RedBlackMapFn = gs_61
++      graph-scc-fn.sml
 +   in
-+      functor gs_68 = GraphSCCFn
++      functor gs_70 = GraphSCCFn
 +   end
 +   local
 +      structure Array = gs_12
-+      signature HASH_KEY = gs_50
-+      structure HashTableRep = gs_52
-+      signature MONO_HASH_TABLE = gs_51
-+      structure Word = gs_38
++      signature HASH_KEY = gs_52
++      structure HashTableRep = gs_54
++      signature MONO_HASH_TABLE = gs_53
++      structure Word = gs_40
 +      hash-table-fn.sml
 +   in
-+      functor gs_69 = HashTableFn
++      functor gs_71 = HashTableFn
 +   end
 +   local
-+      structure Atom = gs_44
-+      functor HashTableFn = gs_69
++      structure Atom = gs_46
++      functor HashTableFn = gs_71
 +      atom-table.sml
 +   in
-+      structure gs_70 = AtomTable
++      structure gs_72 = AtomTable
 +   end
 +   local
 +      structure StringCvt = gs_29
 +      list-format-sig.sml
 +   in
-+      signature gs_71 = LIST_FORMAT
++      signature gs_73 = LIST_FORMAT
 +   end
 +   local
-+      signature LIST_FORMAT = gs_71
++      signature LIST_FORMAT = gs_73
 +      structure String = gs_27
 +      structure StringCvt = gs_29
 +      list-format.sml
 +   in
-+      structure gs_72 = ListFormat
++      structure gs_74 = ListFormat
 +   end
 +   local
 +      open l4
 +   in
-+      signature gs_73 = MONO_VECTOR
++      signature gs_75 = MONO_VECTOR
 +   end
 +   local
-+      signature MONO_VECTOR = gs_73
++      signature MONO_VECTOR = gs_75
 +      bit-vector-sig.sml
 +   in
-+      signature gs_74 = BIT_VECTOR
++      signature gs_76 = BIT_VECTOR
 +   end
 +   local
-+      signature PARSER_COMB = gs_33
++      signature PARSER_COMB = gs_35
 +      structure StringCvt = gs_29
 +      structure Substring = gs_28
 +      parser-comb.sml
 +   in
-+      structure gs_75 = ParserComb
++      structure gs_77 = ParserComb
 +   end
 +   local
-+      signature HASH_KEY = gs_50
++      signature HASH_KEY = gs_52
 +      mono-hash2-table-sig.sml
 +   in
-+      signature gs_76 = MONO_HASH2_TABLE
++      signature gs_78 = MONO_HASH2_TABLE
 +   end
 +   local
++      signature INTERVAL_DOMAIN = gs_33
++      signature INTERVAL_SET = gs_34
++      structure List = gs_0
++      interval-set-fn.sml
++   in
++      functor gs_79 = IntervalSetFn
++   end
++   local
 +      structure LibBase = gs_5
 +      signature ORD_SET = gs_2
-+      structure Word = gs_38
++      structure Word = gs_40
 +      word-redblack-set.sml
 +   in
-+      structure gs_77 = WordRedBlackSet
++      structure gs_80 = WordRedBlackSet
 +   end
 +   local
 +      structure LibBase = gs_5
 +      signature ORD_MAP = gs_7
-+      structure Word = gs_38
++      structure Word = gs_40
 +      word-redblack-map.sml
 +   in
-+      structure gs_78 = WordRedBlackMap
++      structure gs_81 = WordRedBlackMap
 +   end
 +   local
 +      structure Int = gs_3
@@ -11563,7 +2599,7 @@
 +      signature ORD_SET = gs_2
 +      int-list-set.sml
 +   in
-+      structure gs_79 = IntListSet
++      structure gs_82 = IntListSet
 +   end
 +   local
 +      structure Int = gs_3
@@ -11572,24 +2608,24 @@
 +      signature ORD_MAP = gs_7
 +      int-list-map.sml
 +   in
-+      structure gs_80 = IntListMap
++      structure gs_83 = IntListMap
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_81 = OS
++      structure gs_84 = OS
 +   end
 +   local
 +      path-util-sig.sml
 +   in
-+      signature gs_82 = PATH_UTIL
++      signature gs_85 = PATH_UTIL
 +   end
 +   local
-+      structure OS = gs_81
-+      signature PATH_UTIL = gs_82
++      structure OS = gs_84
++      signature PATH_UTIL = gs_85
 +      path-util.sml
 +   in
-+      structure gs_83 = PathUtil
++      structure gs_86 = PathUtil
 +   end
 +   local
 +      structure LibBase = gs_5
@@ -11598,7 +2634,7 @@
 +      signature ORD_SET = gs_2
 +      binary-set-fn.sml
 +   in
-+      functor gs_84 = BinarySetFn
++      functor gs_87 = BinarySetFn
 +   end
 +   local
 +      structure LibBase = gs_5
@@ -11606,231 +2642,231 @@
 +      signature ORD_MAP = gs_7
 +      binary-map-fn.sml
 +   in
-+      functor gs_85 = BinaryMapFn
++      functor gs_88 = BinaryMapFn
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_86 = ArraySlice
++      structure gs_89 = ArraySlice
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_87 = Math
++      structure gs_90 = Math
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_88 = Pack32Big
++      structure gs_91 = PackWord32Big
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_89 = Word8Vector
++      structure gs_92 = Word8Vector
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_90 = Word8Array
++      structure gs_93 = Word8Array
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_91 = Word31
++      structure gs_94 = Word31
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_92 = Byte
++      structure gs_95 = Byte
 +   end
 +   local
 +      random-sig.sml
 +   in
-+      signature gs_93 = RANDOM
++      signature gs_96 = RANDOM
 +   end
 +   local
 +      structure Array = gs_12
-+      structure Byte = gs_92
-+      structure LargeWord = gs_36
++      structure Byte = gs_95
++      structure LargeWord = gs_38
 +      structure LibBase = gs_5
-+      structure Pack32Big = gs_88
-+      signature RANDOM = gs_93
-+      structure Word31 = gs_91
-+      structure Word8Array = gs_90
-+      structure Word8Vector = gs_89
++      structure PackWord32Big = gs_91
++      signature RANDOM = gs_96
++      structure Word31 = gs_94
++      structure Word8Array = gs_93
++      structure Word8Vector = gs_92
 +      random.sml
 +   in
-+      structure gs_94 = Random
++      structure gs_97 = Random
 +   end
 +   local
 +      structure Array = gs_12
-+      structure ArraySlice = gs_86
-+      structure Random = gs_94
-+      structure Real = gs_39
-+      structure Unsafe = gs_42
-+      structure Word = gs_38
++      structure ArraySlice = gs_89
++      structure Random = gs_97
++      structure Real = gs_41
++      structure Unsafe = gs_44
++      structure Word = gs_40
 +      real-order-stats.sml
 +   in
-+      structure gs_95 = RealOrderStats
++      structure gs_98 = RealOrderStats
 +   end
 +   local
 +      structure Array = gs_12
-+      structure ArraySlice = gs_86
-+      structure Math = gs_87
-+      structure RealOrderStats = gs_95
-+      structure Unsafe = gs_42
++      structure ArraySlice = gs_89
++      structure Math = gs_90
++      structure RealOrderStats = gs_98
++      structure Unsafe = gs_44
 +      univariate-stats.sml
 +   in
-+      structure gs_96 = UnivariateStats
++      structure gs_99 = UnivariateStats
 +   end
 +   local
-+      signature BIT_ARRAY = gs_55
-+      structure Byte = gs_92
++      signature BIT_ARRAY = gs_57
++      structure Byte = gs_95
 +      structure Int = gs_3
 +      structure LibBase = gs_5
 +      structure List = gs_0
-+      structure Word = gs_38
-+      structure Word8 = gs_34
-+      structure Word8Array = gs_90
-+      structure Word8Vector = gs_89
++      structure Word = gs_40
++      structure Word8 = gs_36
++      structure Word8Array = gs_93
++      structure Word8Vector = gs_92
 +      bit-array.sml
 +   in
-+      structure gs_97 = BitArray
++      structure gs_100 = BitArray
 +   end
 +   local
 +      structure Array = gs_12
-+      signature MONO_ARRAY = gs_54
-+      structure Vector = gs_63
++      signature MONO_ARRAY = gs_56
++      structure Vector = gs_65
 +      mono-array-fn.sml
 +   in
-+      functor gs_98 = MonoArrayFn
++      functor gs_101 = MonoArrayFn
 +   end
 +   local
-+      signature MONO_ARRAY = gs_54
++      signature MONO_ARRAY = gs_56
 +      bsearch-fn.sml
 +   in
-+      functor gs_99 = BSearchFn
++      functor gs_102 = BSearchFn
 +   end
 +   local
 +      mono-dynamic-array-sig.sml
 +   in
-+      signature gs_100 = MONO_DYNAMIC_ARRAY
++      signature gs_103 = MONO_DYNAMIC_ARRAY
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_101 = Bool
++      structure gs_104 = Bool
 +   end
 +   local
 +      structure StringCvt = gs_29
 +      format-comb-sig.sml
 +   in
-+      signature gs_102 = FORMAT_COMB
++      signature gs_105 = FORMAT_COMB
 +   end
 +   local
-+      structure Bool = gs_101
++      structure Bool = gs_104
 +      structure Char = gs_30
-+      signature FORMAT_COMB = gs_102
++      signature FORMAT_COMB = gs_105
 +      structure Int = gs_3
-+      structure Real = gs_39
++      structure Real = gs_41
 +      structure String = gs_27
 +      structure StringCvt = gs_29
 +      format-comb.sml
 +   in
-+      structure gs_103 = FormatComb
++      structure gs_106 = FormatComb
 +   end
 +   local
 +      queue-sig.sml
 +   in
-+      signature gs_104 = QUEUE
++      signature gs_107 = QUEUE
 +   end
 +   local
 +      fifo-sig.sml
 +   in
-+      signature gs_105 = FIFO
++      signature gs_108 = FIFO
 +   end
 +   local
-+      signature FIFO = gs_105
++      signature FIFO = gs_108
 +      structure List = gs_0
 +      fifo.sml
 +   in
-+      structure gs_106 = Fifo
++      structure gs_109 = Fifo
 +   end
 +   local
-+      structure Fifo = gs_106
-+      signature QUEUE = gs_104
++      structure Fifo = gs_109
++      signature QUEUE = gs_107
 +      queue.sml
 +   in
-+      structure gs_107 = Queue
++      structure gs_110 = Queue
 +   end
 +   local
 +      structure Array = gs_12
-+      signature HASH_KEY = gs_50
-+      structure HashTableRep = gs_52
-+      signature MONO_HASH2_TABLE = gs_76
-+      structure Word = gs_38
++      signature HASH_KEY = gs_52
++      structure HashTableRep = gs_54
++      signature MONO_HASH2_TABLE = gs_78
++      structure Word = gs_40
 +      hash2-table-fn.sml
 +   in
-+      functor gs_108 = Hash2TableFn
++      functor gs_111 = Hash2TableFn
 +   end
 +   local
 +      structure Array = gs_12
-+      structure HashTableRep = gs_52
-+      signature MONO_HASH_TABLE = gs_51
-+      structure Word = gs_38
++      structure HashTableRep = gs_54
++      signature MONO_HASH_TABLE = gs_53
++      structure Word = gs_40
 +      word-hash-table.sml
 +   in
-+      structure gs_109 = WordHashTable
++      structure gs_112 = WordHashTable
 +   end
 +   local
-+      structure Atom = gs_44
-+      structure AtomTable = gs_70
++      structure Atom = gs_46
++      structure AtomTable = gs_72
 +      structure List = gs_0
 +      keyword-fn.sml
 +   in
-+      functor gs_110 = KeywordFn
++      functor gs_113 = KeywordFn
 +   end
 +   local
 +      mono-priorityq-sig.sml
 +   in
-+      signature gs_111 = MONO_PRIORITYQ
++      signature gs_114 = MONO_PRIORITYQ
 +   end
 +   local
 +      structure List = gs_0
-+      signature MONO_PRIORITYQ = gs_111
-+      signature PRIORITY = gs_49
++      signature MONO_PRIORITYQ = gs_114
++      signature PRIORITY = gs_51
 +      left-priorityq-fn.sml
 +   in
-+      functor gs_112 = LeftPriorityQFn
++      functor gs_115 = LeftPriorityQFn
 +   end
 +   local
 +      hash-table-sig.sml
 +   in
-+      signature gs_113 = HASH_TABLE
++      signature gs_116 = HASH_TABLE
 +   end
 +   local
 +      structure Array = gs_12
-+      signature HASH_TABLE = gs_113
-+      structure HashTableRep = gs_52
-+      structure Word = gs_38
++      signature HASH_TABLE = gs_116
++      structure HashTableRep = gs_54
++      structure Word = gs_40
 +      hash-table.sml
 +   in
-+      structure gs_114 = HashTable
++      structure gs_117 = HashTable
 +   end
 +   local
 +      structure General = gs_13
 +      structure Int = gs_3
-+      signature MONO_ARRAY = gs_54
-+      signature MONO_DYNAMIC_ARRAY = gs_100
++      signature MONO_ARRAY = gs_56
++      signature MONO_DYNAMIC_ARRAY = gs_103
 +      dynamic-array-fn.sml
 +   in
-+      functor gs_115 = DynamicArrayFn
++      functor gs_118 = DynamicArrayFn
 +   end
 +   local
-+      signature MONO_ARRAY = gs_54
++      signature MONO_ARRAY = gs_56
 +      mono-array-sort-sig.sml
 +   in
-+      signature gs_116 = MONO_ARRAY_SORT
++      signature gs_119 = MONO_ARRAY_SORT
 +   end
 +   local
 +      structure Int = gs_3
@@ -11838,7 +2874,7 @@
 +      signature ORD_SET = gs_2
 +      int-redblack-set.sml
 +   in
-+      structure gs_117 = IntRedBlackSet
++      structure gs_120 = IntRedBlackSet
 +   end
 +   local
 +      structure Int = gs_3
@@ -11846,239 +2882,242 @@
 +      signature ORD_MAP = gs_7
 +      int-redblack-map.sml
 +   in
-+      structure gs_118 = IntRedBlackMap
++      structure gs_121 = IntRedBlackMap
 +   end
 +   local
 +      array-sort-sig.sml
 +   in
-+      signature gs_119 = ARRAY_SORT
++      signature gs_122 = ARRAY_SORT
 +   end
 +   local
-+      signature ARRAY_SORT = gs_119
++      signature ARRAY_SORT = gs_122
 +      structure Array = gs_12
 +      structure Int = gs_3
-+      structure Unsafe = gs_42
++      structure Unsafe = gs_44
 +      array-qsort.sml
 +   in
-+      structure gs_120 = ArrayQSort
++      structure gs_123 = ArrayQSort
 +   end
 +   local
 +      uref-sig.sml
 +   in
-+      signature gs_121 = UREF
++      signature gs_124 = UREF
 +   end
 +   local
-+      signature UREF = gs_121
++      signature UREF = gs_124
 +      simple-uref.sml
 +   in
-+      structure gs_122 = SimpleURef
++      structure gs_125 = SimpleURef
 +   end
 +   local
 +      listsort-sig.sml
 +   in
-+      signature gs_123 = LIST_SORT
++      signature gs_126 = LIST_SORT
 +   end
 +   local
-+      signature LIST_SORT = gs_123
++      signature LIST_SORT = gs_126
 +      structure LibBase = gs_5
 +      list-mergesort.sml
 +   in
-+      structure gs_124 = ListMergeSort
++      structure gs_127 = ListMergeSort
 +   end
 +   local
 +      structure Int = gs_3
-+      signature MONO_ARRAY = gs_54
-+      signature MONO_ARRAY_SORT = gs_116
++      signature MONO_ARRAY = gs_56
++      signature MONO_ARRAY_SORT = gs_119
 +      array-qsort-fn.sml
 +   in
-+      functor gs_125 = ArrayQSortFn
++      functor gs_128 = ArrayQSortFn
 +   end
 +   local
-+      structure Atom = gs_44
-+      functor BinarySetFn = gs_84
++      structure Atom = gs_46
++      functor BinarySetFn = gs_87
 +      atom-binary-set.sml
 +   in
-+      structure gs_126 = AtomBinarySet
++      structure gs_129 = AtomBinarySet
 +   end
 +   local
-+      structure Atom = gs_44
-+      functor BinaryMapFn = gs_85
++      structure Atom = gs_46
++      functor BinaryMapFn = gs_88
 +      atom-binary-map.sml
 +   in
-+      structure gs_127 = AtomBinaryMap
++      structure gs_130 = AtomBinaryMap
 +   end
 +   local
-+      signature UREF = gs_121
++      signature UREF = gs_124
 +      uref.sml
 +   in
-+      structure gs_128 = URef
++      structure gs_131 = URef
 +   end
 +   local
-+      structure Atom = gs_44
++      structure Atom = gs_46
 +      structure Int = gs_3
-+      structure LargeInt = gs_37
-+      structure LargeReal = gs_40
-+      structure LargeWord = gs_36
-+      structure Real = gs_39
++      structure LargeInt = gs_39
++      structure LargeReal = gs_42
++      structure LargeWord = gs_38
++      structure Real = gs_41
 +      structure StringCvt = gs_29
-+      structure Word = gs_38
-+      structure Word8 = gs_34
++      structure Word = gs_40
++      structure Word8 = gs_36
 +      scan-sig.sml
 +   in
-+      signature gs_129 = SCAN
++      signature gs_132 = SCAN
 +   end
 +   local
-+      structure Bool = gs_101
++      structure Bool = gs_104
 +      structure Char = gs_30
-+      structure FmtFields = gs_47
++      structure FmtFields = gs_49
 +      structure Int = gs_3
-+      structure LargeInt = gs_37
-+      structure LargeReal = gs_40
-+      signature SCAN = gs_129
++      structure LargeInt = gs_39
++      structure LargeReal = gs_42
++      signature SCAN = gs_132
 +      structure StringCvt = gs_29
 +      structure Substring = gs_28
-+      structure Word8Array = gs_90
++      structure Word8Array = gs_93
 +      scan.sml
 +   in
-+      structure gs_130 = Scan
++      structure gs_133 = Scan
 +   end
 +   local
 +      open l4
 +   in
-+      structure gs_131 = Int32
++      structure gs_134 = Int32
 +   end
 +   local
-+      structure Word31 = gs_91
++      structure Word31 = gs_94
 +      rand-sig.sml
 +   in
-+      signature gs_132 = RAND
++      signature gs_135 = RAND
 +   end
 +   local
-+      structure Int32 = gs_131
++      structure Int32 = gs_134
 +      structure LibBase = gs_5
-+      signature RAND = gs_132
-+      structure Real = gs_39
-+      structure Word31 = gs_91
++      signature RAND = gs_135
++      structure Real = gs_41
++      structure Word31 = gs_94
 +      rand.sml
 +   in
-+      structure gs_133 = Rand
++      structure gs_136 = Rand
 +   end
 +   local
-+      signature LIST_XPROD = gs_66
++      signature LIST_XPROD = gs_68
 +      list-xprod.sml
 +   in
-+      structure gs_134 = ListXProd
++      structure gs_137 = ListXProd
 +   end
 +in
 +   structure ANSITerm = gs_23
-+   signature ARRAY_SORT = gs_119
-+   signature ATOM = gs_41
-+   structure ArrayQSort = gs_120
-+   functor ArrayQSortFn = gs_125
-+   structure Atom = gs_44
-+   structure AtomBinaryMap = gs_127
-+   structure AtomBinarySet = gs_126
-+   structure AtomMap = gs_61
-+   structure AtomRedBlackMap = gs_60
-+   structure AtomRedBlackSet = gs_57
-+   structure AtomSet = gs_58
-+   structure AtomTable = gs_70
-+   signature BIT_ARRAY = gs_55
-+   signature BIT_VECTOR = gs_74
-+   functor BSearchFn = gs_99
-+   functor BinaryMapFn = gs_85
-+   functor BinarySetFn = gs_84
-+   structure BitArray = gs_97
-+   signature CHAR_MAP = gs_64
-+   structure CharMap = gs_65
++   signature ARRAY_SORT = gs_122
++   signature ATOM = gs_43
++   structure ArrayQSort = gs_123
++   functor ArrayQSortFn = gs_128
++   structure Atom = gs_46
++   structure AtomBinaryMap = gs_130
++   structure AtomBinarySet = gs_129
++   structure AtomMap = gs_63
++   structure AtomRedBlackMap = gs_62
++   structure AtomRedBlackSet = gs_59
++   structure AtomSet = gs_60
++   structure AtomTable = gs_72
++   signature BIT_ARRAY = gs_57
++   signature BIT_VECTOR = gs_76
++   functor BSearchFn = gs_102
++   functor BinaryMapFn = gs_88
++   functor BinarySetFn = gs_87
++   structure BitArray = gs_100
++   signature CHAR_MAP = gs_66
++   structure CharMap = gs_67
 +   signature DYNAMIC_ARRAY = gs_14
 +   structure DynamicArray = gs_15
-+   functor DynamicArrayFn = gs_115
-+   signature FIFO = gs_105
-+   signature FORMAT = gs_45
-+   signature FORMAT_COMB = gs_102
-+   structure Fifo = gs_106
-+   structure Format = gs_48
-+   structure FormatComb = gs_103
++   functor DynamicArrayFn = gs_118
++   signature FIFO = gs_108
++   signature FORMAT = gs_47
++   signature FORMAT_COMB = gs_105
++   structure Fifo = gs_109
++   structure Format = gs_50
++   structure FormatComb = gs_106
 +   signature GET_OPT = gs_31
-+   signature GRAPH_SCC = gs_67
++   signature GRAPH_SCC = gs_69
 +   structure GetOpt = gs_32
-+   functor GraphSCCFn = gs_68
-+   signature HASH_KEY = gs_50
-+   signature HASH_TABLE = gs_113
-+   functor Hash2TableFn = gs_108
-+   structure HashString = gs_43
-+   structure HashTable = gs_114
-+   functor HashTableFn = gs_69
++   functor GraphSCCFn = gs_70
++   signature HASH_KEY = gs_52
++   signature HASH_TABLE = gs_116
++   functor Hash2TableFn = gs_111
++   structure HashString = gs_45
++   structure HashTable = gs_117
++   functor HashTableFn = gs_71
++   signature INTERVAL_DOMAIN = gs_33
++   signature INTERVAL_SET = gs_34
 +   signature INT_INF = gs_25
 +   structure IOUtil = gs_24
 +   signature IO_UTIL = gs_16
 +   structure IntBinaryMap = gs_10
 +   structure IntBinarySet = gs_9
-+   structure IntHashTable = gs_53
++   structure IntHashTable = gs_55
 +   structure IntInf = gs_17
-+   structure IntListMap = gs_80
-+   structure IntListSet = gs_79
-+   structure IntRedBlackMap = gs_118
-+   structure IntRedBlackSet = gs_117
-+   functor KeywordFn = gs_110
++   structure IntListMap = gs_83
++   structure IntListSet = gs_82
++   structure IntRedBlackMap = gs_121
++   structure IntRedBlackSet = gs_120
++   functor IntervalSetFn = gs_79
++   functor KeywordFn = gs_113
 +   signature LIB_BASE = gs_4
-+   signature LIST_FORMAT = gs_71
-+   signature LIST_SORT = gs_123
-+   signature LIST_XPROD = gs_66
-+   functor LeftPriorityQFn = gs_112
++   signature LIST_FORMAT = gs_73
++   signature LIST_SORT = gs_126
++   signature LIST_XPROD = gs_68
++   functor LeftPriorityQFn = gs_115
 +   structure LibBase = gs_5
-+   structure ListFormat = gs_72
++   structure ListFormat = gs_74
 +   functor ListMapFn = gs_8
-+   structure ListMergeSort = gs_124
++   structure ListMergeSort = gs_127
 +   functor ListSetFn = gs_6
-+   structure ListXProd = gs_134
-+   signature MONO_ARRAY_SORT = gs_116
-+   signature MONO_DYNAMIC_ARRAY = gs_100
-+   signature MONO_HASH2_TABLE = gs_76
-+   signature MONO_HASH_TABLE = gs_51
-+   signature MONO_PRIORITYQ = gs_111
-+   functor MonoArrayFn = gs_98
++   structure ListXProd = gs_137
++   signature MONO_ARRAY_SORT = gs_119
++   signature MONO_DYNAMIC_ARRAY = gs_103
++   signature MONO_HASH2_TABLE = gs_78
++   signature MONO_HASH_TABLE = gs_53
++   signature MONO_PRIORITYQ = gs_114
++   functor MonoArrayFn = gs_101
 +   signature ORD_KEY = gs_1
 +   signature ORD_MAP = gs_7
 +   signature ORD_SET = gs_2
-+   signature PARSER_COMB = gs_33
-+   signature PATH_UTIL = gs_82
-+   signature PRIORITY = gs_49
++   signature PARSER_COMB = gs_35
++   signature PATH_UTIL = gs_85
++   signature PRIORITY = gs_51
 +   signature PROP_LIST = gs_26
-+   structure ParserComb = gs_75
-+   structure PathUtil = gs_83
++   structure ParserComb = gs_77
++   structure PathUtil = gs_86
 +   structure PrimeSizes = gs_11
-+   structure PropList = gs_62
-+   signature QUEUE = gs_104
-+   structure Queue = gs_107
-+   signature RAND = gs_132
-+   signature RANDOM = gs_93
-+   structure Rand = gs_133
-+   structure Random = gs_94
-+   structure RealOrderStats = gs_95
-+   functor RedBlackMapFn = gs_59
-+   functor RedBlackSetFn = gs_56
-+   signature SCAN = gs_129
++   structure PropList = gs_64
++   signature QUEUE = gs_107
++   structure Queue = gs_110
++   signature RAND = gs_135
++   signature RANDOM = gs_96
++   structure Rand = gs_136
++   structure Random = gs_97
++   structure RealOrderStats = gs_98
++   functor RedBlackMapFn = gs_61
++   functor RedBlackSetFn = gs_58
++   signature SCAN = gs_132
 +   signature SPLAY_TREE = gs_18
-+   structure Scan = gs_130
-+   structure SimpleURef = gs_122
++   structure Scan = gs_133
++   structure SimpleURef = gs_125
 +   functor SplayMapFn = gs_21
 +   functor SplaySetFn = gs_20
 +   structure SplayTree = gs_19
-+   signature UREF = gs_121
-+   structure URef = gs_128
-+   structure UnivariateStats = gs_96
-+   structure WordHashTable = gs_109
-+   structure WordRedBlackMap = gs_78
-+   structure WordRedBlackSet = gs_77
++   signature UREF = gs_124
++   structure URef = gs_131
++   structure UnivariateStats = gs_99
++   structure WordHashTable = gs_112
++   structure WordRedBlackMap = gs_81
++   structure WordRedBlackSet = gs_80
 +end
 +end
 +
 +end
 diff -Naur smlnj-lib/Util/time-limit.mlb smlnj-lib-mlton/Util/time-limit.mlb
 --- smlnj-lib/Util/time-limit.mlb	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Util/time-limit.mlb	2005-08-17 20:23:49.000000000 -0400
++++ smlnj-lib-mlton/Util/time-limit.mlb	2005-08-17 20:13:05.000000000 -0400
 @@ -0,0 +1,16 @@
 +ann
 +  "nonexhaustiveMatch warn" "redundantMatch warn"
@@ -12098,7 +3137,7 @@
 +end
 diff -Naur smlnj-lib/Util/time-limit.mlton.sml smlnj-lib-mlton/Util/time-limit.mlton.sml
 --- smlnj-lib/Util/time-limit.mlton.sml	1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Util/time-limit.mlton.sml	2005-08-17 20:23:49.000000000 -0400
++++ smlnj-lib-mlton/Util/time-limit.mlton.sml	2005-08-17 20:13:05.000000000 -0400
 @@ -0,0 +1,24 @@
 +(* time-limit.mlton.sml
 + * 

Modified: mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz
===================================================================
(Binary files differ)