merge for backout of changeset 2c00478d356a (bug 458563) for orange
authorShawn Wilsher <sdwilsh@shawnwilsher.com>
Sat, 01 Nov 2008 18:18:46 -0400
changeset 21180 f21f3e9d10010b18de1e855f56901eb3187e77f1
parent 21178 040c59e7d039323e26e9dfefe853faaa2234e506 (current diff)
parent 21179 4d8a77b9c497d9d79e60dbea357ecb7a948e0d3b (diff)
child 21181 bbccbf2c74562ce6307792746d4126a9b1facb76
push id3383
push usersdwilsh@shawnwilsher.com
push dateSat, 01 Nov 2008 22:39:23 +0000
treeherdermozilla-central@f21f3e9d1001 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs458563
milestone1.9.1b2pre
merge for backout of changeset 2c00478d356a (bug 458563) for orange
parser/htmlparser/tests/mochitest/htmltagsoup_dat1.txt
parser/htmlparser/tests/mochitest/test_htmltagsoup.html
--- a/parser/htmlparser/tests/mochitest/Makefile.in
+++ b/parser/htmlparser/tests/mochitest/Makefile.in
@@ -45,19 +45,17 @@ include $(DEPTH)/config/autoconf.mk
 include $(topsrcdir)/config/rules.mk
 
 _TEST_FILES =	parser_datreader.js \
 		parser_web_testrunner.js \
 		html5lib_tree_dat1.txt \
 		html5lib_tree_dat2.txt \
 		html5lib_tree_dat3.txt \
 		html5_tree_construction_exceptions.js \
-		htmltagsoup_dat1.txt \
 		test_html5_tree_construction.html \
-		test_htmltagsoup.html \
 	 	test_bug339350.xhtml \
 		test_bug358797.html \
 		test_bug396568.html \
 		test_bug418464.html \
 		test_compatmode.html \
 		regressions.txt \
 		$(NULL)
 
deleted file mode 100644
--- a/parser/htmlparser/tests/mochitest/htmltagsoup_dat1.txt
+++ /dev/null
@@ -1,29222 +0,0 @@
-#data
-## filename: 100397.html
-<html>
-<head>
-<title>font test</title>
-</head>
-
-<body>
-<font face="Arial">
-This is just a font element: 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font>
-<H1><font face="Arial">
-01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font></H1>
-<H2><font face="Arial">
-01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font></H2>
-<H3><font face="Arial">
-01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font></H3>
-<H4><font face="Arial">
-01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font></H4>
-<H5><font face="Arial">
-01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font></H5>
-<H6><font face="Arial">
-01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</font></H6>
-
-01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<br>
-
-<font face="Arial">
-This is just a font element: 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
-<H1>01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</H1>
-<H2>01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</H2>
-<H3>01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</H3>
-<H4>01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</H4>
-<H5>01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</H5>
-<H6>01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</H6>
-</font>
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-"
-|     "
-"
-|     <title>
-|       "font test"
-|     "
-"
-|   <body>
-|     "
-"
-|     <font>
-|       face="Arial"
-|       "
-| This is just a font element: 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|     "
-"
-|     <h1>
-|       <font>
-|         face="Arial"
-|         "
-| 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|     "
-"
-|     <h2>
-|       <font>
-|         face="Arial"
-|         "
-| 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|     "
-"
-|     <h3>
-|       <font>
-|         face="Arial"
-|         "
-| 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|     "
-"
-|     <h4>
-|       <font>
-|         face="Arial"
-|         "
-| 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|     "
-"
-|     <h5>
-|       <font>
-|         face="Arial"
-|         "
-| 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|     "
-"
-|     <h6>
-|       <font>
-|         face="Arial"
-|         "
-| 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|     "
-| 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|     <br>
-|     "
-"
-|     <font>
-|       face="Arial"
-|       "
-| This is just a font element: 01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
-"
-|       <h1>
-|         "01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|       "
-"
-|       <h2>
-|         "01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|       "
-"
-|       <h3>
-|         "01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|       "
-"
-|       <h4>
-|         "01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|       "
-"
-|       <h5>
-|         "01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|       "
-"
-|       <h6>
-|         "01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-|       "
-"
-|     "
-"
-
-#data
-## filename: 100466.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<body>
-<DL>
- <DT style="background-color:red">A line (unclosed)
- <DL>
-  <DT>Should be indented</DT>
- </DL>
-</DL>
-
-<DL>
- <DT>B line (closed)</dt>
- <DL>
-  <DT>Should be indented</DT>
- </DL>
-</DL>
-
-</body>
-</html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     "
-"
-|   <body>
-    "
-"
-|     <dl>
-      "
- "
-|       <dt>
-|         style="background-color: red;"
-|         "A line (unclosed)
- "
-|       <dl>
-|         "
-  "
-|         <dt>
-          "Should be indented"
-|         "
- "
-|       "
-"
-|     "
-"
-|     <dl>
-|       "
- "
-|       <dt>
-|         "B line (closed)"
-|       "
- "
-|       <dl>
-|         "
-  "
-|         <dt>
-|           "Should be indented"
-|         "
- "
-|       "
-"
-|     "
-"
-
-#data
-## filename: 102370.html
-<html><head><title>Testcase for bug 102370</title></head>
-<body>
-<dl>
-  <a name="a1">
-    <dd style="background-color:red">First DD
-    <dt>First DT
-  
-  <a name="a2">
-    <dt>Second DT
-    <dd>Second DD
-</dl>
-
-
-</body></html>
-#document
-| <html>
-|   <head>
-|     <title>
-|       "Testcase for bug 102370"
-|   <body>
-|     "
-"
-|     <dl>
-|       "
-  "
-|       <a>
-|         name="a1"
-|         "
-    "
-|         <dd>
-|           style="background-color: red;"
-|           "First DD
-    "
-|         <dt>
-|           "First DT
-  
-  "
-|       <a>
-|         name="a2"
-|         "
-    "
-|         <dt>
-|           "Second DT
-    "
-|         <dd>
-|           "Second DD
-"
-|     "
-"
-
-#data
-## filename: 124788.html
-<html><head></head>
-<body>
-<table>
-<tbody><tr>
-<td colspan="2">
-<br>
-<form>
-sometexthere<textarea>&lt;TR&gt;&lt;/tr&gt;
-&lt;/table&gt;
-&lt;/form&gt;
-&lt;/td&gt;
-&lt;/tr&gt;
-&lt;/table&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-</textarea><table border="0">
-</table></form></td></tr></tbody></table></body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-"
-|     <table>
-|       "
-"
-|       <tbody>
-|         <tr>
-|           "
-"
-|           <td>
-|             colspan="2"
-|             "
-"
-|             <br>
-|             "
-"
-|             <form>
-|               "
-sometexthere"
-|               <textarea>
-|                 "<TR></tr>
-</table>
-</form>
-</td>
-</tr>
-</table>
-</body>
-</html>
-"
-|               <table>
-|                 border="0"
-|                 "
-"
-
-#data
-## filename: 142965.html
-<html><body>
-<table>
-<p><h3>Please Enter your Homesite Login, E-mail and Password to delete</h3></p>
-<form method="POST">
-<input type=submit>
-</form>
-</table>
-</body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-| "
-|     <p>
-|     <h3>
-|       "Please Enter your Homesite Login, E-mail and Password to delete"
-|     <p>
-|     "
-| "
-|     <input>
-|       type="submit"
-|     "
-| "
-|     <table>
-|       "
-| "
-|       <form>
-|         method="POST"
-|       "
-| 
-| "
-|     "
-| "
-
-#data
-## filename: 142965_1.html
-<html>
-<body>
- <table border="1" width="100px">
-  <tr>
-   <p><caption>caption
-   <td>
-    cell
-   </td>
-  </tr>
- </table>
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-"
-|   <body>
-|     "
- "
-|     <p>
-|       "caption
-   "
-|     <table>
-|       width="100px"
-|       border="1"
-|       "
-  "
-|       <tbody>
-|         <tr>
-|           "
-   "
-|           <td>
-|             "
-    cell
-   "
-|           "
-  "
-|         "
- "
-|     "
-"
-
-#data
-## filename: 149877.html
-<HTML>
-<HEAD>
-<META NAME="GENERATOR" Content="Microsoft Developer Studio">
-<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
-<TITLE>Document Title</TITLE>
-</HEAD>
-
-<script>
- var value = "should ";
-</script>
-<!-- Insert HTML here -->
-<iframe>
-<script language="javascript"> value += "not ";</script>
-</iframe>
-<script>
- value += "see this content";
- document.write(value);
-</script>
-
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-"
-|     "
-"
-|     <meta>
-|       content="Microsoft Developer Studio"
-|       name="GENERATOR"
-|     "
-"
-|     <meta>
-|       content="text/html; charset=iso-8859-1"
-|       http-equiv="Content-Type"
-|     "
-"
-|     <title>
-|       "Document Title"
-|     "
-"
-|     <script>
-|       "
- var value = "should ";
-"
-|     "
-"
-|     <!--  Insert HTML here  -->
-|     "
-"
-|     <script>
-|       "
- value += "see this content";
- document.write(value);
-"
-|   <body>
-|     <iframe>
-|       "
-<script language="javascript"> value += "not ";</script>
-"
-|     "
-should see this content
-"
-
-#data
-## filename: 15204.html
-<html>
-<head><title> &lt </title></head>
-<body>
-<FORM>
- <TEXTAREA ROWS=8 COLS=50>&lt
-<table       width="100%";  >
- bgcolor=    #FFFFFF   ; 
- <tr> &lt
-  <td> a </td>
- </tr>
-</table>
-</TEXTAREA>
-</FORM>
-<script>
-err()
-</script>
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     <title>
-|       " < "
-|   <body>
-|     "
-| "
-|     <form>
-|       "
-|  "
-|       <textarea>
-|         cols="50"
-|         rows="8"
-|         "<
-| <table       width="100%";  >
-|  bgcolor=    #FFFFFF   ; 
-|  <tr> <
-|   <td> a </td>
-|  </tr>
-| </table>
-| "
-|       "
-| "
-|     "
-| "
-|     <script>
-|       "
-| err()
-| "
-|     "
-| "
-
-#data
-## filename: 17003.html
-<html>
-<body>
-
-<textarea onclick="dump(this.childNodes.length);">
-&gt;<table><tr><td>hellothere</td></tr></table>
-Click on the textarea to see it's number of childNodes...
-(Should be "1" for the child text) 
-</textarea>
-fdfd
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <textarea>
-|       onclick="dump(this.childNodes.length);"
-|       "><table><tr><td>hellothere</td></tr></table>
-| Click on the textarea to see it's number of childNodes...
-| (Should be "1" for the child text) 
-| "
-|     "
-| fdfd
-| "
-
-#data
-## filename: 18308.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>parserspace.html</title></head>
-
-<body>
-The head and body tags appear side by side in this test: <br>&lt;/HEAD&gt;&lt;BODY&gt;<br> so you <b>should not</b> see an [object Text] between the ending head and beginning body tags.
-<br><br>
-<script type="text/javascript">
-
-for(i=0; i<3; i++){
-  var oWhat=document.documentElement.childNodes[i].tagName;
-  document.write(oWhat +"<BR>");
-}
-
-</script>
-</body></html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     <title>
-|       "parserspace.html"
-|   <body>
-|     "
-| The head and body tags appear side by side in this test: "
-|     <br>
-|     "</HEAD><BODY>"
-|     <br>
-|     " so you "
-|     <b>
-|       "should not"
-|     " see an [object Text] between the ending head and beginning body tags.
-| "
-|     <br>
-|     <br>
-|     "
-| "
-|     <script>
-|       type="text/javascript"
-|       "
-| for(i=0; i<3; i++){
-|   var oWhat=document.documentElement.childNodes[i].tagName;
-|   document.write(oWhat +"<BR>");
-| }
-| "
-|     "HEAD"
-|     <br>
-|     "BODY"
-|     <br>
-|     "
-| "
-
-#data
-## filename: 183711.html
-<html>
-<head>
-<title>MSN Hotmail - Compose</title>
-
-</head>
-<body>
-	
-<table cellpadding=0 cellspacing=0 bgcolor="#93BEE2" width=100% style="border-left:4px solid #93BEE2;">
-<form name="hiddentext"><input type="hidden" name="sigtext" value=""></form>
-<form name="composeform" method="POST" action="http://lw9fd.law9.hotmail.msn.com/cgi-bin/premail">
-
-</table>
-
-</td>
-
-</tr>
-</form>
-</table>	
-
-<SCRIPT>
-document.write("This is an HTMLFormElement: " + document.composeform.tagName);
-</SCRIPT>
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <title>
-|       "MSN Hotmail - Compose"
-|     "
-| "
-|   <body>
-|     "
-| 	
-| "
-|     <table>
-|       width="100%"
-|       cellspacing="0"
-|       cellpadding="0"
-|       bgcolor="#93bee2"
-|       style="border-left: 4px solid rgb(147, 190, 226);"
-|       "
-| "
-|       <form>
-|         name="hiddentext"
-|       <input>
-|         type="hidden"
-|         value=""
-|         name="sigtext"
-|       "
-| "
-|       <form>
-|         action="http://lw9fd.law9.hotmail.msn.com/cgi-bin/premail"
-|         method="POST"
-|         name="composeform"
-|       "
-| "
-|     "
-| 
-| 
-| 
-| 	
-| "
-|     <script>
-|       "
-| document.write("This is an HTMLFormElement: " + document.composeform.tagName);
-| "
-|     "This is an HTMLFormElement: FORM
-| "
-
-#data
-## filename: 184029.html
-<html>
-<head>
-<title></title>
-
-</head>
-
-
-<body>
-   <iframe xsrc="184029_iframe.html">
-   </iframe>
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <title>
-|     "
-| "
-|   <body>
-|     "
-|    "
-|     <iframe>
-|       xsrc="184029_iframe.html"
-|       "
-|    "
-|     "
-| "
-
-#data
-## filename: 184029_iframe.html
-<SCRIPT>
-   document.write('\<script\>');
-   document.write(' document.write(\'\<iframe\>\');');
-   document.write(' document.write(\'\<script\>\');');
-   document.write(' document.write(\'\</scr\');');
-   document.write(' document.write(\'ipt\>\');');
-   document.write(' document.write(\'\</iframe\>\');');
-   document.write('<\/script>');
-</SCRIPT>
-#document
-| <html>
-|   <head>
-|     <script>
-|       "
-|    document.write('\<script\>');
-|    document.write(' document.write(\'\<iframe\>\');');
-|    document.write(' document.write(\'\<script\>\');');
-|    document.write(' document.write(\'\</scr\');');
-|    document.write(' document.write(\'ipt\>\');');
-|    document.write(' document.write(\'\</iframe\>\');');
-|    document.write('<\/script>');
-| "
-|     <script>
-|       " document.write('<iframe>'); document.write('<script>'); document.write('</scr'); document.write('ipt>'); document.write('</iframe>');"
-|   <body>
-|     <iframe>
-|       "<script></script>"
-
-#data
-## filename: 187790.html
-<html>
-<script language=Javascript>
-document.write("outside of body");
-</script>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     <script>
-|       language="Javascript"
-|       "
-| document.write("outside of body");
-| "
-|   <body>
-|     "outside of body
-| "
-
-#data
-## filename: 19116.html
-<html>
-  <body>
-    <form>
-      <table bgcolor=red>
-        <input>
-        <tr><td><input></td></tr>
-      </table>
-    </form>
-  </body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-|   "
-|   <body>
-|     "
-|     "
-|     <form>
-|       "
-|       "
-|       <input>
-|       "
-|         "
-|       <table>
-|         bgcolor="red"
-|         "
-|         "
-|         <tbody>
-|           <tr>
-|             <td>
-|               <input>
-|           "
-|       "
-|       "
-|     "
-|     "
-|   "
-
-#data
-## filename: 20087.html
-<html><head></head>
-<body><form>
-
-<table>
-<tbody><tr><td> 
-test
-<table><tbody><tr>
-</tr>
-</tbody></table>
-</td></tr>
-</tbody></table>
-
-</form>
-
-
-
-</body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       "
-| "
-|       <table>
-|         "
-| "
-|         <tbody>
-|           <tr>
-|             <td>
-|               " 
-| test
-| "
-|               <table>
-|                 <tbody>
-|                   <tr>
-|                     "
-| "
-|                   "
-| "
-|               "
-| "
-|           "
-| "
-|       "
-| "
-|     "
-| "
-
-#data
-## filename: 22263.html
-<html><head></head>
-  <body><ul>
-	  <li>A
-	  </li><li>B
-	  </li><li>C</li>
-	  
-  </ul>
-</body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       "
-| 	  "
-|       <li>
-|         "A
-| 	  "
-|       <li>
-|         "B
-| 	  "
-|       <li>
-|         "C"
-|       "
-| 	  
-|   "
-|     "
-| "
-
-#data
-## filename: 22480.html
-<html>
-<body>
-<form>
-<input type=text><p>
-<input type=submit>
-</form>This text block should be on the next line
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <form>
-|       "
-| "
-|       <input>
-|         type="text"
-|       <p>
-|         "
-| "
-|         <input>
-|           type="submit"
-|         "
-| This text block should be on the next line
-| "
-
-#data
-## filename: 22596.html
-<html>
- <body>
-  <h5>H5_1
-   <li>LI_1
-  <h5>H5_2
-   <li>LI_2
-  <h5>H5_3
-   <li>LI_3
- </body>
-</html>
-
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <h5>
-|       "H5_1
-|    "
-|       <li>
-|         "LI_1
-|   "
-|     <h5>
-|       "H5_2
-|    "
-|       <li>
-|         "LI_2
-|   "
-|     <h5>
-|       "H5_3
-|    "
-|       <li>
-|         "LI_3
-|  "
-
-#data
-## filename: 24184.html
-<HTML><HEAD>
-<style type="text/css">
-
-span:before { content: "<" attr(class) ">" }
-span:after { content: "</" attr(class) ">" }
-
-span.a {
-	font-size:	130%;
-	color: blue;
-}
-
-span.z {
-	padding-left:	50px;
-	display:	block;
-	color: green;
-}
-
-</style>
-</HEAD>
-
-<BODY><FONT FACE="Arial"><!-- Deleting this font tag fixes the bug -->
-<P>testcase 4</P><!-- Deleting this paragraph or adding a space
-before or after this comment fixes the bug -->
-
-<SPAN CLASS="z">[span class z]</SPAN><br>
-<P><SPAN CLASS="a">[span class a]</SPAN></P> 
-
-<SPAN CLASS="z">[span class z]</SPAN><br>
-<P><SPAN CLASS="a">[span class a]</SPAN></P> 
-
-<SPAN CLASS="z">[span class z]</SPAN><br>
-<P><SPAN CLASS="a">[span class a]</SPAN></P> 
-
-<SPAN CLASS="z">[span class z]</SPAN>
-<P><SPAN CLASS="a">[span class a]</SPAN></P> 
-
-</font></body></html>
-
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     <style>
-|       type="text/css"
-|       "
-| span:before { content: "<" attr(class) ">" }
-| span:after { content: "</" attr(class) ">" }
-| span.a {
-| 	font-size:	130%;
-| 	color: blue;
-| }
-| span.z {
-| 	padding-left:	50px;
-| 	display:	block;
-| 	color: green;
-| }
-| "
-|     "
-| "
-|   <body>
-|     <font>
-|       face="Arial"
-|       <!--  Deleting this font tag fixes the bug  -->
-|       "
-| "
-|       <p>
-|         "testcase 4"
-|       <!--  Deleting this paragraph or adding a space
-| before or after this comment fixes the bug  -->
-|       "
-| "
-|       <span>
-|         class="z"
-|         "[span class z]"
-|       <br>
-|       "
-| "
-|       <p>
-|         <span>
-|           class="a"
-|           "[span class a]"
-|       " 
-| "
-|       <span>
-|         class="z"
-|         "[span class z]"
-|       <br>
-|       "
-| "
-|       <p>
-|         <span>
-|           class="a"
-|           "[span class a]"
-|       " 
-| "
-|       <span>
-|         class="z"
-|         "[span class z]"
-|       <br>
-|       "
-| "
-|       <p>
-|         <span>
-|           class="a"
-|           "[span class a]"
-|       " 
-| "
-|       <span>
-|         class="z"
-|         "[span class z]"
-|       "
-| "
-|       <p>
-|         <span>
-|           class="a"
-|           "[span class a]"
-|       " 
-| "
-
-#data
-## filename: 24462.html
-<HTML>
- <BODY>
-  <TABLE>
-   <TR>
-    <TD>
-      <B>
-       <FORM>
-        <NOBR>
-         <IMG HEIGHT=30>
-        </NOBR>
-       </FORM>
-       UNSER ANGEBOT
-    </TD>
-    <TD>
-     Foo
-    </TD>
-   </TR>
-  </TABLE>
- </BODY>
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <table>
-|       "
-|    "
-|       <tbody>
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "
-|       "
-|             <b>
-|               "
-|        "
-|             <form>
-|               "
-| "
-|               <b>
-|                 "        "
-|                 <nobr>
-|                   "
-|          "
-|                   <img>
-|                     height="30"
-|                   "
-|         "
-|                 "
-|        "
-|             "
-| "
-|             <b>
-|               "       UNSER ANGEBOT
-|     "
-|           "
-|     "
-|           <td>
-|             "
-|      Foo
-|     "
-|           "
-|    "
-|         "
-|   "
-|     "
-|  "
-
-#data
-## filename: 26347.html
-<html><head><title>Testcase for bug 68674</title></head><body>
-<A HREF="http://www.mozilla.org">www.<STRONG>mozilla.org</A></STRONG>
-STRONG - This text should not be part of the link <BR>
-</body></html>
-#document
-| <html>
-|   <head>
-|     <title>
-|       "Testcase for bug 68674"
-|   <body>
-|     "
-| "
-|     <a>
-|       href="http://www.mozilla.org"
-|       "www."
-|       <strong>
-|         "mozilla.org"
-|     <strong>
-|     "
-| STRONG - This text should not be part of the link "
-|     <br>
-|     "
-| "
-
-#data
-## filename: 26853.html
-<A href=foo.html><B>foo<A href=bar.html>bar</A></B></A>
-<DL><DD><LI>one<DD><LI>two
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="foo.html"
-|       <b>
-|         "foo"
-|     <b>
-|       <a>
-|         href="bar.html"
-|         "bar"
-|     "
-| "
-|     <dl>
-|       <dd>
-|         <li>
-|           "one"
-|       <dd>
-|         <li>
-|           "two"
-
-
-#data
-## filename: 27490.html
-
-<HTML>  
-
-<TABLE BORDER="1">
-<tr>
-  <td>   
-    <b>
-      Test
-  </td>
-</tr>
-  <TD>
-    Test
-  </TD>
-</TR>
-</TABLE>
-
-</html>
-#document
-| <html>
-|   <head>
-|     "  
-| "
-|   <body>
-|     <table>
-|       border="1"
-|       "
-| "
-|       <tbody>
-|         <tr>
-|           "
-|   "
-|           <td>
-|             "   
-|     "
-|             <b>
-|               "
-|       Test
-|   "
-|           "
-| "
-|         "
-|   "
-|         <tr>
-|           <td>
-|             "
-|     Test
-|   "
-|           "
-| "
-|         "
-| "
-|     "
-| "
-
-#data
-## filename: 30487.html
-<html><head></head>
-<body text="#000000">
-
-   		
-
-<font face="geneva, arial, helvetica">
-<font size="-1">
-
-This text, in the body, is in "Font Face A"
-
-<table>
-        <tbody><tr>
-        <td align="center">
-            <font size="5"> 
-           This text, in a table, is in "Font Face B". Immediately following
-this text is a close font tag, and another erroneously placed close font
-tag.              </font>
-            
-        </td>
-        </tr>
-</tbody></table>  This text, back in the body, should be in Font Face A,
-but is not because Mozilla incorrectly heeded the second close-font tag in
-the above table.  </font>
-
-</font></body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     text="#000000"
-|     "
-|    		
-| "
-|     <font>
-|       face="geneva, arial, helvetica"
-|       "
-| "
-|       <font>
-|         size="-1"
-|         "
-| This text, in the body, is in "Font Face A"
-| "
-|         <table>
-|           "
-|         "
-|           <tbody>
-|             <tr>
-|               "
-|         "
-|               <td>
-|                 align="center"
-|                 "
-|             "
-|                 <font>
-|                   size="5"
-|                   " 
-|            This text, in a table, is in "Font Face B". Immediately following
-| this text is a close font tag, and another erroneously placed close font
-| tag.              "
-|                 "
-|             
-|         "
-|               "
-|         "
-|             "
-| "
-|         "  This text, back in the body, should be in Font Face A,
-| but is not because Mozilla incorrectly heeded the second close-font tag in
-| the above table.  "
-|       "
-| "
-
-#data
-## filename: 3248.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML lang="en">
-<HEAD>
-  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-  <META http-equiv="Content-Style-Type" content="text/css">
-  <LINK type="text/css" rel=stylesheet>
-</HEAD>
-
-<BODY>
-
-<OL>
-<LI class=a>Should be green - Linked with <code>LINK</code> HTTP Header.</LI>
-<LI class=c>Should be green - Linked with <code>LINK</code></LI>
-</OL>
-</BODY></HTML>
-
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   lang="en"
-|   <head>
-|     "
-| 
-| "
-|     "
-|   "
-|     <meta>
-|       content="text/html; charset=ISO-8859-1"
-|       http-equiv="Content-Type"
-|     "
-|   "
-|     <meta>
-|       content="text/css"
-|       http-equiv="Content-Style-Type"
-|     "
-|   "
-|     <link>
-|       rel="stylesheet"
-|       type="text/css"
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <ol>
-|       "
-| "
-|       <li>
-|         class="a"
-|         "Should be green - Linked with "
-|         <code>
-|           "LINK"
-|         " HTTP Header."
-|       "
-| "
-|       <li>
-|         class="c"
-|         "Should be green - Linked with "
-|         <code>
-|           "LINK"
-|       "
-| "
-|     "
-| "
-
-#data
-## filename: 32782.html
-<html><head></head>
-<body>
-<br>
-<table border="0" cellpadding="0" cellspacing="0" width="540">
-<tbody><tr>
-<td>***</td></tr><tr><td>***</td></tr>
-</tbody></table>
-</body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-| "
-|     <br>
-|     "
-| "
-|     <table>
-|       width="540"
-|       cellspacing="0"
-|       cellpadding="0"
-|       border="0"
-|       "
-| "
-|       <tbody>
-|         <tr>
-|           "
-| "
-|           <td>
-|             "***"
-|         <tr>
-|           <td>
-|             "***"
-|         "
-| "
-|     "
-| "
-
-#data
-## filename: 35806.html
-<table border=1>
-<tr><td bgcolor="red>1</td>
-</tr>
-bad text
-<tr><td bgcolor=blue>2</td>
-</tr>
-</table>
-#document
-| <html>
-|   <head>
-|   <body>
-|     "bad text
-| "
-|     <table>
-|       border="1"
-|       "
-| "
-|       <tbody>
-|         <tr>
-|           <td>
-|             bgcolor="red"
-|             "1"
-|           "
-| "
-|         "
-| "
-|         <tr>
-|           <td>
-|             bgcolor="blue"
-|             "2"
-|           "
-| "
-|         "
-| "
-
-#data
-## filename: 40143.html
-<html>
-<body>
-<script>
-
-document.write('<style>')
-
-document.write(".menured { color: red; } \n")
-document.write('</style>')
-</script>
-
-<p class="menured">This should be the only text visible and it should be red</p>
-It is: <script>document.write(document.defaultView.getComputedStyle(document.getElementsByTagName('p')[0], null).color)</script>
-</body></html>
-
- 
-#document
-| <html>
-|   <head>
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <script>
-|       "
-| document.write('<style>')
-| document.write(".menured { color: red; } \n")
-| document.write('</style>')
-| "
-|     <style>
-|       ".menured { color: red; } 
-| "
-|     "
-| "
-|     <p>
-|       class="menured"
-|       "This should be the only text visible and it should be red"
-|     "
-| It is: "
-|     <script>
-|       "document.write(document.defaultView.getComputedStyle(document.getElementsByTagName('p')[0], null).color)"
-|     "rgb(255, 0, 0)
-|  "
-
-#data
-## filename: 40713.html
-<html>
- <body>
- <p>
- <font face="arial, helvetica" color=red>
-  <table border="1">
-   <tr><td><font size=+1><a href=foo.html>SHOULD BE TIMES ROMAN</a></font></td></tr>
-  </table>
-  <p>
-  <font size='+1'>
-   <b>
-    <a href=foo.html>SHOULD BE HELVETICA
-    </a>
-   </b>
-  </font>
- </body>
-</html>
-
-
-	
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|   <body>
-|     "
-|  "
-|     <p>
-|       "
-|  "
-|       <font>
-|         face="arial, helvetica"
-|         color="red"
-|         "
-|   "
-|         <table>
-|           border="1"
-|           "
-|    "
-|           <tbody>
-|             <tr>
-|               <td>
-|                 <font>
-|                   size="+1"
-|                   <a>
-|                     href="foo.html"
-|                     "SHOULD BE TIMES ROMAN"
-|             "
-|   "
-|         "
-|   "
-|     <p>
-|       "
-| "
-|       <font>
-|         face="arial, helvetica"
-|         color="red"
-|         "  "
-|         <font>
-|           size="+1"
-|           "
-|    "
-|           <b>
-|             "
-|     "
-|             <a>
-|               href="foo.html"
-|               "SHOULD BE HELVETICA
-|     "
-|             "
-|    "
-|           "
-|   "
-|         "
-|  	"
-
-##todo filename: 40809_CR.html -- parser_datreader.js doesn't grok this content for some reason
-##todo filename: 40809_LF.html -- parser_datreader.js doesn't grok this content for some reason
-
-#data
-## filename: 40855.html
-<html><head></head>
-<body>
-
-<center style="color: green;">
-This should be on all one <!-- new date --> line... but it isn't
-</center>
-<table>
-</table>
-
-</body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-| "
-|     <center>
-|       style="color: green;"
-|       "
-| This should be on all one "
-|       <!--  new date  -->
-|       " line... but it isn't
-| "
-|     "
-| "
-|     <table>
-|       "
-| "
-|     "
-| "
-
-#data
-## filename: 43678.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><style>P { color:red };</style></head><body><P>Inside P but before TABLE<table><tr><td>cell</td></tr></table>After TABLE but inside P</body></html>
-#document
-<!DOCTYPE HTML>
-| <html>
-|   <head>
-|     <style>
-|       "P { color:red };"
-|   <body>
-|     <p>
-|       "Inside P but before TABLE"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "cell"
-|     "After TABLE but inside P"
-
-#data
-## filename: 44479.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>BUTTON in SPAN in SPAN / SPAN in BUTTON in SPAN</title></head>
-
-<body>
-
-<p>BUTTON in SPAN in SPAN</p>
-<span>
-<span>
-<button>
-myButton
-</button>
-</span>
-</span>
-<p>Text after button</p>
-
-<hr>
-
-<p>SPAN in BUTTON in SPAN</p>
-<span>
-<button>
-<span>
-myButton
-</span>
-</button>
-</span>
-<p>Text after button</p>
-
-</body></html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     <title>
-|       "BUTTON in SPAN in SPAN / SPAN in BUTTON in SPAN"
-|   <body>
-|     "
-| "
-|     <p>
-|       "BUTTON in SPAN in SPAN"
-|     "
-| "
-|     <span>
-|       "
-| "
-|       <span>
-|         "
-| "
-|         <button>
-|           "
-| myButton
-| "
-|         "
-| "
-|       "
-| "
-|     "
-| "
-|     <p>
-|       "Text after button"
-|     "
-| "
-|     <hr>
-|     "
-| "
-|     <p>
-|       "SPAN in BUTTON in SPAN"
-|     "
-| "
-|     <span>
-|       "
-| "
-|       <button>
-|         "
-| "
-|         <span>
-|           "
-| myButton
-| "
-|         "
-| "
-|       "
-| "
-|     "
-| "
-|     <p>
-|       "Text after button"
-|     "
-| "
-
-#data
-## filename: 44791.html
-<HTML>
- <BODY>
-  <p>
-   <form>
-    <table>
-     <strong>Your options on how to apply for the Job are:</strong><br>
-     <li>Fax your resume/statement of qualifications and cover letter
-    </table>
-   </form>
-   <form>
-    <select><option>1<option>2</select>
-    <table>
-     <strong>Your options on how to apply for the Job are:</strong><br>
-     <li>Fax your resume/statement of qualifications and cover letter
-    </table>
-   </form>
-  </BODY>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <p>
-|       "
-|    "
-|     <form>
-|       "
-|     "
-|       <strong>
-|         "Your options on how to apply for the Job are:"
-|       <br>
-|       "
-|      "
-|       <li>
-|         "Fax your resume/statement of qualifications and cover letter
-|     "
-|       <table>
-|         "
-|      "
-|       "
-|    "
-|     "
-|    "
-|     <form>
-|       "
-|     "
-|       <select>
-|         <option>
-|           "1"
-|         <option>
-|           "2"
-|       "
-|     "
-|       <strong>
-|         "Your options on how to apply for the Job are:"
-|       <br>
-|       "
-|      "
-|       <li>
-|         "Fax your resume/statement of qualifications and cover letter
-|     "
-|       <table>
-|         "
-|      "
-|       "
-|    "
-|     "
-|   "
-
-#data
-## filename: 47535.html
-<HTML>
-<BODY>
-<FORM METHOD=GET>
-<INPUT TYPE=hidden NAME=blah VALUE="a
-b">
-<INPUT TYPE=submit>
-</FORM>
-</BODY>
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <form>
-|       method="GET"
-|       "
-| "
-|       <input>
-|         type="hidden"
-|         value="a
-| b"
-|         name="blah"
-|       "
-| "
-|       <input>
-|         type="submit"
-|       "
-| "
-|     "
-| "
-
-#data
-## filename: 48256.html
-
-<HTML>
-<HEAD>
-<TITLE>Color Inheritance Test</TITLE>
-<STYLE type="text/css">
-
-BODY {background-color: #FFFFFF; color: #000000}
-
-.type-expression, .type-name {font-family: "Times New Roman", Times, serif; color: yellow}
-.type-name {font-variant: small-caps}
-.field-name {font-family: Arial, Helvetica, sans-serif; color: #FF0000}
-
-A * {text-decoration: inherit}
-</STYLE>
-</HEAD>
-
-<BODY>
-<P>P
- <SPAN class=type-expression>Span O
-  <A href="#Link1">A
-   <SPAN class=type-name>Span I</SPAN>
-  </A>
- </SPAN>
-</P>
-<P>P
- <A href="#Link1">A
-  <SPAN class=type-name>Span</SPAN>
- </A>
-</P>
-
-</BODY>
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <title>
-|       "Color Inheritance Test"
-|     "
-| "
-|     <style>
-|       type="text/css"
-|       "
-| BODY {background-color: #FFFFFF; color: #000000}
-| .type-expression, .type-name {font-family: "Times New Roman", Times, serif; color: yellow}
-| .type-name {font-variant: small-caps}
-| .field-name {font-family: Arial, Helvetica, sans-serif; color: #FF0000}
-| A * {text-decoration: inherit}
-| "
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <p>
-|       "P
-|  "
-|       <span>
-|         class="type-expression"
-|         "Span O
-|   "
-|         <a>
-|           href="#Link1"
-|           "A
-|    "
-|           <span>
-|             class="type-name"
-|             "Span I"
-|           "
-|   "
-|         "
-|  "
-|       "
-| "
-|     "
-| "
-|     <p>
-|       "P
-|  "
-|       <a>
-|         href="#Link1"
-|         "A
-|   "
-|         <span>
-|           class="type-name"
-|           "Span"
-|         "
-|  "
-|       "
-| "
-|     "
-| "
-
-#data
-## filename: 48351.html
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>Mozilla Tests: An XHTML Document</title>
-    
-    <style type="text/css">
-       .xhtml { display: none; }
-       strong { color: red; }
-    </style></head>
-
-  <body>
-    <h1>An XHTML Document</h1>
-    <p>This document is being parsed as <span class="xhtml">X</span>HTML. </p>
-    <p> <strong> This should not be emphasised text. </strong></p>
-<strong>    </strong><p><strong> This should be a second paragraph. </strong></p>
-<strong>  </strong></body></html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   xml:lang="en"
-|   xmlns="http://www.w3.org/1999/xhtml"
-|   <head>
-|     <title>
-|       "Mozilla Tests: An XHTML Document"
-|     "
-|     
-|     "
-|     <style>
-|       type="text/css"
-|       "
-|        .xhtml { display: none; }
-|        strong { color: red; }
-|     "
-|   <body>
-|     "
-|     "
-|     <h1>
-|       "An XHTML Document"
-|     "
-|     "
-|     <p>
-|       "This document is being parsed as "
-|       <span>
-|         class="xhtml"
-|         "X"
-|       "HTML. "
-|     "
-|     "
-|     <p>
-|       " "
-|       <strong>
-|         " This should not be emphasised text. "
-|     "
-| "
-|     <strong>
-|       "    "
-|     <p>
-|       <strong>
-|         " This should be a second paragraph. "
-|     "
-| "
-|     <strong>
-|       "  "
-
-#data
-## filename: 50050.html
-<HTML>
-<HEAD>
-<STYLE>
-.abs {
-  position: absolute;
-}
-</STYLE>
-<SCRIPT>
-  function showWidth(strName) {
-    dump(getComputedStyle(document.getElementById(strName), 
-null).getPropertyValue('width'));
-  }
-</SCRIPT>
-</HEAD>
-<BODY>
-<DIV CLASS="abs" ID="foo">
-  Single &lt;DIV&gt;
-</DIV><BR><BR>
-<INPUT TYPE="Button" VALUE="Test" onClick="showWidth('foo');">
-<BR>
-<DIV CLASS="abs">
-  <DIV CLASS="abs" ID="bar">
-    Nested &lt;DIV&gt;s
-  </DIV>
-</DIV><BR><BR>
-<INPUT TYPE="Button" VALUE="Test" onClick="showWidth('bar');">
-</BODY>
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <style>
-|       "
-| .abs {
-|   position: absolute;
-| }
-| "
-|     "
-| "
-|     <script>
-|       "
-|   function showWidth(strName) {
-|     dump(getComputedStyle(document.getElementById(strName), 
-| null).getPropertyValue('width'));
-|   }
-| "
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <div>
-|       id="foo"
-|       class="abs"
-|       "
-|   Single <DIV>
-| "
-|     <br>
-|     <br>
-|     "
-| "
-|     <input>
-|       type="Button"
-|       onclick="showWidth('foo');"
-|       value="Test"
-|     "
-| "
-|     <br>
-|     "
-| "
-|     <div>
-|       class="abs"
-|       "
-|   "
-|       <div>
-|         id="bar"
-|         class="abs"
-|         "
-|     Nested <DIV>s
-|   "
-|       "
-| "
-|     <br>
-|     <br>
-|     "
-| "
-|     <input>
-|       type="Button"
-|       onclick="showWidth('bar');"
-|       value="Test"
-|     "
-| "
-
-#data
-## filename: 51161.html
-<html><head>
-<style>
-p { font-size: 24px}
-</style></head>
-<body>
-  <p>text text text text</p>
- </body></html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     <style>
-|       "
-| p { font-size: 24px}
-| "
-|   <body>
-|     "
-|   "
-|     <p>
-|       "text text text text"
-|     "
-|  "
-
-#data
-## filename: 53112.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
- <head>
-  <title>Mozilla: Stylesheet linking without "type" attribute</title>
-  <style type="text/css">
-   p { color: red; }
-  </style>
-  <link rel="stylesheet">
- </head>
- <body>
-  <p class="test">I should be green.</p>
- </body>
-</html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     "
-| 
-|  "
-|     "
-|   "
-|     <title>
-|       "Mozilla: Stylesheet linking without "type" attribute"
-|     "
-|   "
-|     <style>
-|       type="text/css"
-|       "
-|    p { color: red; }
-|   "
-|     "
-|   "
-|     <link>
-|       rel="stylesheet"
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <p>
-|       class="test"
-|       "I should be green."
-|     "
-|  "
-
-#data
-## filename: 54651.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><title>Child Selectors Test</title>
-  
-   <style type="text/css">
-
-    DIV P { background: red; color: yellow }
-    LI P { background: green; color: white; }
-
-    DIV P:after { content: ' [[ FAILED ]]'; }
-    LI P:after { content: ' [[ PASSED ]]'; }
-
-    * { padding: 4px; border: 1px solid lime; margin: 4px; } 
-
-   </style></head>
-
- <body>
-
-  <p>Below this box, every box should be within another. In other
-  words, the only SIBLINGS in this document should be this box and the
-  immediate next one. In particular, LI should allow the inner DIV to
-  nest within it.</p>
-
-  <div>
-   DIV
-   <ol>
-    <li> 
-     LI
-     <div>
-      DIV
-      <p>
-       P
-      </p>
-     </div>
-    </li>
-   </ol>
-  </div>
-
- </body></html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     <title>
-|       "Child Selectors Test"
-|     "
-|   
-|    "
-|     <style>
-|       type="text/css"
-|       "
-|     DIV P { background: red; color: yellow }
-|     LI P { background: green; color: white; }
-|     DIV P:after { content: ' [[ FAILED ]]'; }
-|     LI P:after { content: ' [[ PASSED ]]'; }
-|     * { padding: 4px; border: 1px solid lime; margin: 4px; } 
-|    "
-|   <body>
-|     "
-|   "
-|     <p>
-|       "Below this box, every box should be within another. In other
-|   words, the only SIBLINGS in this document should be this box and the
-|   immediate next one. In particular, LI should allow the inner DIV to
-|   nest within it."
-|     "
-|   "
-|     <div>
-|       "
-|    DIV
-|    "
-|       <ol>
-|         "
-|     "
-|         <li>
-|           " 
-|      LI
-|      "
-|           <div>
-|             "
-|       DIV
-|       "
-|             <p>
-|               "
-|        P
-|       "
-|             "
-|      "
-|           "
-|     "
-|         "
-|    "
-|       "
-|   "
-|     "
-|  "
-
-#data
-## filename: 54845.html
-<html>
-<head>
-<script>
-function changePage() {
-  dump("Change Page!\n");
-}
-</script>
-</head>
-
-<body>
-Start of Body Content
-<script>
-document.writeln('<FORM name="SelectMenu" method=post action="javascript:changePage();">');
-with (document){
-  writeln('<FORM name="SelectMenu" method=post action="javascript:changePage();">');
-  writeln('script form content');
-}
-</script>
-
-<noscript>
-  <FORM name="SelectMenu" method="post">
-    noscript form content goes here
-  <table border=1>
-   <tr><td>TABLE</td></tr>
-    illegal table content
-  </table>
-
-  </FORM>
-</noscript>
-
-<center>
-<INPUT>
-</center>
-</FORM>
-</body>
-</html>
-
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <script>
-|       "
-| function changePage() {
-|   dump("Change Page!\n");
-| }
-| "
-|     "
-| "
-|   <body>
-|     "
-| Start of Body Content
-| "
-|     <script>
-|       "
-| document.writeln('<FORM name="SelectMenu" method=post action="javascript:changePage();">');
-| with (document){
-|   writeln('<FORM name="SelectMenu" method=post action="javascript:changePage();">');
-|   writeln('script form content');
-| }
-| "
-|     <form>
-|       action="javascript:changePage();"
-|       method="post"
-|       name="SelectMenu"
-|       "
-| 
-| script form content
-| 
-| "
-|       <noscript>
-|         "
-|   <FORM name="SelectMenu" method="post">
-|     noscript form content goes here
-|   <table border=1>
-|    <tr><td>TABLE</td></tr>
-|     illegal table content
-|   </table>
-|   </FORM>
-| "
-|       "
-| "
-|       <center>
-|         "
-| "
-|         <input>
-|         "
-| "
-|       "
-| "
-|     "
-| "
-
-#data
-## filename: 56245_1.html
-<html>
- <head>
-  <style>
-   font {  background-color:yellow }
-  </style>
- </head>
-<body>
-<font color=red>italized text<x> unknown
- <table border=1>
-  <tr>
-   <td>
-    </font>cell 1
-   </td>
-  </tr>
- </table>
-</body>
-</html>
-
-
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|     "
-|   "
-|     <style>
-|       "
-|    font {  background-color:yellow }
-|   "
-|     "
-|  "
-|   <body>
-|     "
-| "
-|     <font>
-|       color="red"
-|       "italized text"
-|       <x>
-|         " unknown
-|  "
-|         <table>
-|           border="1"
-|           "
-|   "
-|           <tbody>
-|             <tr>
-|               "
-|    "
-|               <td>
-|                 "
-|     cell 1
-|    "
-|               "
-|   "
-|             "
-|  "
-|         "
-| "
-
-#data
-## filename: 56245_2.html
-<HTML>
-<BODY bgColor=#000099>
-<TABLE border=1>
- <TR>
-  <TD bgcolor="red">
-   Cell-1
-  </TD>
- </TR>
- <TR vAlign=top>
-  <TD bgColor="blue">
-   <FORM>
-    <TABLE border=1>
-     <TR vAlign=top>
-      <TD bgcolor="green">
-       Cell-2
-      </TD>
-     </FORM>
-</BODY>
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|   <body>
-|     bgcolor="#000099"
-|     "
-| "
-|     <table>
-|       border="1"
-|       "
-|  "
-|       <tbody>
-|         <tr>
-|           "
-|   "
-|           <td>
-|             bgcolor="red"
-|             "
-|    Cell-1
-|   "
-|           "
-|  "
-|         "
-|  "
-|         <tr>
-|           valign="top"
-|           "
-|   "
-|           <td>
-|             bgcolor="blue"
-|             "
-|    "
-|             <form>
-|               "
-|     "
-|               <table>
-|                 border="1"
-|                 "
-|      "
-|                 <tbody>
-|                   <tr>
-|                     valign="top"
-|                     "
-|       "
-|                     <td>
-|                       bgcolor="green"
-|                       "
-|        Cell-2
-|       "
-|                     "
-|      
-| "
-
-#data
-## filename: 56245_3.html
-<html>
- <head>
-  <style>
-   font {  background-color:yellow }
-   div  {  color:green }
-   x { background-color:blue; }
-  </style>
- </head>
-<body>
-<font face="helvetica">
- red<x> unknown
- <div>div a
- </font>
- div b
- </div>
- normal text
-  
- </table>
-</body>
-</html>
-
-
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|     "
-|   "
-|     <style>
-|       "
-|    font {  background-color:yellow }
-|    div  {  color:green }
-|    x { background-color:blue; }
-|   "
-|     "
-|  "
-|   <body>
-|     "
-| "
-|     <font>
-|       face="helvetica"
-|       "
-|  red"
-|       <x>
-|         " unknown
-|  "
-|     <div>
-|       <font>
-|         face="helvetica"
-|         "div a
-|  "
-|       "
-|  div b
-|  "
-|     "
-|  normal text
-|   
-|  
-| "
-
-#data
-## filename: 58455.html
-<html>
-<head>
-	<title>Computer Market Online</title>
-	<BASE HREF="http://www.computermarket.com.au/">\
-</head>
-<body bgcolor="#ffffff">
-<table>
-<tr><td><a href='prodDetail.asp?id=6007&catid=241'>This shows</a></td></tr>
-<tr><td><a href='prodDetail.asp?id=6007&catid=241'"bgcolor=>This does not show</a></td></tr>
-</table>
-</body>
-</html>x
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| 	"
-|     <title>
-|       "Computer Market Online"
-|     "
-| 	"
-|     <base>
-|       href="http://www.computermarket.com.au/"
-|   <body>
-|     bgcolor="#ffffff"
-|     "\
-| 
-| "
-|     <table>
-|       "
-| "
-|       <tbody>
-|         <tr>
-|           <td>
-|             <a>
-|               href="prodDetail.asp?id=6007&catid=241"
-|               "This shows"
-|         "
-| "
-|         <tr>
-|           <td>
-|             <a>
-|               bgcolor=""
-|               href="prodDetail.asp?id=6007&catid=241"
-|               "This does not show"
-|         "
-| "
-|     "
-| x"
-
-#data
-## filename: 58809.html
-<html>
- <body>
-  &#039;A&#039<br>
-  &#039A&#039<br>
-  &#039b&#039<br>
-  &#039c&#039<br>
-  &#039d&#039<br>
-  &#039e&#039<br>
-  &#039f&#039<br>
- </body>
-</html>
-
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|   <body>
-|     "
-|   'A'"
-|     <br>
-|     "
-|   'A'"
-|     <br>
-|     "
-|   'b'"
-|     <br>
-|     "
-|   'c'"
-|     <br>
-|     "
-|   'd'"
-|     <br>
-|     "
-|   'e'"
-|     <br>
-|     "
-|   'f'"
-|     <br>
-|     "
-|  "
-
-#data
-## filename: 6148.html
-<html>
-<head>
-<title>Bug</title>
-</head>
-<body>
-
-BUG:<BR>
-
-<SPAN style="color:blue">&lt;SPAN>
-<DIV style="color:red">&lt;DIV>
-<SPAN style="color:green">&lt;SPAN>
-&lt;/SPAN></SPAN>
-&lt;/DIV></DIV>
-&lt;/SPAN></SPAN>
-
-<HR>
-
-NO BUG:<BR>
-
-<SPAN style="color:blue">&lt;SPAN>
-<DIV style="color:red">&lt;DIV>
-<B style="color:green">&lt;B>
-&lt;/B></B>
-&lt;/DIV></DIV>
-&lt;/SPAN></SPAN>
-
-
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <title>
-|       "Bug"
-|     "
-| "
-|   <body>
-|     "
-| BUG:"
-|     <br>
-|     "
-| "
-|     <span>
-|       style="color: blue;"
-|       "<SPAN>
-| "
-|       <div>
-|         style="color: red;"
-|         "<DIV>
-| "
-|         <span>
-|           style="color: green;"
-|           "<SPAN>
-| </SPAN>"
-|         "
-| </DIV>"
-|       "
-| </SPAN>"
-|     "
-| "
-|     <hr>
-|     "
-| NO BUG:"
-|     <br>
-|     "
-| "
-|     <span>
-|       style="color: blue;"
-|       "<SPAN>
-| "
-|       <div>
-|         style="color: red;"
-|         "<DIV>
-| "
-|         <b>
-|           style="color: green;"
-|           "<B>
-| </B>"
-|         "
-| </DIV>"
-|       "
-| </SPAN>"
-|     "
-| "
-
-#data
-## filename: 65467.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-<title>Bug: 65467</title>
-<style type="text/css">
-.one { border: solid 1px navy; padding: 4px; margin: 4px; }
-  </style>
-</head>
-<body>
-
-<pre class="one">
-<dt> The center tag's border "should" go around this text.  </dt>
-</center>
-
-</body>
-</html>
-
-
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     "
-| 
-| "
-|     "
-| "
-|     <title>
-|       "Bug: 65467"
-|     "
-| "
-|     <style>
-|       type="text/css"
-|       "
-| .one { border: solid 1px navy; padding: 4px; margin: 4px; }
-|   "
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <pre>
-|       class="one"
-|       <dt>
-|         " The center tag's border "should" go around this text.  "
-|       "
-| 
-| "
-
-#data
-## filename: 67569.html
-<html>
-<body>
- <p>
-  <table>
-   <tr>
-    <td>
-      First line
-	  </p>
-    Second line
-    </td>
-   </tr>
-  </table>
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|   <body>
-|     "
-|  "
-|     <p>
-|       "
-|   "
-|       <table>
-|         "
-|    "
-|         <tbody>
-|           <tr>
-|             "
-|     "
-|             <td>
-|               "
-|       First line
-| 	  
-|     Second line
-|     "
-|             "
-|    "
-|           "
-|   "
-|       "
-| "
-
-#data
-## filename: 67874.html
-<html><body>
-<!--> Did you know that <b>your Browser is <em>buggy</em></b>: it can't parse
-comments correctly. -->
-</body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-| "
-|     <!--  -->
-|     " Did you know that "
-|     <b>
-|       "your Browser is "
-|       <em>
-|         "buggy"
-|     ": it can't parse
-| comments correctly. -->
-| "
-
-#data
-## filename: 69576.html
-<html>
-<body bgcolor="#ffffff">
-
-Row,Col
-<table border=1>
- <tr>
-  <td bgcolor=purple>
-   1,1
-  </td>
-  <td bgcolor=blue>
-   1,2
-   <font size="2">
-   <left>
-   <table border="2">
-    <tr>
-     <td bgcolor=green>
-      1,1,1
-     </td>
-     <td bgcolor=yellow>
-      1,1,2</font>
-     </td>
-    </tr>
-    <tr>
-     <td bgcolor=red>
-      1,2,2
-     </td>
-    </tr>
-   </table>
-  </td>
- </tr>
-</table>
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|   <body>
-|     bgcolor="#ffffff"
-|     "
-| Row,Col
-| "
-|     <table>
-|       border="1"
-|       "
-|  "
-|       <tbody>
-|         <tr>
-|           "
-|   "
-|           <td>
-|             bgcolor="purple"
-|             "
-|    1,1
-|   "
-|           "
-|   "
-|           <td>
-|             bgcolor="blue"
-|             "
-|    1,2
-|    "
-|             <font>
-|               size="2"
-|               "
-|    "
-|               <left>
-|                 "
-|    "
-|                 <table>
-|                   border="2"
-|                   "
-|     "
-|                   <tbody>
-|                     <tr>
-|                       "
-|      "
-|                       <td>
-|                         bgcolor="green"
-|                         "
-|       1,1,1
-|      "
-|                       "
-|      "
-|                       <td>
-|                         bgcolor="yellow"
-|                         "
-|       1,1,2
-|      "
-|                       "
-|     "
-|                     "
-|     "
-|                     <tr>
-|                       "
-|      "
-|                       <td>
-|                         bgcolor="red"
-|                         "
-|       1,2,2
-|      "
-|                       "
-|     "
-|                     "
-|    "
-|                 "
-|   "
-|           "
-|  "
-|         "
-| "
-|     "
-| "
-
-#data
-## filename: 70148.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <title>testcase</title>
-</head>
-<body style="font-size:30pt">
-  <a href=foo?bar=baz&lang=foo&amptest1=test2>All the stuff after
-  &amp;lang got munched.
-</body>
-</html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   xmlns="http://www.w3.org/1999/xhtml"
-|   <head>
-|     "
-| 
-| "
-|     "
-|   "
-|     <title>
-|       "testcase"
-|     "
-| "
-|   <body>
-|     style="font-size: 30pt;"
-|     "
-|   "
-|     <a>
-|       href="foo?bar=baz&lang=foo&amptest1=test2"
-|       "All the stuff after
-|   &lang got munched.
-| "
-
-#data
-## filename: 77352.html
-<html>
- <body>
-  <font size=+2>
-   size +2
-   <P>
-     PPPP
-   <H6>
-     H6<font size=2>blah</font>
-   </H6>
-   size +2
- </body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <font>
-|       size="+2"
-|       "
-|    size +2
-|    "
-|     <p>
-|       "
-| "
-|       <font>
-|         size="+2"
-|         "     PPPP
-|    "
-|     <h6>
-|       "
-| "
-|       <font>
-|         size="+2"
-|         _moz-rs-heading=""
-|         "     H6"
-|         <font>
-|           size="2"
-|           "blah"
-|         "
-|    "
-|     "
-| "
-|     <font>
-|       size="+2"
-|       "   size +2
-|  "
-
-#data
-## filename: 77746.html
-<html><head></head>
-<body><p><b><font color="red">bold red</font></b></p> neither bold nor red
-</body></html>
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         <font>
-|           color="red"
-|           "bold red"
-|     " neither bold nor red
-| "
-
-#data
-## filename: 78444.html
-<html>
-<head>
-<base xhref="http://www.coldplay.com">
-<title>coldplay</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<frameset rows="110,438*" cols="*" frameborder="NO" border="0" framespacing="0"> 
-  <frame xsrc="forum_top.htm" scrolling="NO">
-  <frame xsrc="http://coldplay.hypnosismedia.co.uk/cgi-bin/Ultimate.cgi">
-</frameset>
-<noframes><body bgcolor="#FFFFFF">
-
-</body></noframes>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <base>
-|       xhref="http://www.coldplay.com"
-|     "
-| "
-|     <title>
-|       "coldplay"
-|     "
-| "
-|     <meta>
-|       content="text/html; charset=iso-8859-1"
-|       http-equiv="Content-Type"
-|     "
-| "
-|   <frameset>
-|     framespacing="0"
-|     border="0"
-|     frameborder="NO"
-|     cols="*"
-|     rows="110,438*"
-|     " 
-|   "
-|     <frame>
-|       scrolling="NO"
-|       xsrc="forum_top.htm"
-|     "
-|   "
-|     <frame>
-|       xsrc="http://coldplay.hypnosismedia.co.uk/cgi-bin/Ultimate.cgi"
-|     "
-| "
-|   "
-| "
-|   <noframes>
-|     "<body bgcolor="#FFFFFF">
-| </body>"
-|   "
-| "
-
-#data
-## filename: 78848.html
-<html>
-<head>
-<title>Testcase that cause hangup</title>
-</head>
-
-<body>
-
-<table>
-<tr>
-<td>
-
-<table>
-<tr>
-<tr>
-<td>
-
-<table>
-<tr>
-<td>
-<font face="Arial, Verdana, Geneva, MS Sans Serif, Helvetica">
-
-<table>
-<tr>
-<td>
-
-<font face="Verdana, Arial">
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-
-<ul>
-</font>
-</ul>
-
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-
-<ul>
-</font>
-</ul>
-
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-
-<ul>
-</font>
-</ul>
-
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-
-<ul>
-</font>
-</ul>
-
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-
-<ul>
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-<a href=arlz_player.html>Ar1z Video Player</a><br>
-<a href=bs_play.html>BS Player</a> <img xsrc=new_sm.gif><br>
-<a href=cinematograph.html>Cinematograph</a> - also plays DVDs, VCDs and Quicktime<br>
-<a href=dzmovie_play.html>DzMovies Multimedia Player</a><br>
-<a href=fmv.html>FMV Player</a><br>
-<a href=gdivx_play.html>GDivX Player</a> <img xsrc=new_sm.gif><br>
-<a href=home_player.html>Home Player</a><br>
-<a href=mediabox.html>MediaBOX</a><br>
-<a href=media_station.html>Mediastation</a><br>
-<a href=microdvd.html>MicroDVD</a><br>
-<a href=mini_player.html>Mini Player</a><br>
-<a href=multiavi.html>MultiAVI Player</a><br>
-<a href=playa.html>The Playa</a> - "official" (sort-of) DivX player<br>
-<a href=powerdivx.html>PowerDivX NextGen</a><br>
-<a href=radlight_player.html>RadLight Player</a><br>
-<a href=divxmpeg4_play.html>REDZ's DivX (MPEG-4) Player</a><br>
-<a href=revelatex_player.html>Revelatex Media Player</a><br>
-<a href=ripnot.html>Ripnot DivX Player</a><br>
-<a href=sasami_player.html>Sasami Player</a><br>
-<a href=showdivx.html>ShowDivX</a><br>
-<a href=twins_player.html>Twins Video Player</a><br>
-<a href="ultradivx.html">UltraDivX</a> <img xsrc=new_sm.gif><br>
-<a href=vidamp.html>VidAmp</a> - a WinAmp movie playback plugin<br>
-<a href="vidomi.html">Vidomi</a> - can make and playback DivX movie files <img xsrc=new_sm.gif><br>
-<a href=http://www.digital-digest.com/dvd/downloads/zoom_player.html>Zoom Player</a><br><br>
-<a href=mac_divx.html>DivX for the Apple Mac</a><br>
-<a href=be_divx.html>DivX for BeOS</a><br>
-<a href=linux_divx.html>DivX for Linux</a><br><br>
-<a href=http://www.digital-digest.com/dvd/downloads/playback.html>DVD Players</a> - Many DVD players can also playback DivX movies
-</ul>
-
-
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica">
-<font face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"><u>On this site : </u>
-
-<ul>
-</font>
-</ul>
-</font>
-
-
-</td>
-</tr>
-</table>
-
-</td>
-</tr>
-</table>
-
-</td>
-</tr>
-</table>
-
-</td>
-</tr>
-</table>
-
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <title>
-|       "Testcase that cause hangup"
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <table>
-|       "
-| "
-|       <tbody>
-|         <tr>
-|           "
-| "
-|           <td>
-|             "
-| "
-|             <table>
-|               "
-| "
-|               <tbody>
-|                 <tr>
-|                   "
-| "
-|                 <tr>
-|                   "
-| "
-|                   <td>
-|                     "
-| "
-|                     <table>
-|                       "
-| "
-|                       <tbody>
-|                         <tr>
-|                           "
-| "
-|                           <td>
-|                             "
-| "
-|                             <font>
-|                               face="Arial, Verdana, Geneva, MS Sans Serif, Helvetica"
-|                               "
-| "
-|                               <table>
-|                                 "
-| "
-|                                 <tbody>
-|                                   <tr>
-|                                     "
-| "
-|                                     <td>
-|                                       "
-| "
-|                                       <font>
-|                                         face="Verdana, Arial"
-|                                         "
-| "
-|                                         <font>
-|                                           face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                           "
-| "
-|                                       <ul>
-|                                         "
-| "
-|                                         <font>
-|                                           face="Verdana, Arial"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                           "
-| "
-|                                       "
-| "
-|                                       <font>
-|                                         face="Verdana, Arial"
-|                                         <font>
-|                                           face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                           "
-| "
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             "
-| "
-|                                       <ul>
-|                                         "
-| "
-|                                         <font>
-|                                           face="Verdana, Arial"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             <font>
-|                                               face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             "
-| "
-|                                       "
-| "
-|                                       <font>
-|                                         face="Verdana, Arial"
-|                                         <font>
-|                                           face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             "
-| "
-|                                             <font>
-|                                               face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                               "
-| "
-|                                               <font>
-|                                                 face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                 "
-| "
-|                                       <ul>
-|                                         "
-| "
-|                                         <font>
-|                                           face="Verdana, Arial"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             <font>
-|                                               face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                               <font>
-|                                                 face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                 <font>
-|                                                   face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                 "
-| "
-|                                       "
-| "
-|                                       <font>
-|                                         face="Verdana, Arial"
-|                                         <font>
-|                                           face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             <font>
-|                                               face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                               <font>
-|                                                 face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                 "
-| "
-|                                                 <font>
-|                                                   face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                   "
-| "
-|                                       <ul>
-|                                         "
-| "
-|                                         <font>
-|                                           face="Verdana, Arial"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             <font>
-|                                               face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                               <font>
-|                                                 face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                 <font>
-|                                                   face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                   <font>
-|                                                     face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                   "
-| "
-|                                       "
-| "
-|                                       <font>
-|                                         face="Verdana, Arial"
-|                                         <font>
-|                                           face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             <font>
-|                                               face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                               <font>
-|                                                 face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                 <font>
-|                                                   face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                   "
-| "
-|                                       <ul>
-|                                         "
-| "
-|                                         <font>
-|                                           face="Verdana, Arial"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             <font>
-|                                               face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                               <font>
-|                                                 face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                 <font>
-|                                                   face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                   <font>
-|                                                     face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                     <font>
-|                                                       face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="arlz_player.html"
-|                                                         "Ar1z Video Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="bs_play.html"
-|                                                         "BS Player"
-|                                                       " "
-|                                                       <img>
-|                                                         xsrc="new_sm.gif"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="cinematograph.html"
-|                                                         "Cinematograph"
-|                                                       " - also plays DVDs, VCDs and Quicktime"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="dzmovie_play.html"
-|                                                         "DzMovies Multimedia Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="fmv.html"
-|                                                         "FMV Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="gdivx_play.html"
-|                                                         "GDivX Player"
-|                                                       " "
-|                                                       <img>
-|                                                         xsrc="new_sm.gif"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="home_player.html"
-|                                                         "Home Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="mediabox.html"
-|                                                         "MediaBOX"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="media_station.html"
-|                                                         "Mediastation"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="microdvd.html"
-|                                                         "MicroDVD"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="mini_player.html"
-|                                                         "Mini Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="multiavi.html"
-|                                                         "MultiAVI Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="playa.html"
-|                                                         "The Playa"
-|                                                       " - "official" (sort-of) DivX player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="powerdivx.html"
-|                                                         "PowerDivX NextGen"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="radlight_player.html"
-|                                                         "RadLight Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="divxmpeg4_play.html"
-|                                                         "REDZ's DivX (MPEG-4) Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="revelatex_player.html"
-|                                                         "Revelatex Media Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="ripnot.html"
-|                                                         "Ripnot DivX Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="sasami_player.html"
-|                                                         "Sasami Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="showdivx.html"
-|                                                         "ShowDivX"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="twins_player.html"
-|                                                         "Twins Video Player"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="ultradivx.html"
-|                                                         "UltraDivX"
-|                                                       " "
-|                                                       <img>
-|                                                         xsrc="new_sm.gif"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="vidamp.html"
-|                                                         "VidAmp"
-|                                                       " - a WinAmp movie playback plugin"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="vidomi.html"
-|                                                         "Vidomi"
-|                                                       " - can make and playback DivX movie files "
-|                                                       <img>
-|                                                         xsrc="new_sm.gif"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="http://www.digital-digest.com/dvd/downloads/zoom_player.html"
-|                                                         "Zoom Player"
-|                                                       <br>
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="mac_divx.html"
-|                                                         "DivX for the Apple Mac"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="be_divx.html"
-|                                                         "DivX for BeOS"
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="linux_divx.html"
-|                                                         "DivX for Linux"
-|                                                       <br>
-|                                                       <br>
-|                                                       "
-| "
-|                                                       <a>
-|                                                         href="http://www.digital-digest.com/dvd/downloads/playback.html"
-|                                                         "DVD Players"
-|                                                       " - Many DVD players can also playback DivX movies
-| "
-|                                       "
-| "
-|                                       <font>
-|                                         face="Verdana, Arial"
-|                                         <font>
-|                                           face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                           <font>
-|                                             face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                             <font>
-|                                               face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                               <font>
-|                                                 face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                 <font>
-|                                                   face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                   <font>
-|                                                     face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                     <font>
-|                                                       face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                       "
-| "
-|                                                       <font>
-|                                                         face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                         <u>
-|                                                           "On this site : "
-|                                                         "
-| "
-|                                                       <ul>
-|                                                         "
-| "
-|                                                         <font>
-|                                                           face="Verdana, Arial, Geneva, MS Sans Serif, Helvetica"
-|                                                         "
-| "
-|                                                       "
-| "
-|                                                     "
-| "
-|                                     "
-| "
-|                                   "
-| "
-|                               "
-| "
-|                           "
-| "
-|                         "
-| "
-|                     "
-| "
-|                   "
-| "
-|                 "
-| "
-|             "
-| "
-|           "
-| "
-|         "
-| "
-|     "
-| "
-
-#data
-## filename: 79492.html
-<html><head>
-<title>PG&E &E: &e. &e; &&e &&e;</title>
-<!-- will render as 'PG . & & -->
-</head><body>
-<p>Title should look like this:</p>
-<p>PG&E &E: &e. &e; &&e &&e;</p>
-<!-- will render as 'PG&E &E: &e. &e; &&e &&e;' -->
-</body>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     <title>
-|       "PG&E &E: &e. &e; &&e &&e;"
-|     "
-| "
-|     <!--  will render as 'PG . & &  -->
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <p>
-|       "Title should look like this:"
-|     "
-| "
-|     <p>
-|       "PG&E &E: &e. &e; &&e &&e;"
-|     "
-| "
-|     <!--  will render as 'PG&E &E: &e. &e; &&e &&e;'  -->
-|     "
-| "
-
-#data
-## filename: 84000.html
-<html>
-<head>
-<title>IMG without attribute</title>
-</head>
-<frameset>
-<frame name="TESTTHIS">
-<frame name="SCODA">
-<noframes>
-<img xsrc="mozilla.gif">
-</noframes>
-</frameset>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <title>
-|       "IMG without attribute"
-|     "
-| "
-|   <frameset>
-|     "
-| "
-|     <frame>
-|       name="TESTTHIS"
-|     "
-| "
-|     <frame>
-|       name="SCODA"
-|     "
-| "
-|     <noframes>
-|       "
-| <img xsrc="mozilla.gif">
-| "
-|     "
-| "
-|   "
-| "
-
-#data
-## filename: 84491.html
-<html>
- <body>
-  <a href="foo.html">
-   <iframe>
-    <a href="bar.html">
-   </iframe>foo
-  </a>
- </body>
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <a>
-|       href="foo.html"
-|       "
-|    "
-|       <iframe>
-|         "
-|     <a href="bar.html">
-|    "
-|       "foo
-|   "
-|     "
-|  "
-
-#data
-## filename: 88746.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html><head><title>Debian Planet</title>
-<meta http-equiv=Content-Type content="text/html; charset=">
-<meta content="Debian Planet" name=AUTHOR>
-<meta content="Copyright (c) 2001 by Debian Planet" name=COPYRIGHT>
-<meta content="Serving FREE beer to the users of the FREE Linux of a FREE world" 
-name=DESCRIPTION>
-<meta content="MSHTML 5.50.4611.1300" name=GENERATOR>
-
-<script language=javascript xsrc="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=41009"></script>
-</head>
-<body>
-<script language=javascript>foo();</script>
-</body>
-</html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     "
-| "
-|     <title>
-|       "Debian Planet"
-|     "
-| "
-|     <meta>
-|       content="text/html; charset="
-|       http-equiv="Content-Type"
-|     "
-| "
-|     <meta>
-|       name="AUTHOR"
-|       content="Debian Planet"
-|     "
-| "
-|     <meta>
-|       name="COPYRIGHT"
-|       content="Copyright (c) 2001 by Debian Planet"
-|     "
-| "
-|     <meta>
-|       name="DESCRIPTION"
-|       content="Serving FREE beer to the users of the FREE Linux of a FREE world"
-|     "
-| "
-|     <meta>
-|       name="GENERATOR"
-|       content="MSHTML 5.50.4611.1300"
-|     "
-| "
-|     <script>
-|       xsrc="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=41009"
-|       language="javascript"
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <script>
-|       language="javascript"
-|       "foo();"
-|     "
-| "
-
-#data
-## filename: 88992.html
-<!DOCTYPE>
-<HTML>
- <BODY bgcolor=pink>
-<table>&dash;
- <tr><!-- &dash; --><harish></harish>
-   <td> &amp;
-    <div>div<p><xmp>p<I>I</div></I></xmp>
-   </td>
-  </tr>
- </table>
- 
-  <object><i>italic</object>
-  This text doesn't show up.!
-
- </BODY></HTML>
-#document
-| <html>
-|   <head>
-|     "
-| 
-|  "
-|   <body>
-|     bgcolor="pink"
-|     "
-| "
-|     "&dash;
-|  "
-|     <harish>
-|     "
-|    "
-|     <table>
-|       <tbody>
-|         <tr>
-|           <!--  &dash;  -->
-|           <td>
-|             " &
-|     "
-|             <div>
-|               "div"
-|               <p>
-|                 <xmp>
-|                   "p<I>I</div></I>"
-|                 "
-|    "
-|           "
-|   "
-|         "
-|  "
-|     "
-|  
-|   "
-|     <object>
-|       <i>
-|         "italic"
-|     "
-|   This text doesn't show up.!
-|  "
-
-
-#data
-## filename: 91051.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-This should be visible.
-<p>
-This is a new paragraph.
-
-
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     "
-| "
-|   <body>
-|     "This should be visible.
-| "
-|     <p>
-|       "
-| This is a new paragraph."
-
-#data
-## filename: 92530.html
-<!-- Tag Soup -->
-<html>
- <head>
-  <title> Bugscape Bug 5040 </title>
-  <style type="text/css">
-   :table-cell { border: red dotted 10px; }
-  </style>
- </head>
- <body>
-  <table>
-   <tr>
-    <td bgcolor=pink>
-     <form>
-      <table border=1>
-       <tr>
-        <td bgcolor=blue>  
-         <table>
-          <span> CONTENT PROMOTED ABOVE INNER TABLE </span>
-          <tr> 
-           <td bgcolor=green> ROW 1 CELL 1 </td>
-          </tr>
-         </table>
-        </td>
-       </tr>
-       <tr> 
-        <td> ROW 2 CELL 1 </td>
-       </tr>
-      </table>
-     </form>
-    </td>
-   </tr>
-  </table>
- </body>
-</html>
-#document
-| <html>
-|   <head>
-|     <!--  Tag Soup  -->
-|     "
-| 
-|  "
-|     "
-|   "
-|     <title>
-|       " Bugscape Bug 5040 "
-|     "
-|   "
-|     <style>
-|       type="text/css"
-|       "
-|    :table-cell { border: red dotted 10px; }
-|   "
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <table>
-|       "
-|    "
-|       <tbody>
-|         <tr>
-|           "
-|     "
-|           <td>
-|             bgcolor="pink"
-|             "
-|      "
-|             <form>
-|               "
-|       "
-|               <table>
-|                 border="1"
-|                 "
-|        "
-|                 <tbody>
-|                   <tr>
-|                     "
-|         "
-|                     <td>
-|                       bgcolor="blue"
-|                       "  
-|          "
-|                       <span>
-|                         " CONTENT PROMOTED ABOVE INNER TABLE "
-|                       "
-|           "
-|                       <table>
-|                         "
-|           "
-|                         <tbody>
-|                           <tr>
-|                             " 
-|            "
-|                             <td>
-|                               bgcolor="green"
-|                               " ROW 1 CELL 1 "
-|                             "
-|           "
-|                           "
-|          "
-|                       "
-|         "
-|                     "
-|        "
-|                   "
-|        "
-|                   <tr>
-|                     " 
-|         "
-|                     <td>
-|                       " ROW 2 CELL 1 "
-|                     "
-|        "
-|                   "
-|       "
-|               "
-|      "
-|             "
-|     "
-|           "
-|    "
-|         "
-|   "
-|     "
-|  "
-
-#data
-## filename: 93365.html
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
- <head>
-  <style>
-    font {
-	  font-size: 20pt;
-	  color: yellow;
-	  background-color: red;
-	}
-  </style>
- </head>
- <body>
-<font face="courier">
-
-this text is above a table.
-
-<TABLE border=1><TR><TD>
-this text is inside a table.
-</td></tr></table>
-
-this text is below a table.
-
-</body>
-</html>
-#document
-| <!DOCTYPE HTML>
-| <html>
-|   <head>
-|     "
-| 
-|  "
-|     "
-|   "
-|     <style>
-|       "
-|     font {
-| 	  font-size: 20pt;
-| 	  color: yellow;
-| 	  background-color: red;
-| 	}
-|   "
-|     "
-|  "
-|   <body>
-|     "
-| "
-|     <font>
-|       face="courier"
-|       "
-| this text is above a table.
-| "
-|       <table>
-|         border="1"
-|         <tbody>
-|           <tr>
-|             <td>
-|               "
-| this text is inside a table.
-| "
-|       "
-| this text is below a table.
-| "
-
-#data
-## filename: 94208.html
-<HTML>
- <BODY>
-  <FONT color=blue> 
-   <B>blue bold,<I>blue bold italic,
-  </FONT>not blue but bold and italic,
-  <FONT COLOR="red">red bold and italic,
-  </B>red and italic but not bold,</I>red not bold not italic</FONT>
-</BODY>
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <font>
-|       color="blue"
-|       " 
-|    "
-|       <b>
-|         "blue bold,"
-|         <i>
-|           "blue bold italic,
-|   "
-|     <b>
-|       <i>
-|         "not blue but bold and italic,
-|   "
-|         <font>
-|           color="red"
-|           "red bold and italic,
-|   "
-|     <i>
-|       <font>
-|         color="red"
-|         "red and italic but not bold,"
-|     <font>
-|       color="red"
-|       "red not bold not italic"
-|     "
-| "
-
-#data
-## filename: 96130.html
-<HTML>
- <style>
-  Z { color:red; }
- </style>
-<BODY>
-<FONT><X>
-  <TABLE border="2">
-    <Z>Should be above the Table</FONT>
-    <TR>
-     <TD>
-       Cell
-	 </TD>
-    </TR>
-   </TABLE>
-</BODY></HTML>
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|     <style>
-|       "
-|   Z { color:red; }
-|  "
-|     "
-| "
-|   <body>
-|     "
-| "
-|     <font>
-|       <x>
-|         "
-|   "
-|         <z>
-|           "Should be above the Table
-|     "
-|         <table>
-|           border="2"
-|           "
-|     "
-|           <tbody>
-|             <tr>
-|               "
-|      "
-|               <td>
-|                 "
-|        Cell
-| 	 "
-|               "
-|     "
-|             "
-|    "
-|         "
-| "
-
-#data
-## filename: Bug1203.html
-<HTML>
-  <HEAD>
-	  <TITLE>How To Give Good Feedback</TITLE>
-  </HEAD>
-  <BODY bgcolor="EEEEEE"><CENTER>
-  Peters test<BR>
-  <FONT SIZE="+1">Peters test</FONT><BR>
-
-  <TABLE WIDTH="628">
-    <TR>
-      <TD BGCOLOR="FFFFFF">
-        <FONT FACE="geneva,arial" >
-          <FONT FACE='arial,helvetica'>
-            <FONT SIZE='5'>
-              <B><FONT COLOR ='770000'>How To Give Good Feedback</FONT></B>
-            </FONT>
-          </FONT>
-          <BR>
-          <P><FONT SIZE=1>first appeared: Fast Company issue 17 page 144</FONT></P>
-          <P>
-          <FONT SIZE="+1">Improving Performance Reviews</FONT><BR>
-          <HR SIZE=1>
-          So you think you've had it with performance reviews? 
-          A few years ago, Chris Oster's unit at General Motors got so fed up with traditional reviews that it abolished them. 
-      </td>
-    </TR>
-  </TABLE>
-  </BODY>
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-|   "
-|     "
-| 	  "
-|     <title>
-|       "How To Give Good Feedback"
-|     "
-|   "
-|   <body>
-|     bgcolor="#eeeeee"
-|     <center>
-|       "
-|   Peters test"
-|       <br>
-|       "
-|   "
-|       <font>
-|         size="+1"
-|         "Peters test"
-|       <br>
-|       "
-|   "
-|       <table>
-|         width="628"
-|         "
-|     "
-|         <tbody>
-|           <tr>
-|             "
-|       "
-|             <td>
-|               bgcolor="#ffffff"
-|               "
-|         "
-|               <font>
-|                 face="geneva,arial"
-|                 "
-|           "
-|                 <font>
-|                   face="arial,helvetica"
-|                   "
-|             "
-|                   <font>
-|                     size="5"
-|                     "
-|               "
-|                     <b>
-|                       <font>
-|                         color="#770000"
-|                         "How To Give Good Feedback"
-|                     "
-|             "
-|                   "
-|           "
-|                 "
-|           "
-|                 <br>
-|                 "
-|           "
-|               <p>
-|                 <font>
-|                   face="geneva,arial"
-|                   <font>
-|                     size="1"
-|                     "first appeared: Fast Company issue 17 page 144"
-|               "
-| "
-|               <font>
-|                 face="geneva,arial"
-|                 "          "
-|               <p>
-|                 "
-| "
-|                 <font>
-|                   face="geneva,arial"
-|                   "          "
-|                   <font>
-|                     size="+1"
-|                     "Improving Performance Reviews"
-|                   <br>
-|                   "
-|           "
-|               <hr>
-|                 size="1"
-|               "
-| "
-|               <font>
-|                 face="geneva,arial"
-|                 "          So you think you've had it with performance reviews? 
-|           A few years ago, Chris Oster's unit at General Motors got so fed up with traditional reviews that it abolished them. 
-|       "
-|             "
-|     "
-|           "
-|   "
-|       "
-|   "
-
-#data
-## filename: Bug1220.html
-<HTML>
-  <HEAD>
-    <SCRIPT LANGUAGE='JavaScript'>
-
-      <!--
-      theagent=navigator.userAgent; 
-      pointsize=""; 
-      if (theagent.indexOf('PPC') != -1 || theagent.indexOf('68K') != -1 || theagent.indexOf('SunOS') != -1 || theagent.indexOf('IRIX') != -1 || theagent.indexOf('HP-UX') != -1 || theagent.indexOf('AIX') != -1 || theagent.indexOf('Linux') != -1) {
-      pointsize="POINT-SIZE=\"12\""; 
-      } 
-      //-->
-
-    </SCRIPT>
-  </HEAD>
-  <BODY>
-    <TABLE CELLPADDING=0>
-      <TR>
-        <TD>
-          <IMG>
-        </TD>
-      </TR>
-
-      <SCRIPT LANGUAGE=javascript>
-      <!--
-              function handleTrigger() { }
-      //-->
-      </SCRIPT>
-      <TR>
-        <TD>xxx</TD>
-      </TR>
-    </TABLE>
-  </BODY>
-</HTML>
-#document
-| <html>
-|   <head>
-|     "
-|   "
-|     "
-|     "
-|     <script>
-|       language="JavaScript"
-|       "
-|       <!--
-|       theagent=navigator.userAgent; 
-|       pointsize=""; 
-|       if (theagent.indexOf('PPC') != -1 || theagent.indexOf('68K') != -1 || theagent.indexOf('SunOS') != -1 || theagent.indexOf('IRIX') != -1 || theagent.indexOf('HP-UX') != -1 || theagent.indexOf('AIX') != -1 || theagent.indexOf('Linux') != -1) {
-|       pointsize="POINT-SIZE=\"12\""; 
-|       } 
-|       //-->
-|     "
-|     "
-|   "
-|   <body>
-|     "
-|     "
-|     <table>
-|       cellpadding="0"
-|       "
-|       "
-|       <tbody>
-|         <tr>
-|           "
-|         "
-|           <td>
-|             "
-|           "
-|             <img>
-|             "
-|         "
-|           "
-|       "
-|         "
-|       "
-|         <script>
-|           language="javascript"
-|           "
-|       <!--
-|               function handleTrigger() { }
-|       //-->
-|       "
-|         "
-|       "
-|         <tr>
-|           "
-|         "
-|           <td>
-|             "xxx"
-|           "
-|       "
-|         "
-|     "
-|     "
-|   "
-
-#data
-## filename: Bug1239.html
-<HTML>
-
-
-<title>bug1239</title>
-<span style="background-color:yellow"><a href="bug1259.html">Next...</a></span><br><br>
-
-
-<CENTER>
-  </FONT>
-  <FONT face=arial,helvetica>
-    Centered arial size=1 [BREAK]
-  </CENTER>
-</FONT>
-</FONT>
-            
-<FONT face=arial,helvetica>
-  <B>
-    <FONT size=2>Bold Arial font size=2</B>
-  </FONT> 
-  <P>
-    <FONT color=maroon>Maroon Arial font size=1</FONT>
-    <BR>
-    <FONT size=2>
-      <B>Bold Arial font size=2</B>
-    </FONT> 
-    [ Arial font size=1 ] 
-    <BR clear=all>
-    <FONT size=-2>
-      <CENTER>Centered Arial size=1
-  <P>
-    <CENTER>Centered Arial size=1
-  <P>
-    <FONT size=-1>
-      <B>Bold Arial size=2
-        <BR>
-      </FONT>
-    </B>
-    Centered Arial size=1
-  </P>
-</CENTER>
-</CENTER>
-</FONT>
-</FONT>
-</BODY></HTML>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     <title>
-|       "bug1239"
-|     "
-| "
-|   <body>
-|     <span>
-|       style="background-color: yellow;"
-|       <a>
-|         href="bug1259.html"
-|         "Next..."
-|     <br>
-|     <br>
-|     "
-| "
-|     <center>
-|       "
-|   
-|   "
-|       <font>
-|         face="arial,helvetica"
-|         "
-|     Centered arial size=1 [BREAK]
-|   "
-|     "
-| "
-|     <font>
-|       face="arial,helvetica"
-|     "
-| 
-|             
-| "
-|     <font>
-|       face="arial,helvetica"
-|       "
-|   "
-|       <b>
-|         "
-|     "
-|         <font>
-|           size="2"
-|           "Bold Arial font size=2"
-|       "
-| "
-|       <font>
-|         size="2"
-|         "  "
-|       " 
-|   "
-|     <p>
-|       "
-| "
-|       <font>
-|         face="arial,helvetica"
-|         "    "
-|         <font>
-|           color="maroon"
-|           "Maroon Arial font size=1"
-|         "
-|     "
-|         <br>
-|         "
-|     "
-|         <font>
-|           size="2"
-|           "
-|       "
-|           <b>
-|             "Bold Arial font size=2"
-|           "
-|     "
-|         " 
-|     [ Arial font size=1 ] 
-|     "
-|         <br>
-|           clear="all"
-|         "
-|     "
-|         <font>
-|           size="-2"
-|           "
-|       "
-|     <center>
-|       <font>
-|         face="arial,helvetica"
-|         <font>
-|           size="-2"
-|           "Centered Arial size=1
-|   "
-|       <p>
-|         "
-| "
-|         <font>
-|           face="arial,helvetica"
-|           <font>
-|             size="-2"
-|             "    "
-|       <center>
-|         <font>
-|           face="arial,helvetica"
-|           <font>
-|             size="-2"
-|             "Centered Arial size=1
-|   "
-|         <p>
-|           "
-| "
-|           <font>
-|             face="arial,helvetica"
-|             <font>
-|               size="-2"
-|               "    "
-|               <font>
-|                 size="-1"
-|                 "
-|       "
-|                 <b>
-|                   "Bold Arial size=2
-|         "
-|                   <br>
-|                   "
-|       "
-|               "
-| "
-|               <b>
-|                 "    "
-|               "
-|     Centered Arial size=1
-|   "
-|         "
-| "
-|       "
-| "
-|     "
-| "
-|     <font>
-|       face="arial,helvetica"
-|       <font>
-|         size="-2"
-|       "
-| "
-|     "
-| "
-
-#data
-## filename: Entity.html
-<html> 
- <head>
-  <META http-equiv="Content-Type" content="text/html; charset=utf-8">
-  <TITLE>Welcome to MSN.com</TITLE>
- </head>
- <body>
-  <a href="http://ads.msn.com/ads/adredir.asp?url=http://www.fidelity.com&image=http://ads.msn.com/ads/MSNBTA/FI610001_TR.gif">
-  fidelity
- </body> 
-</html>
-#document
-| <html>
-|   <head>
-|     " 
-|  "
-|     "
-|   "
-|     <meta>
-|       content="text/html; charset=utf-8"
-|       http-equiv="Content-Type"
-|     "
-|   "
-|     <title>
-|       "Welcome to MSN.com"
-|     "
-|  "
-|   <body>
-|     "
-|   "
-|     <a>
-|       href="http://ads.msn.com/ads/adredir.asp?url=http://www.fidelity.com&image=http://ads.msn.com/ads/MSNBTA/FI610001_TR.gif"
-|       "
-|   fidelity
-|  "
-
-#data
-## filename: Table01.html
-first text
-<table border>
-  <tr>
-	  <td>This is the first cell in the table
-    <td>This is the second cell in the table
-  <tr>
-    <td>This is the third cell in the table
-    <td>This is the fourth cell in the table
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "first text
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <tbody>
-|         <tr>
-|           "
-| 	  "
-|           <td>
-|             "This is the first cell in the table
-|     "
-|           <td>
-|             "This is the second cell in the table
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "This is the third cell in the table
-|     "
-|           <td>
-|             "This is the fourth cell in the table
-| "
-|     "
-| last text"
-
-#data
-## filename: Table02.html
-nested table, good syntax.
-<table border>
-  <tr>
-	  <td>This is the first cell in the table
-    <td>This is the second cell in the table
-     <TABLE BORDER>
-       <TR>
-         <TD>inner cell
-     </TABLE>
-  <tr>
-    <td>This is the third cell in the table
-    <td>This is the fourth cell in the table
-</table>
-
-#document
-| <html>
-|   <head>
-|   <body>
-|     "nested table, good syntax.
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <tbody>
-|         <tr>
-|           "
-| 	  "
-|           <td>
-|             "This is the first cell in the table
-|     "
-|           <td>
-|             "This is the second cell in the table
-|      "
-|             <table>
-|               border="1"
-|               "
-|        "
-|               <tbody>
-|                 <tr>
-|                   "
-|          "
-|                   <td>
-|                     "inner cell
-|      "
-|             "
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "This is the third cell in the table
-|     "
-|           <td>
-|             "This is the fourth cell in the table
-| "
-
-#data
-## filename: Table03.html
-first text
-<table align=left>
-  <tr>
-	  <td>This is the first cell in the table
-    <td>This is the second cell in the table
-  <tr>
-    <td>This is the third cell in the table
-    <td>This is the fourth cell in the table
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "first text
-| "
-|     <table>
-|       align="left"
-|       "
-|   "
-|       <tbody>
-|         <tr>
-|           "
-| 	  "
-|           <td>
-|             "This is the first cell in the table
-|     "
-|           <td>
-|             "This is the second cell in the table
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "This is the third cell in the table
-|     "
-|           <td>
-|             "This is the fourth cell in the table
-| "
-|     "
-| last text"
-
-#data
-## filename: Table04.html
-first text
-<ul>
-<li>
-list line 1
-
-<li>
-list line 2
-<table border >
-  <tr>
-	  <td>This is the first cell in the table
-        <p> paragraph in cell.
-    <td>This is the second cell in the table
-        <ul>
-        <li> list item1 in cell
-        <li> list item2 in cell
-        <ul>
-  <tr>
-    <td>This is the third cell in the table
-    <td>This is the fourth cell in the table
-</table>
-
-<li>
-list line 3
-<p>paragraph in list line 3.
-</ul>
-
-table aligned:
-<ul>
-<li>
-list line 1
-
-<li>
-list line 2
-<table border>
-  <tr>
-	  <td>This is the first cell in the table
-        <p> paragraph in cell.
-    <td>This is the second cell in the table
-        <ul>
-        <li> list item1 in cell
-        <li> list item2 in cell
-        <ul>
-  <tr>
-    <td>This is the third cell in the table
-    <td>This is the fourth cell in the table
-</table>
-
-<li>
-list line 3
-<p>paragraph in list line 3.
-</ul>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "first text
-| "
-|     <ul>
-|       "
-| "
-|       <li>
-|         "
-| list line 1
-| "
-|       <li>
-|         "
-| list line 2
-| "
-|         <table>
-|           border="1"
-|           "
-|   "
-|           <tbody>
-|             <tr>
-|               "
-| 	  "
-|               <td>
-|                 "This is the first cell in the table
-|         "
-|                 <p>
-|                   " paragraph in cell.
-|     "
-|               <td>
-|                 "This is the second cell in the table
-|         "
-|                 <ul>
-|                   "
-|         "
-|                   <li>
-|                     " list item1 in cell
-|         "
-|                   <li>
-|                     " list item2 in cell
-|         "
-|                     <ul>
-|                       "
-|   "
-|             <tr>
-|               "
-|     "
-|               <td>
-|                 "This is the third cell in the table
-|     "
-|               <td>
-|                 "This is the fourth cell in the table
-| "
-|         "
-| "
-|       <li>
-|         "
-| list line 3
-| "
-|         <p>
-|           "paragraph in list line 3.
-| "
-|     "
-| table aligned:
-| "
-|     <ul>
-|       "
-| "
-|       <li>
-|         "
-| list line 1
-| "
-|       <li>
-|         "
-| list line 2
-| "
-|         <table>
-|           border="1"
-|           "
-|   "
-|           <tbody>
-|             <tr>
-|               "
-| 	  "
-|               <td>
-|                 "This is the first cell in the table
-|         "
-|                 <p>
-|                   " paragraph in cell.
-|     "
-|               <td>
-|                 "This is the second cell in the table
-|         "
-|                 <ul>
-|                   "
-|         "
-|                   <li>
-|                     " list item1 in cell
-|         "
-|                   <li>
-|                     " list item2 in cell
-|         "
-|                     <ul>
-|                       "
-|   "
-|             <tr>
-|               "
-|     "
-|               <td>
-|                 "This is the third cell in the table
-|     "
-|               <td>
-|                 "This is the fourth cell in the table
-| "
-|         "
-| "
-|       <li>
-|         "
-| list line 3
-| "
-|         <p>
-|           "paragraph in list line 3.
-| "
-|     "
-| last text"
-
-#data
-## filename: Table05.html
-The only syntax for Caption is after table start tag.
-<table border>
-  <caption>caption1</caption>
-  <tr>
-    <td>cell 1-1
-    <td>cell 1-2
-  <tr>
-    <td>cell 2-1
-    <td>cell 2-2
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "The only syntax for Caption is after table start tag.
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <caption>
-|         "caption1"
-|       "
-|   "
-|       <tbody>
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 1-1
-|     "
-|           <td>
-|             "cell 1-2
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 2-1
-|     "
-|           <td>
-|             "cell 2-2
-| "
-|     "
-| last text"
-
-#data
-## filename: Table05e.html
-Multiple caption elements, all outside td cells.
-<br>Nav 4.0: the first caption is accepted, 
-Others are treated as text, and moved before the table.
-<br>Xena6.0: ignore misplaced caption tag. contents treated as text.
-<table border>
-  TextAA
-  <caption>caption1</caption>TextA
-  <caption>caption2</caption>TextB
-  <tr>
-  <caption>caption3</caption>TextC
-    <td>cell 1-1</td>
-  <caption>caption4</caption>TextD
-    <td>cell 1-2
-  <tr>
-  <caption>caption5</caption>TextE
-    <td>cell 2-1
-    <td>cell 2-2</td>
-  <caption>caption6</caption>TextF
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Multiple caption elements, all outside td cells.
-| "
-|     <br>
-|     "Nav 4.0: the first caption is accepted, 
-| Others are treated as text, and moved before the table.
-| "
-|     <br>
-|     "Xena6.0: ignore misplaced caption tag. contents treated as text.
-| "
-|     "TextAA
-|   "
-|     "TextA
-|   "
-|     "TextB
-|   "
-|     "TextC
-|     "
-|     "TextD
-|     "
-|     "TextE
-|     "
-|     "TextF
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <caption>
-|         "caption1"
-|       <caption>
-|         "caption2"
-|       <tbody>
-|         <tr>
-|           "
-|   "
-|       <caption>
-|         "caption3"
-|       <tbody>
-|         <tr>
-|           <td>
-|             "cell 1-1"
-|           "
-|   "
-|       <caption>
-|         "caption4"
-|       <tbody>
-|         <tr>
-|           <td>
-|             "cell 1-2
-|   "
-|         <tr>
-|           "
-|   "
-|       <caption>
-|         "caption5"
-|       <tbody>
-|         <tr>
-|           <td>
-|             "cell 2-1
-|     "
-|           <td>
-|             "cell 2-2"
-|           "
-|   "
-|       <caption>
-|         "caption6"
-|     "
-| last text"
-
-#data
-## filename: Table05f.html
-Multiple Captions inside cells, 
-<br>Nav. 4.0: last one takes effect, and close td tr.
-    previous captions are totally ignored.	
-    If there were no caption3, caption2 would take effect.
-<br>Xena 6.0: Ignore misplaced caption tag, contents treated as text.
-<table border>
-  <caption>caption1</caption>
-  <tr>
-    <td>cell 1-1  <caption>caption2</caption>TextA
-    <td>cell 1-2
-  <tr>
-    <td>cell 2-1
-    <td>cell 2-2  <caption>caption3</caption>TextB
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Multiple Captions inside cells, 
-| "
-|     <br>
-|     "Nav. 4.0: last one takes effect, and close td tr.
-|     previous captions are totally ignored.	
-|     If there were no caption3, caption2 would take effect.
-| "
-|     <br>
-|     "Xena 6.0: Ignore misplaced caption tag, contents treated as text.
-| "
-|     "TextA
-|     "
-|     "TextB
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <caption>
-|         "caption1"
-|       "
-|   "
-|       <tbody>
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 1-1  "
-|       <caption>
-|         "caption2"
-|       <tbody>
-|         <tr>
-|           <td>
-|             "cell 1-2
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 2-1
-|     "
-|           <td>
-|             "cell 2-2  "
-|       <caption>
-|         "caption3"
-|     "
-| last text"
-
-#data
-## filename: Table05g.html
-Captions outside of table are treated as text.
-<caption>caption1</caption>
-<table border>
-  <tr>
-    <td>cell 1-1
-    <td>cell 1-2
-  <tr>
-    <td>cell 2-1
-    <td>cell 2-2
-</table>
-
-<caption>caption2</caption>
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Captions outside of table are treated as text.
-| caption1
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <tbody>
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 1-1
-|     "
-|           <td>
-|             "cell 1-2
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 2-1
-|     "
-|           <td>
-|             "cell 2-2
-| "
-|     "
-| caption2
-| last text"
-
-#data
-## filename: Table05h.html
-tr terminates caption
-<table border>
-  <caption>caption1
-  <tr>
-    <td>cell 1-1
-    <td>cell 1-2
-  <tr>
-    <td>cell 2-1
-    <td>cell 2-2
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "tr terminates caption
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <caption>
-|         "caption1
-|   "
-|       <tbody>
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 1-1
-|     "
-|           <td>
-|             "cell 1-2
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 2-1
-|     "
-|           <td>
-|             "cell 2-2
-| "
-|     "
-| last text"
-
-#data
-## filename: Table05i.html
-tr terminates Caption, and close open(font)tags in caption. 
-<br>also terminates those tags. In this case, the Font tag.
-<table border>
-  <caption>caption1 <br> text1 <font size=6> text2
-  <tr>
-    <td>cell 1-1
-    <td>cell 1-2
-  <tr>
-    <td>cell 2-1
-    <td>cell 2-2
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "tr terminates Caption, and close open(font)tags in caption. 
-| "
-|     <br>
-|     "also terminates those tags. In this case, the Font tag.
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <caption>
-|         "caption1 "
-|         <br>
-|         " text1 "
-|         <font>
-|           size="6"
-|           " text2
-|   "
-|       <tbody>
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 1-1
-|     "
-|           <td>
-|             "cell 1-2
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 2-1
-|     "
-|           <td>
-|             "cell 2-2
-| "
-|     "
-| last text"
-
-#data
-## filename: Table05j.html
-TD does NOT terminate Caption. TD's contents are used in caption.
-<table border>
-  <caption>caption1 <br> text1 <font size=6> text2
-    <td>cell 1-1
-    <td>cell 1-2
-  <tr>
-    <td>cell 2-1
-    <td>cell 2-2 no br in caption.
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "TD does NOT terminate Caption. TD's contents are used in caption.
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <caption>
-|         "caption1 "
-|         <br>
-|         " text1 "
-|         <font>
-|           size="6"
-|           " text2
-|     "
-|       <tbody>
-|         <tr>
-|           <td>
-|             "cell 1-1
-|     "
-|           <td>
-|             "cell 1-2
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "cell 2-1
-|     "
-|           <td>
-|             "cell 2-2 no br in caption.
-| "
-|     "
-| last text"
-
-#data
-## filename: Table06.html
-extra end table tag is ignored.
-<table border>
-  <tr>
-	  <td>This is the first cell in the table
-    <td>This is the second cell in the table
-  <tr>
-    <td>This is the third cell in the table
-    <td>This is the fourth cell in the table
-</table>
-
-</table>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "extra end table tag is ignored.
-| "
-|     <table>
-|       border="1"
-|       "
-|   "
-|       <tbody>
-|         <tr>
-|           "
-| 	  "
-|           <td>
-|             "This is the first cell in the table
-|     "
-|           <td>
-|             "This is the second cell in the table
-|   "
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "This is the third cell in the table
-|     "
-|           <td>
-|             "This is the fourth cell in the table
-| "
-|     "
-| 
-| last text"
-
-#data
-## filename: Table_illegal_1.html
-<html>
-  <head>
-    <title> Bad Content </title>
-  </head>
-  <style>
-    table { 
-   	    border: solid  red;
-	    background-color:yellow;
-          }
-    P { background-color: pink; }
-  </style>
-<body>
-
- <table >
-   <tr>
-    <td>
-   <P> some text
-    two</td>
-   </tr>
- </table>
- <table>
-   <tr>
-   <P>ss
-    <td>three</td>
-   </tr>
- </table>
-
- <table>
-   <tr>
-	  <P>one
-    <td>
-     <table>
-	  <P>last
-      <tr>
-	  <P>two
-       <td>
-        <table>
-         <tr>
-	  <P>three
-          <td>
-           <table>
-            <tr>
-             <td>
-	      4TD
-             </td>
-            </tr>
-           </table>
-	  </td>
-	  <P>three last
-	 </tr>
-	</table>
-       </td>
-	  <P>two last
-      </tr>
-     </table>
-    </td>
-	  <P>one last
-   </tr>
-  </table>
-</body>
-</html>
-
-#document
-| <html>
-|   <head>
-|     "
-|   "
-|     "
-|     "
-|     <title>
-|       " Bad Content "
-|     "
-|   "
-|     <style>
-|       "
-|     table { 
-|    	    border: solid  red;
-| 	    background-color:yellow;
-|           }
-|     P { background-color: pink; }
-|   "
-|     "
-| "
-|   <body>
-|     "
-|  "
-|     <table>
-|       "
-|    "
-|       <tbody>
-|         <tr>
-|           "
-|     "
-|           <td>
-|             "
-|    "
-|             <p>
-|               " some text
-|     two"
-|           "
-|    "
-|         "
-|  "
-|     "
-|  "
-|     <p>
-|       "ss
-|     "
-|     <table>
-|       "
-|    "
-|       <tbody>
-|         <tr>
-|           "
-|    "
-|           <td>
-|             "three"
-|           "
-|    "
-|         "
-|  "
-|     "
-|  "
-|     <p>
-|       "one
-|     "
-|     <p>
-|       "one last
-|    "
-|     <table>
-|       "
-|    "
-|       <tbody>
-|         <tr>
-|           "
-| 	  "
-|           <td>
-|             "
-|      "
-|             <p>
-|               "last
-|       "
-|             <p>
-|               "two
-|        "
-|             <p>
-|               "two last
-|       "
-|             <table>
-|               "
-| 	  "
-|               <tbody>
-|                 <tr>
-|                   "
-| 	  "
-|                   <td>
-|                     "
-|         "
-|                     <p>
-|                       "three
-|           "
-|                     <p>
-|                       "three last
-| 	 "
-|                     <table>
-|                       "
-|          "
-|                       <tbody>
-|                         <tr>
-|                           "
-| 	  "
-|                           <td>
-|                             "
-|            "
-|                             <table>
-|                               "
-|             "
-|                               <tbody>
-|                                 <tr>
-|                                   "
-|              "
-|                                   <td>
-|                                     "
-| 	      4TD
-|              "
-|                                   "
-|             "
-|                                 "
-|            "
-|                             "
-| 	  "
-|                           "
-| 	  "
-|                         "
-| 	"
-|                     "
-|        "
-|                   "
-| 	  "
-|                 "
-|      "
-|             "
-|     "
-|           "
-| 	  "
-|         "
-|   "
-|     "
-| "
-
-#data
-## filename: Table_illegal_2.html
-<html>
-  <head>
-    <title> Bad Content </title>
-  </head>
-  <style>
-    body { color:blue; }
-    table { 
-   	    border: solid  red;
-	    background-color:yellow;
-          }
-    P { background-color: pink; color:red;}
-    H1 { background-color:green; }
-  </STYLE>
-<body>
- <table border=1>
-   <tr><P style="color:red">red<A href="foo.htm">hello</A>there
-    <td>
-     <table border=1         bgcolor=green>
-      <tr>
-       <P style="color:blue"> blue
-       <td>
-        <table border=1>
-         <tr>
-          <td>
-           <table border=1>
-            <tr>
-	     <P style="color:green">green
-             <td>
-              <table border=1>
-               <tr>
-                 <td>
-                  HELLO
-                 </td>
-                </tr>
-              </table>
-             </td>
-	     <P style="color:orange">orange
-            </tr>
-</body>
-</html>
-
-#document
-| <html>
-|   <head>
-|     "
-|   "
-|     "
-|     "
-|     <title>
-|       " Bad Content "
-|     "
-|   "
-|     <style>
-|       "
-|     body { color:blue; }
-|     table { 
-|    	    border: solid  red;
-| 	    background-color:yellow;
-|           }
-|     P { background-color: pink; color:red;}
-|     H1 { background-color:green; }
-|   "
-|     "
-| "
-|   <body>
-|     "
-|  "
-|     <p>
-|       style="color: red;"
-|       "red"
-|       <a>
-|         href="foo.htm"
-|         "hello"
-|       "there
-|     "
-|     <table>
-|       border="1"
-|       "
-|    "
-|       <tbody>
-|         <tr>
-|           <td>
-|             "
-|      "
-|             <p>
-|               style="color: blue;"
-|               " blue
-|        "
-|             <table>
-|               border="1"
-|               bgcolor="green"
-|               "
-|       "
-|               <tbody>
-|                 <tr>
-|                   "
-|        "
-|                   <td>
-|                     "
-|         "
-|                     <table>
-|                       border="1"
-|                       "
-|          "
-|                       <tbody>
-|                         <tr>
-|                           "
-|           "
-|                           <td>
-|                             "
-|            "
-|                             <p>
-|                               style="color: green;"
-|                               "green
-|              "
-|                             <p>
-|                               style="color: orange;"
-|                               "orange
-|             "
-|                             <table>
-|                               border="1"
-|                               "
-|             "
-|                               <tbody>
-|                                 <tr>
-|                                   "
-| 	     "
-|                                   <td>
-|                                     "
-|               "
-|                                     <table>
-|                                       border="1"
-|                                       "
-|                "
-|                                       <tbody>
-|                                         <tr>
-|                                           "
-|                  "
-|                                           <td>
-|                                             "
-|                   HELLO
-|                  "
-|                                           "
-|                 "
-|                                         "
-|               "
-|                                     "
-|              "
-|                                   "
-| 	     "
-|                                 "
-| "
-
-#data
-## filename: acronym1.html
-<html>
-<head>
-<title>test ACRONYM tag</title>
-</head>
-<body>
-test Acronym<br>
-1normal text in body line 1.
-<Acronym>
-A This text is in Acronym
-<br> B line 2 in Acronym
-</Acronym>
-2normal text in body line 2.
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <title>
-|       "test ACRONYM tag"
-|     "
-| "
-|   <body>
-|     "
-| test Acronym"
-|     <br>
-|     "
-| 1normal text in body line 1.
-| "
-|     <acronym>
-|       "
-| A This text is in Acronym
-| "
-|       <br>
-|       " B line 2 in Acronym
-| "
-|     "
-| 2normal text in body line 2.
-| "
-
-#data
-## filename: aname01.html
-
-<body>
-
-<a name="516875">
-
-<B><blockquote>Note!
-
-</blockquote></B>
-
-</a>
-
-
-
-This is from  http://margaux/manual-proxy-20/cfgservr.htm
-
-
-
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-| "
-|     <a>
-|       name="516875"
-|       "
-| "
-|       <b>
-|         <blockquote>
-|           "Note!
-| "
-|       "
-| "
-|     "
-| This is from  http://margaux/manual-proxy-20/cfgservr.htm"
-
-#data
-## filename: atoi01.html
-first text 
-<font size="3"> size '3' </font>
-<font size=" 4"> size '_4' </font>
-<font size=" 5z"> size '_5z' </font>
-<font size=" 4%"> size ' 4%' </font>
-<font size=" 5 "> size '_5_' </font>
-<font size="+2"> size '+2' </font>
-<font size=" +2"> size '_+2' </font>
-<font size="+ 3"> size '+_3' </font>
-<font size=" +3"> size '_+3' </font>
-<font size="-1"> size -1 </font>
-
-last text
-#document
-| <html>
-|   <head>
-|   <body>
-|     "first text 
-| "
-|     <font>
-|       size="3"
-|       " size '3' "
-|     "
-| "
-|     <font>
-|       size=" 4"
-|       " size '_4' "
-|     "
-| "
-|     <font>
-|       size=" 5z"
-|       " size '_5z' "
-|     "
-| "
-|     <font>
-|       size=" 4%"
-|       " size ' 4%' "
-|     "
-| "
-|     <font>
-|       size=" 5 "
-|       " size '_5_' "
-|     "
-| "
-|     <font>
-|       size="+2"
-|       " size '+2' "
-|     "
-| "
-|     <font>
-|       size=" +2"
-|       " size '_+2' "
-|     "
-| "
-|     <font>
-|       size="+ 3"
-|       " size '+_3' "
-|     "
-| "
-|     <font>
-|       size=" +3"
-|       " size '_+3' "
-|     "
-| "
-|     <font>
-|       size="-1"
-|       " size -1 "
-|     "
-| last text"
-
-#data
-## filename: attribute_quote_bug1.html
-<STYLE>
-P { background: teal; }
-</STYLE>
-<P>Same text as in <a href="table1.html>table1.html</a> except it's not
-in the table. This is to see what the bounding boxes for the various
-objects are.</P>
-
-<P>This is the first cell in the table</P>
-<P>This is the second cell in the table</P>
-<P>This is the third cell in the table</P>
-<P>This is the fourth cell in the table</P>
-
-file:/s:/ns/xena/lego/testhtml/attribute_quote_bug1.html
-#document
-| <html>
-|   <head>
-|     <style>
-|       "
-| P { background: teal; }
-| "
-|     "
-| "
-|   <body>
-|     <p>
-|       "Same text as in "
-|       <a>
-|         href="table1.html"
-|         "table1.html"
-|       " except it's not
-| in the table. This is to see what the bounding boxes for the various
-| objects are."
-|     "
-| "
-|     <p>
-|       "This is the first cell in the table"
-|     "
-| "
-|     <p>
-|       "This is the second cell in the table"
-|     "
-| "
-|     <p>
-|       "This is the third cell in the table"
-|     "
-| "
-|     <p>
-|       "This is the fourth cell in the table"
-|     "
-| file:/s:/ns/xena/lego/testhtml/attribute_quote_bug1.html"
-
-#data
-## filename: badscript.html
-<html>
- <head>
-  <title>script test</title>
-  <script>
-   <!--
-    document.write("</script>");
-    document.write("hello there");
-   //-->
-  </script>
-  <script>
-   document.write("one");
-  <scRipt
->
- </head>
- <body>
- </body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-|  "
-|     "
-|   "
-|     <title>
-|       "script test"
-|     "
-|   "
-|     <script>
-|       "
-|    <!--
-|     document.write("</script>");
-|     document.write("hello there");
-|    //-->
-|   "
-|   <body>
-|     "hello there
-|   "
-|     <script>
-|       "
-|    document.write("one");
-|   <scRipt
-| >
-|  </head>
-|  <body>
-|  </body>
-| </html>"
-
-
-#data
-## filename: bdo001.html
-<html>
-<head>
-<title>test BDO tag</title>
-</head>
-<body>
-test BDO, bi directional override <br>
-1normal text in body line 1.
-<BDO dir="rtl">
-A This text is in BDO
-<br> B line 2 in BDO
-</BDO>
-2normal text in body line 2.
-</body>
-</html>
-#document
-| <html>
-|   <head>
-|     "
-| "
-|     "
-| "
-|     <title>
-|       "test BDO tag"
-|     "
-| "
-|   <body>
-|     "
-| test BDO, bi directional override "
-|     <br>
-|     "
-| 1normal text in body line 1.
-| "
-|     <bdo>
-|       dir="rtl"
-|       "
-| A This text is in BDO
-| "
-|       <br>
-|       " B line 2 in BDO
-| "
-|     "
-| 2normal text in body line 2.
-| "
-
-##todo filename: bigscript.html -- parser_datreader.js doesn't grok this content for some reason
-
-#data
-## filename: bigtxt.html
-<script>
- document["balah"].src = eval("balah" + "on.src");
-</script>
-<P>
-RFC788
-                                                                        
-
-                                    
-                                    
-                                    
-                                    
-                                    
-                     SIMPLE MAIL TRANSFER PROTOCOL
-                                    
-                                    
-                                    
-                           Jonathan B. Postel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-                             November 1981
-                                    
-                                    
-                                    
-                     Information Sciences Institute
-                   University of Southern California
-                           4676 Admiralty Way
-                   Marina del Rey, California  90291
-
-                             (213) 822-1511
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-                           TABLE OF CONTENTS
-
-   1.  INTRODUCTION .................................................. 1
-
-   2.  THE SMTP MODEL ................................................ 2
-
-   3.  THE SMTP PROCEDURE ............................................ 4
-
-      3.1.  Mail ..................................................... 4
-      3.2.  Forwarding ............................................... 7
-      3.3.  Verifying and Expanding .................................. 8
-      3.4.  Sending and Mailing ..................................... 10
-      3.5.  Opening and Closing ..................................... 12
-      3.6.  Relaying ................................................ 13
-      3.7.  Domains ................................................. 15
-
-   4.  THE SMTP SPECIFICATIONS ...................................... 16
-
-      4.1.  SMTP Commands ........................................... 16
-      4.1.1.  Command Semantics ..................................... 16
-      4.1.2.  Command Syntax ........................................ 23
-      4.2.  SMTP Replies ............................................ 28
-      4.2.1.  Reply Codes by Function Group ......................... 29
-      4.2.2.  Reply Codes in Numeric Order .......................... 30
-      4.3.  Sequencing of Commands and Replies ...................... 31
-      4.4.  State Diagrams .......................................... 33
-      4.5.  Details ................................................. 35
-      4.5.1.  Minimum Implementation ................................ 35
-      4.5.2.  Transparency .......................................... 35
-      4.5.3.  Sizes ................................................. 36
-
-   APPENDIX A:  TCP ................................................. 38
-   APPENDIX B:  NCP ................................................. 39
-   APPENDIX C:  NITS ................................................ 40
-   APPENDIX D:  X.25 ................................................ 41
-   APPENDIX E:  Theory of Reply Codes ............................... 42
-   APPENDIX F:  Scenarios ........................................... 45
-
-   GLOSSARY ......................................................... 58
-
-   REFERENCES ....................................................... 61
-
-
-Network Working Group                                          J. Postel
-Request for Comments: 788                                            ISI
-Replaces: RFC 780, 772                                     November 1981
-
-                     SIMPLE MAIL TRANSFER PROTOCOL
-
-
-1.  INTRODUCTION
-
-   The objective of Simple Mail Transfer Protocol (SMTP) is to transfer
-   mail reliably and efficiently.
-
-   SMTP is independent of the particular transmission subsystem and
-   requires only a reliable ordered data stream channel.  Appendices A,
-   B, C, and D describe the use of SMTP with various transport services.
-   A Glossary provides the definitions of terms as used in this
-   document.
-
-   An important feature of SMTP is its capability to relay mail across
-   transport service environments.  A transport service provides an
-   interprocess communication environment (IPCE).  An IPCE may cover one
-   network, several networks, or a subset of a network.  It is important
-   to realize that transport systems (or IPCEs) are not one-to-one with
-   networks.  A process can communicate directly with another process
-   through any mutually known IPCE.  Mail is an application or use of
-   interprocess communication.  Mail can be communicated between
-   processes in different IPCEs by relaying through a process connected
-   to two (or more) IPCEs.  More specifically, mail can be relayed
-   between hosts on different transport systems by a host on both
-   transport systems.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                          [Page 1]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-2.  THE SMTP MODEL
-
-   The SMTP design is based on the following model of communication:  as
-   the result of a user mail request, the sender-SMTP establishes a
-   full-duplex transmission channel to a receiver-SMTP.  The
-   receiver-SMTP may be either the ultimate destination or an
-   intermediate.  SMTP commands are generated by the sender-SMTP and
-   sent to the receiver-SMTP.  SMTP replies are sent from the
-   receiver-SMTP to the sender-SMTP in response to the commands.
-
-   Once the transmission channel is established, the SMTP-sender sends a
-   MAIL command indicating the sender of the mail.  If the SMTP-receiver
-   can accept mail it responds with an OK reply.  The SMTP-sender then
-   sends a RCPT command identifying a recipient of the mail.  If the
-   SMTP-receiver can accept mail for that recipient it responds with an
-   OK reply; if not, it responds with a reply rejecting that recipient
-   (but not the whole mail transaction).  The SMTP-sender and
-   SMTP-receiver may negotiate several recipients.  When the recipients
-   have been negotiated the SMTP-sender sends the mail data, terminating
-   with a special sequence.  If the SMTP-receiver successfully processes
-   the mail data it responds with an OK reply.  The dialog is purposely
-   lock-step, one-at-a-time.
-
-     -------------------------------------------------------------
-
-   
-               +----------+                +----------+
-   +------+    |          |                |          |
-   | User |<-->|          |      SMTP      |          |
-   +------+    |  Sender- |Commands/Replies| Receiver-|
-   +------+    |   SMTP   |<-------------->|    SMTP  |    +------+
-   | File |<-->|          |    and Mail    |          |<-->| File |
-   |System|    |          |                |          |    |System|
-   +------+    +----------+                +----------+    +------+
-   
-
-                Sender-SMTP                Receiver-SMTP
-
-                           Model for SMTP Use
-
-                                Figure 1
-
-     -------------------------------------------------------------
-
-   The SMTP provides mechanisms for the transmission of mail; directly
-   from the sending user's host to the receiving user's host when the
-
-
-
-[Page 2]                                                          Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   two host are connected to the same transport service, or via one or
-   more relay SMTP-servers when the source and destination hosts are not
-   connected to the same transport service.
-
-   To be able to provide the relay capability the SMTP-server must be
-   supplied with the name of the ultimate destination host as well as
-   the destination mailbox name.
-
-   The argument to the MAIL command is a reverse-path, which specifies
-   who the mail is from.  The argument to the RCPT command is a
-   forward-path, which specifies who the mail is to.  The forward-path
-   is a source route while the reverse-path, is a return route (which
-   may be used to return a message to the sender when an error occurs
-   with a relayed message).
-
-   When the same message is sent to multiple recipients the SMTP
-   encourages the transmission of only one copy of the data for all the
-   recipients at the same destination host.
-
-   The mail commands and replies have a rigid syntax.  Replies also have
-   a numeric code.  In the following, examples appear which use actual
-   commands and replies.  The complete lists of commands and replies
-   appears in Section 4 on specifications.
-
-   Commands and replies are not case sensitive.  That is, a command or
-   reply word may be upper case, lower case, or any mixture of upper and
-   lower case.  Note that this is not true of mailbox user names.  For
-   some hosts the user name is case sensitive, and SMTP implementations
-   must take case to preserve the case of user names as they appear in
-   mailbox arguments.  Host names are not case sensitive.
-
-   Commands and replies are composed of characters from the ASCII
-   character set [1].  Each 7-bit character is transmitted right
-   justified in an 8-bit byte (or octet) with the high order bit cleared
-   to zero.
-
-   When specifying the general form of a command or reply, an argument
-   (or special symbol) will be denoted by a meta-linguistic variable (or
-   constant), for example, "<string>" or "<reverse-path>".  Here the
-   angle brackets indicate these are a meta-linguistic variables.
-   However, some arguments use the angle brackets literally.  For
-   example, an actual reverse-path is enclosed in angle brackets, i.e.,
-   "<Smith@ISIA>" is an instance of <reverse-path> (the angle brackets
-   are actually transmitted in the command or reply).
-
-
-
-
-
-Postel                                                          [Page 3]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-3.  THE SMTP PROCEDURES
-
-   This section presents the procedures used in SMTP in several parts.
-   First comes the basic mail procedure defined as a mail transaction.
-   Following this are descriptions of forwarding mail, verifying mailbox
-   names and expanding mailing lists, sending to terminals instead of or
-   in combination with mailboxes, and the opening and closing exchanges.
-   At the end of this section are comments on relaying, and a note on
-   mail domains.  Throughout this section are examples of partial
-   command and reply sequences, several complete scenarios are presented
-   in Appendix F.
-
-   3.1.  MAIL
-
-      There are three steps to a SMTP mail transaction.  The transaction
-      is started with a MAIL command which gives the sender
-      identification.  A series of one or more RCPT commands follow
-      giving the receiver information.  Then a DATA command gives the
-      mail data.  And finally, the end of mail data indicator confirms
-      the transaction.
-
-         The first step in the procedure is the MAIL command.  The
-         <reverse-path> contains the source mailbox.
-
-            MAIL <SP> FROM:<reverse-path> <CRLF>
-
-         This command tells the the SMTP-receiver that a new mail
-         transaction is starting and to reset all its state tables and
-         buffers including any recipients or mail data.  It gives the
-         reverse-path which can be used to report errors.  If accepted,
-         the receiver-SMTP returns a 250 OK reply.
-
-         The <reverse-path> can contain more than just a mailbox.  The
-         <reverse-path> is a reverse source routing list of hosts and
-         source mailbox.  The first host in the <reverse-path> should be
-         the host sending this command.
-
-         The second step in the procedure is the RCPT command.
-
-            RCPT <SP> TO:<forward-path> <CRLF>
-
-         This command gives a forward-path identifying one recipient.
-         If accepted, the receiver-SMTP returns a 250 OK reply, and
-         stores the forward-path.  If the recipient is unknown the
-         receiver-SMTP returns a 550 Failure reply.  This second step of
-         the procedure can be repeated any number of times.
-
-
-
-[Page 4]                                                          Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-         The <forward-path> can contain more than just a mailbox.  The
-         <forward-path> is a source routing list of hosts and
-         destination mailbox.  The first host in the <forward-path>
-         should be the host receiving this command.
-
-         The third step in the procedure is the DATA command.
-
-            DATA <CRLF>
-
-         If accepted, the receiver-SMTP returns a 354 Intermediate reply
-         and considers all succeeding lines to be the message text.
-         When the end of text is received and stored the SMTP-receiver
-         sends a 250 OK reply.
-
-         Since the mail data is sent on the transmission channel the end
-         of the mail data must be indicated so that the command and
-         reply dialog can be resumed.  SMTP indicates the end of the
-         mail data by sending a line containing only a period.  A
-         transparency procedure is used to prevent this interfering with
-         the user's text (see Section 4.5.2).
-
-            Please note that the mail data includes the memo header
-            items such as Date, Subject, To, Cc, From [2].
-
-         The end of mail data indicator also confirms the mail
-         transaction and tells the receiver-SMTP to now process the
-         stored recipients and mail data.  If accepted, the
-         receiver-SMTP returns a 250 OK reply.  The DATA command should
-         fail only if the mail transaction was incomplete (for example,
-         no recipients), or if resources are not available.
-
-      The above procedure is an example of a SMTP mail transaction.
-      These commands must be used only in the order discussed above.
-      Example 1 (below) illustrates the use of these commands in a mail
-      transaction.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                          [Page 5]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-      -------------------------------------------------------------
-
-                     Example of the SMTP Procedure
-
-         This SMTP example shows mail sent by Smith at host Alpha, to
-         Jones, Green, and Brown at host Beta.  Here we assume that host
-         Alpha contacts host Beta directly.
-
-            S: MAIL FROM:<Smith@Alpha>
-            R: 250 OK
-
-            S: RCPT TO:<Jones@Beta>
-            R: 250 OK
-
-            S: RCPT TO:<Green@Beta>
-            R: 550 No such user here
-
-            S: RCPT TO:<Brown@Beta>
-            R: 250 OK
-
-            S: DATA
-            R: 354 Start mail input; end with <CRLF>.<CRLF>
-            S: Blah blah blah...
-            S: ...etc. etc. etc.
-            S: <CRLF>.<CRLF>
-            R: 250 OK
-
-         The mail has now been accepted for Jones and Brown.  Green did
-         not have a mailbox at host Beta.
-
-                               Example 1
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 6]                                                          Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   3.2.  FORWARDING
-
-      There are some cases where the destination information in the
-      <forward-path> is incorrect, but the receiver-SMTP knows the
-      correct destination.  In such cases, one the following replies
-      should be used to allow the sender to contact the correct
-      destination.
-
-         251 User not local; will forward to <forward-path>
-
-            This reply indicates that the receiver-SMTP knows the user's
-            mailbox is on another host and indicates the correct
-            forward-path to use in the future.  Note that either the
-            host or user or both may be different.  The receiver takes
-            responsibility for delivering the message.
-
-         551 User not local; please try <forward-path>
-
-            This reply indicates that the receiver-SMTP knows the user's
-            mailbox is on another host and indicates the correct
-            forward-path to use.  Note that either the host or user or
-            both may be different.  The receiver refuses to accept mail
-            for this user, and the sender must either redirect the mail
-            according to the information provided or return an error
-            response to the originating user.
-
-      Example 2 illustrates the use of these responses.
-
-      -------------------------------------------------------------
-
-                         Example of Forwarding
-
-         Either
-
-            S: RCPT TO:<Postel@ISI>
-            R: 251 User not local; will forward to <Postel@ISIF>
-
-         Or
-
-            S: RCPT TO:<Paul@ISIB>
-            R: 551 User not local; please try <Mockapetris@ISIF>
-
-                               Example 2
-
-      -------------------------------------------------------------
-
-
-
-
-Postel                                                          [Page 7]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   3.3.  VERIFYING AND EXPANDING
-
-      SMTP provides as additional features, commands to verify a user
-      name or expand a mailing list.  This is done with the VRFY and
-      EXPN commands, which have a character string arguments.  For the
-      VRFY command, the string is a user name, and the the response may
-      include the full name of the user and must include the mailbox of
-      the user.  For the EXPN command, the string identifies a mailing
-      list, and the multiline response may include the full name of the
-      users and must give the mailboxes on the mailing list.
-
-      The case of verifying a user name is straightforward as shown in
-      example 3.
-
-      -------------------------------------------------------------
-
-                    Example of Verifying a User Name
-
-         Either
-
-            S: VRFY Postel
-            R: 250 Jon Postel <Postel@ISIF>
-
-         Or
-
-            S: VRFY Jones
-            R: 550 String does not match anything.
-
-                               Example 3
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 8]                                                          Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-      The case of expanding a mailbox list requires a multiline reply as
-      shown in example 4.
-
-      -------------------------------------------------------------
-
-                  Example of Expanding a Mailing List
-
-         Either
-
-            S: EXPN Example-People
-            R: 250-Jon Postel <Postel@ISIF>
-            R: 250-Fred Fonebone <Fonebone@ISIQ>
-            R: 250-Sam Q. Smith <SQSmith@ISIQ>
-            R: 250-Quincy Smith <@ISIF,Q-Smith@ISI-VAXA>
-            R: 250-<joe@foo-unix>
-            R: 250 <xyz@bar-unix>
-
-         Or
-
-            S: EXPN Executive-Washroom-List
-            R: 550 Access Denied to You.
-
-                               Example 4
-
-      -------------------------------------------------------------
-
-      The character string arguments of the VRFY and EXPN commands
-      cannot be further restricted due to the variety of implementations
-      of the user name and mailbox list concepts.  On some systems it
-      may be appropriate for the argument of the EXPN command to be a
-      file name for a file containing a mailing list, but again there is
-      a variety of file naming conventions in the internet.
-
-      The VRFY and EXPN commands are not included in the minimum
-      implementation (Section 4.5.1), and are not required to work
-      across relays when they are implemented.
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                          [Page 9]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   3.4.  SENDING AND MAILING
-
-      The main purpose of SMTP is to deliver messages to user's
-      mailboxes.  A very similar service provided by some hosts is to
-      deliver messages to user's terminals (provided the user is active
-      on the host).  The delivery to the user's mailbox is called
-      "mailing", the delivery to the user's terminal is called
-      "sending".  Because in many hosts the implementation of sending is
-      nearly identical to the implementation of mailing these two
-      functions are combined in SMTP.  However the sending commands are
-      not included in the required minimum implementation
-      (Section 4.5.1).  User's should have the ability to control the
-      writing of messages on their terminals.  Most hosts permit the
-      user's to accept or refuse such messages.
-
-      The following three command are defined to support the sending
-      options, these are used in the mail transaction instead of the
-      MAIL command and inform the receiver-SMTP of the special semantics
-      of this transaction:
-
-         SEND <SP> FROM:<reverse-path> <CRLF>
-
-            The SEND command requires that the mail data be delivered to
-            the user's terminal.  If the user is not active (or not
-            accepting terminal messages) on the host a 450 reply may
-            returned to a RCPT command.  The mail transaction is
-            successful if the message is delivered the terminal.
-
-         SOML <SP> FROM:<reverse-path> <CRLF>
-
-            The Send Or MaiL command requires that the mail data be
-            delivered to the user's terminal if the user is active (and
-            accepting terminal messages) on the host.  If the user is
-            not active (or not accepting terminal messages) then the
-            mail data is entered into the user's mailbox.  The mail
-            transaction is successful if the message is delivered either
-            to the terminal or the mailbox.
-
-         SAML <SP> FROM:<reverse-path> <CRLF>
-
-            The Send And MaiL command requires that the mail data be
-            delivered to the user's terminal if the user is active (and
-            accepting terminal messages) on the host.  In any case the
-            mail data is entered into the user's mailbox.  The mail
-            transaction is successful if the message is delivered the
-            mailbox.
-
-
-
-[Page 10]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-      The same reply codes that are used for the MAIL commands are used
-      for these commands.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 11]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   3.5.  OPENING AND CLOSING
-
-      At the time the transmission channel is opened there is an
-      exchange to ensure that the hosts are communicating with the hosts
-      they think they are.
-
-      The following two commands are used in transmission channel
-      opening and closing:
-
-         HELO <SP> <host> <CRLF>
-
-         QUIT <CRLF>
-
-      In the HELO command the host sending the command identifies
-      itself; the command may be interpreted as saying "Hello, i am
-      <host>".
-
-      -------------------------------------------------------------
-
-                     Example of Connection Opening
-
-         R: 220 BBN-UNIX Simple Mail Transfer Service Ready
-         S: HELO USC-ISIF
-         R: 250 BBN-UNIX
-
-                               Example 5
-
-      -------------------------------------------------------------
-
-      -------------------------------------------------------------
-
-                     Example of Connection Closing
-
-         S: QUIT
-         R: 221 BBN-UNIX Service closing transmission channel
-
-                               Example 6
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-[Page 12]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   3.6.  RELAYING
-
-      The forward-path may be a source route of the form
-      "@ONE,@TWO,JOE@THREE", where ONE, TWO, and THREE are hosts.  This
-      form is used to emphasize the distinction between an address and a
-      route.  The mailbox is an absolute address, and the route is
-      information about how to get there.  The two concepts should not
-      be confused.
-
-      The elements of the forward-path are moved to the reverse-path as
-      the message is relayed from one server-SMTP to another.  The
-      reverse-path is a reverse source route, (i.e., a source route from
-      the current location of the message to the originator of the
-      message).  When a server-SMTP deletes its identifier from the
-      forward-path and inserts it into the reverse-path, it must use the
-      name it is known by in the environment it is sending into, not the
-      environment the mail came from, in case the server-SMTP is known
-      by different names in different environments.
-
-      Using source routing the receiver-SMTP receives mail to be relayed
-      to another server-SMTP  The receiver-SMTP may accept or reject the
-      task of relaying the mail in the same way it accepts or rejects
-      mail for a local user.  The receiver-SMTP transforms the command
-      arguments by moving its own identifier from the forward-path to
-      the beginning of the reverse-path.  The receiver-SMTP then becomes
-      a sender-SMTP, establishes a transmission channel to the next SMTP
-      in the forward-path, and sends it the mail.
-
-      The first host in the reverse-path should be the host sending the
-      SMTP commands, and the first host in the forward-path should be
-      the host receiving the SMTP commands.
-
-      Notice that the forward-path and reverse-path appear in the SMTP
-      commands and replies, but not necessarily in the message.  That
-      is, there is no need for these paths and especially this syntax to
-      appear in the "To:" , "From:", "CC:", etc. fields of the message
-      header.
-
-      If a server-SMTP has accepted the task of relaying the mail and
-      later finds that the forward-path is incorrect or that the mail
-      cannot be delivered for whatever reason, then it must construct an
-      "undeliverable mail" notification message and send it to the
-      originator of the undeliverable mail (as indicated by the
-      reverse-path).
-
-
-
-
-
-Postel                                                         [Page 13]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-      This notification message must be from the server-SMTP at this
-      host.  Of course, server-SMTPs should not send notification
-      messages about problems with notification messages.  One way to
-      prevent loops in error reporting is to specify a null reverse-path
-      in the MAIL command of a notification message.  When such a
-      message is relayed it is permissible to leave the reverse-path
-      null.  A MAIL command with a null reverse-path appears as follows:
-
-         MAIL FROM:<>
-
-      An undeliverable mail notification message is shown in example 7.
-      This notification is in response to a message originated by JOE at
-      HOSTW and sent via HOSTX to HOSTY with instructions to relay it on
-      to HOSTZ.  What we see in the example is the transaction between
-      HOSTY and HOSTX, which is the first step in the return of the
-      notification message.
-
-      -------------------------------------------------------------
-
-            Example Undeliverable Mail Notification Message
-
-         S: MAIL FROM:<>
-         R: 250 ok
-         S: RCPT TO:<@HOSTX,JOE@HOSTW>
-         R: 250 ok
-         S: DATA
-         R: 354 send the mail data, end with .
-         S: Date: 23 Oct 81
-         S: Sender: SMTP@HOSTY
-         S: Subject: Mail System Problem
-         S:
-         S:   Sorry JOE, your message to SAM@HOSTZ lost.
-         S:   HOSTZ said this:
-         S:    "550 No Such User"
-         S: .
-         R: 250 ok
-
-                               Example 7
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-[Page 14]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   3.7.  DOMAINS
-
-      At some not too distant future time it might be necessary to
-      expand the mailbox format to include a region or name domain
-      identifier.  There is quite a bit of discussion on this at
-      present, and is likely that SMTP will be revised in the future to
-      take into account naming domains.
-
-      The examples in this document do not show mail domains.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 15]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-4.  THE SMTP SPECIFICATIONS
-
-   4.1.  SMTP COMMANDS
-
-      4.1.1.  COMMAND SEMANTICS
-
-         The SMTP commands define the mail transfer or the mail system
-         function requested by the user.  SMTP commands are character
-         strings terminated by <CRLF>.  The command codes themselves are
-         alphabetic characters terminated by <SP> if parameters follow
-         and <CRLF> otherwise.  The syntax of mailboxes must conform to
-         receiver site conventions.  The SMTP commands are discussed
-         below.  The SMTP replies are discussed in the Section 4.2.
-
-         A mail transaction involves several data objects which are
-         communicated as arguments to different commands.  The
-         reverse-path is the argument of the MAIL command, the
-         forward-path is the argument of the RCPT command, and the mail
-         data is the argument of the DATA command.  These arguments or
-         data objects must be transmitted and held pending the
-         confirmation communicated by the end of mail data indication
-         which finalizes the transaction.  The model for this is that
-         distinct buffers are provided to hold the types of data
-         objects, that is, there is a reverse-path buffer, a
-         forward-path buffer, and a mail data buffer.  Specific commands
-         cause information to be appended to a specific buffer, or cause
-         one or more buffers to be cleared.
-
-         HELLO (HELO)
-
-            This command is used to identify the sender-SMTP to the
-            receiver-SMTP.  The argument field contains the host name of
-            the sender-SMTP.
-
-            The receiver-SMTP identifies itself to the sender-SMTP in
-            the connection greeting reply, and in the response to this
-            command.
-
-         MAIL (MAIL)
-
-            This command is used to initiate a mail transaction in which
-            the mail data is delivered to one or more mailboxes.  The
-            argument field contains a reverse-path.
-
-            The reverse-path consists of an optional list of hosts and
-            the sender mailbox.  When the list of hosts is present, it
-
-
-
-[Page 16]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-            is a "reverse" source route and indicates that the mail was
-            relayed through each host on the list (the first host in the
-            list was the most recent relay).  This list is used as a
-            source route to return non-delivery notices to the sender.
-            As each relay host adds itself to the beginning of the list,
-            it must use its name as known in the IPCE to which it is
-            relaying the mail rather than the IPCE from which the mail
-            came (if they are different).  In some types of error
-            reporting messages (for example, undeliverable mail
-            notifications) the reverse-path may be null (see Example 7).
-
-            This command clears the reverse-path buffer, the
-            forward-path buffer, and the mail data buffer; and inserts
-            the reverse-path information from this command into the
-            reverse-path buffer.
-
-         RECIPIENT (RCPT)
-
-            This command is used to identify an individual recipient of
-            the mail data; multiple recipients are specified by multiple
-            use of this command.
-
-            The forward-path consists of an optional list of hosts and a
-            required destination mailbox.  When the list of hosts is
-            present, it is a source route and indicates that the mail
-            must be relayed to the next host on the list.  If the
-            receiver-SMTP is does not implement the relay function it
-            may user the same reply it would for an unknown local user
-            (550).
-
-            When mail is relayed, the relay host must remove itself from
-            the beginning forward-path and put itself at the beginning
-            of the reverse-path.  When mail reaches its ultimate
-            destination (the forward-path contains only a destination
-            mailbox), the receiver-SMTP inserts it into the destination
-            mailbox in accordance with its host mail conventions.
-
-               For example, mail received at relay host A with arguments
-
-                  FROM:<X@Y>
-                  TO:<@A,@B,C@D>
-
-               will be relayed on to host B with arguments
-
-                  FROM:<@A,X@Y>
-                  TO:<@B,C@D>.
-
-
-
-Postel                                                         [Page 17]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-            This command causes its forward-path argument to be appended
-            to the forward-path buffer.
-
-         DATA (DATA)
-
-            The receiver treats the lines following the command as mail
-            data from the sender.  This command causes the mail data
-            from this command to be appended to the mail data buffer.
-            The mail data may contain any of the 128 ASCII character
-            codes.
-
-            The mail data is terminated by a line containing only a
-            period, that is the character sequence "<CRLF>.<CRLF>" (see
-            Section 4.5.2 on Transparency).  This is the end of mail
-            data indication.
-
-            The end of mail data indication requires that the receiver
-            must now process the stored mail transaction information.
-            This processing consumes the information in the reverse-path
-            buffer, the forward-path buffer, and the mail data buffer,
-            and on the completion of this command these buffers are
-            cleared.  If the processing is successful the receiver must
-            send an OK reply.  If the processing fails completely the
-            receiver must send a failure reply.
-
-            When the receiver-SMTP accepts a message either for relaying
-            or for final delivery it inserts at the beginning of the
-            mail data a time stamp line.  The time stamp line indicates
-            the identity of the host that sent the message, and the
-            identity of the host that received the message (and is
-            inserting this time stamp), and the date and time the
-            message was received.  Relayed messages will have multiple
-            time stamp lines.
-
-            When the receiver-SMTP makes the "final delivery" of a
-            message it inserts at the beginning of the mail data a
-            return path line.  The return path line preserves the
-            information in the <reverse-path> from the MAIL command.
-            Here, final delivery means the message leaves the SMTP
-            world.  Normally, this would mean it has been delivered to
-            the destination user, but in some cases it may be further
-            processed and transmitted by another mail system.
-
-            The preceding two paragraphs imply that the final mail data
-
-
-
-
-
-[Page 18]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-            will begin with a  return path line, followed by one or more
-            time stamp lines.  These lines will be followed by the mail
-            data header and body [2].  For example:
-
-               Return-Path: <@GHI,@DEF,@ABC,JOE@ABC>
-               Mail-From: GHI received by JKL at 27-Oct-81 15:27:39-PST
-               Mail-From: DEF received by GHI at 27-Oct-81 15:15:13-PST
-               Mail-From: ABC received by DEF at 27-Oct-81 15:01:59-PST
-               Date: 27-Oct-81 15:01:01-PST
-               From: JOE@ABC
-               Subject: Improved Mailing System Installed
-               To: SAM@JKL
-               
-               This is to inform you that ...
-
-            Special mention is needed of the response and further action
-            required when the processing following the end of mail data
-            indication is partially successful.  This could arise if
-            after accepting several recipients and the mail data, the
-            receiver-SMTP finds that the mail data can be successfully
-            delivered to some of the recipients, but it cannot be to
-            others (for example, due to mailbox space allocation
-            problems).  In such a situation, the response to the DATA
-            command must be an OK reply.  But, the receiver-SMTP must
-            compose and send an "undeliverable mail" notification
-            message to the originator of the message.  Either a single
-            notification which lists all of the recipients that failed
-            to get the message, or separate notification messages must
-            be sent for each failed recipient (see Example 7).  All
-            undeliverable mail notification messages are sent using the
-            MAIL command (even if they result from processing a SEND,
-            SOML, or SAML command).
-
-         SEND (SEND)
-
-            This command is used to initiate a mail transaction in which
-            the mail data is delivered to one or more terminals.  The
-            argument field contains a reverse-path.  This command is
-            successful if the message is delivered to the terminal.
-
-            The reverse-path consists of an optional list of hosts and
-            the sender mailbox.  When the list of hosts is present, it
-            is a "reverse" source route and indicates that the mail was
-            relayed through each host on the list (the first host in the
-            list was the most recent relay).  This list is used as a
-            source route to return non-delivery notices to the sender.
-
-
-
-Postel                                                         [Page 19]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-            As each relay host adds itself to the beginning of the list,
-            it must use its name as known in the IPCE to which it is
-            relaying the mail rather than the IPCE from which the mail
-            came (if they are different).
-
-            This command clears the reverse-path buffer, the
-            forward-path buffer, and the mail data buffer; and inserts
-            the reverse-path information from this command into the
-            reverse-path buffer.
-
-         SEND OR MAIL (SOML)
-
-            This command is used to initiate a mail transaction in which
-            the mail data is delivered to one or more terminals or
-            mailboxes. For each recipient the mail data is delivered to
-            the recipient's terminal if the recipient is active on the
-            host (and accepting terminal messages), otherwise to the
-            recipient's mailbox.  The argument field contains a
-            reverse-path.  This command is successful if the message is
-            delivered to the terminal or the mailbox.
-
-            The reverse-path consists of an optional list of hosts and
-            the sender mailbox.  When the list of hosts is present, it
-            is a "reverse" source route and indicates that the mail was
-            relayed through each host on the list (the first host in the
-            list was the most recent relay).  This list is used as a
-            source route to return non-delivery notices to the sender.
-            As each relay host adds itself to the beginning of the list,
-            it must use its name as known in the IPCE to which it is
-            relaying the mail rather than the IPCE from which the mail
-            came (if they are different).
-
-            This command clears the reverse-path buffer, the
-            forward-path buffer, and the mail data buffer; and inserts
-            the reverse-path information from this command into the
-            reverse-path buffer.
-
-         SEND AND MAIL (SAML)
-
-            This command is used to initiate a mail transaction in which
-            the mail data is delivered to one or more terminals and
-            mailboxes. For each recipient the mail data is delivered to
-            the recipient's terminal if the recipient is active on the
-            host (and accepting terminal messages), and for all
-
-
-
-
-
-[Page 20]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-            recipients to the recipient's mailbox.  The argument field
-            contains a reverse-path.  This command is successful if the
-            message is delivered to the mailbox.
-
-            The reverse-path consists of an optional list of hosts and
-            the sender mailbox.  When the list of hosts is present, it
-            is a "reverse" source route and indicates that the mail was
-            relayed through each host on the list (the first host in the
-            list was the most recent relay).  This list is used as a
-            source route to return non-delivery notices to the sender.
-            As each relay host adds itself to the beginning of the list,
-            it must use its name as known in the IPCE to which it is
-            relaying the mail rather than the IPCE from which the mail
-            came (if they are different).
-
-            This command clears the reverse-path buffer, the
-            forward-path buffer, and the mail data buffer; and inserts
-            the reverse-path information from this command into the
-            reverse-path buffer.
-
-         RESET (RSET)
-
-            This command specifies that the current mail transaction is
-            to be aborted.  Any stored sender, recipients, and mail data
-            must be discarded, and all buffers and state tables cleared.
-            The receiver must send an OK reply.
-
-         VERIFY (VRFY)
-
-            This command asks the receiver to confirm that the argument
-            identifies a user.  If it is a user name, the full name of
-            the user (if known) and the fully specified mailbox are
-            returned.
-
-            This command has no effect on any of the reverse-path
-            buffer, the forward-path buffer, or the mail data buffer.
-
-         EXPAND (EXPN)
-
-            This command asks the receiver to confirm that the argument
-            identifies a mailing list, and if so, to return the
-            membership of that list.  The full name of the users (if
-            known) and the fully specified mailboxes are returned in a
-            multiline reply.
-
-
-
-
-
-Postel                                                         [Page 21]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-            This command has no effect on any of the reverse-path
-            buffer, the forward-path buffer, or the mail data buffer.
-
-         HELP (HELP)
-
-            This command causes the receiver to send helpful information
-            to the sender of the HELP command.  The command may take an
-            argument (e.g., any command name) and return more specific
-            information as a response.
-
-            This command has no effect on any of the reverse-path
-            buffer, the forward-path buffer, or the mail data buffer.
-
-         NOOP (NOOP)
-
-            This command does not affect any parameters or previously
-            entered commands.  It specifies no action other than that
-            the receiver send an OK reply.
-
-            This command has no effect on any of the reverse-path
-            buffer, the forward-path buffer, or the mail data buffer.
-
-         QUIT (QUIT)
-
-            This command specifies that the receiver must send an OK
-            reply, and then close the transmission channel.
-
-            The receiver should not close the transmission channel until
-            it receives and replies to a QUIT command (even if there was
-            an error).  The sender should not close the transmission
-            channel until it send a QUIT command and receives the reply
-            (even if there was an error response to a previous command).
-            If the connection is closed prematurely the receiver should
-            act as if a RSET command had been received (canceling any
-            pending transaction, but not undoing any previously
-            completed transaction), the sender should act as if the
-            command or transaction in progress had received a temporary
-            error (4xx).
-
-         There are restrictions on the order in which these command may
-         be used.
-
-            The first command in a session must be the HELO command.
-            The HELO command may be used later in a session as well.
-
-
-
-
-
-[Page 22]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-            The NOOP, HELP, EXPN, and VRFY commands can be used at any
-            time during a session.
-
-            The MAIL, SEND, SOML, or SAML commands begin a mail
-            transaction.  Once started a mail transaction consists of
-            one of the transaction beginning commands, one or more RCPT
-            commands, and a DATA command, in that order.  A mail
-            transaction may be aborted by the RSET command.  There may
-            be zero or more transactions in a session.
-
-            The last command in a session must be the QUIT command.  The
-            QUIT command can not be used at any other time in a session.
-
-      4.1.2.  COMMAND SYNTAX
-
-         The commands consist of a command code followed by an argument
-         field.  Command codes are four alphabetic characters.  Upper
-         and lower case alphabetic characters are to be treated
-         identically.  Thus, any of the following may represent the mail
-         command:
-
-            MAIL    Mail    mail    MaIl    mAIl
-
-         This also applies to any symbols representing parameter values,
-         such as "TO" or "to" for the forward-path.  Command codes and
-         the argument fields are separated by one or more spaces.
-         However, within the reverse-path and forward-path arguments
-         case is important.  In particular, in some hosts the user
-         "smith" is different from the user "Smith".
-
-         The argument field consists of a variable length character
-         string ending with the character sequence <CRLF>.  The receiver
-         is to take no action until this sequence is received.
-
-         Square brackets denote an optional argument field.  If the
-         option is not taken, the appropriate default is implied.
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 23]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-         The following are the SMTP commands:
-
-            HELO <SP> <host> <CRLF>
-
-            MAIL <SP> FROM:<reverse-path> <CRLF>
-
-            RCPT <SP> TO:<forward-path> <CRLF>
-
-            DATA <CRLF>
-
-            RSET <CRLF>
-
-            SEND <SP> FROM:<reverse-path> <CRLF>
-
-            SOML <SP> FROM:<reverse-path> <CRLF>
-
-            SAML <SP> FROM:<reverse-path> <CRLF>
-
-            VRFY <SP> <string> <CRLF>
-
-            EXPN <SP> <string> <CRLF>
-
-            HELP [<SP> <string>] <CRLF>
-
-            NOOP <CRLF>
-
-            QUIT <CRLF>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 24]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-         The syntax of the above argument fields (using BNF notation
-         where applicable) is given below.  The "..." notation indicates
-         that a field may be repeated one or more times.
-
-            <reverse-path> ::= <path>
-
-            <forward-path> ::= <path>
-
-            <path> ::= "<" ["@" <host> "," ...] <mailbox> ">"
-
-            <host> ::= <a> <string> | "#" <number> | "[" <dotnum> "]"
-
-            <mailbox> ::= <user> "@" <host>
-
-            <user> ::= <string>
-
-            <string> ::= <char> | <char> <string>
-
-            <char> ::= <c> | '\' <c> | '\' <s>
-
-            <dotnum> ::= <snum> "." <snum> "." <snum> "." <snum>
-
-            <number> ::= <d> | <d> <number>
-
-            <snum> ::= three digits representing a decimal integer value
-                      in the range 0 through 255
-
-            <a> ::= any one of the 52 alphabetic characters A through Z
-                      in upper case and a through z in lower case
-
-            <c> ::= any one of the 128 ASCII characters except
-                      <specials>
-
-            <d> ::= any one of the ten digits 0 through 9
-
-            <s> ::= any one of <specials>
-
-            <specials> ::= '<', '>', '(', ')', '\', ',', ';', ':', '@',
-            '"', and the control characters (ASCII codes 0 through 37
-            octal inclusive and 177 octal)
-
-         Note that the backslash, '\', is a quote character, which is
-         used to indicate that the next character is to be used
-         literally (instead of its normal interpretation).  For example,
-         "Joe\,Smith" could be used to indicate a single nine character
-         user field with comma being the fourth character of the field.
-
-
-
-Postel                                                         [Page 25]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-         Hosts are generally known by names which are translated to
-         addresses in each host.  Sometimes a host is not known to the
-         translation function and communication is blocked.  To bypass
-         this barrier two numeric forms are also allowed for host
-         "names".  One form is a decimal integer prefixed by a pound
-         sign, "#", which indicates the number is the address of the
-         host.  Another form is four small decimal integers separated by
-         dots and enclosed by brackets, e.g., "[123.255.37.2]", which
-         indicates a 32-bit ARPA Internet Address in four 8-bit fields.
-
-         The time stamp line and the return path line are formally
-         defined as follows:
-
-         <return-path-line> ::= "Return-Path:" <SP><reverse-path><CRLF>
-
-         <time-stamp-line> ::= "Mail-From:" <SP> <stamp> <CRLF>
-
-            <stamp> ::= [<ptcl>] <from-host> <this-host> <daytime>
-
-            <ptcl> ::= <protocol> <SP> "host" <SP>
-
-            <from-host> ::= <host> <SP>
-
-            <this-host> ::= "received by" <SP> <host> <SP>
-
-            <protocol> ::= "TCP" | "NCP" | "NITS" | "X25" | "INTERNET" |
-                      "ARPANET"
-
-               Note: INTERNET = TCP, ARPANET = NCP, and if the <ptcl> is
-                         not present INTERNET is assumed.
-
-            <daytime> ::= "at" <SP> <date> <SP> <time>
-
-            <date> ::= <dd> "-" <mon> "-" <yy>
-
-            <time> ::= <hh> ":" <mm> ":" <ss> "-" <zone>
-
-            <dd> ::= the one or two decimal integer day of the month in
-                      the range 1 to 31.
-
-            <mon> ::= "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" |
-                      "JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC"
-
-            <yy> ::= the two decimal integer year of the century in the
-                      range 01 to 99.
-
-
-
-
-[Page 26]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-            <hh> ::= the two decimal integer hour of the day in the
-                      range 00 to 24.
-
-            <mm> ::= the two decimal integer minute of the hour in the
-                      range 00 to 59.
-
-            <ss> ::= the two decimal integer second of the minute in the
-                      range 00 to 59.
-
-            <zone> ::= a time zone designator (as in [2]) or "UT" for
-                      Universal Time (the default).
-
-         Return Path Example:
-
-            Return-Path: <@CHARLIE,@BAKER,JOE@ABLE>
-
-         Mail From Example:
-
-            Mail-From: ABC received by XYZ at 22-OCT-81 09:23:59-PDT
-
-         
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 27]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   4.2.  SMTP REPLIES
-
-      Replies to SMTP commands are devised to ensure the synchronization
-      of requests and actions in the process of mail transfer, and to
-      guarantee that the sender-SMTP always knows the state of the
-      receiver-SMTP.  Every command must generate exactly one reply.
-
-         The details of the command-reply sequence are made explicit in
-         Section 5.3 on Sequencing and Section 5.4 State Diagrams.
-
-      An SMTP reply consists of a three digit number (transmitted as
-      three alphanumeric characters) followed by some text.  The number
-      is intended for use by automata to determine what state to enter
-      next; the text is meant for the human user.  It is intended that
-      the three digits contain enough encoded information that the
-      sender-SMTP need not examine the text and may either discard it or
-      pass it on to the user, as appropriate.  In particular, the text
-      may be receiver-dependent, so there are likely to be varying texts
-      for each reply code.  A discussion of the theory of reply codes is
-      given in the Appendix E.  Formally, a reply is defined to be the
-      sequence:  a three-digit code, <SP>, one line of text, and <CRLF>,
-      or a multiline reply (as defined in Appendix E).  Only the EXPN
-      and HELP command are expected to result in multiline replies in
-      normal circumstances, however multiline replies are allowed for
-      any command.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 28]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-      4.2.1.  REPLY CODES BY FUNCTION GROUPS
-
-         500 Syntax error, command unrecognized
-            [This may include errors such as command line too long]
-         501 Syntax error in parameters or arguments
-         502 Command not implemented
-         503 Bad sequence of commands
-         504 Command parameter not implemented
-          
-         211 System status, or system help reply
-         214 Help message
-            [Information on how to use the receiver or the meaning of a
-            particular non-standard command; this reply is useful only
-            to the human user]
-          
-         220 <host> Service ready
-         221 <host> Service closing transmission channel
-         421 <host> Service not available, closing transmission channel
-            [This may be a reply to any command if the service knows it
-            must shut down]
-          
-         250 Requested mail action okay, completed
-         251 User not local; will forward to <forward-path>
-         450 Requested mail action not taken: mailbox unavailable
-            [E.g., mailbox busy]
-         550 Requested action not taken: mailbox unavailable
-            [E.g., mailbox not found, no access]
-         451 Requested action aborted: error in processing
-         551 User not local; please try <forward-path>
-         452 Requested action not taken: insufficient system storage
-         552 Requested mail action aborted: exceeded storage allocation
-         553 Requested action not taken: mailbox name not allowed
-            [E.g., mailbox syntax incorrect]
-         354 Start mail input; end with <CRLF>.<CRLF>
-         554 Transaction failed
-         
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 29]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-      4.2.2.  NUMERIC ORDER LIST OF REPLY CODES
-
-         211 System status, or system help reply
-         214 Help message
-            [Information on how to use the receiver or the meaning of a
-            particular non-standard command; this reply is useful only
-            to the human user]
-         220 <host> Service ready
-         221 <host> Service closing transmission channel
-         250 Requested mail action okay, completed
-         251 User not local; will forward to <forward-path>
-          
-         354 Start mail input; end with <CRLF>.<CRLF>
-          
-         421 <host> Service not available, closing transmission channel
-            [This may be a reply to any command if the service knows it
-            must shut down]
-         450 Requested mail action not taken: mailbox unavailable
-            [E.g., mailbox busy]
-         451 Requested action aborted: local error in processing
-         452 Requested action not taken: insufficient system storage
-          
-         500 Syntax error, command unrecognized
-            [This may include errors such as command line too long]
-         501 Syntax error in parameters or arguments
-         502 Command not implemented
-         503 Bad sequence of commands
-         504 Command parameter not implemented
-         550 Requested action not taken: mailbox unavailable
-            [E.g., mailbox not found, no access]
-         551 User not local; please try <forward-path>
-         552 Requested mail action aborted: exceeded storage allocation
-         553 Requested action not taken: mailbox name not allowed
-            [E.g., mailbox syntax incorrect]
-         554 Transaction failed
-         
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 30]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   4.3.  SEQUENCING OF COMMANDS AND REPLIES
-
-      The communication between the sender and receiver is intended to
-      be an alternating dialogue, controlled by the sender.  As such,
-      the sender issues a command and the receiver responds with a
-      reply.  The sender must wait for this response before sending
-      further commands.
-
-      One important reply is the connection greeting.  Normally, a
-      receiver will send a 220 "Awaiting input" reply when the
-      connection is completed.  The sender should wait for this greeting
-      message before sending any commands.
-
-         Note: all the greeting type replies have the official name of
-         the server host as the first word following the reply code.
-
-            For example,
-
-               220 <SP> USC-ISIF <SP> Service ready <CRLF>
-
-      The table below lists alternative success and failure replies for
-      each command.  These must be strictly adhered to; a receiver may
-      substitute text in the replies, but the meaning and action implied
-      by the code numbers and by the specific command reply sequence
-      cannot be altered.
-
-      COMMAND-REPLY SEQUENCES
-
-         Each command is listed with its possible replies.  The prefixes
-         used before the possible replies are "P" for preliminary (not
-         used in SMTP), "I" for intermediate, "S" for success, "F" for
-         failure, and "E" for error.  The 421 reply (service not
-         available, closing transmission channel) may be given to any
-         command if the SMTP-receiver knows it must shut down.  This
-         listing forms the basis for the State Diagrams in Section 4.4.
-
-            CONNECTION ESTABLISHMENT
-               S: 220
-               F: 421
-            HELO
-               S: 250
-               E: 500, 501, 504, 421
-            MAIL
-               S: 250
-               F: 552, 451, 452
-               E: 500, 501, 421
-
-
-
-Postel                                                         [Page 31]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-            RCPT
-               S: 250, 251
-               F: 550, 551, 552, 553, 450, 451, 452
-               E: 500, 501, 421
-            DATA
-               I: 354 -> data -> S: 250
-                                 F: 552, 554, 451, 452
-               F: 451, 554
-               E: 500, 501, 421
-            RSET
-               S: 250
-               E: 500, 501, 504, 421
-            SEND
-               S: 250
-               F: 552, 451, 452
-               E: 500, 501, 502, 421
-            SOML
-               S: 250
-               F: 552, 451, 452
-               E: 500, 501, 502, 421
-            SAML
-               S: 250
-               F: 552, 451, 452
-               E: 500, 501, 502, 421
-            VRFY
-               S: 250
-               F: 550
-               E: 500, 501, 502, 504, 421
-            EXPN
-               S: 250
-               F: 550
-               E: 500, 501, 502, 504, 421
-            HELP
-               S: 211, 214
-               E: 500, 501, 502, 504, 421
-            NOOP
-               S: 250
-               E: 500, 421
-            QUIT
-               S: 221
-               E: 500
-
-
-
-
-
-
-
-
-[Page 32]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   4.4.  STATE DIAGRAMS
-
-      Following are state diagrams for a simple-minded SMTP
-      implementation.  Only the first digit of the reply codes is used.
-      There is one state diagram for each group of SMTP commands.  The
-      command groupings were determined by constructing a model for each
-      command and then collecting together the commands with
-      structurally identical models.
-
-      For each command there are three possible outcomes:  "success"
-      (S), "failure" (F), and "error" (E). In the state diagrams below
-      we use the symbol B for "begin", and the symbol W for "wait for
-      reply".
-
-      First, the diagram that represents most of the SMTP commands:
-
-         
-                                  1,3    +---+
-                             ----------->| E |
-                            |            +---+
-                            |
-         +---+    cmd    +---+    2      +---+
-         | B |---------->| W |---------->| S |
-         +---+           +---+           +---+
-                            |
-                            |     4,5    +---+
-                             ----------->| F |
-                                         +---+
-         
-
-         This diagram models the commands:
-
-            HELO, MAIL, RCPT, RSET, SEND, SOML, SAML, VRFY, EXPN, HELP,
-            NOOP, QUIT.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 33]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-      A more complex diagram models the DATA command:
-
-         
-         +---+   DATA    +---+ 1,2                 +---+
-         | B |---------->| W |-------------------->| E |
-         +---+           +---+        ------------>+---+
-                         3| |4,5     |
-                          | |        |
-            --------------   -----   |
-           |                      |  |             +---+
-           |               ----------     -------->| S |
-           |              |       |      |         +---+
-           |              |  ------------
-           |              | |     |
-           V           1,3| |2    |
-         +---+   data    +---+     --------------->+---+
-         |   |---------->| W |                     | F |
-         +---+           +---+-------------------->+---+
-                              4,5
-
-
-         Note that the "data" here is a series of lines sent from the
-         sender to the receiver with no response expected until the last
-         line is sent.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 34]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   4.5.  DETAILS
-
-      4.5.1.  MINIMUM IMPLEMENTATION
-
-         In order to make SMTP workable, the following minimum
-         implementation is required for all receivers:
-
-            COMMANDS -- HELO
-                        MAIL
-                        RCPT
-                        DATA
-                        RSET
-                        NOOP
-                        QUIT
-
-      4.5.2.  TRANSPARENCY
-
-         Without some provision for data transparency the character
-         sequence "<CRLF>.<CRLF>" ends the the mail text and cannot be
-         sent by the user.  In general, users are not aware of such
-         "forbidden" sequences.  To allow all user composed text to be
-         transmitted transparently the following procedures are used.
-
-            1. Before sending a line of mail text the sender-SMTP checks
-            the first character of the line.  If it is a period, one
-            additional period is inserted at the beginning of the line.
-
-            2. When a line of mail text is received by the receiver-SMTP
-            it checks the the line.  If the line is composed of a single
-            period it is the end of mail.  If the first character is a
-            period and there are other characters on the line, the first
-            character is deleted.
-
-         The mail data may contain any of the 128 ASCII characters.  All
-         characters are to be delivered to the recipients mailbox
-         including format effectors and other control characters.  The
-         7-bit ASCII codes are transmitted right justified in 8-bit
-         bytes (octets) with the high order bits cleared to zero.
-
-            In some systems it may be necessary to transform the data as
-            it is received and stored.  This may be necessary for hosts
-            that use a different character set than ASCII as their local
-            character set, or that store data in records rather than
-            strings.  If such transforms are necessary, they must be
-            reversible -- especially if such transforms are applied to
-            mail being relayed.
-
-
-
-Postel                                                         [Page 35]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-      4.5.3.  SIZES
-
-         There are several objects that have required minimum maximum
-         sizes.  That is every implementation must be able to receive
-         objects of at least these sizes, but must not send objects
-         larger than these sizes.
-
-                                    
-          ****************************************************
-          *                                                  *
-          *  TO THE MAXIMUM EXTENT POSSIBLE, IMPLEMENTATION  *
-          *  TECHNIQUES WHICH IMPOSE NO LIMITS ON THE LENGTH *
-          *  OF THESE OBJECTS SHOULD BE USED.                *
-          *                                                  *
-          ****************************************************
-
-            user
-
-               The maximum total length of a user name is 64 characters.
-
-            host
-
-               The maximum total length of a host name or number is 40
-               characters.
-
-            path
-
-               The maximum total length of a reverse-path or
-               forward-path is 256 characters (including the punctuation
-               and element separators).
-
-            command line
-
-               The maximum total length of a command line including the
-               command word and the <CRLF> is 512 characters.
-
-            reply line
-
-               The maximum total length of a reply line including the
-               reply code and the <CRLF> is 512 characters.
-
-            text line
-
-               The maximum total length of a text line including the
-               <CRLF> is 1000 characters (but not counting the leading
-               dot duplicated for transparency).
-
-
-
-[Page 36]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-            recipients buffer
-
-               The maximum total number of recipients that must be
-               buffered is 100 recipients.
-
-                                    
-          ****************************************************
-          *                                                  *
-          *  TO THE MAXIMUM EXTENT POSSIBLE, IMPLEMENTATION  *
-          *  TECHNIQUES WHICH IMPOSE NO LIMITS ON THE LENGTH *
-          *  OF THESE OBJECTS SHOULD BE USED.                *
-          *                                                  *
-          ****************************************************
-
-         Errors due to exceeding these limits may be reported by using
-         the reply codes, for example:
-
-            500 Line too long.
-
-            501 Path too long
-
-            552 Too many recipients.
-
-            552 Too much mail data.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 37]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-APPENDIX A
-
-   TCP Transport service
-
-      The Transmission Control Protocol [3] is used in the ARPA
-      Internet, and in any network following the US DoD standards for
-      internetwork protocols.
-
-      Connection Establishment
-
-         The SMTP transmission channel is a TCP connection established
-         between the sender process port U and the receiver process port
-         L.  This single full duplex connection is used as the
-         transmission channel.  This protocol is assigned the service
-         port 25 (31 octal), that is L=25.
-
-      Data Transfer
-
-         The TCP connection supports the transmission of 8-bit bytes.
-         The SMTP data is 7-bit ASCII characters.  Each character is
-         transmitted as a 8-bit byte with the high-order bit cleared to
-         zero.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 38]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-APPENDIX B
-
-   NCP Transport service
-
-      The ARPANET Host-to-Host Protocol [4] (implemented by the Network
-      Control Program) may be used in the ARPANET.
-
-      Connection Establishment
-
-         The SMTP transmission channel is established via NCP between
-         the the sender process socket U and receiver process socket L.
-         The Initial Connection Protocol [5] is followed resulting in a
-         pair of simplex connections.  This pair of connections is used
-         as the transmission channel.  This protocol is assigned the
-         contact socket 25 (31 octal), that is L=25.
-
-      Data Transfer
-
-         The NCP data connections are established in 8-bit byte mode.
-         The SMTP data is 7-bit ASCII characters.  Each character is
-         transmitted as a 8-bit byte with the high-order bit cleared to
-         zero.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 39]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-APPENDIX C
-
-   NITS
-
-      The Network Independent Transport Service [6] may be used.
-
-      Connection Establishment
-
-         The SMTP transmission channel is established via NITS between
-         the sender process and receiver process.  The sender process
-         executes the CONNECT primitive, and the waiting receiver
-         process executes the ACCEPT primitive.
-
-      Data Transfer
-
-         The NITS connection supports the transmission of 8-bit bytes.
-         The SMTP data is 7-bit ASCII characters.  Each character is
-         transmitted as a 8-bit byte with the high-order bit cleared to
-         zero.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 40]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-APPENDIX D
-
-   X.25 Transport service
-
-      It may be possible to use the X.25 service [7] as provided by the
-      Public Data Networks directly, but there are indications that it
-      is too error prone to qualify as a reliable channel.  It is
-      suggested that a reliable end-to-end protocol such as TCP be used
-      on top of X.25 connections.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 41]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-APPENDIX E
-
-   Theory of Reply Codes
-
-      The three digits of the reply each have a special significance.
-      The first digit denotes whether the response is good, bad or
-      incomplete.  An unsophisticated sender-SMTP will be able to
-      determine its next action (proceed as planned, redo, retrench,
-      etc.) by simply examining this first digit.  A sender-SMTP that
-      wants to know approximately what kind of error occurred (e.g.,
-      mail system error, command syntax error) may examine the second
-      digit, reserving the third digit for the finest gradation of
-      information.
-
-         There are five values for the first digit of the reply code:
-
-            1yz   Positive Preliminary reply
-
-               The command has been accepted, but the requested action
-               is being held in abeyance, pending confirmation of the
-               information in this reply.  The sender-SMTP should send
-               another command specifying whether to continue or abort
-               the action.
-
-                  [Note: SMTP does not have any commands that allow this
-                  type of reply, and so does not have the continue or
-                  abort commands.]
-
-            2yz   Positive Completion reply
-
-               The requested action has been successfully completed.  A
-               new request may be initiated.
-
-            3yz   Positive Intermediate reply
-
-               The command has been accepted, but the requested action
-               is being held in abeyance, pending receipt of further
-               information.  The sender-SMTP should send another command
-               specifying this information.  This reply is used in
-               command sequence groups.
-
-            4yz   Transient Negative Completion reply
-
-               The command was not accepted and the requested action did
-               not occur.  However, the error condition is temporary and
-               the action may be requested again.  The sender should
-
-
-
-[Page 42]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-               return to the beginning of the command sequence (if any).
-               It is difficult to assign a meaning to "transient" when
-               two different sites (receiver- and sender- SMTPs) must
-               agree on the interpretation.  Each reply in this category
-               might have a different time value, but the sender-SMTP is
-               encouraged to try again.  A rule of thumb to determine if
-               a reply fits into the 4yz or the 5yz category (see below)
-               is that replies are 4yz if they can be repeated without
-               any change in command form or in properties of the sender
-               or receiver.  (E.g., the command is repeated identically
-               and the receiver does not put up a new implementation.)
-
-            5yz   Permanent Negative Completion reply
-
-               The command was not accepted and the requested action did
-               not occur.  The sender-SMTP is discouraged from repeating
-               the exact request (in the same sequence).  Even some
-               "permanent" error conditions can be corrected, so the
-               human user may want to direct the sender-SMTP to
-               reinitiate the command sequence by direct action at some
-               point in the future (e.g., after the spelling has been
-               changed, or the user has altered the account status).
-
-         The second digit encodes responses in specific categories:
-
-            x0z   Syntax -- These replies refer to syntax errors,
-                  syntactically correct commands that don't fit any
-                  functional category, and unimplemented or superfluous
-                  commands.
-
-            x1z   Information --  These are replies to requests for
-                  information, such as status or help.
-
-            x2z   Connections -- These are replies referring to the
-                  transmission channel.
-
-            x3z   Unspecified as yet.
-
-            x4z   Unspecified as yet.
-
-            x5z   Mail system -- These replies indicate the status of
-                  the receiver mail system vis-a-vis the requested
-                  transfer or other mail system action.
-
-         The third digit gives a finer gradation of meaning in each
-         category specified by the second digit.  The list of replies
-
-
-
-Postel                                                         [Page 43]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-         illustrates this.  Each reply text is recommended rather than
-         mandatory, and may even change according to the command with
-         which it is associated.  On the other hand, the reply codes
-         must strictly follow the specifications in this section.
-         Receiver implementations should not invent new codes for
-         slightly different situations from the ones described here, but
-         rather adapt codes already defined.
-
-         For example, a command such as NOOP whose successful execution
-         does not offer the sender-SMTP any new information will return
-         a 250 reply.  The response is 502 when the command requests an
-         unimplemented non-site-specific action.  A refinement of that
-         is the 504 reply for a command that is implemented, but that
-         requests an unimplemented parameter.
-
-      The reply text may be longer than a single line; in these cases
-      the complete text must be marked so the sender-SMTP knows when it
-      can stop reading the reply.  This requires a special format to
-      indicate a multiple line reply.
-
-         The format for multi-line replies requires that every line,
-         except the last, begin with the reply code, followed
-         immediately by a hyphen, "-" (also known as minus), followed by
-         text.  The last line will begin with the reply code, followed
-         immediately by <SP>, optionally some text, and <CRLF>.
-
-            For example:
-                                123-First line
-                                123-Second line
-                                123-234 text beginning with numbers
-                                123 The last line
-
-         The sender-SMTP then simply needs to search for the reply code
-         followed by <SP> at the beginning of a line, and ignore all
-         preceding lines.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 44]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-APPENDIX F
-
-   Scenarios
-
-      This section presents complete scenarios of several types of SMTP
-      sessions.
-
-   A Typical SMTP Transaction Scenario
-
-      This SMTP example shows mail sent by Smith at host USC-ISIF, to
-      Jones, Green, and Brown at host BBN-UNIX.  Here we assume that
-      host USC-ISIF contacts host BBN-UNIX directly.  The mail is
-      accepted for Jones and Brown.  Green does not have a mailbox at
-      host BBN-UNIX.
-
-      -------------------------------------------------------------
-
-         R: 220 BBN-UNIX Simple Mail Transfer Service Ready
-         S: HELO USC-ISIF
-         R: 250 BBN-UNIX
-
-         S: MAIL FROM:<Smith@USC-ISIF>
-         R: 250 OK
-
-         S: RCPT TO:<Jones@BBN-UNIX>
-         R: 250 OK
-
-         S: RCPT TO:<Green@BBN-UNIX>
-         R: 550 No such user here
-
-         S: RCPT TO:<Brown@BBN-UNIX>
-         R: 250 OK
-
-         S: DATA
-         R: 354 Start mail input; end with <CRLF>.<CRLF>
-         S: Blah blah blah...
-         S: ...etc. etc. etc.
-         S: .
-         R: 250 OK
-
-         S: QUIT
-         R: 221 BBN-UNIX Service closing transmission channel
-
-                               Scenario 1
-
-      -------------------------------------------------------------
-
-
-
-Postel                                                         [Page 45]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   Aborted SMTP Transaction Scenario
-
-      -------------------------------------------------------------
-
-         R: 220 MIT-Multics Simple Mail Transfer Service Ready
-         S: HELO ISI-VAXA
-         R: 250 MIT-Multics
-
-         S: MAIL FROM:<Smith@ISI-VAXA>
-         R: 250 OK
-
-         S: RCPT TO:<Jones@MIT-Multics>
-         R: 250 OK
-
-         S: RCPT TO:<Green@MIT-Multics>
-         R: 550 No such user here
-
-         S: RSET
-         R: 250 OK
-
-         S: QUIT
-         R: 221 MIT-Multics Service closing transmission channel
-
-                               Scenario 2
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 46]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   Relayed Mail Scenario
-
-      -------------------------------------------------------------
-
-         Step 1  --  Source Host to Relay Host
-
-            R: 220 USC-ISIE Simple Mail Transfer Service Ready
-            S: HELO MIT-AI
-            R: 250 USC-ISIE
-
-            S: MAIL FROM:<JQP@MIT-AI>
-            R: 250 OK
-
-            S: RCPT TO:<@ISIE,Jones@BBN-VAX>
-            R: 250 OK
-
-            S: DATA
-            R: 354 Start mail input; end with <CRLF>.<CRLF>
-            S: Date: 2-Nov-81 22:33:44
-            S: From: John Q. Public <JQP at MIT-AI>
-            S: Subject:  The Next Meeting of the Board
-            S: To: Jones at BBN-Vax
-            S:
-            S: Bill:
-            S: The next meeting of the board of directors will be
-            S: on Tuesday.
-            S:                                              John.
-            S: .
-            R: 250 OK
-
-            S: QUIT
-            R: 221 USC-ISIE Service closing transmission channel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 47]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-         Step 2  --  Relay Host to Destination Host
-
-            R: 220 BBN-VAX Simple Mail Transfer Service Ready
-            S: HELO USC-ISIE
-            R: 250 BBN-VAX
-
-            S: MAIL FROM:<@ISIE,JQP@MIT-AI>
-            R: 250 OK
-
-            S: RCPT TO:<Jones@BBN-VAX>
-            R: 250 OK
-
-            S: DATA
-            R: 354 Start mail input; end with <CRLF>.<CRLF>
-            S: Mail-From: NCP host MIT-AI received by USC-ISIE at
-               2-Nov-81 22:40:10
-            S: Date: 2-Nov-81 22:33:44
-            S: From: John Q. Public <JQP at MIT-AI>
-            S: Subject:  The Next Meeting of the Board
-            S: To: Jones at BBN-Vax
-            S:
-            S: Bill:
-            S: The next meeting of the board of directors will be
-            S: on Tuesday.
-            S:                                              John.
-            S: .
-            R: 250 OK
-
-            S: QUIT
-            R: 221 USC-ISIE Service closing transmission channel
-
-                               Scenario 3
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 48]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   Verifying and Sending Scenario
-
-      -------------------------------------------------------------
-
-         R: 220 SU-SCORE Simple Mail Transfer Service Ready
-         S: HELO MIT-MC
-         R: 250 SU-SCORE
-
-         S: VRFY Crispin
-         R: 250 Mark Crispin <Admin.MRC@SU-SCORE>
-
-         S: SEND FROM:<EAK@MIT-MC>
-         R: 250 OK
-
-         S: RCPT TO:<Admin.MRC@SU-SCORE>
-         R: 250 OK
-
-         S: DATA
-         R: 354 Start mail input; end with <CRLF>.<CRLF>
-         S: Blah blah blah...
-         S: ...etc. etc. etc.
-         S: .
-         R: 250 OK
-
-         S: QUIT
-         R: 221 SU-SCORE Service closing transmission channel
-
-                               Scenario 4
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 49]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   Sending and Mailing Scenarios
-
-      First the user's name is verified, then  an attempt is made to
-      send to the user's terminal.  When that fails, the messages is
-      mailed to the user's mailbox.
-
-      -------------------------------------------------------------
-
-         R: 220 SU-SCORE Simple Mail Transfer Service Ready
-         S: HELO MIT-MC
-         R: 250 SU-SCORE
-
-         S: VRFY Crispin
-         R: 250 Mark Crispin <Admin.MRC@SU-SCORE>
-
-         S: SEND FROM:<EAK@MIT-MC>
-         R: 250 OK
-
-         S: RCPT TO:<Admin.MRC@SU-SCORE>
-         R: 450 User not active now
-
-         S: RSET
-         R: 250 OK
-
-         S: MAIL FROM:<EAK@MIT-MC>
-         R: 250 OK
-
-         S: RCPT TO:<Admin.MRC@SU-SCORE>
-         R: 250 OK
-
-         S: DATA
-         R: 354 Start mail input; end with <CRLF>.<CRLF>
-         S: Blah blah blah...
-         S: ...etc. etc. etc.
-         S: .
-         R: 250 OK
-
-         S: QUIT
-         R: 221 SU-SCORE Service closing transmission channel
-
-                               Scenario 5
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-[Page 50]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-      Doing the preceding scenario more efficiently.
-
-      -------------------------------------------------------------
-
-         R: 220 SU-SCORE Simple Mail Transfer Service Ready
-         S: HELO MIT-MC
-         R: 250 SU-SCORE
-
-         S: VRFY Crispin
-         R: 250 Mark Crispin <Admin.MRC@SU-SCORE>
-
-         S: SOML FROM:<EAK@MIT-MC>
-         R: 250 OK
-
-         S: RCPT TO:<Admin.MRC@SU-SCORE>
-         R: 250 User not active now, so will do mail.
-
-         S: DATA
-         R: 354 Start mail input; end with <CRLF>.<CRLF>
-         S: Blah blah blah...
-         S: ...etc. etc. etc.
-         S: .
-         R: 250 OK
-
-         S: QUIT
-         R: 221 SU-SCORE Service closing transmission channel
-
-                               Scenario 6
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 51]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   Mailing List Scenario
-
-      First each of two mailing lists are expanded in separate sessions
-      with different hosts.  Then the message is sent to everyone that
-      appeared on either list (but no duplicates) via a relay host.
-
-      -------------------------------------------------------------
-
-         Step 1  --  Expanding the First List
-
-            R: 220 MIT-AI Simple Mail Transfer Service Ready
-            S: HELO SU-SCORE
-            R: 250 MIT-AI
-
-            S: EXPN Example-People
-            R: 250-<ABC@MIT-MC>
-            R: 250-Fred Fonebone <Fonebone@ISIQ>
-            R: 250-Xenon Y. Zither <XYZ@MIT-AI>
-            R: 250-Quincy Smith <@ISIF,Q-Smith@ISI-VAXA>
-            R: 250-<joe@foo-unix>
-            R: 250 <xyz@bar-unix>
-
-            S: QUIT
-            R: 221 MIT-AI Service closing transmission channel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 52]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-         Step 2  --  Expanding the Second List
-
-            R: 220 MIT-MC Simple Mail Transfer Service Ready
-            S: HELO SU-SCORE
-            R: 250 MIT-MC
-
-            S: EXPN Interested-Parties
-            R: 250-Al Calico <ABC@MIT-MC>
-            R: 250-<XYZ@MIT-AI>
-            R: 250-Quincy Smith <@ISIF,Q-Smith@ISI-VAXA>
-            R: 250-<fred@BBN-UNIX>
-            R: 250 <xyz@bar-unix>
-
-            S: QUIT
-            R: 221 MIT-MC Service closing transmission channel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 53]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-         Step 3  --  Mailing to All via a Relay Host
-
-            R: 220 USC-ISIE Simple Mail Transfer Service Ready
-            S: HELO SU-SCORE
-            R: 250 USC-ISIE
-
-            S: MAIL FROM:<Account.Person@SU-SCORE>
-            R: 250 OK
-            S: RCPT TO:<@ISIE,ABC@MIT-MC>
-            R: 250 OK
-            S: RCPT TO:<@ISIE,Fonebone@ISIQ>
-            R: 250 OK
-            S: RCPT TO:<@ISIE,XYZ@MIT-AI>
-            R: 250 OK
-            S: RCPT TO:<@ISIE,@ISIF,Q-Smith@ISI-VAXA>
-            R: 250 OK
-            S: RCPT TO:<@ISIE,joe@FOO-UNIX>
-            R: 250 OK
-            S: RCPT TO:<@ISIE,xyz@BAR-UNIX>
-            R: 250 OK
-            S: RCPT TO:<@ISIE,fred@BBN-UNIX>
-            R: 250 OK
-
-            S: DATA
-            R: 354 Start mail input; end with <CRLF>.<CRLF>
-            S: Blah blah blah...
-            S: ...etc. etc. etc.
-            S: .
-            R: 250 OK
-
-            S: QUIT
-            R: 221 USC-ISIE Service closing transmission channel
-
-                               Scenario 7
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 54]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   Forwarding Scenarios
-
-      -------------------------------------------------------------
-
-         R: 220 USC-ISIF Simple Mail Transfer Service Ready
-         S: HELO LBL-UNIX
-         R: 250 USC-ISIF
-
-         S: MAIL FROM:<mo@LBL-UNIX>
-         R: 250 OK
-
-         S: RCPT TO:<fred@USC-ISIF>
-         R: 251 User not local; will forward to <Jones@USC-ISIA>
-
-         S: DATA
-         R: 354 Start mail input; end with <CRLF>.<CRLF>
-         S: Blah blah blah...
-         S: ...etc. etc. etc.
-         S: .
-         R: 250 OK
-
-         S: QUIT
-         R: 221 USC-ISIF Service closing transmission channel
-
-                               Scenario 8
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Postel                                                         [Page 55]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-      -------------------------------------------------------------
-
-         Step 1  --  Trying the Mailbox at the First Host
-
-            R: 220 USC-ISIF Simple Mail Transfer Service Ready
-            S: HELO LBL-UNIX
-            R: 250 USC-ISIF
-
-            S: MAIL FROM:<mo@LBL-UNIX>
-            R: 250 OK
-
-            S: RCPT TO:<fred@USC-ISIF>
-            R: 251 User not local; will forward to <Jones@USC-ISIA>
-
-            S: RSET
-            R: 250 OK
-
-            S: QUIT
-            R: 221 USC-ISIF Service closing transmission channel
-
-         Step 2  --  Delivering the Mail at the Second Host
-
-            R: 220 USC-ISIA Simple Mail Transfer Service Ready
-            S: HELO LBL-UNIX
-            R: 250 USC-ISIA
-
-            S: MAIL FROM:<mo@LBL-UNIX>
-            R: 250 OK
-
-            S: RCPT TO:<Jones@USC-ISIA>
-            R: OK
-
-            S: DATA
-            R: 354 Start mail input; end with <CRLF>.<CRLF>
-            S: Blah blah blah...
-            S: ...etc. etc. etc.
-            S: .
-            R: 250 OK
-
-            S: QUIT
-            R: 221 USC-ISIA Service closing transmission channel
-
-                               Scenario 9
-
-      -------------------------------------------------------------
-
-
-
-
-[Page 56]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   Too Many Recipients Scenario
-
-      -------------------------------------------------------------
-
-         R: 220 BERKELEY Simple Mail Transfer Service Ready
-         S: HELO USC-ISIF
-         R: 250 BERKELEY
-
-         S: MAIL FROM:<Postel@USC-ISIF>
-         R: 250 OK
-
-         S: RCPT TO:<fabry@BERKELEY>
-         R: 250 OK
-
-         S: RCPT TO:<eric@BERKELEY>
-         R: 552 Recipient storage full, try again in another transaction
-
-         S: DATA
-         R: 354 Start mail input; end with <CRLF>.<CRLF>
-         S: Blah blah blah...
-         S: ...etc. etc. etc.
-         S: .
-         R: 250 OK
-
-         S: MAIL FROM:<Postel@USC-ISIF>
-         R: 250 OK
-
-         S: RCPT TO:<eric@BERKELEY>
-         R: 250 OK
-
-         S: DATA
-         R: 354 Start mail input; end with <CRLF>.<CRLF>
-         S: Blah blah blah...
-         S: ...etc. etc. etc.
-         S: .
-         R: 250 OK
-
-         S: QUIT
-         R: 221 BERKELEY Service closing transmission channel
-
-                              Scenario 10
-
-      -------------------------------------------------------------
-
-
-
-
-
-
-Postel                                                         [Page 57]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-GLOSSARY
-
-   ASCII
-
-      American Standard Code for Information Interchange [1].
-
-   command
-
-      A request for a mail service action sent by the sender-SMTP to the
-      receiver-SMTP.
-
-   end of mail data indication
-
-      A special sequence of characters that indicates the end of the
-      mail data.  In particular, the five characters carriage return,
-      line feed, period, carriage return, line feed, in that order.
-
-   host
-
-      A computer in the internetwork environment on which mailboxes or
-      SMTP processes reside.
-
-   line
-
-      A line of text ending with a <CRLF>.
-
-   mail data
-
-      A sequence of ASCII characters of arbitrary length, which conforms
-      to the standard set in the Standard for the Format of ARPA Network
-      Text Messages (RFC 733 [2]).
-
-   mailbox
-
-      A character string (address) which identifies a user to whom mail
-      is to be sent.  Mailbox normally consists of the host and user
-      specifications.  The standard mailbox naming convention is defined
-      to be "user@host".  Additionally, the "container" in which mail is
-      stored.
-
-   receiver-SMTP process
-
-      A process which transfers mail in cooperation with a sender-SMTP
-      process.  It waits for a connection to be established via the
-      transport service.  It receives SMTP commands from the
-      sender-SMTP, sends replies, and performs the specified operations.
-
-
-
-[Page 58]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-   reply
-
-      A reply is an acknowledgment (positive or negative) sent from
-      receiver to sender via the transmission channel in response to a
-      SMTP command.  The general form of a reply is a completion code
-      (including error codes) followed by a text string.  The codes are
-      for use by programs and the text is usually intended for human
-      users.
-
-   sender-SMTP process
-
-      A process which transfers mail in cooperation with a receiver-SMTP
-      process.  A local language may be used in the user interface
-      command/reply dialogue.  The sender-SMTP initiates the transport
-      service connection.  It initiates SMTP commands, receives replies,
-      and governs the transfer of mail.
-
-   session
-
-      The set of exchanges that occur while the transmission channel is
-      open.
-
-   transaction
-
-      The set of exchanges required for one message to be transmitted
-      for one or more recipients.
-
-   transmission channel
-
-      A full-duplex communication path between a sender-SMTP and a
-      receiver-SMTP for the exchange of commands, replies, and mail
-      text.
-
-   transport service
-
-      Any reliable stream-oriented data communication services.  For
-      example, NCP, TCP, NITS.
-
-   user
-
-      A human being (or a process on behalf of a human being) wishing to
-      obtain mail transfer service.  In addition, a recipient of
-      computer mail.
-
-
-
-
-
-
-Postel                                                         [Page 59]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   word
-
-      A sequence of printing characters.
-
-   <CRLF>
-
-      The characters carriage return and line feed (in that order).
-
-   <SP>
-
-      The space character.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 60]                                                         Postel
-
-
-                                                                        
-RFC 788                                                    November 1981
-                                           Simple Mail Transfer Protocol
-
-
-
-REFERENCES
-
-   [1]  ASCII
-
-      ASCII, "USA Code for Information Interchange", United States of
-      America Standards Institute, X3.4, 1968.  Also in:  Feinler, E.
-      and J. Postel, eds., "ARPANET Protocol Handbook", NIC 7104, for
-      the Defense Communications Agency by SRI International, Menlo
-      Park, California, Revised January 1978.
-
-   [2]  RFC 733
-
-      Crocker, D., J. Vittal, K. Pogran, and D. Henderson, "Standard for
-      the Format of ARPA Network Text Messages," RFC 733, NIC 41952,
-      November 1977.  Also in:  Feinler, E. and J. Postel, eds.,
-      "ARPANET Protocol Handbook", NIC 7104, for the Defense
-      Communications Agency by SRI International, Menlo Park,
-      California, Revised January 1978.
-
-   [3]  TCP
-
-      Postel, J., ed., "Transmission Control Protocol - DARPA Internet
-      Program Protocol Specification", RFC 793, USC/Information Sciences
-      Institute, September 1981.
-
-   [4]  NCP
-
-      McKenzie,A., "Host/Host Protocol for the ARPA Network", NIC 8246,
-      January 1972.  Also in:  Feinler, E. and J. Postel, eds., "ARPANET
-      Protocol Handbook", NIC 7104, for the Defense Communications
-      Agency by SRI International, Menlo Park, California, Revised
-      January 1978.
-
-   [5]  Initial Connection Protocol
-
-      Postel, J., "Official Initial Connection Protocol", NIC 7101,
-      11 June 1971.  Also in:  Feinler, E. and J. Postel, eds., "ARPANET
-      Protocol Handbook", NIC 7104, for the Defense Communications
-      Agency by SRI International, Menlo Park, California, Revised
-      January 1978.
-
-   [6]  NITS
-
-      PSS/SG3, "A Network Independent Transport Service", Study Group 3,
-      The Post Office PSS Users Group, February 1980.  Available from
-      the DCPU, National Physical Laboratory, Teddington, UK.
-
-
-
-Postel                                                         [Page 61]
-
-
-                                                                        
-November 1981                                                    RFC 788
-Simple Mail Transfer Protocol                                           
-
-
-
-   [7]  X.25
-
-      CCITT, "Recommendation X.25 - Interface Between Data Terminal
-      Equipment (DTE) and Data Circuit-terminating Equipment (DCE) for
-      Terminals Operating in the Packet Mode on Public Data Networks,"
-      CCITT Orange Book, Vol. VIII.2, International Telephone and
-      Telegraph Consultative Committee, Geneva, 1976.
-
-         
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Page 62]                                                         Postel
-
-#document
-| <html>
-|   <head>
-|     <script>
-|       "
-|  document["balah"].src = eval("balah" + "on.src");
-| "
-|     "
-| "
-|   <body>
-|     <p>
-|       "
-| RFC788
-|                                                                         
-|                                     
-|                                     
-|                                     
-|                                     
-|                                     
-|                      SIMPLE MAIL TRANSFER PROTOCOL
-|                                     
-|                                     
-|                                     
-|                            Jonathan B. Postel
-|                              November 1981
-|                                     
-|                                     
-|                                     
-|                      Information Sciences Institute
-|                    University of Southern California
-|                            4676 Admiralty Way
-|                    Marina del Rey, California  90291
-|                              (213) 822-1511
-| 
-|                                                                         
-| RFC 788                                                    November 1981
-|                                            Simple Mail Transfer Protocol
-|                            TABLE OF CONTENTS
-|    1.  INTRODUCTION .................................................. 1
-|    2.  THE SMTP MODEL ................................................ 2
-|    3.  THE SMTP PROCEDURE ............................................ 4
-|       3.1.  Mail ..................................................... 4
-|       3.2.  Forwarding ............................................... 7
-|       3.3.  Verifying and Expanding .................................. 8
-|       3.4.  Sending and Mailing ..................................... 10
-|       3.5.  Opening and Closing ..................................... 12
-|       3.6.  Relaying ................................................ 13
-|       3.7.  Domains ................................................. 15
-|    4.  THE SMTP SPECIFICATIONS ...................................... 16
-|       4.1.  SMTP Commands ........................................... 16
-|       4.1.1.  Command Semantics ..................................... 16
-|       4.1.2.  Command Syntax ........................................ 23
-|       4.2.  SMTP Replies ............................................ 28
-|       4.2.1.  Reply Codes by Function Group ......................... 29
-|       4.2.2.  Reply Codes in Numeric Order .......................... 30
-|       4.3.  Sequencing of Commands and Replies ...................... 31
-|       4.4.  State Diagrams .......................................... 33
-|       4.5.  Details ................................................. 35
-|       4.5.1.  Minimum Implementation ................................ 35
-|       4.5.2.  Transparency .......................................... 35
-|       4.5.3.  Sizes ................................................. 36
-|    APPENDIX A:  TCP ................................................. 38
-|    APPENDIX B:  NCP ................................................. 39
-|    APPENDIX C:  NITS ................................................ 40
-|    APPENDIX D:  X.25 ................................................ 41
-|    APPENDIX E:  Theory of Reply Codes ............................... 42
-|    APPENDIX F:  Scenarios ........................................... 45
-|    GLOSSARY ......................................................... 58
-|    REFERENCES ....................................................... 61
-| 
-| Network Working Group                                          J. Postel
-| Request for Comments: 788                                            ISI
-| Replaces: RFC 780, 772                                     November 1981
-|                      SIMPLE MAIL TRANSFER PROTOCOL
-| 1.  INTRODUCTION
-|    The objective of Simple Mail Transfer Protocol (SMTP) is to transfer
-|    mail reliably and efficiently.
-|    SMTP is independent of the particular transmission subsystem and
-|    requires only a reliable ordered data stream channel.  Appendices A,
-|    B, C, and D describe the use of SMTP with various transport services.
-|    A Glossary provides the definitions of terms as used in this
-|    document.
-|    An "
-|       "important feature of SMTP is its capability to relay mail across
-|    transport service environments.  A transport service provides an
-|    interprocess communication environment (IPCE).  An IPCE may cover one
-|    network, several networks, or a subset of a network.  It is important
-|    to realize that transport systems (or IPCEs) are not one-to-one with
-|    networks.  A process can communicate directly with another process
-|    through any mutually known IPCE.  Mail is an application or use of
-|    interprocess communication.  Mail can be communicated between
-|    processes in different IPCEs by relaying through a process connected
-|    to two (or more) IPCEs.  More specifically, mail can be relayed
-|    between hosts on different transport systems by a host on both
-|    transport systems.
-| Postel                                                          [Page 1]
-| 
-|                                                                         
-| November 1981                                                    RFC 788
-| Simple Mail Transfer Protocol                                           
-| 2.  THE SMTP MODEL
-|    The SMTP design is based on the following model of communication:  as
-|    the result of a user mail request, the sender-SMTP establishes a
-|    full-duplex transmission channel to a receiver-SMTP.  The
-|    receiver-SMTP may be either the ultimate destination or an
-|    intermediate.  SMTP commands are generated by the sender-SMTP and
-|    sent to the receiver-SMTP.  SMTP replies are sent from the
-|    receiver-SMTP to the sender-SMTP in response to the commands.
-|    Once the transmission channel is established, the SMTP-sender sends a
-|    MAIL command indicating the sender of the mail.  If the SMTP-receiver
-|    can accept mail it responds with an OK reply.  The SMTP-sender then
-|    sends a RCPT command identifying a recipient of the mail.  If the
-|    SMTP-receiver can accept mail for that recipient it responds with an
-|    OK reply; if not, it responds with a reply rejecting that recipient
-|    (but not the whole mail transaction).  The SMTP-sender and
-|    SMTP-receiver may negotiate several recipients.  When the recipients
-|    have been negotiated the SMTP-sender sends the mail data, terminating
-|    with a special sequence.  If the SMTP-receiver successfully processes
-|    the mail data it responds with an OK reply.  The dialog is purposely
-|    lock-step, one-at-a-time.
-|      -------------------------------------------------------------
-|    
-|                +----------+                +----------+
-|    +------+    |          |                |          |
-|    | User |<-->|          |      SMTP      |          |
-|    +------+    |  Sender- |Commands/Replies| Receiver-|
-|    +------+    |   SMTP   |<-------------->|    SMTP  |    +------+
-|    | File |<-->|          |    and Mail    |          |<-->| File |
-|    |System|    |          |                |          |    |System|
-|    +------+    +----------+                +----------+    +------+
-|    
-|                 Sender-SMTP                Receiver-SMTP
-|                            Model for SMTP Use
-|                                 Figure 1
-|      -------------------------------------------------------------
-|    The SMTP provides mechanisms for the transmission of mail; directly
-|    from the sending user's host to the receiving user's host when the
-| [Page 2]                                                          Postel
-| 
-|                                                                         
-| RFC 788                                                    November 1981
-|                                            Simple Mail Transfer Protocol
-|    two host are connected to the same transport service, or via one or
-|    more relay SMTP-servers when the source and destination hosts are not
-|    connected to the same transport service.
-|    To be able to provide the relay capability the SMTP-server must be
-|    supplied with the name of the ultimate destination host as well as
-|    the destination mailbox name.
-|    The argument to the MAIL command is a reverse-path, which specifies
-|    who the mail is from.  The argument to the RCPT command is a
-|    forward-path, which specifies who the mail is to.  The forward-path
-|    is a source route while the reverse-path, is a return route (which
-|    may be used to return a message to the sender when an error occurs
-|    with a relayed message).
-|    When the same message is sent to multiple recipients the SMTP
-|    encourages the transmission of only one copy of the data for all the
-|    recipients at the same destination host.
-|    The mail commands and replies have a rigid syntax.  Replies also have
-|    a numeric code.  In the following, examples appear which use actual
-|    commands and replies.  The complete lists of commands and replies
-|    appears in Section 4 on specifications.
-|    Commands and replies are not case sensitive.  That is, a command or
-|    reply word may be upper case, lower case, or any mixture of upper and
-|    lower case.  Note that this is not true of mailbox user names.  For
-|    some hosts the user name is case sensitive, and SMTP implementations
-|    must take case to preserve the case of user names as they appear in
-|    mailbox arguments.  Host names are not case sensitive.
-|    Commands and replies are composed of characters from the ASCII
-|    character set [1].  Each 7-bit character is transmitted right
-|    justified in an 8-bit byte (or octet) with the high order bit cleared
-|    to zero.
-|    When specifying the general form of a command or reply, an argument
-|    (or special symbol) will be denoted by a meta-linguistic variable (or
-|    constant), for example, ""
-|       <string>
-|         "" or ""
-|         <reverse-path>
-|           "".  Here the
-|    angle brackets indicate these are a meta-linguistic variables.
-|    However, some arguments use the angle brackets literally.  For
-|    example, an actual reverse-path is enclosed in angle brackets, i.e.,
-|    ""
-|           <smith@isia>
-|             "" is an instance of "
-|             <reverse-path>
-|               " (the angle brackets
-|    are actually transmitted in the command or reply).
-| Postel                                                          [Page 3]
-| 
-|                                                                         
-| November 1981                                                    RFC 788
-| Simple Mail Transfer Protocol                                           
-| 3.  THE SMTP PROCEDURES
-|    This section presents the procedures used in SMTP in several parts.
-|    First comes the basic mail procedure defined as a mail transaction.
-|    Following this are descriptions of forwarding mail, verifying mailbox
-|    names and expanding mailing lists, sending to terminals instead of or
-|    in combination with mailboxes, and the opening and closing exchanges.
-|    At the end of this section are comments on relaying, and a note on
-|    mail domains.  Throughout this section are examples of partial
-|    command and reply sequences, several complete scenarios are presented
-|    in Appendix F.
-|    3.1.  MAIL
-|       There are three steps to a SMTP mail transaction.  The transaction
-|       is started with a MAIL command which gives the sender
-|       identification.  A series of one or more RCPT commands follow
-|       giving the receiver information.  Then a DATA command gives the
-|       mail data.  And finally, the end of mail data indicator confirms
-|       the transaction.
-|          The first step in the procedure is the MAIL command.  The
-|          "
-|               <reverse-path>
-|                 " contains the source mailbox.
-|             MAIL "
-|                 <sp>
-|                   " FROM:"
-|                   <reverse-path>
-|                     " "
-|                     <crlf>
-|                       "
-|          This command tells the the SMTP-receiver that a new mail
-|          transaction is starting and to reset all its state tables and
-|          buffers including any recipients or mail data.  It gives the
-|          reverse-path which can be used to report errors.  If accepted,
-|          the receiver-SMTP returns a 250 OK reply.
-|          The "
-|                       <reverse-path>
-|                         " can contain more than just a mailbox.  The
-|          "
-|                         <reverse-path>
-|                           " is a reverse source routing list of hosts and
-|          source mailbox.  The first host in the "
-|                           <reverse-path>
-|                             " should be
-|          the host sending this command.
-|          The second step in the procedure is the RCPT command.
-|             RCPT "
-|                             <sp>
-|                               " TO:"
-|                               <forward-path>
-|                                 " "
-|                                 <crlf>
-|                                   "
-|          This command gives a forward-path identifying one recipient.
-|          If accepted, the receiver-SMTP returns a 250 OK reply, and
-|          stores the forward-path.  If the recipient is unknown the
-|          receiver-SMTP returns a 550 Failure reply.  This second step of
-|          the procedure can be repeated any number of times.
-| [Page 4]                                                          Postel
-| 
-|                                                                         
-| RFC 788                                                    November 1981
-|                                            Simple Mail Transfer Protocol
-|          The "
-|                                   <forward-path>
-|                                     " can contain more than just a mailbox.  The
-|          "
-|                                     <forward-path>
-|                                       " is a source routing list of hosts and
-|          destination mailbox.  The first host in the "
-|                                       <forward-path>
-|                                         "
-|          should be the host receiving this command.
-|          The third step in the procedure is the DATA command.
-|             DATA "
-|                                         <crlf>
-|                                           "
-|          If accepted, the receiver-SMTP returns a 354 Intermediate reply
-|          and considers all succeeding lines to be the message text.
-|          When the end of text is received and stored the SMTP-receiver
-|          sends a 250 OK reply.
-|          Since the mail data is sent on the transmission channel the end
-|          of the mail data must be indicated so that the command and
-|          reply dialog can be resumed.  SMTP indicates the end of the
-|          mail data by sending a line containing only a period.  A
-|          transparency procedure is used to prevent this interfering with
-|          the user's text (see Section 4.5.2).
-|             Please note that the mail data includes the memo header
-|             items such as Date, Subject, To, Cc, From [2].
-|          The end of mail data indicator also confirms the mail
-|          transaction and tells the receiver-SMTP to now process the
-|          stored recipients and mail data.  If accepted, the
-|          receiver-SMTP returns a 250 OK reply.  The DATA command should
-|          fail only if the mail transaction was incomplete (for example,
-|          no recipients), or if resources are not available.
-|       The above procedure is an example of a SMTP mail transaction.
-|       These commands must be used only in the order discussed above.
-|       Example 1 (below) illustrates the use of these commands in a mail
-|       transaction.
-| Postel                                                          [Page 5]
-| 
-|                                                                         
-| November 1981                                                    RFC 788
-| Simple Mail Transfer Protocol                                           
-|       -------------------------------------------------------------
-|                      Example of the SMTP Procedure
-|          This SMTP example shows mail sent by Smith at host Alpha, to
-|          Jones, Green, and Brown at host Beta.  Here we assume that host
-|          Alpha contacts host Beta directly.
-|             S: MAIL FROM:"
-|                                           <smith@alpha>
-|                                             "
-|             R: 250 OK
-|             S: RCPT TO:"
-|                                             <jones@beta>
-|                                               "
-|             R: 250 OK
-|             S: RCPT TO:"
-|                                               <green@beta>
-|                                                 "
-|             R: 550 No such user here
-|             S: RCPT TO:"
-|                                                 <brown@beta>
-|                                                   "
-|             R: 250 OK
-|             S: DATA
-|             R: 354 Start mail input; end with "
-|                                                   <crlf>
-|                                                     "."
-|                                                     <crlf>
-|                                                       "
-|             S: Blah blah blah...
-|             S: ...etc. etc. etc.
-|             S: "
-|                                                       <crlf>
-|                                                         "."
-|                                                         <crlf>
-|                                                           "
-|             R: 250 OK
-|          The mail has now been accepted for Jones and Brown.  Green did
-|          not have a mailbox at host Beta.
-|                                Example 1
-|       -------------------------------------------------------------
-| [Page 6]                                                          Postel
-| 
-|                                                                         
-| RFC 788                                                    November 1981
-|                                            Simple Mail Transfer Protocol
-|    3.2.  FORWARDING
-|       There are some cases where the destination information in the
-|       "
-|                                                           <forward-path>
-|                                                             " is incorrect, but the receiver-SMTP knows the
-|       correct destination.  In such cases, one the following replies
-|       should be used to allow the sender to contact the correct
-|       destination.
-|          251 User not local; will forward to "
-|                                                             <forward-path>
-|                                                               "
-|             This reply indicates that the receiver-SMTP knows the user's
-|             mailbox is on another host and indicates the correct
-|             forward-path to use in the future.  Note that either the
-|             host or user or both may be different.  The receiver takes
-|             responsibility for delivering the message.
-|          551 User not local; please try "
-|                                                               <forward-path>
-|                                                                 "
-|             This reply indicates that the receiver-SMTP knows the user's
-|             mailbox is on another host and indicates the correct
-|             forward-path to use.  Note that either the host or user or
-|             both may be different.  The receiver refuses to accept mail
-|             for this user, and the sender must either redirect the mail
-|             according to the information provided or return an error
-|             response to the originating user.
-|       Example 2 illustrates the use of these responses.
-|       -------------------------------------------------------------
-|                          Example of Forwarding
-|          Either
-|             S: RCPT TO:"
-|                                                                 <postel@isi>
-|                                                                   "
-|             R: 251 User not local; will forward to "
-|                                                                   <postel@isif>
-|                                                                     "
-|          Or
-|             S: RCPT TO:"
-|                                                                     <paul@isib>
-|                                                                       "
-|             R: 551 User not local; please try "
-|                                                                       <mockapetris@isif>
-|                                                                         "
-|                                Example 2
-|       -------------------------------------------------------------
-| Postel                                                          [Page 7]
-| 
-|                                                                         
-| November 1981                                                    RFC 788
-| Simple Mail Transfer Protocol                                           
-|    3.3.  VERIFYING AND EXPANDING
-|       SMTP provides as additional features, commands to verify a user
-|       name or expand a mailing list.  This is done with the VRFY and
-|       EXPN commands, which have a character string arguments.  For the
-|       VRFY command, the string is a user name, and the the response may
-|       include the full name of the user and must include the mailbox of
-|       the user.  For the EXPN command, the string identifies a mailing
-|       list, and the multiline response may include the full name of the
-|       users and must give the mailboxes on the mailing list.
-|       The case of verifying a user name is straightforward as shown in
-|       example 3.
-|       -------------------------------------------------------------
-|                     Example of Verifying a User Name
-|          Either
-|             S: VRFY Postel
-|             R: 250 Jon Postel "
-|                                                                         <postel@isif>
-|                                                                           "
-|          Or
-|             S: VRFY Jones
-|             R: 550 String does not match anything.
-|                                Example 3
-|       -------------------------------------------------------------
-| [Page 8]                                                          Postel
-| 
-|                                                                         
-| RFC 788                                                    November 1981
-|                                            Simple Mail Tr